Merge pull request '会员中心代码提交' (#9) from main-cx into main

Reviewed-on: #9
This commit is contained in:
2025-02-19 17:09:45 +08:00
7 changed files with 204 additions and 5 deletions

View File

@@ -95,6 +95,12 @@
<artifactId>jaxb-runtime</artifactId> <artifactId>jaxb-runtime</artifactId>
<version>2.3.1</version> <version>2.3.1</version>
</dependency> </dependency>
<dependency>
<groupId>com.buy507.mall</groupId>
<artifactId>mall-portal</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@@ -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<String, Object> 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);
}
}

View File

@@ -28,4 +28,8 @@ public interface UmsMemberMapper {
int updateByPrimaryKey(UmsMember record); int updateByPrimaryKey(UmsMember record);
/**
*修改用户会员等级
*/
int upgradeMember(@Param("memberId") Long memberId, @Param("newMemberLevelId") Long newMemberLevelId);
} }

View File

@@ -54,7 +54,7 @@ public class OmsOrder implements Serializable {
@ApiModelProperty(value = "订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单") @ApiModelProperty(value = "订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单")
private Integer status; private Integer status;
@ApiModelProperty(value = "订单类型0->正常订单1->秒杀订单") @ApiModelProperty(value = "订单类型0->正常订单1->秒杀订单3->虚拟订单")
private Integer orderType; private Integer orderType;
@ApiModelProperty(value = "提货方式0->自提1->物流") @ApiModelProperty(value = "提货方式0->自提1->物流")

View File

@@ -186,6 +186,9 @@ public class PmsProduct implements Serializable {
@ApiModelProperty(value = "积分兑换专区状态") @ApiModelProperty(value = "积分兑换专区状态")
private Integer pointsExchangeStatus; private Integer pointsExchangeStatus;
@ApiModelProperty(value = "会员中心1->店长; 2->代理; 3->市代理")
private Integer vipCenter;
public List<PmsProductAttribute> getProductAttribute() { public List<PmsProductAttribute> getProductAttribute() {
return productAttribute; return productAttribute;
@@ -654,6 +657,10 @@ public class PmsProduct implements Serializable {
this.pointsExchangeStatus = pointsExchangeStatus; this.pointsExchangeStatus = pointsExchangeStatus;
} }
public Integer getVipCenter () {return vipCenter;}
public void setVipCenter(Integer vipCenter) {this.vipCenter = vipCenter;}
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();

View File

@@ -559,5 +559,9 @@
where u.phone=#{phone,jdbcType=VARCHAR} where u.phone=#{phone,jdbcType=VARCHAR}
</select> </select>
<update id="upgradeMember">
UPDATE ums_member
SET member_level_id = #{newMemberLevelId}
WHERE id = #{memberId}
</update>
</mapper> </mapper>

View File

@@ -1803,6 +1803,18 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
@Value("${alipay.signType}") @Value("${alipay.signType}")
private String 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"); String outTradeNo = params.get("out_trade_no");
//if ("TRADE_SUCCESS".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) { //if ("TRADE_SUCCESS".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) {
// 处理支付成功的业务逻辑 // 处理支付成功的业务逻辑
OmsOrderExample example = new OmsOrderExample(); OmsOrderExample example = new OmsOrderExample();
example.createCriteria().andOrderSnEqualTo(outTradeNo); example.createCriteria().andOrderSnEqualTo(outTradeNo);
List<OmsOrder> list = orderMapper.selectByExample(example); List<OmsOrder> list = orderMapper.selectByExample(example);
if (list != null && !list.isEmpty()) { if (list != null && !list.isEmpty()) {
OmsOrder order = list.get(0); 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(); BigDecimal payAmount = order.getPayAmount();
//获取商品信息 //获取商品信息