陶杰
2024-09-24 cbbc18e79cb498901290451ecf5b9fdbd2a212aa
src/main/java/com/mzl/flower/service/partner/PartnerService.java
@@ -10,15 +10,21 @@
import com.mzl.flower.dto.request.partner.*;
import com.mzl.flower.dto.response.partner.PartnerDTO;
import com.mzl.flower.entity.partner.Partner;
import com.mzl.flower.entity.system.User;
import com.mzl.flower.mapper.partner.PartnerMapper;
import com.mzl.flower.mapper.system.UserMapper;
import com.mzl.flower.service.BaseService;
import com.mzl.flower.service.UploadService;
import com.mzl.flower.service.system.UserService;
import com.mzl.flower.utils.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
@@ -36,14 +42,24 @@
    private final PartnerMapper partnerMapper;
    private final UserMapper userMapper;
    private final WxMaService maService;
    private final UploadService uploadService;
    public PartnerService(PartnerMapper partnerMapper, WxMaService maService, UploadService uploadService) {
    @Resource
    private BaseService baseService;
    @Autowired
    private UserService userService;
    public PartnerService(PartnerMapper partnerMapper, UserMapper userMapper, WxMaService maService, UploadService uploadService) {
        this.partnerMapper = partnerMapper;
        this.userMapper = userMapper;
        this.maService = maService;
        this.uploadService = uploadService;
    }
@@ -54,16 +70,50 @@
            if(checkExist(dto.getUserId())){
                throw new ValidationException("合伙人信息已登记");
            }
            if(StringUtils.isNotBlank(dto.getContactTel()) && StringUtils.isNotBlank(dto.getUserId())){
                //验证手机号
                User user = userMapper.selectById(dto.getUserId());
                if(user==null){
                    throw new ValidationException("合伙人账号信息不存在");
                }
                if(userMapper.selectCount(new LambdaQueryWrapper<User>().eq(User::getTel, dto.getContactTel())
                        .eq(User::getType, Constants.USER_TYPE.partner.name())
                        .ne(User::getId, dto.getUserId())
                        .eq(User::getDeleted, 0)
                )>0){
                    throw new ValidationException("手机号已被注册使用");
                }
                user.setTel(dto.getContactTel());
                userMapper.updateById(user);
            }
            partner = new Partner();
            BeanUtils.copyProperties(dto, partner,"id");
            partner.setIdCards(JSON.toJSONString(dto.getIdCards()));
            partner.create(SecurityUtils.getUserId());
            partner.setStatus(PARTNER_STATUS_AUDIT);
            partner.setIsEnabled(true);
            partnerMapper.insert(partner);
        }else{//重新修改
            partner = partnerMapper.selectById(dto.getId());
            if(partner==null){
                throw new ValidationException("合伙人信息未登记");
            }
            if(StringUtils.isNotBlank(dto.getContactTel()) && !partner.getContactTel().equals(dto.getContactTel())){
                //验证手机号
                User user = userMapper.selectById(partner.getUserId());
                if(user==null){
                    throw new ValidationException("合伙人账号信息不存在");
                }
                if(userMapper.selectCount(new LambdaQueryWrapper<User>().eq(User::getTel, dto.getContactTel())
                        .eq(User::getType, Constants.USER_TYPE.partner.name())
                        .ne(User::getId, partner.getUserId())
                        .eq(User::getDeleted, 0)
                )>0){
                    throw new ValidationException("手机号已被注册使用");
                }
                user.setTel(dto.getContactTel());
                partner.setContactTel(dto.getContactTel());
                userMapper.updateById(user);
            }
            BeanUtils.copyProperties(dto, partner,"id");
            partner.setIdCards(JSON.toJSONString(dto.getIdCards()));
@@ -128,8 +178,32 @@
        partner.setProvince(dto.getProvince());
        partner.setCity(dto.getCity());
        partner.setRegion(dto.getRegion());
        if(StringUtils.isNotBlank(dto.getName())){
            partner.setName(dto.getName());
        }
        if(StringUtils.isNotBlank(dto.getContactTel()) && !partner.getContactTel().equals(dto.getContactTel())){
            //验证手机号
            User user = userMapper.selectById(partner.getUserId());
            if(user==null){
                throw new ValidationException("合伙人账号信息不存在");
            }
            if(userMapper.selectCount(new LambdaQueryWrapper<User>().eq(User::getTel, dto.getContactTel())
                    .eq(User::getType, Constants.USER_TYPE.partner.name())
                    .ne(User::getId, partner.getUserId())
                    .eq(User::getDeleted, 0)
            )>0){
                throw new ValidationException("手机号已被注册使用");
            }
            user.setTel(dto.getContactTel());
            partner.setContactTel(dto.getContactTel());
            userMapper.updateById(user);
        }
        partner.update(SecurityUtils.getUserId());
        partnerMapper.updateById(partner);
    }
    public String generateCodeDTO(GenerateCodeDTO dto) {
        try {
@@ -161,4 +235,51 @@
        partner.update(SecurityUtils.getUserId());
        partnerMapper.updateById(partner);
    }
    public void isEnable(Long id) {
        Partner partner = partnerMapper.selectById(id);
        if (partner == null) {
            throw new ValidationException("合伙人信息不存在");
        }
        if (partner.getIsEnabled()) {
            partner.setIsEnabled(false);
            //强制下线
            baseService.removeToken(partner.getUserId());
        } else {
            partner.setIsEnabled(true);
        }
        partner.update(SecurityUtils.getUserId());
        partnerMapper.updateById(partner);
    }
    public void baseUpdate(UpdatePartnerBaseDTO dto) {
        Partner partner = partnerMapper.selectById(dto.getId());
        if(partner==null){
            throw new ValidationException("合伙人信息未登记");
        }
        BeanUtils.copyProperties(dto, partner,"id");
        partner.update(SecurityUtils.getUserId());
        partnerMapper.updateById(partner);
    }
    @Transactional
    public void phoneUpdate(UpdatePhoneDTO dto) {
        Partner partner = partnerMapper.selectById(dto.getId());
        if(partner==null){
            throw new ValidationException("合伙人信息未登记");
        }
        User user = userService.getUserById(partner.getUserId());
        if(user == null){
            throw new ValidationException("用户不存在");
        }
        partner.setContactTel(dto.getUsername());
        partner.update(SecurityUtils.getUserId());
        partnerMapper.updateById(partner);
        user.setTel(dto.getUsername());
        user.setLoginName(dto.getUsername());
        user.update(SecurityUtils.getUserId());
        userMapper.updateById(user);
    }
}