AppResourceStrategy.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package com.dragoninfo.dcuc.app.strategy;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import com.dragoninfo.dcuc.app.dto.AppResourceDTO;
  4. import com.dragoninfo.dcuc.app.dto.ResourceDTO;
  5. import com.dragoninfo.dcuc.app.entity.ApplyInfo;
  6. import com.dragoninfo.dcuc.app.enumresources.ResourceTypeEnum;
  7. import com.dragoninfo.dcuc.app.service.IApplyInfoService;
  8. import com.dragoninfo.dcuc.app.service.IApplyOauthService;
  9. import com.dragonsoft.duceap.base.enums.BooleanEnum;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Component;
  12. /**
  13. * @author mazq
  14. * @Description
  15. * @create 2020-11-25 14:21
  16. */
  17. @Component
  18. public class AppResourceStrategy implements ResourceOperateStrategy<AppResourceDTO,ApplyInfo> {
  19. @Autowired
  20. private IApplyInfoService applyInfoService;
  21. @Autowired
  22. private IApplyOauthService applyOauthService;
  23. @Override
  24. public ApplyInfo insertRemoteSource(AppResourceDTO appResourceDTO) {
  25. ApplyInfo applyInfo;
  26. ApplyInfo exist = applyInfoService.getAppByCode(appResourceDTO.getAppCode());
  27. if (null == exist) {
  28. applyInfo = inserApplyInfo(appResourceDTO);
  29. } else {
  30. applyInfo = updateApplyInfo(exist, appResourceDTO);
  31. }
  32. return applyInfo;
  33. }
  34. @Override
  35. public boolean canHandle(String resourceType) {
  36. return ResourceTypeEnum.TJ_APP.getResourceId().equals(resourceType);
  37. }
  38. private ApplyInfo inserApplyInfo(AppResourceDTO dto) {
  39. ApplyInfo applyInfo = convertToApplyInfo(dto);
  40. //删除的应用,不插入数据库
  41. if(BooleanEnum.TRUE.getValue().equals(dto.getDeleted())){
  42. return applyInfo;
  43. }
  44. String secretKey = getApiKeys(applyInfo.getApplyCode());
  45. String apiKey = getApiKeys(applyInfo.getApplyCode());
  46. applyInfo.setSecretKey(secretKey);
  47. applyInfo.setApiKey(apiKey);
  48. applyInfoService.save(applyInfo);
  49. applyOauthService.saveOauth(applyInfo);
  50. return applyInfo;
  51. }
  52. private ApplyInfo updateApplyInfo(ApplyInfo applyInfo, AppResourceDTO dto) {
  53. ApplyInfo infoNew = convertToApplyInfo(dto);
  54. BeanUtil.copyProperties(infoNew, applyInfo, "id", "apiKey", "secretKey");
  55. applyInfoService.update(applyInfo);
  56. //删除的应用
  57. if(BooleanEnum.TRUE.getValue().equals(dto.getDeleted())){
  58. applyInfoService.deleteById(applyInfo.getId());
  59. }
  60. return applyInfo;
  61. }
  62. private ApplyInfo convertToApplyInfo(AppResourceDTO dto) {
  63. String appCode = dto.getAppCode();
  64. ApplyInfo applyInfo = new ApplyInfo();
  65. applyInfo.setApplyCode(appCode);
  66. applyInfo.setApplyName(dto.getAppName());
  67. applyInfo.setOrgId(dto.getBuildUnitId());
  68. applyInfo.setOrgName(dto.getBuildUnit());
  69. applyInfo.setManagerOrgId(dto.getManagerUnitId());
  70. applyInfo.setManagerOrgName(dto.getManagerUnit());
  71. applyInfo.setJgFzr(dto.getBuildPrincipal());
  72. applyInfo.setJgFzrPhone(dto.getBuildPrincipalPhone());
  73. applyInfo.setFzr(dto.getContractPrincipal());
  74. applyInfo.setFzrPhone(dto.getContractPrincipalPhone());
  75. applyInfo.setManufacturerName(dto.getContractUnit());
  76. applyInfo.setDeleted(dto.getDeleted());
  77. applyInfo.setApplyUrl(dto.getAppUrl());
  78. applyInfo.setApplyCategory(dto.getApplyCategory());
  79. applyInfo.setPoliceSpecies(dto.getPoliceSpecies());
  80. applyInfo.setManufacturerId(dto.getContractUnitId());
  81. applyInfo.setRegistrationTime(dto.getRegistrationTime());
  82. applyInfo.setApplyStatus(dto.getAppStatus());
  83. return applyInfo;
  84. }
  85. private String getApiKeys(String value) {
  86. StringBuilder num = new StringBuilder();
  87. for (int i = 0; i < 8; i++) {
  88. int random = (int) (Math.random() * 10);
  89. num.append(random);
  90. }
  91. return value + num;
  92. }
  93. }