rk
2025-12-16 2cfceadff437135a255990ab9698788a48adb636
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -20,16 +20,19 @@
import com.doumee.core.utils.Utils;
import com.doumee.core.wx.WxMiniConfig;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.SmsrecordMapper;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.model.Areas;
import com.doumee.dao.business.model.Goodsorder;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Smsrecord;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.dto.MemberRechargeDTO;
import com.doumee.dao.web.dto.MemberOwnDTO;
import com.doumee.dao.web.dto.shop.Position;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.request.DealIntegralRequest;
import com.doumee.dao.web.request.UpdMobileRequest;
import com.doumee.dao.web.request.UpdateMemberRequest;
import com.doumee.dao.web.request.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
@@ -74,6 +77,9 @@
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private SmsrecordMapper smsrecordMapper;
    @Autowired
@@ -328,6 +334,12 @@
    @Override
    public Member updateMember(UpdateMemberRequest updateMemberRequest){
        if(StringUtils.isBlank(updateMemberRequest.getImgurl())
                && StringUtils.isBlank(updateMemberRequest.getNickname())
                && StringUtils.isBlank(updateMemberRequest.getName())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Member member  = new Member();
        BeanUtils.copyProperties(updateMemberRequest,member);
        member.setId(updateMemberRequest.getMemberId());
@@ -339,6 +351,9 @@
                systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+dbMember.getImgurl());
        return dbMember;
    }
    @Override
    public MemberOwnDTO getMemberOwnDTO(Integer memberId) {
@@ -405,6 +420,68 @@
        memberMapper.updateById(member);
    }
    @Override
    public void verifyUserPhone(UpdMobileRequest request){
        if(Objects.isNull(request)
                || Objects.isNull(request.getMemberId())
                || StringUtils.isBlank(request.getPhone())
                || StringUtils.isBlank(request.getCode())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Member member = memberMapper.selectById(request.getMemberId());
        if(StringUtils.isNotBlank(member.getPhone())&&!member.getPhone().equals(request.getPhone())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"手机号错误");
        }
        this.verifyPhoneCode(request.getCode(),request.getMemberId());
    }
    public void verifyPhoneCode(String code,Integer memberId){
        //验证码
        Smsrecord smsrecord = smsrecordMapper.selectOne(new QueryWrapper<Smsrecord>().lambda()
                .eq(Smsrecord::getIsdeleted,Constants.ZERO)
                .eq(Smsrecord::getCode,code)
                .eq(Smsrecord::getMemberId,memberId)
                .last(" limit 1")
        );
        if(Objects.isNull(smsrecord)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"验证码错误!");
        }
        if(!Constants.equalsInteger(smsrecord.getStatus(),Constants.ZERO)){
            if(Constants.equalsInteger(smsrecord.getStatus(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"验证码已使用");
            }else{
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"验证码已过期");
            }
        }
        smsrecordMapper.update(new UpdateWrapper<Smsrecord>().lambda()
                .set(Smsrecord::getStatus,Constants.ONE)
                .eq(Smsrecord::getId,smsrecord.getId())
        );
    }
    @Override
    public void updateUserPhone(UpdMobileRequest request){
        if(Objects.isNull(request)
        || Objects.isNull(request.getMemberId())
        || StringUtils.isBlank(request.getPhone())
        || StringUtils.isBlank(request.getCode())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Member member = memberMapper.selectById(request.getMemberId());
        if(StringUtils.isNotBlank(member.getPhone())&&member.getPhone().equals(request.getPhone())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"无法更换相同手机号");
        }
        this.verifyPhoneCode(request.getCode(),request.getMemberId());
        memberMapper.update(new UpdateWrapper<Member>().lambda()
                .eq(Member::getPhone,request.getPhone())
                .eq(Member::getId,request.getMemberId())
        );
    }
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    @Override
    public Integer importMemberRechargeBatch(MultipartFile file) {