From 55642c818f14bf8cf52c98e6858014bd8dc3d3a7 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 16 四月 2026 20:10:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |  365 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 265 insertions(+), 100 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 16cb9e2..5c4f12d 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -12,15 +12,22 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.IdentityInfoMapper;
 import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.OrdersMapper;
-import com.doumee.dao.business.model.IdentityInfo;
+import com.doumee.dao.business.ShopInfoMapper;
+import com.doumee.dao.business.SmsrecordMapper;
 import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.MemberRevenue;
 import com.doumee.dao.business.model.Orders;
+import com.doumee.dao.business.model.ShopInfo;
+import com.doumee.dao.business.model.MemberRevenue;
+import com.doumee.dao.business.model.Smsrecord;
+import com.doumee.dao.dto.MemberListQueryDTO;
+import com.doumee.dao.dto.UpdMobileRequest;
 import com.doumee.dao.dto.WxPhoneRequest;
 import com.doumee.dao.vo.AccountResponse;
+import com.doumee.dao.vo.MemberDetailVO;
+import com.doumee.dao.vo.MemberListVO;
+import com.doumee.dao.vo.PlatformAboutVO;
 import com.doumee.dao.vo.UserCenterVO;
 import com.doumee.service.business.MemberService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -39,6 +46,7 @@
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -58,16 +66,23 @@
     private MemberMapper memberMapper;
 
     @Autowired
-    private IdentityInfoMapper identityInfoMapper;
-
-    @Autowired
-    private OrdersMapper ordersMapper;
+    private SmsrecordMapper smsrecordMapper;
 
     @Autowired
     private JwtTokenUtil jwtTokenUtil;
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private RedisTemplate<String,Object> redisTemplate;
+
+    @Autowired
+    private ShopInfoMapper shopInfoMapper;
+
+    @Autowired
+    private OrdersMapper ordersMapper;
+
 
     @Override
     public Integer create(Member member) {
@@ -116,8 +131,8 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(StringUtils.isNotBlank(member.getCoverImage())){
-            String path  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
-                    +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MEMBER_FILES).getCode();
+            String path  = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
+                    +systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILES).getCode();
             member.setFullCoverImage(path + member.getCoverImage());
         }
         return member;
@@ -179,15 +194,6 @@
         if (pageWrap.getModel().getName() != null) {
             queryWrapper.lambda().like(Member::getName, pageWrap.getModel().getName());
         }
-        if (pageWrap.getModel().getWorkerIdentity() != null) {
-            queryWrapper.lambda().eq(Member::getWorkerIdentity, pageWrap.getModel().getWorkerIdentity());
-        }
-        if (pageWrap.getModel().getDriverIdentity() != null) {
-            queryWrapper.lambda().eq(Member::getDriverIdentity, pageWrap.getModel().getDriverIdentity());
-        }
-        if (pageWrap.getModel().getChefIdentity() != null) {
-            queryWrapper.lambda().eq(Member::getChefIdentity, pageWrap.getModel().getChefIdentity());
-        }
         if (pageWrap.getModel().getAmount() != null) {
             queryWrapper.lambda().eq(Member::getAmount, pageWrap.getModel().getAmount());
         }
@@ -225,12 +231,6 @@
         if (pageWrap.getModel().getArea() != null) {
             queryWrapper.lambda().eq(Member::getArea, pageWrap.getModel().getArea());
         }
-        //濡傛灉鏌ヨ鎺ュ崟鏂�
-        queryWrapper.lambda().and(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.ONE ),w1->{
-            w1.eq(Member::getWorkerIdentity,Constants.TWO )
-                    .or().eq(Member::getChefIdentity,Constants.TWO )
-                    .or().eq(Member::getDriverIdentity,Constants.TWO );
-        });
         queryWrapper.lambda().ge(pageWrap.getModel().getStartTime()!=null, Member::getCreateTime,pageWrap.getModel().getStartTime());
         queryWrapper.lambda().le(pageWrap.getModel().getEndTime()!=null,Member::getCreateTime,pageWrap.getModel().getEndTime());
 
