|
@@ -3,15 +3,18 @@ package com.qs.mp.channel.service.impl;
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+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.param.PromoterCreateParam;
|
|
|
import com.qs.mp.channel.domain.vo.ChannelOperDataVO;
|
|
|
import com.qs.mp.channel.domain.vo.ChannelVO;
|
|
|
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.common.core.domain.AjaxResult;
|
|
|
import com.qs.mp.common.enums.ChannelCertifyStatusEnum;
|
|
|
import com.qs.mp.common.enums.ChannelRoleEnum;
|
|
|
import com.qs.mp.common.enums.ChannelVerifyStatusEnum;
|
|
@@ -25,6 +28,7 @@ import com.qs.mp.system.service.ISysUserService;
|
|
|
import com.qs.mp.user.domain.UserAddr;
|
|
|
import com.qs.mp.user.service.IUserAddrService;
|
|
|
import com.qs.mp.utils.SecurityUtils;
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.List;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -61,6 +65,81 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
|
|
|
@Autowired
|
|
|
private IUserAddrService userAddrService;
|
|
|
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ISysUserService sysUserService;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void createPromoter(PromoterCreateParam param) {
|
|
|
+
|
|
|
+ // 判断用户是否已经注册了盲票
|
|
|
+ SysUser sysUser = sysUserService.selectUserByUserName(param.getMobile());
|
|
|
+ if (sysUser == null) {
|
|
|
+ sysUser = new SysUser();
|
|
|
+ // 直接注册新用户
|
|
|
+ sysUser.setUserName(param.getMobile());
|
|
|
+ sysUser.setNickName(param.getMobile());
|
|
|
+ sysUser.setPhonenumber(param.getMobile());
|
|
|
+ sysUserService.registerUser(sysUser);
|
|
|
+ }
|
|
|
+
|
|
|
+ Channel channel = this.getById(param.getChannelId());
|
|
|
+
|
|
|
+ // 创建推广员
|
|
|
+ Channel promoter = new Channel();
|
|
|
+ promoter.setUserId(sysUser.getUserId());
|
|
|
+ promoter.setWordNo(param.getWordNo());
|
|
|
+ promoter.setName(param.getName());
|
|
|
+ promoter.setLevel(-1);
|
|
|
+ promoter.setCommRate(param.getCommRate());
|
|
|
+ promoter.setMobile(param.getMobile());
|
|
|
+ promoter.setParentId(channel.getChannelId());
|
|
|
+ promoter.setChannelNo("");
|
|
|
+
|
|
|
+ boolean res = this.save(promoter);
|
|
|
+ if (!res) {
|
|
|
+ throw new ServiceException("创建推广员失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新关系链编码
|
|
|
+ boolean rtn = this.update(new LambdaUpdateWrapper<Channel>()
|
|
|
+ .set(Channel::getChannelNo, channel.getChannelNo() + "." + promoter.getChannelId())
|
|
|
+ .eq(Channel::getChannelId, promoter.getChannelId()));
|
|
|
+ if (!rtn) {
|
|
|
+ throw new ServiceException("更新关系链编码失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String checkPromoter(PromoterCreateParam param) {
|
|
|
+
|
|
|
+ // 校验门店
|
|
|
+ Channel channel = this.getById(param.getChannelId());
|
|
|
+ if (channel == null) {
|
|
|
+ return "门店不存在";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 校验佣金比例
|
|
|
+ if (param.getCommRate().compareTo(channel.getCommRate()) > 0) {
|
|
|
+ return "佣金比例不能大于门店的佣金比例";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (param.getCommRate().compareTo(BigDecimal.ZERO) < 0) {
|
|
|
+ return "佣金比例不能小于0";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 校验用户是否已经是渠道或门店或推广员
|
|
|
+ int count = channelService.count(
|
|
|
+ new LambdaQueryWrapper<Channel>().eq(Channel::getMobile, param.getMobile()));
|
|
|
+ if (count > 0) {
|
|
|
+ return "该手机号已存在角色";
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void saveChannel(Channel channel, ChannelRoleEnum channelRole) {
|