123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package com.dragoninfo.dcuc.app.strategy;
- import cn.hutool.core.bean.BeanUtil;
- import com.dragoninfo.dcuc.app.dto.AppResourceDTO;
- import com.dragoninfo.dcuc.app.dto.ResourceDTO;
- import com.dragoninfo.dcuc.app.entity.ApplyInfo;
- import com.dragoninfo.dcuc.app.enumresources.ResourceTypeEnum;
- import com.dragoninfo.dcuc.app.service.IApplyInfoService;
- import com.dragoninfo.dcuc.app.service.IApplyOauthService;
- import com.dragonsoft.duceap.base.enums.BooleanEnum;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- /**
- * @author mazq
- * @Description
- * @create 2020-11-25 14:21
- */
- @Component
- public class AppResourceStrategy implements ResourceOperateStrategy<AppResourceDTO,ApplyInfo> {
- @Autowired
- private IApplyInfoService applyInfoService;
- @Autowired
- private IApplyOauthService applyOauthService;
- @Override
- public ApplyInfo insertRemoteSource(AppResourceDTO appResourceDTO) {
- ApplyInfo applyInfo;
- ApplyInfo exist = applyInfoService.getAppByCode(appResourceDTO.getAppCode());
- if (null == exist) {
- applyInfo = inserApplyInfo(appResourceDTO);
- } else {
- applyInfo = updateApplyInfo(exist, appResourceDTO);
- }
- return applyInfo;
- }
- @Override
- public boolean canHandle(String resourceType) {
- return ResourceTypeEnum.TJ_APP.getResourceId().equals(resourceType);
- }
- private ApplyInfo inserApplyInfo(AppResourceDTO dto) {
- ApplyInfo applyInfo = convertToApplyInfo(dto);
- //删除的应用,不插入数据库
- if(BooleanEnum.TRUE.getValue().equals(dto.getDeleted())){
- return applyInfo;
- }
- String secretKey = getApiKeys(applyInfo.getApplyCode());
- String apiKey = getApiKeys(applyInfo.getApplyCode());
- applyInfo.setSecretKey(secretKey);
- applyInfo.setApiKey(apiKey);
- applyInfoService.save(applyInfo);
- applyOauthService.saveOauth(applyInfo);
- return applyInfo;
- }
- private ApplyInfo updateApplyInfo(ApplyInfo applyInfo, AppResourceDTO dto) {
- ApplyInfo infoNew = convertToApplyInfo(dto);
- BeanUtil.copyProperties(infoNew, applyInfo, "id", "apiKey", "secretKey");
- applyInfoService.update(applyInfo);
- //删除的应用
- if(BooleanEnum.TRUE.getValue().equals(dto.getDeleted())){
- applyInfoService.deleteById(applyInfo.getId());
- }
- return applyInfo;
- }
- private ApplyInfo convertToApplyInfo(AppResourceDTO dto) {
- String appCode = dto.getAppCode();
- ApplyInfo applyInfo = new ApplyInfo();
- applyInfo.setApplyCode(appCode);
- applyInfo.setApplyName(dto.getAppName());
- applyInfo.setOrgId(dto.getBuildUnitId());
- applyInfo.setOrgName(dto.getBuildUnit());
- applyInfo.setManagerOrgId(dto.getManagerUnitId());
- applyInfo.setManagerOrgName(dto.getManagerUnit());
- applyInfo.setJgFzr(dto.getBuildPrincipal());
- applyInfo.setJgFzrPhone(dto.getBuildPrincipalPhone());
- applyInfo.setFzr(dto.getContractPrincipal());
- applyInfo.setFzrPhone(dto.getContractPrincipalPhone());
- applyInfo.setManufacturerName(dto.getContractUnit());
- applyInfo.setDeleted(dto.getDeleted());
- applyInfo.setApplyUrl(dto.getAppUrl());
- applyInfo.setApplyCategory(dto.getApplyCategory());
- applyInfo.setPoliceSpecies(dto.getPoliceSpecies());
- applyInfo.setManufacturerId(dto.getContractUnitId());
- applyInfo.setRegistrationTime(dto.getRegistrationTime());
- applyInfo.setApplyStatus(dto.getAppStatus());
- return applyInfo;
- }
- private String getApiKeys(String value) {
- StringBuilder num = new StringBuilder();
- for (int i = 0; i < 8; i++) {
- int random = (int) (Math.random() * 10);
- num.append(random);
- }
- return value + num;
- }
- }
|