@@ -271,21 +271,28 @@
             if (StringUtils.isBlank(openId)) {
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
             }
-            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("openid", openId).eq("DELETED", Constants.ZERO).last("limit 1"));
+            Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenid, openId)
+                    .ne(Member::getUserType,Constants.ONE)
+                    .eq(Member::getDeleted, Constants.ZERO)
+                    .ne(Member::getStatus, Constants.TWO).last("limit 1"));
             AccountResponse accountResponse = new AccountResponse();
             accountResponse.setOpenid(openId);
             if(Objects.isNull(member)){
                 return accountResponse;
             }
-            accountResponse.setToken(jwtTokenUtil.generateToken(member));
+            if(!Constants.equalsInteger(member.getStatus(),Constants.ZERO)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝璐﹀彿宸茬鐢紝璇疯仈绯荤鐞嗗憳!");
+            }
+            String token = JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ZERO, JSONObject.toJSONString(member), redisTemplate);
+            accountResponse.setToken(token);
             accountResponse.setMember(member);
+            // 闂ㄥ簵鐢ㄦ埛韬唤鏃讹紝杩斿洖鐢宠鐨勯棬搴楃姸鎬�
+            fillShopInfo(accountResponse, member);
             return accountResponse;
         } catch (WxErrorException e) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
         }
     }
-
-
 
 
     @Override
@@ -301,8 +308,14 @@
             if(Objects.isNull(mobile)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈幏鍙栧埌鎵嬫満鍙�");
             }
-            Member member =  memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getTelephone,mobile).last("limit 1"));
+            Member member =  memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+                    .eq(Member::getTelephone,mobile)
+                    .ne(Member::getUserType,Constants.ONE)
+                    .ne(Member::getStatus, Constants.TWO).last("limit 1"));
             if(Objects.nonNull(member)){
+                if(!Constants.equalsInteger(member.getStatus(),Constants.ZERO)){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝璐﹀彿宸茬鐢紝璇疯仈绯荤鐞嗗憳!");
+                }
                 memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getTelephone,mobile)
                         .set(Member::getOpenid,wxPhoneRequest.getOpenid()).set(Member::getUpdateTime,new Date()).eq(Member::getId,member.getId()));
             }else{
@@ -312,11 +325,7 @@
                 member.setDeleted(Constants.ZERO);
                 member.setOpenid(wxPhoneRequest.getOpenid());
                 member.setTelephone(mobile);
-                member.setNickName(mobile);
-//                member.setCoverImage("1.png");
-                member.setWorkerIdentity(Constants.ZERO);
-                member.setDriverIdentity(Constants.ZERO);
-                member.setChefIdentity(Constants.ZERO);
+                member.setNickName(mobile.substring(0, 3) + "****" + mobile.substring(7));
                 member.setAmount(Constants.ZERO.longValue());
                 member.setTotalAmount(Constants.ZERO.longValue());
                 member.setStatus(Constants.ZERO);
@@ -328,9 +337,12 @@
                 member.setUseIdentity(Constants.ZERO);
                 memberMapper.insert(member);
             }
+            String token = JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ZERO, JSONObject.toJSONString(member), redisTemplate);
             AccountResponse accountResponse = new AccountResponse();
-            accountResponse.setToken(jwtTokenUtil.generateToken(member));
+            accountResponse.setToken(token);
             accountResponse.setMember(member);
+            // 闂ㄥ簵鐢ㄦ埛韬唤鏃讹紝杩斿洖鐢宠鐨勯棬搴楃姸鎬�
+            fillShopInfo(accountResponse, member);
             return accountResponse;
         } catch (Exception e) {
             e.printStackTrace();
@@ -338,6 +350,21 @@
         }
     }
 
