From c74a6f59490cfb9a0ee37f70427739b74e7fbd58 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 20 五月 2026 08:50:29 +0800
Subject: [PATCH] 代码生成

---
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |  107 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 74 insertions(+), 33 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 e0efcdd..88412db 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
@@ -356,6 +356,8 @@
                 member.setAutoReceiveStatus(Constants.ONE);
                 member.setUserType(Constants.ZERO);
                 memberMapper.insert(member);
+                // 娉ㄥ唽璧犻�佷紭鎯犲埜
+                giftRegisterCoupons(member);
             }
             String token = JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ZERO, JSONObject.toJSONString(member), redisTemplate);
             AccountResponse accountResponse = new AccountResponse();
@@ -426,6 +428,7 @@
             || ( StringUtils.isBlank(member.getCoverImage())
                 && StringUtils.isBlank(member.getName())
                 && StringUtils.isBlank(member.getNickName())
+                && StringUtils.isBlank(member.getEmail())
                 && Objects.isNull(member.getAutoReceiveStatus()) )){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -433,6 +436,7 @@
                 .set(StringUtils.isNotBlank(member.getNickName()),Member::getNickName,member.getNickName())
                 .set(StringUtils.isNotBlank(member.getName()),Member::getName,member.getName())
                 .set(StringUtils.isNotBlank(member.getCoverImage()),Member::getCoverImage,member.getCoverImage())
+                .set(StringUtils.isNotBlank(member.getEmail()),Member::getEmail,member.getEmail())
                 .set(Objects.nonNull(member.getAutoReceiveStatus()),Member::getAutoReceiveStatus,member.getAutoReceiveStatus())
                         .set(Member::getUpdateTime,new Date())
                 .eq(Member::getId,member.getId()));
@@ -452,6 +456,7 @@
         userCenterVO.setTelephone(member.getTelephone());
         userCenterVO.setCoverImage(member.getCoverImage());
         userCenterVO.setOpenid(member.getOpenid());
+        userCenterVO.setEmail(member.getEmail());
         if(StringUtils.isNotBlank(member.getCoverImage())){
             String path  = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
                     +systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILES).getCode();
@@ -726,21 +731,25 @@
         OperationConfigDTO config = operationConfigBiz.getConfig();
         String yearsStr = config.getRegisterCouponYears();
         String maxGiftStr = config.getRegisterCouponGiftCount();
