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