From 529ad9dd8d1876b57e852bc45b602ba3ccc8df2a Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 10 Apr 2024 17:19:08 +0800
Subject: [PATCH] 公告-首页公告调整

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |  111 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 102 insertions(+), 9 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 0f41b1b..1940992 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -14,8 +14,12 @@
 import cc.mrbird.febs.mall.vo.*;
 import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.service.IXcxPayService;
+import cc.mrbird.febs.vip.VipSettingUnAliveSettingBo;
+import cc.mrbird.febs.vip.entity.MallVipConfig;
+import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -41,6 +45,7 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author wzy
@@ -73,6 +78,8 @@
     private final MallGoodsCouponMapper mallGoodsCouponMapper;
     private final MallMemberCouponMapper mallMemberCouponMapper;
     private final MallGoodsMapper mallGoodsMapper;
+
+    private final MallVipConfigMapper mallVipConfigMapper;
 
 
     @Value("${spring.profiles.active}")
@@ -126,7 +133,6 @@
         mallMember.setName(registerDto.getName());
         mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
         mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
-        mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
         mallMember.setSex("男");
         mallMember.setBindPhone(registerDto.getAccount());
 
@@ -282,6 +288,10 @@
         mallMemberVo.setChildCnt(CollUtil.isNotEmpty(mallMembers) ? mallMembers.size() : 0);
 
         MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
+
+        MallVipConfig mallVipConfig = mallVipConfigMapper.selectVipConfigByCode(mallMember.getLevel());
+
+        mallMemberVo.setVipInfo(mallVipConfig);
         mallMemberVo.setBalance(wallet.getBalance());
 //        mallMemberVo.setScore(wallet.getScore());
         mallMemberVo.setPrizeScore(wallet.getPrizeScore());
@@ -375,11 +385,11 @@
         moneyFlowDto.setMemberId(id);
         IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiMoneyFlowInPage(page, moneyFlowDto);
 
-//        if (moneyFlowDto.getFlowType() == 3) {
-//            pages.getRecords().forEach(item -> {
-//                item.setDescription(ScoreFlowTypeEnum.getDescByValue(item.getType()));
-//            });
-//        }
+        if (moneyFlowDto.getFlowType() == 3) {
+            pages.getRecords().forEach(item -> {
+                item.setDescription(ScoreFlowTypeEnum.getDescByValue(item.getType()));
+            });
+        }
         return new FebsResponse().success().data(pages);
     }
 
@@ -612,7 +622,6 @@
                     mallMember = new MallMember();
                     mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
                     mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
-                    mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
                     mallMember.setOpenId(openId);
                     mallMember.setSessionKey(sessionKey);
 
@@ -714,6 +723,13 @@
         if (apiXcxSaveInfoDto.getBirthday() != null) {
             mallMember.setBirthday(apiXcxSaveInfoDto.getBirthday());
         }
+
+        List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
+        if (StrUtil.isBlank(mallMember.getLevel()) && CollUtil.isNotEmpty(configs)) {
+            MallVipConfig mallVipConfig = configs.get(0);
+            mallMember.setLevel(mallVipConfig.getCode());
+        }
+
         mallMember.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男");
         this.baseMapper.updateById(mallMember);
         return new FebsResponse().success();
@@ -734,7 +750,6 @@
                     mallMember.setPhone(phone);
                     mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
                     mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
-                    mallMember.setLevel(AgentLevelEnum.ZERO_LEVEL.name());
                     this.baseMapper.insert(mallMember);
 
                     String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
@@ -989,7 +1004,10 @@
         Long memberId = LoginUserUtil.getLoginUser().getId();
         mallMemberCouponDto.setMemberId(memberId);
         mallMemberCouponDto.setExpireTime(DateUtil.date());