-        String couponIdStr = config.getRegisterCouponId();
-        if (StringUtils.isBlank(yearsStr) || StringUtils.isBlank(maxGiftStr) || StringUtils.isBlank(couponIdStr)) {
+        String couponIdsStr = config.getRegisterCouponId();
+        if (StringUtils.isBlank(yearsStr) || StringUtils.isBlank(maxGiftStr) || StringUtils.isBlank(couponIdsStr)) {
             return;
         }
         int configYears = Integer.parseInt(yearsStr);
         int maxGiftCount = Integer.parseInt(maxGiftStr);
-        int couponId = Integer.parseInt(couponIdStr);
         if (configYears <= 0 || maxGiftCount <= 0) {
             return;
         }
 
-        // 2. 鏍¢獙浼樻儬鍒稿瓨鍦ㄤ笖鍚敤
-        Coupon coupon = couponMapper.selectById(couponId);
-        if (coupon == null || !Constants.equalsInteger(coupon.getIsdeleted(), Constants.ZERO)
-                || !Constants.equalsInteger(coupon.getStatus(), Constants.ZERO)) {
+        // 2. 瑙f瀽浼樻儬鍒窱D鍒楄〃锛屾煡璇㈡湁鏁堜紭鎯犲埜
+        List<Integer> couponIdList = Arrays.stream(couponIdsStr.split(","))
+                .map(String::trim).filter(StringUtils::isNotBlank)
+                .map(Integer::parseInt).collect(Collectors.toList());
+        List<Coupon> validCoupons = couponMapper.selectList(new QueryWrapper<Coupon>().lambda()
+                .in(Coupon::getId, couponIdList)
+                .eq(Coupon::getIsdeleted, Constants.ZERO)
+                .eq(Coupon::getStatus, Constants.ZERO));
+        if (CollectionUtils.isEmpty(validCoupons)) {
             return;
         }
 
@@ -757,40 +766,37 @@
 
         for (Member member : members) {
             int alreadyGifted = member.getRegisterCouponGiftCount() != null ? member.getRegisterCouponGiftCount() : 0;
-            // 宸叉敞鍐屽勾鏁帮紙鍙栨暣锛�
             int registeredYears = (int) ((now.getTime() - member.getCreateTime().getTime()) / msPerYear);
-            // 搴旇禒閫佹�绘鏁�
             int shouldGiftTotal = registeredYears / configYears;
-            // 瀹為檯杩橀渶璧犻�佹鏁�
             int remainGift = Math.min(shouldGiftTotal, maxGiftCount) - alreadyGifted;
             if (remainGift <= 0) {
                 continue;
             }
 
-            // 4. 璧犻�佷紭鎯犲埜
+            // 4. 姣忔璧犻�佹墍鏈夋湁鏁堜紭鎯犲埜
             for (int i = 0; i < remainGift; i++) {
-                MemberCoupon mc = new MemberCoupon();
-                mc.setCouponId(couponId);
-                mc.setMemberId(member.getId());
-                mc.setStatus(Constants.CouponStatus.waitClaim.getKey());
-                // 鎺ㄩ�佸悗棰嗗彇鏈夋晥鏈�
-                Calendar validCal = Calendar.getInstance();
-                validCal.add(Calendar.DAY_OF_MONTH, coupon.getPushDays() != null ? coupon.getPushDays() : 7);
-                mc.setValidDate(validCal.getTime());
-                // 鎷疯礉浼樻儬鍒镐俊鎭�
-                mc.setName(coupon.getName());
-                mc.setInfo(coupon.getInfo());
-                mc.setType(coupon.getType());
-                mc.setLimitPrice(coupon.getLimitPrice());
-                mc.setPrice(coupon.getPrice());
-                mc.setGetMethod(coupon.getGetMethod());
-                mc.setCouponType(coupon.getCouponType());
-                mc.setPushDays(coupon.getPushDays());
-                mc.setValidDays(coupon.getValidDays());
-                mc.setIsdeleted(Constants.ZERO);
-                mc.setCreateDate(now);
-                mc.setEditDate(now);
-                memberCouponMapper.insert(mc);
+                for (Coupon coupon : validCoupons) {
+                    MemberCoupon mc = new MemberCoupon();
+                    mc.setCouponId(coupon.getId());
+                    mc.setMemberId(member.getId());
+                    mc.setStatus(Constants.CouponStatus.waitClaim.getKey());
+                    Calendar validCal = Calendar.getInstance();
+                    validCal.add(Calendar.DAY_OF_MONTH, coupon.getPushDays() != null ? coupon.getPushDays() : 7);
+                    mc.setValidDate(validCal.getTime());
+                    mc.setName(coupon.getName());
+                    mc.setInfo(coupon.getInfo());
+                    mc.setType(coupon.getType());
+                    mc.setLimitPrice(coupon.getLimitPrice());
+                    mc.setPrice(coupon.getPrice());
+                    mc.setGetMethod(coupon.getGetMethod());
+                    mc.setCouponType(coupon.getCouponType());
+                    mc.setPushDays(coupon.getPushDays());
+                    mc.setValidDays(coupon.getValidDays());
+                    mc.setIsdeleted(Constants.ZERO);
+                    mc.setCreateDate(now);
+                    mc.setEditDate(now);
+                    memberCouponMapper.insert(mc);
+                }
             }
 
             // 5. 鏇存柊浼氬憳宸茶禒閫佹鏁�
@@ -802,4 +808,39 @@
         log.info("娉ㄥ唽婊″勾璧犻�佷紭鎯犲埜瀹屾垚锛屽叡澶勭悊{}鍚嶄細鍛�", giftedMemberCount);
     }
 
+    private void giftRegisterCoupons(Member member) {
+        String couponIdsStr = operationConfigBiz.getConfig().getRegisterGiftCouponIds();
+        if (StringUtils.isBlank(couponIdsStr)) {
+            return;
+        }
+        String[] idArr = couponIdsStr.split(",");
+        Date now = new Date();
+        for (String idStr : idArr) {
+            String trimmed = idStr.trim();
+            if (StringUtils.isBlank(trimmed)) continue;
+            Coupon coupon = couponMapper.selectById(Integer.valueOf(trimmed));
+            if (coupon == null || Constants.equalsInteger(coupon.getIsdeleted(), Constants.ONE)) continue;
+            MemberCoupon mc = new MemberCoupon();
+            mc.setCouponId(coupon.getId());
+            mc.setMemberId(member.getId());
+            mc.setStatus(Constants.CouponStatus.waitClaim.getKey());
+            Calendar validCal = Calendar.getInstance();
+            validCal.add(Calendar.DAY_OF_MONTH, coupon.getPushDays() != null ? coupon.getPushDays() : 7);
+            mc.setValidDate(validCal.getTime());
+            mc.setName(coupon.getName());
+            mc.setInfo(coupon.getInfo());
+            mc.setType(coupon.getType());
+            mc.setLimitPrice(coupon.getLimitPrice());
+            mc.setPrice(coupon.getPrice());
+            mc.setGetMethod(coupon.getGetMethod());
+            mc.setCouponType(coupon.getCouponType());
+            mc.setPushDays(coupon.getPushDays());
+            mc.setValidDays(coupon.getValidDays());
+            mc.setIsdeleted(Constants.ZERO);
+            mc.setCreateDate(now);
+            mc.setEditDate(now);
+            memberCouponMapper.insert(mc);
+        }
+    }
+
 }

--
Gitblit v1.9.3