+    /**
+     * 闂ㄥ簵鐢ㄦ埛韬唤鏃讹紝濉厖闂ㄥ簵瀹℃牳鐘舵��
+     */
+    private void fillShopInfo(AccountResponse response, Member member) {
+        if (Constants.TWO.equals(member.getUserType())) {
+            ShopInfo shopInfo = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
+                    .eq(ShopInfo::getRegionMemberId, member.getId())
+                    .eq(ShopInfo::getDeleted, Constants.ZERO)
+                    .last("limit 1"));
+            if (shopInfo != null) {
+                response.setShopId(shopInfo.getId());
+                response.setShopAuditStatus(shopInfo.getAuditStatus());
+            }
+        }
+    }
 
 
     @Override
@@ -360,84 +387,222 @@
 
 
     @Override
-    public void editUseIdentity(Member member){
-        if(Objects.isNull(member)
-                || Objects.isNull(member.getUseIdentity())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        if(Constants.equalsInteger(member.getUseIdentity(),Constants.ZERO)){
-            member.setUseIdentity(Constants.ZERO);
-            memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getUseIdentity,Constants.ZERO).eq(Member::getId,member.getId()));
-        }else{
-            if(identityInfoMapper.selectCount(new QueryWrapper<IdentityInfo>().lambda().eq(IdentityInfo::getDeleted,Constants.ZERO)
-                    .eq(IdentityInfo::getMemberId,member.getId())
-                    .eq(IdentityInfo::getAuditStatus,Constants.TWO))>Constants.ZERO){
-                memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getUseIdentity,Constants.ONE).eq(Member::getId,member.getId()));
-            }else{
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鏃犲彲鐢ㄦ帴鍗曡韩浠�!");
-            }
-        }
-    }
-
-
-    @Override
-    public Member getMemberInfo(Integer memberId){
-        Member member  = this.findById(memberId);
+    public UserCenterVO getMemberInfo(Integer memberId){
+        Member member  = memberMapper.selectById(memberId);
         if(Objects.isNull(member)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
+        // 鐢ㄦ埛涓績鏁版嵁
+        UserCenterVO userCenterVO = new UserCenterVO();
+        userCenterVO.setNickName(member.getNickName());
+        userCenterVO.setName(member.getName());
+        userCenterVO.setTelephone(member.getTelephone());
+        userCenterVO.setCoverImage(member.getCoverImage());
         if(StringUtils.isNotBlank(member.getCoverImage())){
-            String path  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
-                    +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MEMBER_FILES).getCode();
-            member.setFullCoverImage(path + member.getCoverImage());
+            String path  = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
+                    +systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILES).getCode();
+            userCenterVO.setFullCoverImage(path + member.getCoverImage());
         }
-        UserCenterVO userCenterVO = new UserCenterVO();
-        userCenterVO.setReleaseTaskTotal(Constants.ZERO);
-        userCenterVO.setWaitReceiveTotal(Constants.ZERO);
-        userCenterVO.setDoingTotal(Constants.ZERO);
-        userCenterVO.setWaitCommentTotal(Constants.ZERO);
-        userCenterVO.setTaskingTotal(Constants.ZERO);
-        userCenterVO.setDoneTotal(Constants.ZERO);
-        userCenterVO.setReceiveTotal(Constants.ZERO);
-        List<Orders> releaseOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO)
-                .eq(Orders::getReleaseMemberId,member.getId()));
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(releaseOrders)){
-            userCenterVO.setReleaseTaskTotal(releaseOrders.size());
-            userCenterVO.setWaitCommentTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.done.getKey())&&Constants.equalsInteger(i.getCommentStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
-            userCenterVO.setDoingTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())).collect(Collectors.toList()).size());
-            userCenterVO.setWaitReceiveTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.wait.getKey())).collect(Collectors.toList()).size());
-        }
-        List<Orders> acceptOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO).eq(Orders::getAcceptMemberId,member.getId()));
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(acceptOrders)){
-            userCenterVO.setReceiveTotal(acceptOrders.size());
-            userCenterVO.setTaskingTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())).collect(Collectors.toList()).size());
-            userCenterVO.setDoneTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.done.getKey())).collect(Collectors.toList()).size());
-        }
-        member.setUserCenterVO(userCenterVO);
-        return member;
-    }
-
-
-
-
-    @Override
-    public UserCenterVO getPlatformAboutUs(){
-        UserCenterVO userCenterVO = new UserCenterVO();
-        userCenterVO.setAboutUs(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ABOUT_US).getCode()));
-        userCenterVO.setFeeStandards(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FEE_STANDARDS).getCode()));
-        userCenterVO.setServerIntroduce(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SERVER_INTRODUCE).getCode()));
-        userCenterVO.setServerPhone(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SERVER_PHONE).getCode()));
-        userCenterVO.setUserAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.USER_AGREEMENT).getCode()));
-        userCenterVO.setPrivacyAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRIVACY_AGREEMENT).getCode()));
+        userCenterVO.setHasMessage(false);
+        // 寰呮敮浠樿鍗曟暟閲�
+        Long waitPayCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+                .eq(Orders::getMemberId, memberId)
+                .eq(Orders::getDeleted, Constants.ZERO)
+                .eq(Orders::getStatus, Constants.OrderStatus.waitPay.getStatus()));
+        userCenterVO.setWaitPayCount(waitPayCount.intValue());
+        // 寰呮敹璐ц鍗曟暟閲�
+        int[] waitReceiveStatuses = Constants.OrderCombinedStatus.waitReceive.getStatuses();
+        Long waitReceiveCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+                .eq(Orders::getMemberId, memberId)
+                .eq(Orders::getDeleted, Constants.ZERO)
+                .in(Orders::getStatus, Arrays.stream(waitReceiveStatuses).boxed().collect(Collectors.toList())));
+        userCenterVO.setWaitReceiveCount(waitReceiveCount.intValue());
         return userCenterVO;
     }
 
