From 959bd76c3dd17ff7cb0b492c7568b8b54c09dee2 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Mon, 29 Jan 2024 23:42:27 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   91 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 83 insertions(+), 8 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 bf4b5ca..44545ba 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,10 +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;
@@ -43,6 +45,7 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author wzy
@@ -382,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);
     }
 
@@ -619,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);
 
@@ -723,7 +725,7 @@
         }
 
         List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
-        if (CollUtil.isNotEmpty(configs)) {
+        if (StrUtil.isBlank(mallMember.getLevel()) && CollUtil.isNotEmpty(configs)) {
             MallVipConfig mallVipConfig = configs.get(0);
             mallMember.setLevel(mallVipConfig.getCode());
         }
@@ -748,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());
@@ -1077,4 +1078,78 @@
         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.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