From 580f4d3c2ca9eee53eee95a4de2f6610b790780a Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 12 二月 2026 18:24:13 +0800
Subject: [PATCH] 小程序   接口开发

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |  101 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 72 insertions(+), 29 deletions(-)

diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 75d7051..fce1c9a 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -57,6 +57,7 @@
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
@@ -120,6 +121,9 @@
 
     @Autowired
     private IntegralService integralService;
+
+    @Autowired
+    private RedisTemplate<String,Object> redisTemplate;
 
     @Override
     public Integer create(Member member) {
@@ -316,9 +320,11 @@
                 member.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
                         systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl());
                 //鍒涘缓token
-                JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId());
-                String token = JwtTokenUtil.generateToken(payLoad);
+//                JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId());
+//                String token = JwtTokenUtil.generateToken(payLoad);
+                String token = JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ZERO, JSONObject.toJSONString(member), redisTemplate);
                 accountResponse.setToken(token);
+                accountResponse.setOpenid(openId);
                 accountResponse.setMember(member);
             }else{
                 accountResponse.setOpenid(openId);
@@ -331,15 +337,16 @@
     }
 
 
-    @Override
-    public AccountResponse wxLoginTest( Integer memberId){
-        //鍒涘缓token
-        JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+memberId);
-        String token = JwtTokenUtil.generateToken(payLoad);
-        AccountResponse accountResponse = new AccountResponse();
-        accountResponse.setToken(token);
-        return accountResponse;
-    }
+//    @Override
+//    public AccountResponse wxLoginTest( Integer memberId){
+//        //鍒涘缓token
+////        JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+memberId);
+////        String token = JwtTokenUtil.generateToken(payLoad);
+//        String token = JwtTokenUtil.generateTokenForRedis(memberId, Constants.ZERO, JSONObject.toJSONString(null), redisTemplate);
+//        AccountResponse accountResponse = new AccountResponse();
+//        accountResponse.setToken(token);
+//        return accountResponse;
+//    }
 
     @Override
     public AccountResponse wxPhone(WxPhoneRequest wxPhoneRequest){
@@ -364,6 +371,7 @@
                     member.setRecId(Constants.getInviteCode(wxPhoneRequest.getRecId()));
                 }
                 member.setOpenId(wxPhoneRequest.getOpenid());
+                member.setIntegral(BigDecimal.ZERO);
             }
             member.setPhone(phone);
             member.setEditDate(new Date());
@@ -384,8 +392,9 @@
                 }
                 memberMapper.updateById(member);
             }
-            JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId());
-            String token = JwtTokenUtil.generateToken(payLoad);
+//            JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId());
+//            String token = JwtTokenUtil.generateToken(payLoad);
+            String token = JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ZERO, JSONObject.toJSONString(member), redisTemplate);
             AccountResponse accountResponse = new AccountResponse();
             accountResponse.setToken(token);
             accountResponse.setMember(member);
@@ -463,6 +472,17 @@
                 platformConfigDTO.getShareIntegralReward():BigDecimal.ZERO);
         inviteRecord.setFirstOrderStatus(Constants.ZERO);
         inviteRecordMapper.insert(inviteRecord);
+        //璧犻�侀個璇风Н鍒�
+        //寮�鍚個璇锋敞鍐岄�佺Н鍒�
+        if(Constants.equalsInteger(platformConfigDTO.getShareIntegralRewardStatus(),Constants.ZERO)){
+            DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+            dealIntegralRequest.setIntegralNum(platformConfigDTO.getShareIntegralReward());
+            dealIntegralRequest.setDealType(Constants.ZERO);
+            dealIntegralRequest.setMemberId(member.getRecId());
+            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.INVITENEWUSER);
+            dealIntegralRequest.setParam1(member.getNickname());
+            integralService.dealIntegral(dealIntegralRequest);
+        }
     }
 
 
@@ -514,23 +534,20 @@
 
 
     @Override
-    public Member updateMember(UpdateMemberRequest updateMemberRequest){
+    public void 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());
-        member.setEditor(updateMemberRequest.getMemberId());
-        member.setEditDate(new Date());
-        memberMapper.updateById(member);
-        Member dbMember = memberMapper.selectById(updateMemberRequest.getMemberId());
-        dbMember.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
-                systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+dbMember.getImgurl());
-        return dbMember;
+        memberMapper.update(new UpdateWrapper<Member>().lambda()
+                .set(StringUtils.isNotBlank(updateMemberRequest.getImgurl()),Member::getImgurl,updateMemberRequest.getImgurl())
+                .set(StringUtils.isNotBlank(updateMemberRequest.getNickname()),Member::getNickname,updateMemberRequest.getNickname())
+                .set(StringUtils.isNotBlank(updateMemberRequest.getName()),Member::getName,updateMemberRequest.getName())
+                .set(Member::getEditDate,DateUtil.getCurrDateTime())
+                .eq(Member::getId,updateMemberRequest.getMemberId())
+        );
     }
 
 
@@ -614,15 +631,15 @@
         if(StringUtils.isNotBlank(member.getPhone())&&!member.getPhone().equals(request.getPhone())){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵嬫満鍙烽敊璇�");
         }
-        this.verifyPhoneCode(request.getCode(),request.getMemberId());
+        this.verifyPhoneCode(request.getCode(),request.getPhone());
     }
 
-    public void verifyPhoneCode(String code,Integer memberId){
+    public void verifyPhoneCode(String code,String phone){
         //楠岃瘉鐮�
         Smsrecord smsrecord = smsrecordMapper.selectOne(new QueryWrapper<Smsrecord>().lambda()
                 .eq(Smsrecord::getIsdeleted,Constants.ZERO)
                 .eq(Smsrecord::getCode,code)
-                .eq(Smsrecord::getMemberId,memberId)
+                .eq(Smsrecord::getPhone,phone)
                 .last(" limit 1")
         );
         if(Objects.isNull(smsrecord)){
@@ -650,11 +667,15 @@
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
+        //鍒ゆ柇鏂版墜鏈哄彿鏄惁宸茶浣跨敤
+        if(memberMapper.selectCount(new QueryWrapper<Member>().lambda().eq(Member::getPhone,request.getPhone()))>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,鏂版墜鏈哄彿宸茶缁戝畾,鏃犳硶杩涜鎹㈢粦锛�");
+        }
         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());
+        this.verifyPhoneCode(request.getCode(),request.getPhone());
         memberMapper.update(new UpdateWrapper<Member>().lambda()
                 .eq(Member::getPhone,request.getPhone())
                 .eq(Member::getId,request.getMemberId())
@@ -754,9 +775,31 @@
     }
 
 
+    @Override
+    public void logOut(String token,Integer memberId){
+        Member  member = memberMapper.selectById(memberId);
+        if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenId())){
+            memberMapper.update(new UpdateWrapper<Member>().lambda()
+                    .set(Member::getOpenId,null)
+                    .eq(Member::getId,member.getId())
+            );
+        }
+        redisTemplate.delete(token);
+    }
 
 
-
+    @Override
+    public void logOff(String token,Integer memberId){
+        Member  member = memberMapper.selectById(memberId);
+        if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getOpenId())){
+            memberMapper.update(new UpdateWrapper<Member>().lambda()
+                    .set(Member::getOpenId,null)
+                    .set(Member::getPhone,null)
+                    .eq(Member::getId,member.getId())
+            );
+        }
+        redisTemplate.delete(token);
+    }
 
 
 

--
Gitblit v1.9.3