Merge pull request '会员中心代码提交' (#9) from main-cx into main
Reviewed-on: #9
This commit is contained in:
@@ -95,7 +95,13 @@
|
||||
<artifactId>jaxb-runtime</artifactId>
|
||||
<version>2.3.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.buy507.mall</groupId>
|
||||
<artifactId>mall-portal</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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->物流")
|
||||
|
||||
@@ -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<PmsProductAttribute> 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();
|
||||
|
||||
@@ -558,6 +558,10 @@
|
||||
select u.phone from ums_member u
|
||||
where u.phone=#{phone,jdbcType=VARCHAR}
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<update id="upgradeMember">
|
||||
UPDATE ums_member
|
||||
SET member_level_id = #{newMemberLevelId}
|
||||
WHERE id = #{memberId}
|
||||
</update>
|
||||
</mapper>
|
||||
@@ -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<OmsOrder> 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();
|
||||
//获取商品信息
|
||||
|
||||
Reference in New Issue
Block a user