From a9e1505680c7dd45840975b38451ef88d451e6d4 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 17 三月 2026 14:41:12 +0800
Subject: [PATCH] 代码优化

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |  102 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 67 insertions(+), 35 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 217c3c1..81433af 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
@@ -55,6 +55,7 @@
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.shiro.SecurityUtils;
+import org.checkerframework.checker.units.qual.N;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
@@ -84,6 +85,8 @@
     @Autowired
     private CouponMapper couponMapper;
     @Autowired
+    private MemberCouponMapper memberCouponMapper;
+    @Autowired
     private MemberCouponJoinMapper memberCouponJoinMapper;
     @Autowired
     private IntegralMapper integralMapper;
@@ -91,6 +94,8 @@
     private ShopMapper shopMapper;
     @Autowired
     private UserActionMapper userActionMapper;
+    @Autowired
+    private NoticeMapper noticeMapper;
 
 
     @Autowired
@@ -307,34 +312,44 @@
 
 
     @Override
-    public AccountResponse wxLogin(String code){
-        try {
-            //鑾峰彇寰俊鏁忔劅鏁版嵁
-            WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code);
-            String openId = session.getOpenid();
-            if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
-            }
-            Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenId, openId)
-                            .eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getStatus,Constants.ZERO)
-                    .last(" limit 1"));
-            AccountResponse accountResponse = new AccountResponse();
-            if(Objects.nonNull(member)){
-                memberMapper.updateById(member);
-                member.setImgFullUrl(StringUtils.isNotBlank(member.getImgurl())?systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
-                        systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl():null);
-                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);
-            }
-            return accountResponse;
-        } catch (WxErrorException e) {
-            e.printStackTrace();
+    public AccountResponse wxLogin(String code) throws WxErrorException {
+        WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code);
+        String openId = session.getOpenid();
+        if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
         }
-        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
+        Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+                .eq(Member::getOpenId, openId)
+                .eq(Member::getIsdeleted,Constants.ZERO)
+                .eq(Member::getStatus,Constants.ZERO)
+                .last(" limit 1"));
+
+        AccountResponse accountResponse = new AccountResponse();
+        if(Objects.nonNull(member)){
+            String ossPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode();
+            String memberPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode();
+            if(StringUtils.isNotBlank(member.getImgurl())){
+                member.setImgFullUrl(ossPath + memberPath + member.getImgurl());
+            }
+            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);
+        }
+        return accountResponse;
+    }
+
+
+    @Override
+    public AccountResponse wxLoginTest(Integer memberId){
+        Member member = memberMapper.selectById(memberId);
+        AccountResponse accountResponse = new AccountResponse();
+        String token = JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ZERO, JSONObject.toJSONString(member), redisTemplate);
+        accountResponse.setToken(token);
+        accountResponse.setMember(member);
+        return accountResponse;
     }
 
 
@@ -360,7 +375,6 @@
                 if(!this.checkIsCreateInvite(phone)){
                     member.setRecId(wxPhoneRequest.getRecId());
                 }
-                member.setIntegral(BigDecimal.ZERO);
                 member.setPhone(phone);
                 member.setStatus(Constants.ZERO);
             }
@@ -413,7 +427,7 @@
             dealIntegralRequest.setDealType(Constants.ZERO);
             dealIntegralRequest.setMemberId(member.getId());
             dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.REGISTER);
-            integralService.dealIntegral(dealIntegralRequest,null);
+            integralService.dealIntegral(dealIntegralRequest,member);
         }
         //寮�鍚敞鍐岄�佷紭鎯犲埜
         if(Constants.equalsInteger(platformConfigDTO.getRegCouponRewardStatus(),Constants.ZERO)){
@@ -431,6 +445,20 @@
                     if(Objects.isNull(coupon)||Constants.equalsInteger(coupon.getIsdeleted(),Constants.ONE)&&num>Constants.ZERO){
                         continue;
                     }
+                    if(coupon.getNum()>Constants.ZERO) {
+                        //鏌ヨ宸查鍙栨暟閲�
+                        Integer getNum = memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>().lambda()
+                                .eq(MemberCoupon::getIsdeleted, Constants.ZERO)
+                                .eq(MemberCoupon::getCouponId, couponId)
+                                .ne(MemberCoupon::getGetMethod, Constants.TWO)
+                        ).intValue();
+                        if (getNum >= coupon.getNum()) {
+                            continue;
+                        }
+                        if (num > (coupon.getNum() - getNum)) {
+                            num = coupon.getNum().intValue() - getNum;
+                        }
+                    }
                     MemberCoupon memberCoupon = MemberCoupon.couponToBean(coupon,member,new Date(),Constants.ZERO,null);
                     for (int i = 0; i < num; i++) {
                         //婊″噺鍗蜂笉浼氱敓鎴恗axPrice 闇�瑕佹牴鎹紭鎯犲埜鍑忓皯閲戦璁剧疆
@@ -439,6 +467,10 @@
                         }
                         memberCouponList.add(memberCoupon);
                     }
+                    Notice notice = Notice.getNotice(Constants.NoticeType.COUPON,
+                            member.getId(),null);
+                    notice.setContent(notice.getContent().replace("{param}",Constants.getCouponInfo(memberCoupon,num)));
+                    noticeMapper.insert(notice);
                 }
                 if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberCouponList)){
                     memberCouponJoinMapper.insert(memberCouponList);
@@ -469,17 +501,17 @@
         //璧犻�侀個璇风Н鍒�
         //寮�鍚個璇锋敞鍐岄�佺Н鍒�
         if(Constants.equalsInteger(platformConfigDTO.getShareIntegralRewardStatus(),Constants.ZERO)){
+            member = memberMapper.selectById(member.getRecId());
+            if(Objects.isNull(member)){
+                return;
+            }
             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,null);
-            //娣诲姞娑堟伅璁板綍
-
-
-
+            integralService.dealIntegral(dealIntegralRequest,member);
         }
     }
 
@@ -675,7 +707,7 @@
         }
         this.verifyPhoneCode(request.getCode(),request.getPhone());
         memberMapper.update(new UpdateWrapper<Member>().lambda()
-                .eq(Member::getPhone,request.getPhone())
+                .set(Member::getPhone,request.getPhone())
                 .eq(Member::getId,request.getMemberId())
         );
     }

--
Gitblit v1.9.3