From 2bcf4cc63c2838213cf580af3b53ca757fe8a374 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Wed, 24 Jan 2024 22:49:38 +0800
Subject: [PATCH] fix
---
src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java | 4
src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java | 14 ++
src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java | 57 +++++++++++
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 5 +
src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java | 34 ++++++
src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java | 7 +
src/main/java/cc/mrbird/febs/vip/service/IVipCommonService.java | 6 +
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 11 +
src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java | 1
src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefitsDetails.java | 7 +
src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java | 42 ++++++++
src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java | 9 +
src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java | 12 ++
src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java | 4
src/main/resources/mapper/modules/MallVipConfigMapper.xml | 12 ++
src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java | 2
src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java | 7 +
src/main/java/cc/mrbird/febs/vip/mapper/MallVipConfigMapper.java | 3
src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java | 5 +
19 files changed, 235 insertions(+), 7 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
new file mode 100644
index 0000000..a65ce85
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
@@ -0,0 +1,34 @@
+package cc.mrbird.febs.common.enumerates;
+
+import lombok.Getter;
+
+@Getter
+public enum ScoreFlowTypeEnum {
+
+ /**
+ *
+ */
+ PAY(1, "积分支付"),
+
+ BUY(2, "购买商品获得积分");
+
+ private final int value;
+
+ private final String desc;
+
+ ScoreFlowTypeEnum(int value, String desc) {
+ this.value = value;
+ this.desc = desc;
+ }
+
+ public static String getDescByValue(int value) {
+ for (ScoreFlowTypeEnum scoreFlowTypeEnum : values()) {
+ if (value == scoreFlowTypeEnum.getValue()) {
+ return scoreFlowTypeEnum.getDesc();
+ }
+ }
+
+ return "";
+ }
+
+}
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 0e4af18..0ce1495 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
@@ -1,10 +1,7 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
-import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
-import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
-import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.*;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.properties.XcxProperties;
import cc.mrbird.febs.common.utils.*;
@@ -377,6 +374,12 @@
Long id = LoginUserUtil.getLoginUser().getId();
moneyFlowDto.setMemberId(id);
IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiMoneyFlowInPage(page, moneyFlowDto);
+
+// if (moneyFlowDto.getFlowType() == 3) {
+// pages.getRecords().forEach(item -> {
+// item.setDescription(ScoreFlowTypeEnum.getDescByValue(item.getType()));
+// });
+// }
return new FebsResponse().success().data(pages);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 7b70a02..923ed98 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -23,6 +23,8 @@
import cc.mrbird.febs.pay.service.IXcxPayService;
import cc.mrbird.febs.pay.util.WeixinServiceUtil;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
+import cc.mrbird.febs.vip.service.IMallVipConfigBenefitsService;
+import cc.mrbird.febs.vip.service.IMallVipConfigService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
@@ -86,6 +88,8 @@
private final MallMemberCouponMapper mallMemberCouponMapper;
private final MallGoodsCouponMapper mallGoodsCouponMapper;
private final CouponGoodsMapper couponGoodsMapper;
+
+ private final IMallVipConfigService mallVipConfigService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -438,6 +442,7 @@
mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue(),"余额支付",2);
agentProducer.sendOrderCoupon(orderInfo.getId());
+ agentProducer.sendGetScoreMsg(orderInfo.getId());
break;
case "4":
if (orderInfo.getOrderType() != 2) {
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java
index 178599f..1e8b998 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java
@@ -37,4 +37,11 @@
@ApiModelProperty(value = "时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createdTime;
+
+
+ @ApiModelProperty(value = "描述")
+ private String description;
+
+ @ApiModelProperty(value = "备注")
+ private String remark;
}
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
index 0d95241..719288a 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
@@ -327,6 +327,7 @@
mallOrderInfoMapper.updateById(order);
agentProducer.sendOrderCoupon(order.getId());
+ agentProducer.sendGetScoreMsg(order.getId());
mallMoneyFlowService.addMoneyFlow(
order.getMemberId(),
diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
index a473a08..2470a96 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
@@ -12,4 +12,6 @@
public static final String ORDER_RETURN_MONEY = "queue_order_return_money_qay";
public static final String ORDER_COUPON = "queue_order_coupon";
+
+ public static final String GET_SCORE_MSG = "queue_get_score_msg";
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
index 9fe3dea..972bd28 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
@@ -5,6 +5,7 @@
import cc.mrbird.febs.mall.service.IMemberProfitService;
import cc.mrbird.febs.rabbit.constants.QueueConstants;
import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum;
+import cc.mrbird.febs.vip.service.IVipCommonService;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
@@ -82,4 +83,17 @@
log.error("使用优惠卷异常:", e);
}
}
+
+ @Autowired
+ private IVipCommonService vipCommonService;
+
+ @RabbitListener(queues = QueueConstants.GET_SCORE_MSG)
+ public void getScoreMsg(Long orderId) {
+ log.info("收到积分消息:{}", orderId);
+ try {
+ vipCommonService.getScore(orderId);
+ } catch (Exception e) {
+ log.error("获取积分消息异常", e);
+ }
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
index 87376dd..8d11cf6 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
@@ -15,7 +15,9 @@
ORDER_RETURN_MONEY("exchange_order_return_money_qay", "route_key_order_return_money_qay", "queue_order_return_money_qay"),
- ORDER_COUPON("exchange_order_coupon", "route_key_order_coupon", QueueConstants.ORDER_COUPON);
+ ORDER_COUPON("exchange_order_coupon", "route_key_order_coupon", QueueConstants.ORDER_COUPON),
+
+ GET_SCORE_MSG("exchange_get_score_msg", "route_key_get_score_msg", QueueConstants.GET_SCORE_MSG);
private String exchange;
diff --git a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
index 281c171..d18c404 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -83,4 +83,11 @@
CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
rabbitTemplate.convertAndSend(RabbitQueueEnum.ORDER_COUPON.getExchange(), RabbitQueueEnum.ORDER_COUPON.getRoute(), id, correlationData);
}
+
+ public void sendGetScoreMsg(Long orderId) {
+ log.info("发送获得积分消息:{}", orderId);
+
+ CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
+ rabbitTemplate.convertAndSend(RabbitQueueEnum.GET_SCORE_MSG.getExchange(), RabbitQueueEnum.GET_SCORE_MSG.getRoute(), orderId, correlationData);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java b/src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java
index b2a048d..b8af531 100644
--- a/src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java
+++ b/src/main/java/cc/mrbird/febs/vip/controller/ApiMallVipConfigController.java
@@ -4,10 +4,13 @@
import cc.mrbird.febs.common.controller.BaseController;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.vip.entity.MallVipBenefits;
+import cc.mrbird.febs.vip.entity.MallVipConfig;
import cc.mrbird.febs.vip.service.IMallVipBenefitsService;
import cc.mrbird.febs.vip.service.IMallVipConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
@@ -27,12 +30,18 @@
@ApiOperation(value = "获取会员等级列表")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = MallVipConfig.class)
+ })
@GetMapping(value = "/findVipList")
public FebsResponse findVipList() {
return new FebsResponse().success().data(mallVipConfigService.findConfigList());
}
@ApiOperation(value = "获取权益详情")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = MallVipBenefits.class)
+ })
@GetMapping(value = "/findBenefitsDetailList/{id}")
public FebsResponse findVipDetailList(@PathVariable("id") Long id) {
MallVipBenefits vipBenefits = mallVipBenefitsService.findVipBenefitsById(id);
diff --git a/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java b/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java
index b9bc408..885af9f 100644
--- a/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java
+++ b/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java
@@ -3,6 +3,8 @@
import cc.mrbird.febs.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@@ -10,11 +12,13 @@
@Data
@TableName("mall_vip_benefits")
+@ApiModel(value = "MallVipBenefits")
public class MallVipBenefits extends BaseEntity {
/**
* 权益名称
*/
+ @ApiModelProperty(value = "权益名称")
private String name;
/**
@@ -25,6 +29,7 @@
/**
* 权益图标
*/
+ @ApiModelProperty(value = "权益图标")
private String icon;
/**
diff --git a/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefitsDetails.java b/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefitsDetails.java
index a7832de..9d55849 100644
--- a/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefitsDetails.java
+++ b/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefitsDetails.java
@@ -3,30 +3,37 @@
import cc.mrbird.febs.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@TableName("mall_vip_benefits_details")
+@ApiModel(value = "MallVipBenefitsDetails")
public class MallVipBenefitsDetails extends BaseEntity {
/**
* 图片链接
*/
+ @ApiModelProperty(value = "图片")
private String image;
/**
* 是否可点击;1-是 2-否
*/
+ @ApiModelProperty(value = "是否可点击")
private Integer isClick;
/**
* 链接类型;1-链接 2-领取商品 3-优惠券
*/
+ @ApiModelProperty(value = "1-链接 2-领取商品 3-优惠券")
private Integer linkType;
/**
* 内容;根据linkType来的
*/
+ @ApiModelProperty(value = "跳转的链接或者商品/优惠券的ID")
private String content;
/**
diff --git a/src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java b/src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java
index 1413cf6..c2d59b3 100644
--- a/src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java
+++ b/src/main/java/cc/mrbird/febs/vip/entity/MallVipConfig.java
@@ -3,27 +3,39 @@
import cc.mrbird.febs.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
+@ApiModel(value = "MallVipConfig")
@TableName("mall_vip_config")
public class MallVipConfig extends BaseEntity {
+
/**
* 会员名称
*/
+ @ApiModelProperty(value = "名称")
private String name;
/**
* 主图
*/
+ @ApiModelProperty(value = "主图")
private String thumb;
+
+ /**
+ * 会员编码
+ */
+ private String code;
/**
* 等级
*/
+ @ApiModelProperty(value = "会员等级")
private Integer level;
/**
diff --git a/src/main/java/cc/mrbird/febs/vip/mapper/MallVipConfigMapper.java b/src/main/java/cc/mrbird/febs/vip/mapper/MallVipConfigMapper.java
index 31553fb..0a856a4 100644
--- a/src/main/java/cc/mrbird/febs/vip/mapper/MallVipConfigMapper.java
+++ b/src/main/java/cc/mrbird/febs/vip/mapper/MallVipConfigMapper.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.vip.entity.MallVipConfig;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -11,4 +12,6 @@
IPage<MallVipConfig> findVipConfigListInPage(IPage<MallVipConfig> page);
List<MallVipConfig> selectVipConfigList();
+
+ MallVipConfig selectVipConfigByCode(@Param("code") String code);
}
diff --git a/src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java b/src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java
index 2591223..8137f8b 100644
--- a/src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java
+++ b/src/main/java/cc/mrbird/febs/vip/service/IMallVipConfigService.java
@@ -1,6 +1,8 @@
package cc.mrbird.febs.vip.service;
import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.vip.entity.MallVipBenefits;
+import cc.mrbird.febs.vip.entity.MallVipBenefitsDetails;
import cc.mrbird.febs.vip.entity.MallVipConfig;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -18,4 +20,6 @@
void editVipConfig(MallVipConfig config);
void delVipConfig(Long id);
+
+ MallVipBenefits hasVipBenefits(Long memberId);
}
diff --git a/src/main/java/cc/mrbird/febs/vip/service/IVipCommonService.java b/src/main/java/cc/mrbird/febs/vip/service/IVipCommonService.java
new file mode 100644
index 0000000..9cf7861
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/vip/service/IVipCommonService.java
@@ -0,0 +1,6 @@
+package cc.mrbird.febs.vip.service;
+
+public interface IVipCommonService {
+
+ void getScore(Long orderId);
+}
diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java
index 42db833..957b247 100644
--- a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java
@@ -1,6 +1,10 @@
package cc.mrbird.febs.vip.service.impl;
import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.mall.entity.MallMember;
+import cc.mrbird.febs.mall.mapper.MallMemberMapper;
+import cc.mrbird.febs.vip.entity.MallVipBenefits;
import cc.mrbird.febs.vip.entity.MallVipConfig;
import cc.mrbird.febs.vip.entity.MallVipConfigBenefits;
import cc.mrbird.febs.vip.mapper.MallVipConfigBenefitsMapper;
@@ -8,6 +12,8 @@
import cc.mrbird.febs.vip.service.IMallVipConfigBenefitsService;
import cc.mrbird.febs.vip.service.IMallVipConfigService;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -18,8 +24,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
@Slf4j
@Service
@@ -27,6 +32,7 @@
public class MallVipConfigServiceImpl extends ServiceImpl<MallVipConfigMapper, MallVipConfig> implements IMallVipConfigService {
private final IMallVipConfigBenefitsService mallVipConfigBenefitsService;
+ private final MallMemberMapper mallMemberMapper;
@Override
public IPage<MallVipConfig> vipConfigList(QueryRequest request) {
@@ -85,4 +91,36 @@
delQuery.eq(MallVipConfigBenefits::getConfigId, id);
this.mallVipConfigBenefitsService.remove(delQuery);
}
+
+ @Override
+ public MallVipBenefits hasVipBenefits(Long memberId) {
+ MallMember member = mallMemberMapper.selectById(memberId);
+ if (member == null) {
+ throw new FebsException("会员不存在");
+ }
+
+ MallVipConfig vipConfig = this.baseMapper.selectVipConfigByCode(member.getLevel());
+ if (vipConfig == null) {
+ throw new FebsException("会员配置不存在");
+ }
+
+ String today = DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN);
+ boolean isBirthday = member.getBirthday().compareTo(DateUtil.parseDate(today)) == 0;
+ List<MallVipBenefits> benefits = vipConfig.getBenefits();
+ Optional<MallVipBenefits> max = benefits.stream().filter(item -> {
+ if (item.getScoreMultiple() == null) {
+ return false;
+ }
+
+ // 生日权益
+ if (item.getGainType() == 2 && isBirthday) {
+ return true;
+ }
+
+ // 会员日
+ return item.getGainType() == 1;
+ }).max(Comparator.comparing(MallVipBenefits::getScoreMultiple));
+
+ return max.orElseGet(max::get);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
new file mode 100644
index 0000000..2f1d1b1
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
@@ -0,0 +1,57 @@
+package cc.mrbird.febs.vip.service.impl;
+
+import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.ScoreFlowTypeEnum;
+import cc.mrbird.febs.mall.entity.MallOrderInfo;
+import cc.mrbird.febs.mall.entity.MallOrderItem;
+import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
+import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
+import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
+import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
+import cc.mrbird.febs.vip.entity.MallVipBenefits;
+import cc.mrbird.febs.vip.service.IMallVipConfigService;
+import cc.mrbird.febs.vip.service.IVipCommonService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class VipCommonServiceImpl implements IVipCommonService {
+
+ private final MallOrderInfoMapper mallOrderInfoMapper;
+ private final IMallVipConfigService mallVipConfigService;
+ private final IMallMoneyFlowService mallMoneyFlowService;
+ private final IApiMallMemberWalletService mallMemberWalletService;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void getScore(Long orderId) {
+ MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectOrderDetailsById(orderId);
+ if (mallOrderInfo == null) {
+ return;
+ }
+
+ Long memberId = mallOrderInfo.getMemberId();
+ MallVipBenefits mallVipBenefits = mallVipConfigService.hasVipBenefits(memberId);
+
+ BigDecimal multiple = BigDecimal.ONE;
+ String name = "";
+ if (mallVipBenefits != null) {
+ multiple = mallVipBenefits.getScoreMultiple();
+ name = mallVipBenefits.getName();
+ }
+
+ double sum = mallOrderInfo.getItems().stream().map(MallOrderItem::getAmount).mapToDouble(BigDecimal::doubleValue).sum();
+
+ int score = multiple.multiply(BigDecimal.valueOf(sum)).intValue();
+
+ mallMoneyFlowService.addMoneyFlow(memberId, new BigDecimal(score), ScoreFlowTypeEnum.BUY.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue(), name, 2);
+ mallMemberWalletService.add(new BigDecimal(score), memberId, "prize_score");
+ }
+}
diff --git a/src/main/resources/mapper/modules/MallVipConfigMapper.xml b/src/main/resources/mapper/modules/MallVipConfigMapper.xml
index a68988d..d710e4a 100644
--- a/src/main/resources/mapper/modules/MallVipConfigMapper.xml
+++ b/src/main/resources/mapper/modules/MallVipConfigMapper.xml
@@ -35,4 +35,16 @@
inner join mall_vip_config_benefits configBenefits on config.id=configBenefits.config_id
inner join mall_vip_benefits benefits on configBenefits.benefits_id=benefits.id
</select>
+
+ <select id="selectVipConfigByCode" resultMap="vipConfigMap">
+ select
+ config.*
+ ,benefits.id c_id
+ ,benefits.name c_name
+ ,benefits.icon c_icon
+ from mall_vip_config config
+ inner join mall_vip_config_benefits configBenefits on config.id=configBenefits.config_id
+ inner join mall_vip_benefits benefits on configBenefits.benefits_id=benefits.id
+ where config.code=#{code}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1