Explorar el Código

门店编辑增加修改上级渠道

Chris-zy hace 1 año
padre
commit
4b177bed6a

+ 37 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/SaleSiteMgrController.java

@@ -28,9 +28,11 @@ import com.qs.mp.common.enums.BusinessType;
 import com.qs.mp.common.enums.ChannelRoleEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
 import com.qs.mp.common.exception.ServiceException;
+import com.qs.mp.system.domain.SysUser;
 import com.qs.mp.system.service.ISysUserService;
 import com.qs.mp.user.service.IUserTicketOrderService;
 import com.qs.mp.utils.ExcelUtil;
+import com.qs.mp.utils.SecurityUtils;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -439,17 +441,24 @@ public class SaleSiteMgrController extends BaseApiController {
         return AjaxResult.success("经销商'" + channel.getName() + "'新增成功");
     }
 
+    /**
+     *
+     * parentId必传
+     * @param saleSiteEditParam
+     * @return
+     */
     @PreAuthorize("@ss.hasPermi('business:salesite:edit')")
     @ApiOperation("修改门店信息")
     @PostMapping("/edit")
     public AjaxResult edit(@RequestBody SaleSiteEditParam saleSiteEditParam) {
+        boolean mobileChange = false;  // 手机号码是否有变更
         Channel channel = channelService.getById(saleSiteEditParam.getChannelId());
         if (channel == null) {
             return AjaxResult.error("门店信息不存在");
         }
         //手机号是否重复校验
         if (!saleSiteEditParam.getMobile().equals(channel.getMobile())) {
-
+            mobileChange = true;
             int mobileCount = channelService.count(
                     new LambdaQueryWrapper<Channel>().eq(Channel::getMobile, channel.getMobile()));
             if (mobileCount > 0) {
@@ -459,13 +468,40 @@ public class SaleSiteMgrController extends BaseApiController {
                 return AjaxResult.error("手机号码" + channel.getMobile() + "已注册!");
             }
         }
+        //校验佣金比例,不能高于其父经销商的佣金比例
+        Channel parentChannel = channelService.getById(saleSiteEditParam.getParentId());
+        if (null != parentChannel) {
+            if (null != parentChannel.getCommRate()
+                    && channel.getCommRate().compareTo(parentChannel.getCommRate()) > 0) {
+                return AjaxResult.error("佣金比例不能高于父经销商的佣金比例");
+            }
+            channel.setLevel(parentChannel.getLevel() + 1);
+            channel.setChannelNo(parentChannel.getChannelNo() + ".");
+        } else {
+            return AjaxResult.error("父经销商不存在");
+        }
 
         boolean rtn = channelService.update(new LambdaUpdateWrapper<Channel>()
             .set(Channel::getName, saleSiteEditParam.getName())
+            .set(Channel::getParentId, parentChannel.getChannelNo()+"."+channel.getChannelId())
             .set(Channel::getMobile, saleSiteEditParam.getMobile())
             .set(saleSiteEditParam.getCommFlag() != null, Channel::getCommFlag, saleSiteEditParam.getCommFlag())
             .eq(Channel::getChannelId, saleSiteEditParam.getChannelId()));
 
+        if (mobileChange){
+            //修改用户信息
+            SysUser sysUser = new SysUser();
+            sysUser.setUserId(channel.getUserId());
+            sysUser.setUserName(channel.getMobile());
+            sysUser.setPhonenumber(channel.getMobile());
+            sysUser.setNickName(channel.getName());
+            sysUser.setDeptId(SecurityUtils.getDeptId());
+            int userNum = userService.updateUser(sysUser);
+            if (userNum == 0 || null == sysUser.getUserId()) {
+                throw new ServiceException("更新失败,请联系管理员");
+            }
+        }
+
         if (!rtn) {
             return AjaxResult.error("更新门店信息失败");
         }

+ 3 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/param/SaleSiteEditParam.java

@@ -30,4 +30,7 @@ public class SaleSiteEditParam {
     @ApiModelProperty("分佣标识:0默认,1不分佣")
     private Integer commFlag;
 
+    @ApiModelProperty("父渠道ID")
+    private Integer parentId;
+
 }