-        List<Long> couponIds = couponGoodsMapper.selectByGoodId(mallMemberCouponDto.getGoodsId());
+//        List<Long> couponIds = couponGoodsMapper.selectByGoodId(mallMemberCouponDto.getGoodsId());
+        List<Long> goodsIdList = mallMemberCouponDto.getGoodsIdList();
+        List<Long> couponIds = couponGoodsMapper.selectByGoodIdList(goodsIdList);
+
         List<MallMemberCouponVo> mallMemberCouponVos = new ArrayList<>();
         if(CollUtil.isNotEmpty(couponIds)){
             mallMemberCouponVos = mallMemberCouponMapper.selectListCreateInPage(mallMemberCouponDto,couponIds);
@@ -1063,4 +1081,79 @@
         String wechatLoginUrl =xcxProperties.getWecharLoginUrl();
         return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code);
     }
+
+    @Override
+    public Map<String, Object>  loginEvent() {
+        MallMember loginUser = LoginUserUtil.getLoginUser();
+
+        MallMember member = this.baseMapper.selectById(loginUser.getId());
+
+        MallMember mallMember = new MallMember();
+        mallMember.setId(member.getId());
+        mallMember.setLastLoginTime(new Date());
+        this.baseMapper.updateById(mallMember);
+
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNALIVE_COUPON.getType(), DataDictionaryEnum.UNALIVE_COUPON.getCode());
+        if (dic == null || StrUtil.isBlank(dic.getValue())) {
+            return new HashMap<>();
+        }
+
+        Date today = new Date();
+        Date lastLoginTime = member.getLastLoginTime();
+        if (lastLoginTime == null) {
+            lastLoginTime = new Date();
+        }
+
+        long days = DateUtil.between(DateUtil.endOfDay(lastLoginTime), DateUtil.endOfDay(today), DateUnit.DAY);
+
+        List<VipSettingUnAliveSettingBo> list = JSONObject.parseArray(dic.getValue(), VipSettingUnAliveSettingBo.class);
+        List<Long> couponIds = list.stream().filter(item -> {
+            return item.getDay() <= days && item.getCouponId() != null;
+        }).map(VipSettingUnAliveSettingBo::getCouponId).collect(Collectors.toList());
+        if (CollUtil.isEmpty(couponIds)) {
+            return new HashMap<>();
+        }
+
+        LambdaQueryWrapper<MallGoodsCoupon> query = new LambdaQueryWrapper<>();
+        query.in(MallGoodsCoupon::getId, couponIds)
+                .eq(MallGoodsCoupon::getState, 2);
+        List<MallGoodsCoupon> coupons = mallGoodsCouponMapper.selectList(query);
+
+        LambdaQueryWrapper<MallMemberCoupon> memberCouponQuery = new LambdaQueryWrapper<>();
+        memberCouponQuery.in(MallMemberCoupon::getCouponId, couponIds)
+                        .eq(MallMemberCoupon::getMemberId, member.getId())
+                        .eq(MallMemberCoupon::getFromType, 3)
+                        .ge(MallMemberCoupon::getCreatedTime, DateUtil.beginOfDay(new Date()))
+                        .le(MallMemberCoupon::getCreatedTime, DateUtil.endOfDay(new Date()));
+        List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectList(memberCouponQuery);
+        if (CollUtil.isNotEmpty(mallMemberCoupons)) {
+            Map<Long, MallMemberCoupon> map = mallMemberCoupons.stream().collect(Collectors.toMap(MallMemberCoupon::getCouponId, MallMemberCoupon -> MallMemberCoupon));
+            coupons = coupons.stream().filter(item -> {
+                return map.get(item.getId()) == null;
+            }).collect(Collectors.toList());
+        }
+
+        if (CollUtil.isEmpty(coupons)) {
+            return new HashMap<>();
+        }
+
+        coupons.forEach(item -> {
+            MallMemberCoupon memberCoupon = new MallMemberCoupon();
+            memberCoupon.setCouponId(item.getId());
+            memberCoupon.setCouponName(item.getName());
+            memberCoupon.setInviteId(member.getInviteId());
+            memberCoupon.setCouponUuid(IdUtil.simpleUUID());
+            memberCoupon.setState(1);
+            memberCoupon.setFromType(3);
+            memberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), item.getExpireDay()));
+            memberCoupon.setMemberId(member.getId());
+            mallMemberCouponMapper.insert(memberCoupon);
+        });
+
+        Map<String, Object> result = new HashMap<>();
+        result.put("coupon", coupons);
+        return result;
+    }
+
+
 }

--
Gitblit v1.9.1