Procházet zdrojové kódy

二维码配置的修改

dongxin před 1 rokem
rodič
revize
96b15a51a3

+ 13 - 5
src/main/java/com/ydtech/modules/admin/controller/SysBarcodeConfigController.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.admin.constants.UserConstants;
 import com.ydtech.modules.admin.model.po.SysBarcodeConfig;
 import com.ydtech.modules.admin.model.vo.AddSysBarcodeConfigVo;
 import com.ydtech.modules.admin.model.vo.SysBarcodeConfigPageVo;
@@ -50,21 +51,28 @@ public class SysBarcodeConfigController extends BaseController {
         BeanUtils.copyProperties(addSysBarcodeConfigVo, sysBarcodeConfig);
         sysBarcodeConfig.setCreateTime(LocalDateTime.now());
         sysBarcodeConfig.setCreateBy(userName);
-        LambdaQueryWrapper<SysBarcodeConfig> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(SysBarcodeConfig::getCompanyId, sysBarcodeConfig.getCompanyId());
-        if (sysBarcodeConfigService.count(wrapper) > 0){
-            HttpResult.error("不允许重复配置!");
+        if (UserConstants.NOT_UNIQUE.equals(sysBarcodeConfigService.checkCompanyUnique(sysBarcodeConfig))) {
+            return HttpResult.error("新增'" + sysBarcodeConfig.getCompanyName() + "'配置失败,该保险公司已经配置");
         }
+//        LambdaQueryWrapper<SysBarcodeConfig> wrapper = new LambdaQueryWrapper<>();
+//        wrapper.eq(SysBarcodeConfig::getCompanyId, sysBarcodeConfig.getCompanyId());
+//        wrapper.eq(SysBarcodeConfig::getApiType, sysBarcodeConfig.getApiType());
+//        if (sysBarcodeConfigService.count(wrapper) > 0){
+//            HttpResult.error("不允许重复配置!");
+//        }
         boolean save = sysBarcodeConfigService.save(sysBarcodeConfig);
         return JudgeUtils.add(save);
     }
 
     @PutMapping("/edit/{id}")
     @ApiOperation("修改二维码配置")
-    public HttpResult edit(@PathVariable Long id, @RequestBody AddSysBarcodeConfigVo addSysBarcodeConfigVo) {
+    public HttpResult edit(@PathVariable Long id, @RequestBody @Valid AddSysBarcodeConfigVo addSysBarcodeConfigVo) {
         SysBarcodeConfig sysBarcodeConfig = new SysBarcodeConfig();
         BeanUtils.copyProperties(addSysBarcodeConfigVo, sysBarcodeConfig);
         sysBarcodeConfig.setId(id);
+        if (UserConstants.NOT_UNIQUE.equals(sysBarcodeConfigService.checkCompanyUnique(sysBarcodeConfig))) {
+            return HttpResult.error("修改'" + sysBarcodeConfig.getCompanyName() + "'配置失败,该保险公司已经配置");
+        }
         boolean modify = sysBarcodeConfigService.saveOrUpdate(sysBarcodeConfig);
         return JudgeUtils.modify(modify);
     }

+ 6 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysBarcodeConfig.java

@@ -48,6 +48,12 @@ public class SysBarcodeConfig implements Serializable {
     @ApiModelProperty(value = "类型   0:url   1:base码   2:h5")
     private Integer type;
 
+    /**
+     * 请求类型 1:api 2:python
+     */
+    @ApiModelProperty(value = "请求类型 1:api 2:python")
+    private Integer apiType;
+
     /**
      * 创建人
      */

+ 7 - 0
src/main/java/com/ydtech/modules/admin/model/vo/AddSysBarcodeConfigVo.java

@@ -34,4 +34,11 @@ public class AddSysBarcodeConfigVo {
     @ApiModelProperty(value = "类型   0:url   1:base码   2:h5")
     private Integer type;
 
+    /**
+     * 请求类型 1:api 2:python
+     */
+    @NotNull(message = "请求类型不能为空")
+    @ApiModelProperty(value = "请求类型 1:api 2:python")
+    private Integer apiType;
+
 }

+ 7 - 0
src/main/java/com/ydtech/modules/admin/service/SysBarcodeConfigService.java

@@ -21,4 +21,11 @@ public interface SysBarcodeConfigService extends IService<SysBarcodeConfig> {
      * @return
      */
     Page<SysBarcodeConfig> queryPage(Page page, @Valid SysBarcodeConfigPageVo sysBarcodeConfigPageVo);
+
+    /**
+     * 去重校验
+     * @param sysBarcodeConfig
+     * @return
+     */
+    String checkCompanyUnique(SysBarcodeConfig sysBarcodeConfig);
 }

+ 19 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysBarcodeConfigServiceImpl.java

@@ -1,17 +1,23 @@
 package com.ydtech.modules.admin.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.constants.UserConstants;
 import com.ydtech.modules.admin.dao.SysBarcodeConfigMapper;
 import com.ydtech.modules.admin.model.po.SysBarcodeConfig;
 import com.ydtech.modules.admin.model.po.SysChannelCost;
+import com.ydtech.modules.admin.model.po.SysChannelGrade;
 import com.ydtech.modules.admin.model.vo.SysBarcodeConfigPageVo;
 import com.ydtech.modules.admin.service.SysBarcodeConfigService;
 import com.ydtech.utils.StringUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Objects;
+
 /**
 * @author dongxin
 * @description 针对表【sys_barcode_config(二维码配置表)】的数据库操作Service实现
@@ -30,6 +36,19 @@ public class SysBarcodeConfigServiceImpl extends ServiceImpl<SysBarcodeConfigMap
         Page<SysBarcodeConfig> costPage = page(page, wrapper);
         return costPage;
     }
+
+    @Override
+    public String checkCompanyUnique(SysBarcodeConfig sysBarcodeConfig) {
+        Long groupId = ObjectUtils.isEmpty(sysBarcodeConfig.getId()) ? -1L: sysBarcodeConfig.getId();
+        LambdaQueryWrapper<SysBarcodeConfig> qw = new LambdaQueryWrapper<>();
+        qw.eq(SysBarcodeConfig::getCompanyId,sysBarcodeConfig.getCompanyId())
+                .eq(SysBarcodeConfig::getApiType,sysBarcodeConfig.getApiType());
+        SysBarcodeConfig info = getOne(qw);
+        if (!Objects.isNull(info) && info.getId() != groupId) {
+            return UserConstants.NOT_UNIQUE;
+        }
+        return UserConstants.UNIQUE;
+    }
 }
 
 

+ 2 - 1
src/main/java/com/ydtech/modules/order/controller/QrCodeController.java

@@ -133,7 +133,8 @@ public class QrCodeController {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getById(areaCompanyId);
         // 根据保险公司获取二维码配置方式
         LambdaQueryWrapper<SysBarcodeConfig> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(SysBarcodeConfig::getCompanyId, insAreaCompany.getCompanyId());
+        wrapper.eq(SysBarcodeConfig::getCompanyId, insAreaCompany.getCompanyId())
+                .eq(SysBarcodeConfig::getApiType, insAreaCompany.getApiType());
         List<SysBarcodeConfig> configs = sysBarcodeConfigService.list(wrapper);
         if (CollUtil.isEmpty(configs) || configs.size() > 1) {
             //重定向到错误页面中