From e32fe26a1945fb44100d06b7049ccce865b11d4a Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期二, 03 九月 2024 14:14:38 +0800 Subject: [PATCH] add:用户成长值降级规则开发 --- src/main/java/com/mzl/flower/entity/menber/MemberDowngradeRecord.java | 28 ++++ src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java | 12 + src/main/java/com/mzl/flower/schedule/ScheduleService.java | 34 ++-- src/main/java/com/mzl/flower/service/menber/impl/FirstDeductionStrategy.java | 26 +++ src/main/java/com/mzl/flower/constant/Constants.java | 2 src/main/java/com/mzl/flower/service/menber/impl/GrowthValueDealService.java | 48 ++++++ src/main/java/com/mzl/flower/service/menber/GrowthValueDeductionStrategy.java | 16 ++ src/main/java/com/mzl/flower/web/member/MemberController.java | 7 + src/main/java/com/mzl/flower/service/menber/impl/GrowthValueStrategyContext.java | 24 +++ src/main/java/com/mzl/flower/service/menber/impl/SecondDeductionStrategy.java | 30 ++++ src/main/java/com/mzl/flower/mapper/member/MemberDowngradeRecordMapper.java | 24 +++ src/main/java/com/mzl/flower/service/menber/impl/ThirdDeductionStrategy.java | 91 +++++++++++++ src/main/java/com/mzl/flower/mapper/member/MemberMapper.java | 4 src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java | 38 +++++ src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java | 3 15 files changed, 371 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/mzl/flower/constant/Constants.java b/src/main/java/com/mzl/flower/constant/Constants.java index eae0d70..5e55cf9 100644 --- a/src/main/java/com/mzl/flower/constant/Constants.java +++ b/src/main/java/com/mzl/flower/constant/Constants.java @@ -529,7 +529,7 @@ } public enum GROWTH_SOURCE { - sign("签到"), consume("消费"); + sign("签到"), consume("消费"), downgrading("降级"); GROWTH_SOURCE(String desc) { this.desc = desc; diff --git a/src/main/java/com/mzl/flower/entity/menber/MemberDowngradeRecord.java b/src/main/java/com/mzl/flower/entity/menber/MemberDowngradeRecord.java new file mode 100644 index 0000000..a55894a --- /dev/null +++ b/src/main/java/com/mzl/flower/entity/menber/MemberDowngradeRecord.java @@ -0,0 +1,28 @@ +package com.mzl.flower.entity.menber; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.mzl.flower.base.BaseAutoEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * @author fanghaowei + * @version version2.0 + * @className Member + * @date 2024/9/02 + * @description 会员降级记录表 + */ +@Data +@TableName("t_member_downgrade_record") +public class MemberDowngradeRecord extends BaseAutoEntity { + + @ApiModelProperty("用户ID") + private String userId; + + @ApiModelProperty("会员等级ID") + private Long memberId; + + @ApiModelProperty("会员等级名称") + private String memberName; +} diff --git a/src/main/java/com/mzl/flower/mapper/member/MemberDowngradeRecordMapper.java b/src/main/java/com/mzl/flower/mapper/member/MemberDowngradeRecordMapper.java new file mode 100644 index 0000000..587a31b --- /dev/null +++ b/src/main/java/com/mzl/flower/mapper/member/MemberDowngradeRecordMapper.java @@ -0,0 +1,24 @@ +package com.mzl.flower.mapper.member; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mzl.flower.entity.menber.MemberDowngradeRecord; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; + + + +/** + * @author fanghaowei + * @version version2.0 + * @className MemberMapper + * @date 2024/9/2 + * @description 会员降级mapper + */ +@SuppressWarnings("ALL") +@Repository +public interface MemberDowngradeRecordMapper extends BaseMapper<MemberDowngradeRecord> { + + @Select("select count(1) from t_member_downgrade_record where user_id = #{userId} and deleted = '0' ") + Integer getMemberByName(@Param("userId") String userId); +} diff --git a/src/main/java/com/mzl/flower/mapper/member/MemberMapper.java b/src/main/java/com/mzl/flower/mapper/member/MemberMapper.java index 9c8ddf6..7ba6090 100644 --- a/src/main/java/com/mzl/flower/mapper/member/MemberMapper.java +++ b/src/main/java/com/mzl/flower/mapper/member/MemberMapper.java @@ -33,6 +33,10 @@ @Select("select * from t_member where start_point > #{growthValue} and deleted = '0' ") List<Member> getgtMembersByGrowthValue(@Param("growthValue") Integer growthValue); + //获取成长值区间最大值小于当前值的会员 + @Select("select * from t_member where end_point < #{growthValue} and deleted = '0' ORDER BY end_point DESC LIMIT 1") + Member getgtMembersByEndPoint(@Param("growthValue") Integer growthValue); + List<MemberVO> queryPage(@Param("dto") MemberQueryDTO dto, Page page); } diff --git a/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java b/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java index 8068b0d..1d0f7a6 100644 --- a/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java +++ b/src/main/java/com/mzl/flower/mapper/payment/OrderMapper.java @@ -6,6 +6,7 @@ import com.mzl.flower.dto.response.payment.*; import com.mzl.flower.entity.payment.Order; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.time.LocalDateTime; @@ -36,4 +37,15 @@ Order getUserLastOrder(@Param("userId") String userId); List<OrderPointGoodsListDTO> getPointGoodsList(@Param("orderId") String orderId); + + @Select("SELECT t1.* " + + "FROM t_order t1 " + + "JOIN ( " + + " SELECT create_by, MAX(receive_time) AS max_time " + + " FROM t_order " + + " where receive_time is not null and DATE(receive_time) < DATE(NOW()) - INTERVAL 30 DAY" + + " GROUP BY create_by " + + ") t2 ON t1.create_by = t2.create_by AND t1.receive_time = t2.max_time " + + "LEFT JOIN t_customer_info c ON t1.create_by = c.user_id ") + List<Order> getOrderInfoByReceiveTime(); } diff --git a/src/main/java/com/mzl/flower/schedule/ScheduleService.java b/src/main/java/com/mzl/flower/schedule/ScheduleService.java index 75f9e07..f4b6603 100644 --- a/src/main/java/com/mzl/flower/schedule/ScheduleService.java +++ b/src/main/java/com/mzl/flower/schedule/ScheduleService.java @@ -9,15 +9,16 @@ import com.mzl.flower.mapper.flower.FlowerCategoryMapper; import com.mzl.flower.mapper.partner.PartnerMapper; import com.mzl.flower.mapper.payment.OrderMapper; -import com.mzl.flower.service.coupon.CouponRecordService; import com.mzl.flower.service.flower.FlowerCategoryService; import com.mzl.flower.service.flower.FlowerService; +import com.mzl.flower.service.menber.impl.GrowthValueDealService; import com.mzl.flower.service.payment.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import java.time.LocalDate; import java.time.LocalDateTime; @@ -59,7 +60,7 @@ private OrderItemSettlementService orderItemSettlementService; @Autowired - private CouponRecordService couponRecordService; + private GrowthValueDealService growthValueDealService; @Scheduled(cron = "1 0/20 * * * ?") public void calculateAvePrice() { @@ -190,18 +191,23 @@ log.info("账单结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); } - @Scheduled(cron = "0 30 0 1 * ?") - public void grantVipCouponRecordList() { - log.info("会员优惠券开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); - couponRecordService.grantVipCouponRecordList(); - log.info("会员优惠券结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); - } - - @Scheduled(cron = "0 30 0 1 * ?") - public void expiredVipCouponRecordList() { - log.info("会员优惠券过期开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); - couponRecordService.expiredCouponRecordByListCurMonth(); - log.info("会员优惠券过期结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); + //成长值降级定时任务 + @Scheduled(cron = "0 0 5 * * ?") + public void deductGrowthValue() { + log.info("成长值扣除开始:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); + //获取当前员工 + List<Order> orderList = orderMapper.getOrderInfoByReceiveTime(); + if(!CollectionUtils.isEmpty(orderList)){ + orderList.forEach(o->{ + try { + growthValueDealService.deductionGrowthValue(o); + } catch (Exception e) { + // 记录错误信息,例如将错误信息写入日志 + log.info("处理订单 " + o.getId() + " 时出错: " + e.getMessage()); + } + }); + } + log.info("成长值扣除结束:" + DateFormatUtils.format(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); } } diff --git a/src/main/java/com/mzl/flower/service/menber/GrowthValueDeductionStrategy.java b/src/main/java/com/mzl/flower/service/menber/GrowthValueDeductionStrategy.java new file mode 100644 index 0000000..6f00da3 --- /dev/null +++ b/src/main/java/com/mzl/flower/service/menber/GrowthValueDeductionStrategy.java @@ -0,0 +1,16 @@ +package com.mzl.flower.service.menber; + +import com.mzl.flower.entity.payment.Order; + +/** + * packageName com.mzl.flower.service.menber + * @author fanghaowei + * @version version2.0 + * @className GrowthValueDeductionStrategy + * @date 2024/9/2 + * @description 成长值扣除策略 + */ +public interface GrowthValueDeductionStrategy { + public void deduct(Order order); + +} diff --git a/src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java b/src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java index 06ebb43..39e41a3 100644 --- a/src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java +++ b/src/main/java/com/mzl/flower/service/menber/MemberGrowthRecordService.java @@ -9,6 +9,7 @@ import com.mzl.flower.dto.response.member.MemberGrowthRecordVO; import com.mzl.flower.entity.menber.Member; import com.mzl.flower.entity.menber.MemberGrowthRecord; +import com.mzl.flower.entity.payment.Order; public interface MemberGrowthRecordService extends IService<MemberGrowthRecord> { @@ -21,4 +22,6 @@ Page<MemberGrowthRecordVO> queryPage(MemberRecordQueryDTO memberRecordQueryDTO, Page page); Member getMemberByUserId(String userId); + + void growthValueDeduct(Order order); } diff --git a/src/main/java/com/mzl/flower/service/menber/impl/FirstDeductionStrategy.java b/src/main/java/com/mzl/flower/service/menber/impl/FirstDeductionStrategy.java new file mode 100644 index 0000000..fc3731e --- /dev/null +++ b/src/main/java/com/mzl/flower/service/menber/impl/FirstDeductionStrategy.java @@ -0,0 +1,26 @@ +package com.mzl.flower.service.menber.impl; + +import com.mzl.flower.entity.payment.Order; +import com.mzl.flower.service.menber.GrowthValueDeductionStrategy; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * packageName com.mzl.flower.service.menber.impl + * @author fanghaowei + * @version version2.0 + * @className FristDeductionStrategy + * @date 2024/9/2 + * @description TODO + */ +@Transactional +@RequiredArgsConstructor +@Service("FirstDeduction") +public class FirstDeductionStrategy implements GrowthValueDeductionStrategy { + + @Override + public void deduct(Order order) { + + } +} diff --git a/src/main/java/com/mzl/flower/service/menber/impl/GrowthValueDealService.java b/src/main/java/com/mzl/flower/service/menber/impl/GrowthValueDealService.java new file mode 100644 index 0000000..df6e4ea --- /dev/null +++ b/src/main/java/com/mzl/flower/service/menber/impl/GrowthValueDealService.java @@ -0,0 +1,48 @@ +package com.mzl.flower.service.menber.impl; + +import com.mzl.flower.entity.payment.Order; +import com.mzl.flower.service.menber.GrowthValueDeductionStrategy; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; + +/** + * packageName com.mzl.flower.service.menber.impl + * @author fanghaowei + * @version version2.0 + * @className GrowthValueDealService + * @date 2024/9/2 + * @description TODO + */ + +@Service +public class GrowthValueDealService { + + @Resource + private GrowthValueStrategyContext growthValueStrategyContext; + public void deductionGrowthValue(Order order) { + //当前时间 + LocalDateTime now = LocalDateTime.now(); + + //最后消费时间 + LocalDateTime receiveTime = order.getReceiveTime(); + + // 将时间转换为LocalDate,只保留年月日部分 + LocalDate nowDate = now.toLocalDate(); + LocalDate receiveTimeDate = receiveTime.toLocalDate(); + long daysBetween = ChronoUnit.DAYS.between(receiveTimeDate, nowDate); + + if (daysBetween > 30 && daysBetween <= 90) { + GrowthValueDeductionStrategy growthInfo = growthValueStrategyContext.getGrowthInfo("SecondDeduction"); + growthInfo.deduct(order); + } else if (daysBetween > 90) { + GrowthValueDeductionStrategy growthInfo = growthValueStrategyContext.getGrowthInfo("ThirdDeduction"); + growthInfo.deduct(order); + } + } + + +} diff --git a/src/main/java/com/mzl/flower/service/menber/impl/GrowthValueStrategyContext.java b/src/main/java/com/mzl/flower/service/menber/impl/GrowthValueStrategyContext.java new file mode 100644 index 0000000..fd8b775 --- /dev/null +++ b/src/main/java/com/mzl/flower/service/menber/impl/GrowthValueStrategyContext.java @@ -0,0 +1,24 @@ +package com.mzl.flower.service.menber.impl; + +import com.mzl.flower.service.menber.GrowthValueDeductionStrategy; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + + +@Service +public class GrowthValueStrategyContext { + @Autowired + private final Map<String, GrowthValueDeductionStrategy> growthValueDeductionStrategyMap = new HashMap<>(); + + public GrowthValueStrategyContext(Map<String, GrowthValueDeductionStrategy> growthValueDeductionStrategyMap) { + this.growthValueDeductionStrategyMap.clear(); + growthValueDeductionStrategyMap.forEach((k, v) -> this.growthValueDeductionStrategyMap.put(k, v)); + } + + public GrowthValueDeductionStrategy getGrowthInfo(String growthInfo) { + return growthValueDeductionStrategyMap.get(growthInfo); + } +} diff --git a/src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java b/src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java index a113506..2866b32 100644 --- a/src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/menber/impl/MemberGrowthRecordServiceImpl.java @@ -14,6 +14,7 @@ import com.mzl.flower.entity.customer.Customer; import com.mzl.flower.entity.menber.Member; import com.mzl.flower.entity.menber.MemberGrowthRecord; +import com.mzl.flower.entity.payment.Order; import com.mzl.flower.mapper.customer.CustomerMapper; import com.mzl.flower.mapper.member.MemberGrowthRecordMapper; import com.mzl.flower.mapper.member.MemberMapper; @@ -77,7 +78,7 @@ //保存会员记录逻辑: if (Constants.GROWTH_SOURCE.consume.name().equals(memberGrowthRecordDTO.getSource())) { - //消费:成长值=消费金额/消费金额(元)*已消费产生的成长值 + //消费:成长值=消费金额/消费金额(元)*已消费产生的成长值C BigDecimal totalAmount = memberGrowthRecordDTO.getTotalAmount(); int consumptionAmount = memberBefore.getConsumptionAmount(); int growthValue = memberBefore.getGrowthValue(); @@ -169,4 +170,39 @@ page.setRecords(list); return page; } + + @Override + public void growthValueDeduct(Order order) { + //超过30天不到90天,每天处理当前会员等级的成长值 + CustomerDTO customerDTO = customerMapper.getCurrentCustomer(order.getCreateBy()); + Customer customer = customerMapper.selectById(customerDTO.getId()); + Member member = memberMapper.selectById(customer.getLevelId()); + if(ObjectUtils.isEmpty(member)){ + throw new ValidationException("用户会员等级未维护"); + } + int deductGrowthValue = member.getDowngradeValue(); + Integer sumGrowthByUserId = memberGrowthRecordMapper.getSumGrowthByUsertId(order.getCreateBy()); + + //当前成长值如果是等于0不需要走扣除逻辑 + if (sumGrowthByUserId != 0) { + int waitDeductGrowthValue = 0; + + //判断当前用户的成长值是够扣除,如果够扣除直接减去成长值,如果不够扣除则全部减去 + if (sumGrowthByUserId - deductGrowthValue > 0) { + waitDeductGrowthValue = deductGrowthValue; + } else { + waitDeductGrowthValue = sumGrowthByUserId; + } + + //保存会员成长记录到记录表 + MemberGrowthRecordDTO memberGrowthRecordDTO = new MemberGrowthRecordDTO(); + memberGrowthRecordDTO.setUserId(order.getCreateBy()); + memberGrowthRecordDTO.setRecordDate(new Date()); + memberGrowthRecordDTO.setGrowth(-waitDeductGrowthValue); + memberGrowthRecordDTO.setSource(Constants.GROWTH_SOURCE.downgrading.name()); + memberGrowthRecordDTO.setType(Constants.GROWTH_TYPE.reduce.name()); + memberGrowthRecordDTO.setRemarks("自动扣除"); + saveMemberGrowthRecord(memberGrowthRecordDTO); + } + } } diff --git a/src/main/java/com/mzl/flower/service/menber/impl/SecondDeductionStrategy.java b/src/main/java/com/mzl/flower/service/menber/impl/SecondDeductionStrategy.java new file mode 100644 index 0000000..3f814b9 --- /dev/null +++ b/src/main/java/com/mzl/flower/service/menber/impl/SecondDeductionStrategy.java @@ -0,0 +1,30 @@ +package com.mzl.flower.service.menber.impl; + +import com.mzl.flower.entity.payment.Order; +import com.mzl.flower.service.menber.GrowthValueDeductionStrategy; +import com.mzl.flower.service.menber.MemberGrowthRecordService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * packageName com.mzl.flower.service.menber.impl + * @author fanghaowei + * @version version2.0 + * @className SecondDeductionStrategy + * @date 2024/9/2 + * @description TODO + */ +@Transactional +@RequiredArgsConstructor +@Service("SecondDeduction") +public class SecondDeductionStrategy implements GrowthValueDeductionStrategy { + + private final MemberGrowthRecordService memberGrowthRecordService; + + @Override + public void deduct(Order order) { + memberGrowthRecordService.growthValueDeduct(order); + } + +} diff --git a/src/main/java/com/mzl/flower/service/menber/impl/ThirdDeductionStrategy.java b/src/main/java/com/mzl/flower/service/menber/impl/ThirdDeductionStrategy.java new file mode 100644 index 0000000..6a29e76 --- /dev/null +++ b/src/main/java/com/mzl/flower/service/menber/impl/ThirdDeductionStrategy.java @@ -0,0 +1,91 @@ +package com.mzl.flower.service.menber.impl; + +import com.mzl.flower.constant.Constants; +import com.mzl.flower.dto.request.menber.MemberGrowthRecordDTO; +import com.mzl.flower.entity.menber.Member; +import com.mzl.flower.entity.menber.MemberDowngradeRecord; +import com.mzl.flower.entity.payment.Order; +import com.mzl.flower.mapper.member.MemberDowngradeRecordMapper; +import com.mzl.flower.mapper.member.MemberGrowthRecordMapper; +import com.mzl.flower.mapper.member.MemberMapper; +import com.mzl.flower.service.menber.GrowthValueDeductionStrategy; +import com.mzl.flower.service.menber.MemberGrowthRecordService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Date; + +/** + * packageName com.mzl.flower.service.menber.impl + * @author fanghaowei + * @version version2.0 + * @className ThirdDeductionStrategy + * @date 2024/9/2 + * @description TODO + */ +@Transactional +@RequiredArgsConstructor +@Service("ThirdDeduction") +public class ThirdDeductionStrategy implements GrowthValueDeductionStrategy { + + private final MemberDowngradeRecordMapper memberDowngradeRecordMapper; + private final MemberGrowthRecordService memberGrowthRecordService; + private final MemberGrowthRecordMapper memberGrowthRecordMapper; + + private final MemberMapper memberMapper; + + @Override + public void deduct(Order order) { + LocalDate nowDate = LocalDateTime.now().toLocalDate(); + LocalDate receiveTimeDate = order.getReceiveTime().toLocalDate(); + long daysBetween = ChronoUnit.DAYS.between(receiveTimeDate, nowDate); + //判断是否有会员降级记录 + Integer countByUserId = memberDowngradeRecordMapper.getMemberByName(order.getCreateBy()); + int day = (int) (daysBetween - countByUserId * 90); + //扣除记录数*90 + //0-90;1-180;2-270 + if (countByUserId == 0 || day > 90) { + //保存会员降级记录 + Member member = memberGrowthRecordService.getMemberByUserId(order.getCreateBy()); + MemberDowngradeRecord memberDowngradeRecord = new MemberDowngradeRecord(); + memberDowngradeRecord.setUserId(order.getCreateBy()); + memberDowngradeRecord.setMemberId(member.getId()); + memberDowngradeRecord.setMemberName(member.getName()); + memberDowngradeRecord.create(); + memberDowngradeRecordMapper.insert(memberDowngradeRecord); + + //统计当前人员现有成长值 + Integer sumGrowthByUserId = memberGrowthRecordMapper.getSumGrowthByUsertId(order.getCreateBy()); + + //当前人员需要降到的成长值 + Member targetMember = memberMapper.getgtMembersByEndPoint(sumGrowthByUserId); + if (!ObjectUtils.isEmpty(targetMember)) { + //有降级目标 + int targetGrowth = targetMember.getEndPoint() - 1; + //需要降级扣除的成长值是目标值减去当前值 + int needDeductGrowthValue = targetGrowth-sumGrowthByUserId; + //保存会员成长记录到记录表 + MemberGrowthRecordDTO memberGrowthRecordDTO = new MemberGrowthRecordDTO(); + memberGrowthRecordDTO.setUserId(order.getCreateBy()); + memberGrowthRecordDTO.setRecordDate(new Date()); + memberGrowthRecordDTO.setGrowth(needDeductGrowthValue); + memberGrowthRecordDTO.setSource(Constants.GROWTH_SOURCE.downgrading.name()); + memberGrowthRecordDTO.setType(Constants.GROWTH_TYPE.reduce.name()); + memberGrowthRecordDTO.setRemarks("自动降级"); + memberGrowthRecordService.saveMemberGrowthRecord(memberGrowthRecordDTO); + } else { + memberGrowthRecordService.growthValueDeduct(order); + } + } else if (countByUserId > 0) { + if (day > 30 && day <= 90) { + memberGrowthRecordService.growthValueDeduct(order); + } + + } + } +} diff --git a/src/main/java/com/mzl/flower/web/member/MemberController.java b/src/main/java/com/mzl/flower/web/member/MemberController.java index 039a77d..be871ab 100644 --- a/src/main/java/com/mzl/flower/web/member/MemberController.java +++ b/src/main/java/com/mzl/flower/web/member/MemberController.java @@ -102,5 +102,12 @@ UserGrowthRecordDTO userGrowthRecordDTO = memberGrowthRecordService.getInfoByUserId(String.valueOf(userId)); return returnData(R.SUCCESS.getCode(), userGrowthRecordDTO); } + + @GetMapping(value = "/app/member/info") + @ApiOperation(value = "当前用户会员信息 ", httpMethod = "GET", notes = "ID") + public ResponseEntity memberInfo2() { + UserGrowthRecordDTO userGrowthRecordDTO = memberGrowthRecordService.getInfoByUserId(SecurityUtils.getUserId()); + return returnData(R.SUCCESS.getCode(), userGrowthRecordDTO); + } } -- Gitblit v1.9.3