+
+
+
     @Override
-    public void logOff(String token,Integer memberId){
+    public PlatformAboutVO getPlatformAboutUs(){
+        PlatformAboutVO vo = new PlatformAboutVO();
+        vo.setAboutUs(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ABOUT_US).getCode()));
+        vo.setUserAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.USER_AGREEMENT).getCode()));
+        vo.setPrivacyAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRIVACY_AGREEMENT).getCode()));
+        vo.setServerIntroduce(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SERVER_INTRODUCE).getCode()));
+        return vo;
+    }
+
+    @Override
+    public void logOut(String token,Integer memberId){
         memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" openid = null ").eq(Member::getId,memberId));
         jwtTokenUtil.logoutForH5(token);
     }
 
 
+    @Override
+    public void logOff(String token,Integer memberId){
+        Member  member = memberMapper.selectById(memberId);
+        if(Objects.nonNull(member)){
+            memberMapper.update(new UpdateWrapper<Member>().lambda()
+//                    .set(Member::getOpenId,null)
+                            .set(Member::getStatus,Constants.TWO)
+                            .eq(Member::getId,member.getId())
+            );
+        }
+        redisTemplate.delete(token);
+    }
+
+
+    /***************绠$悊绔細鍛樺垪琛ㄦ帴鍙�*************/
+
+    @Override
+    public PageData<MemberListVO> findMemberListPage(PageWrap<MemberListQueryDTO> pageWrap) {
+        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MemberListQueryDTO query = pageWrap.getModel();
+        QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(Member::getDeleted, Constants.ZERO);
+        queryWrapper.lambda().eq(Member::getUserType, Constants.ZERO);
+        if (query != null) {
+            if (StringUtils.isNotBlank(query.getKeyword())) {
+                queryWrapper.lambda().and(w -> w
+                        .like(Member::getName, query.getKeyword())
+                        .or().like(Member::getTelephone, query.getKeyword()));
+            }
+            if (query.getStatus() != null) {
+                queryWrapper.lambda().eq(Member::getStatus, query.getStatus());
+            }
+            if (query.getStartTime() != null) {
+                queryWrapper.lambda().ge(Member::getCreateTime, query.getStartTime());
+            }
+            if (query.getEndTime() != null) {
+                queryWrapper.lambda().le(Member::getCreateTime, Utils.Date.getEnd(query.getEndTime()));
+            }
+        }
+        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        IPage<Member> memberPage = memberMapper.selectPage(page, queryWrapper);
+        IPage<MemberListVO> voPage = memberPage.convert(this::toListVO);
+        return PageData.from(voPage);
+    }
+
+    @Override
+    public MemberDetailVO findMemberDetail(Integer id) {
+        Member member = memberMapper.selectById(id);
+        if (Objects.isNull(member) || Constants.equalsInteger(member.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        MemberDetailVO detail = new MemberDetailVO();
+        detail.setId(member.getId());
+        detail.setNickName(member.getNickName());
+        detail.setName(member.getName());
+        detail.setTelephone(member.getTelephone());
+        detail.setAmount(member.getAmount());
+        detail.setTotalAmount(member.getTotalAmount());
+        detail.setStatus(member.getStatus());
+        detail.setUseIdentity(member.getUseIdentity());
+        detail.setOpenid(member.getOpenid());
+        detail.setUserType(member.getUserType());
+        detail.setBusinessStatus(member.getBusinessStatus());
+        detail.setScore(member.getScore());
+        detail.setReceiveNum(member.getReceiveNum());
+        detail.setPublishNum(member.getPublishNum());
+        detail.setCreateTime(member.getCreateTime());
+        detail.setLoginTime(member.getLoginTime());
+        detail.setLoginTimes(member.getLoginTimes());
+        detail.setProvince(member.getProvince());
+        detail.setCity(member.getCity());
+        detail.setArea(member.getArea());
+        detail.setAutoReceiveStatus(member.getAutoReceiveStatus());
+        if (StringUtils.isNotBlank(member.getCoverImage())) {
+            String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+                    + systemDictDataBiz.queryByCode(Constants.OSS, Constants.MEMBER_FILES).getCode();
+            detail.setFullCoverImage(path + member.getCoverImage());
+        }
+        return detail;
+    }
+
+    private MemberListVO toListVO(Member member) {
+        MemberListVO vo = new MemberListVO();
+        vo.setId(member.getId());
+        vo.setNickName(member.getNickName());
+        vo.setName(member.getName());
+        vo.setTelephone(member.getTelephone());
+        vo.setCreateTime(member.getCreateTime());
+        vo.setStatus(member.getStatus());
+        return vo;
+    }
+
+
+
+
+    @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.getTelephone())&&!member.getTelephone().equals(request.getPhone())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵嬫満鍙烽敊璇�");
+        }
+        this.verifyPhoneCode(request.getCode(),request.getPhone());
+    }
+
+    public void verifyPhoneCode(String code,String phone){
+        //楠岃瘉鐮�
+        Smsrecord smsrecord = smsrecordMapper.selectOne(new QueryWrapper<Smsrecord>().lambda()
+                .eq(Smsrecord::getDeleted,Constants.ZERO)
+                .eq(Smsrecord::getCode,code)
+                .eq(Smsrecord::getPhone,phone)
+                .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);
+        }
+        //鍒ゆ柇鏂版墜鏈哄彿鏄惁宸茶浣跨敤
+        if(memberMapper.selectCount(new QueryWrapper<Member>().lambda().eq(Member::getTelephone,request.getPhone()))>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,鏂版墜鏈哄彿宸茶缁戝畾,鏃犳硶杩涜鎹㈢粦锛�");
+        }
+        Member member = memberMapper.selectById(request.getMemberId());
+        if(StringUtils.isNotBlank(member.getTelephone())&&member.getTelephone().equals(request.getPhone())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳硶鏇存崲鐩稿悓鎵嬫満鍙�");
+        }
+        this.verifyPhoneCode(request.getCode(),request.getPhone());
+        memberMapper.update(new UpdateWrapper<Member>().lambda()
+                .set(Member::getTelephone,request.getPhone())
+                .eq(Member::getId,request.getMemberId())
+        );
+    }
 
 }

--
Gitblit v1.9.3