Sfoglia il codice sorgente

删除推广员时删除推广员和用户的关联关系

cup 2 anni fa
parent
commit
1bae9c0ae5

+ 1 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/PromoterController.java

@@ -117,8 +117,8 @@ public class PromoterController extends BaseApiController {
         if (count <= 0) {
             return AjaxResult.error("您没有权限删除该推广员");
         }
-        channelService.removeById(id);
 
+        channelService.deletePromoter(id);
         return AjaxResult.success();
     }
 

+ 6 - 0
mp-service/src/main/java/com/qs/mp/channel/service/IChannelService.java

@@ -146,4 +146,10 @@ public interface IChannelService extends IService<Channel> {
 
 
     ChannelOperDataVO getPromoterOperData(String channelNo, Integer days);
+
+    /**
+     * 删除推广员
+     * @param channelId 推广员id
+     */
+    void deletePromoter(Long channelId);
 }

+ 27 - 0
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qs.mp.admin.domain.vo.IndexVO;
 import com.qs.mp.channel.domain.Channel;
+import com.qs.mp.channel.domain.PromoterUser;
 import com.qs.mp.channel.domain.param.PromoterCreateParam;
 import com.qs.mp.channel.domain.param.PromoterDataQueryParam;
 import com.qs.mp.channel.domain.vo.ChannelOperDataVO;
@@ -16,6 +17,7 @@ import com.qs.mp.channel.mapper.ChannelMapper;
 import com.qs.mp.channel.service.IChannelCommissionService;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.channel.service.IChannelUserRelService;
+import com.qs.mp.channel.service.IPromoterUserService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.enums.ChannelCertifyStatusEnum;
 import com.qs.mp.common.enums.ChannelRoleEnum;
@@ -75,6 +77,31 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
     @Autowired
     private IUserTicketOrderService userTicketOrderService;
 
+    @Autowired
+    private IPromoterUserService promoterUserService;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deletePromoter(Long channelId) {
+
+        // 推广员是否有关联用户
+        int count = promoterUserService.count(
+            new LambdaQueryWrapper<PromoterUser>().eq(PromoterUser::getPromoterId, channelId));
+
+        if (count > 0) {
+            boolean rtn = promoterUserService.remove(
+                new LambdaQueryWrapper<PromoterUser>().eq(PromoterUser::getPromoterId, channelId));
+            if (!rtn) {
+                throw new ServiceException("删除推广员和用户关联信息失败");
+            }
+        }
+        boolean rtn = this.removeById(channelId);
+        if (!rtn) {
+            throw new ServiceException("删除推广员信息失败");
+        }
+    }
+
     @Override
     public List<PromoterListVO> listPromoterByQueryWrapper(QueryWrapper<Channel> queryWrapper) {
         return getBaseMapper().listPromoterByQueryWrapper(queryWrapper);