|
|
@@ -0,0 +1,107 @@
|
|
|
+package com.cloud.sa.management.manager;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.cloud.sa.base.common.code.UserErrorCode;
|
|
|
+import com.cloud.sa.base.common.domain.ResponseDTO;
|
|
|
+import com.cloud.sa.management.domain.dataobject.BlinkRiskRuleDO;
|
|
|
+import com.cloud.sa.management.domain.dto.BlinkRiskRuleCategoryDTO;
|
|
|
+import com.cloud.sa.management.domain.dto.BlinkRiskRuleDTO;
|
|
|
+import com.cloud.sa.management.domain.form.BlinkRiskRuleForm;
|
|
|
+import com.cloud.sa.management.objectmapper.BlinkRiskRuleMapper;
|
|
|
+import com.cloud.sa.management.repository.BlinkRiskRuleRepository;
|
|
|
+import com.cloud.sa.management.service.BlinkRiskRuleService;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class BlinkRiskRuleServiceImpl implements BlinkRiskRuleService {
|
|
|
+
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private BlinkRiskRuleRepository blinkRiskRuleRepository;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private BlinkRiskRuleMapper riskMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseDTO<String> add(BlinkRiskRuleForm blinkRiskRuleForm) {
|
|
|
+ QueryWrapper<BlinkRiskRuleDO> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("risk_metrics", blinkRiskRuleForm.getRiskMetrics());
|
|
|
+ BlinkRiskRuleDO result = blinkRiskRuleRepository.selectOne(queryWrapper);
|
|
|
+ if (null != result){
|
|
|
+ return ResponseDTO.error(UserErrorCode.ALREADY_EXIST);
|
|
|
+ }
|
|
|
+
|
|
|
+ BlinkRiskRuleDO blinkRiskRuleDO = new BlinkRiskRuleDO();
|
|
|
+
|
|
|
+ riskMapper.blinkRiskRuleFormCopyBlinkRiskRuleDO(blinkRiskRuleForm, blinkRiskRuleDO);
|
|
|
+ blinkRiskRuleRepository.insert(blinkRiskRuleDO);
|
|
|
+ return ResponseDTO.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseDTO<List<BlinkRiskRuleDTO>> selectList(String riskDimension) {
|
|
|
+ QueryWrapper<BlinkRiskRuleDO> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("risk_dimension", riskDimension);
|
|
|
+ List<BlinkRiskRuleDO> blinkRiskRuleDOList = blinkRiskRuleRepository.selectList(queryWrapper);
|
|
|
+ if (null == blinkRiskRuleDOList){
|
|
|
+ return ResponseDTO.error(UserErrorCode.ALREADY_NOT_EXIST);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<BlinkRiskRuleDTO> blinkRiskRuleDTOList = new ArrayList<>();
|
|
|
+ for (BlinkRiskRuleDO blinkRiskRuleDO : blinkRiskRuleDOList){
|
|
|
+ BlinkRiskRuleDTO blinkRiskRuleDTO = new BlinkRiskRuleDTO();
|
|
|
+ riskMapper.blinkRiskRuleDOCopyBlinkRiskRuleDTO(blinkRiskRuleDO, blinkRiskRuleDTO);
|
|
|
+ blinkRiskRuleDTOList.add(blinkRiskRuleDTO);
|
|
|
+ }
|
|
|
+ return ResponseDTO.ok(blinkRiskRuleDTOList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseDTO<List<BlinkRiskRuleCategoryDTO>> selectAllCategory() {
|
|
|
+ List<BlinkRiskRuleDO> blinkRiskRuleDOList = blinkRiskRuleRepository.selectList(null);
|
|
|
+ if (null == blinkRiskRuleDOList){
|
|
|
+ return ResponseDTO.error(UserErrorCode.ALREADY_NOT_EXIST);
|
|
|
+ }
|
|
|
+
|
|
|
+ Set<String> riskDimensions = blinkRiskRuleDOList.stream().map(b -> b.getRiskDimension()).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ List<BlinkRiskRuleCategoryDTO> blinkRiskRuleCategoryDTOList = new ArrayList<>();
|
|
|
+ for (String riskDimension : riskDimensions){
|
|
|
+ BlinkRiskRuleCategoryDTO blinkRiskRuleCategoryDTO = new BlinkRiskRuleCategoryDTO();
|
|
|
+ blinkRiskRuleCategoryDTO.setParent(riskDimension);
|
|
|
+ QueryWrapper<BlinkRiskRuleDO> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("risk_dimension", riskDimension);
|
|
|
+ List<BlinkRiskRuleDO> result = blinkRiskRuleRepository.selectList(queryWrapper);
|
|
|
+ List<BlinkRiskRuleDTO> blinkRiskRuleDTOList = new ArrayList<>();
|
|
|
+ for (BlinkRiskRuleDO blinkRiskRuleDO : result){
|
|
|
+ BlinkRiskRuleDTO blinkRiskRuleDTO = new BlinkRiskRuleDTO();
|
|
|
+ riskMapper.blinkRiskRuleDOCopyBlinkRiskRuleDTO(blinkRiskRuleDO, blinkRiskRuleDTO);
|
|
|
+ blinkRiskRuleDTOList.add(blinkRiskRuleDTO);
|
|
|
+ }
|
|
|
+ blinkRiskRuleCategoryDTO.setSonList(blinkRiskRuleDTOList);
|
|
|
+ blinkRiskRuleCategoryDTOList.add(blinkRiskRuleCategoryDTO);
|
|
|
+ }
|
|
|
+ return ResponseDTO.ok(blinkRiskRuleCategoryDTOList);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseDTO<BlinkRiskRuleDTO> selectOne(Integer riskId) {
|
|
|
+ QueryWrapper<BlinkRiskRuleDO> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("risk_id", riskId);
|
|
|
+ BlinkRiskRuleDO blinkRiskRuleDO = blinkRiskRuleRepository.selectOne(queryWrapper);
|
|
|
+ if (null == blinkRiskRuleDO){
|
|
|
+ return ResponseDTO.error(UserErrorCode.ALREADY_NOT_EXIST);
|
|
|
+ }
|
|
|
+
|
|
|
+ BlinkRiskRuleDTO blinkRiskRuleDTO = new BlinkRiskRuleDTO();
|
|
|
+ riskMapper.blinkRiskRuleDOCopyBlinkRiskRuleDTO(blinkRiskRuleDO, blinkRiskRuleDTO);
|
|
|
+ return ResponseDTO.ok(blinkRiskRuleDTO);
|
|
|
+ }
|
|
|
+}
|