From 72a723a7f1e8a5564a9f35238239b9a2730898c6 Mon Sep 17 00:00:00 2001
From: axindata <1851789500@qq.com>
Date: Wed, 19 Feb 2025 17:09:19 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E5=91=98=E4=B8=AD=E5=BF=83=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mall-admin/pom.xml | 8 +-
.../mall/controller/VipCenterController.java | 151 ++++++++++++++++++
.../buy507/mall/mapper/UmsMemberMapper.java | 6 +-
.../java/com/buy507/mall/model/OmsOrder.java | 2 +-
.../com/buy507/mall/model/PmsProduct.java | 7 +
.../buy507/mall/mapper/UmsMemberMapper.xml | 8 +-
.../impl/OmsPortalOrderServiceImpl.java | 27 ++++
7 files changed, 204 insertions(+), 5 deletions(-)
create mode 100644 mall-admin/src/main/java/com/buy507/mall/controller/VipCenterController.java
diff --git a/mall-admin/pom.xml b/mall-admin/pom.xml
index f1bcc7f..c53622c 100644
--- a/mall-admin/pom.xml
+++ b/mall-admin/pom.xml
@@ -95,7 +95,13 @@
jaxb-runtime
2.3.1
-
+
+ com.buy507.mall
+ mall-portal
+ 1.0-SNAPSHOT
+ compile
+
+
diff --git a/mall-admin/src/main/java/com/buy507/mall/controller/VipCenterController.java b/mall-admin/src/main/java/com/buy507/mall/controller/VipCenterController.java
new file mode 100644
index 0000000..3884bea
--- /dev/null
+++ b/mall-admin/src/main/java/com/buy507/mall/controller/VipCenterController.java
@@ -0,0 +1,151 @@
+package com.buy507.mall.controller;
+
+import com.buy507.mall.common.api.CommonResult;
+import com.buy507.mall.dto.PmsProductParam;
+import com.buy507.mall.mapper.OmsOrderMapper;
+import com.buy507.mall.mapper.PmsProductMapper;
+import com.buy507.mall.mapper.UmsMemberMapper;
+import com.buy507.mall.model.OmsOrder;
+import com.buy507.mall.model.UmsMember;
+import com.buy507.mall.portal.service.OmsPortalOrderService;
+import com.buy507.mall.portal.service.UmsMemberService;
+import com.buy507.mall.service.PmsProductService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+
+
+/**
+ * ClassName:VipCenterController
+ * Description:
+ *
+ * @Author axin
+ * @Create 2025/2/19 11:09
+ * @Version 1.0
+ */
+
+@Controller
+@Api(tags = "VipCenterController", description = "会员中心")
+@RequestMapping("/vipCenter")
+public class VipCenterController {
+ @Autowired
+ private UmsMemberMapper memberMapper;
+
+ @Autowired
+ private UmsMemberService memberService;
+
+ @Autowired
+ private PmsProductMapper productMapper;
+
+ @Autowired
+ private PmsProductService productService;
+
+ @Autowired
+ private OmsPortalOrderService portalOrderService;
+
+ @Autowired
+ private OmsOrderMapper orderMapper;
+
+ //店长升级金额
+ @Value("${storeManagerAmount}")
+ private BigDecimal storeManagerAmount;
+
+ //代理升级金额
+ @Value("${agentAmount}")
+ private BigDecimal agentAmount;
+
+ //市代理升级金额
+ @Value("${cityAgentAmount}")
+ private BigDecimal cityAgentAmount;
+
+ @ApiOperation("查询当前登录人信息")
+ @RequestMapping("/getCurrentUserInfo")
+ public CommonResult getCurrentUserInfo(){
+ //获取当前登录人的信息
+ UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId());
+
+ // 获取当前用户的会员等级ID
+ Long memberLevelId = member.getMemberLevelId();
+
+ String memberLevelName = "普通用户";
+ if (memberLevelId == 1) {
+ memberLevelName = "普通用户";
+ } else if (memberLevelId == 2) {
+ memberLevelName = "VIP会员";
+ } else if (memberLevelId == 3) {
+ memberLevelName = "店长";
+ } else if (memberLevelId == 4) {
+ memberLevelName = "代理";
+ } else if (memberLevelId == 5) {
+ memberLevelName = "市代理";
+ }
+
+ // 返回当前用户的会员信息
+ return CommonResult.success("当前登录用户: " + member.getUsername() + ", 会员等级: " + memberLevelName);
+ }
+
+ @ApiOperation("创建会员中心订单")
+ @RequestMapping( value = "/createVipOrder", method = RequestMethod.POST)
+ public CommonResult createVipOrder(){
+ //获取当前登录人的信息
+ UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId());
+
+ // 获取当前用户的会员等级ID
+ Long memberLevelId = member.getMemberLevelId();
+
+ //创建返回值
+ Map result = new HashMap<>();
+
+ //生成订单
+ OmsOrder order = new OmsOrder();
+ // 根据会员等级ID动态设置订单金额
+ // 店长
+ if (memberLevelId == 3) {
+ order.setTotalAmount(storeManagerAmount);
+ order.setPayAmount(storeManagerAmount);
+ // 代理
+ } else if (memberLevelId == 4) {
+ order.setTotalAmount(agentAmount);
+ order.setPayAmount(agentAmount);
+ // 市代理
+ } else if (memberLevelId == 5) {
+ order.setTotalAmount(cityAgentAmount);
+ order.setPayAmount(cityAgentAmount);
+ }
+ order.setMemberId(member.getId());
+ order.setCreateTime(new Date());
+ order.setModifyTime(new Date());
+
+ // 支付方式,0为未支付
+ order.setPayType(0);
+ // 订单状态,0为待付款
+ order.setStatus(0);
+ // 虚拟订单
+ order.setOrderType(3);
+ // 升级订单,无需实际收货人信息
+ order.setReceiverName("会员升级");
+
+ // 保存订单
+ orderMapper.insert(order);
+
+ // 更新返回结果
+ result.put("orderId", order.getId());
+
+ return CommonResult.success(result);
+
+ }
+
+
+
+
+}
diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/UmsMemberMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/UmsMemberMapper.java
index 8e58d8e..6b48539 100644
--- a/mall-dao/src/main/java/com/buy507/mall/mapper/UmsMemberMapper.java
+++ b/mall-dao/src/main/java/com/buy507/mall/mapper/UmsMemberMapper.java
@@ -27,5 +27,9 @@ public interface UmsMemberMapper {
int updateByPrimaryKeySelective(UmsMember record);
int updateByPrimaryKey(UmsMember record);
-
+
+ /**
+ *修改用户会员等级
+ */
+ int upgradeMember(@Param("memberId") Long memberId, @Param("newMemberLevelId") Long newMemberLevelId);
}
\ No newline at end of file
diff --git a/mall-dao/src/main/java/com/buy507/mall/model/OmsOrder.java b/mall-dao/src/main/java/com/buy507/mall/model/OmsOrder.java
index b55fe82..aba22eb 100644
--- a/mall-dao/src/main/java/com/buy507/mall/model/OmsOrder.java
+++ b/mall-dao/src/main/java/com/buy507/mall/model/OmsOrder.java
@@ -54,7 +54,7 @@ public class OmsOrder implements Serializable {
@ApiModelProperty(value = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单")
private Integer status;
- @ApiModelProperty(value = "订单类型:0->正常订单;1->秒杀订单")
+ @ApiModelProperty(value = "订单类型:0->正常订单;1->秒杀订单;3->虚拟订单")
private Integer orderType;
@ApiModelProperty(value = "提货方式:0->自提;1->物流")
diff --git a/mall-dao/src/main/java/com/buy507/mall/model/PmsProduct.java b/mall-dao/src/main/java/com/buy507/mall/model/PmsProduct.java
index d1227ff..6e345a2 100644
--- a/mall-dao/src/main/java/com/buy507/mall/model/PmsProduct.java
+++ b/mall-dao/src/main/java/com/buy507/mall/model/PmsProduct.java
@@ -185,6 +185,9 @@ public class PmsProduct implements Serializable {
@Transient
@ApiModelProperty(value = "积分兑换专区状态")
private Integer pointsExchangeStatus;
+
+ @ApiModelProperty(value = "会员中心:1->店长; 2->代理; 3->市代理")
+ private Integer vipCenter;
public List getProductAttribute() {
@@ -654,6 +657,10 @@ public class PmsProduct implements Serializable {
this.pointsExchangeStatus = pointsExchangeStatus;
}
+ public Integer getVipCenter () {return vipCenter;}
+
+ public void setVipCenter(Integer vipCenter) {this.vipCenter = vipCenter;}
+
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
diff --git a/mall-dao/src/main/resources/com/buy507/mall/mapper/UmsMemberMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/UmsMemberMapper.xml
index 0900b07..b517e47 100644
--- a/mall-dao/src/main/resources/com/buy507/mall/mapper/UmsMemberMapper.xml
+++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/UmsMemberMapper.xml
@@ -558,6 +558,10 @@
select u.phone from ums_member u
where u.phone=#{phone,jdbcType=VARCHAR}
-
-
+
+
+ UPDATE ums_member
+ SET member_level_id = #{newMemberLevelId}
+ WHERE id = #{memberId}
+
\ No newline at end of file
diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java
index cc0762a..1b99b55 100644
--- a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java
+++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java
@@ -1803,6 +1803,18 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
@Value("${alipay.signType}")
private String signType;
+ //店长升级金额
+ @Value("${storeManagerAmount}")
+ private BigDecimal storeManagerAmount;
+
+ //代理升级金额
+ @Value("${agentAmount}")
+ private BigDecimal agentAmount;
+
+ //市代理升级金额
+ @Value("${cityAgentAmount}")
+ private BigDecimal cityAgentAmount;
+
/**
* 支付宝支付回调
*
@@ -1823,12 +1835,27 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
String outTradeNo = params.get("out_trade_no");
//if ("TRADE_SUCCESS".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) {
// 处理支付成功的业务逻辑
+
OmsOrderExample example = new OmsOrderExample();
example.createCriteria().andOrderSnEqualTo(outTradeNo);
List list = orderMapper.selectByExample(example);
if (list != null && !list.isEmpty()) {
OmsOrder order = list.get(0);
+ if (order.getOrderType() == 3) {
+ // 根据支付金额判断会员等级,并更新
+ if (order.getPayAmount().compareTo(storeManagerAmount) >= 0) {
+ // 升级为店长
+ memberMapper.upgradeMember(order.getMemberId(), 3L);
+ } else if (order.getPayAmount().compareTo(agentAmount) >= 0) {
+ // 升级为代理
+ memberMapper.upgradeMember(order.getMemberId(), 4L);
+ } else if (order.getPayAmount().compareTo(cityAgentAmount) >= 0) {
+ // 升级为市代理
+ memberMapper.upgradeMember(order.getMemberId(), 5L);
+ }
+ }
+
//获取订单实付金额
BigDecimal payAmount = order.getPayAmount();
//获取商品信息
--
2.36.6