Merge remote-tracking branch 'origin/main-zhb'

# Conflicts:
#	mall-admin/src/main/java/com/buy507/mall/service/impl/PmsProductServiceImpl.java
#	mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java
#	mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml
This commit is contained in:
2025-02-26 10:40:51 +08:00
9 changed files with 206 additions and 145 deletions

View File

@@ -84,6 +84,7 @@ public class PmsProductServiceImpl implements PmsProductService {
log.info("b"+String.valueOf(productParam.getProductAttributeCategoryId())); log.info("b"+String.valueOf(productParam.getProductAttributeCategoryId()));
log.info("c"+String.valueOf(product.getProductCategoryId())); log.info("c"+String.valueOf(product.getProductCategoryId()));
log.info("d"+String.valueOf(product.getProductAttributeCategoryId())); log.info("d"+String.valueOf(product.getProductAttributeCategoryId()));
product.setOriginalPrice(productParam.getPrice());
productMapper.insertAll(product); productMapper.insertAll(product);
//根据促销类型设置价格:、阶梯价格、满减价格 //根据促销类型设置价格:、阶梯价格、满减价格
Long productId = product.getId(); Long productId = product.getId();

View File

@@ -148,7 +148,7 @@
<include refid="Example_Where_Clause" /> <include refid="Example_Where_Clause" />
</if> </if>
</delete> </delete>
<insert id="insert" parameterType="com.buy507.mall.model.OmsOrder"> <insert id="insert" useGeneratedKeys="true" parameterType="com.buy507.mall.model.OmsOrder">
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID() SELECT LAST_INSERT_ID()
</selectKey> </selectKey>

View File

@@ -1,143 +0,0 @@
package com.buy507.mall.portal.controller;
import com.buy507.mall.common.api.CommonResult;
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 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 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

@@ -0,0 +1,37 @@
package com.buy507.mall.portal.controller;
import com.buy507.mall.common.api.CommonResult;
import com.buy507.mall.model.OmsOrder;
import com.buy507.mall.portal.domain.OrderParam;
import com.buy507.mall.portal.service.VipCenterService;
import com.buy507.mall.portal.vo.OmsOrderDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
@RestController
@RequestMapping("/vip")
public class VipController {
@Autowired
private VipCenterService vipCenterService;
@ApiOperation("查询升级权限金额")
@RequestMapping(value = "/getUpgradeAmount", method = RequestMethod.GET)
public CommonResult<BigDecimal> getUpgradeAmount(@RequestParam Long memberLevelId){
BigDecimal amount = vipCenterService.getUpgradeAmount(memberLevelId);
return CommonResult.success(amount);
}
@ApiOperation("创建购买权益订单")
@RequestMapping(value = "/createUpgradeOrder", method = RequestMethod.POST)
public CommonResult createUpgradeOrder(@RequestBody OmsOrderDTO param){
try {
return vipCenterService.createUpgradeOrder(param);
} catch (Exception e) {
return CommonResult.failed("createOrder fail");
}
}
}

View File

@@ -0,0 +1,25 @@
package com.buy507.mall.portal.service;
import com.buy507.mall.common.api.CommonResult;
import com.buy507.mall.model.OmsOrder;
import com.buy507.mall.portal.domain.OrderParam;
import com.buy507.mall.portal.vo.OmsOrderDTO;
import java.math.BigDecimal;
public interface VipCenterService {
/**
* 查询升级权限金额
* @param memberLevelId
* @return
*/
BigDecimal getUpgradeAmount(Long memberLevelId);
/**
* 创建购买权益订单
* @param param
* @return
*/
CommonResult createUpgradeOrder(OmsOrderDTO param);
}

View File

@@ -566,7 +566,7 @@ public class UmsMemberServiceImpl implements UmsMemberService {
result.setNickname(member.getNickname() == null ? "" : member.getNickname()); result.setNickname(member.getNickname() == null ? "" : member.getNickname());
result.setHeadPicture(member.getIcon() == null ? "" :member.getIcon()); result.setHeadPicture(member.getIcon() == null ? "" :member.getIcon());
result.setGender(member.getGender()); result.setGender(member.getGender());
result.setMemberLevel(member.getMemberLevel().getValue()); result.setMemberLevel(member.getMemberLevel().getValue()-1);
result.setMemberId(loginMember.getId()); result.setMemberId(loginMember.getId());
result.setRealName(member.getRealName()); result.setRealName(member.getRealName());
result.setDetailAddress(member.getDetailAddress()); result.setDetailAddress(member.getDetailAddress());

View File

@@ -0,0 +1,109 @@
package com.buy507.mall.portal.service.impl;
import cn.hutool.db.sql.Order;
import com.buy507.mall.common.api.CommonResult;
import com.buy507.mall.mapper.OmsOrderMapper;
import com.buy507.mall.model.MemberLevel;
import com.buy507.mall.model.OmsOrder;
import com.buy507.mall.portal.domain.OrderParam;
import com.buy507.mall.portal.domain.OrderResult;
import com.buy507.mall.portal.service.RedisService;
import com.buy507.mall.portal.service.VipCenterService;
import com.buy507.mall.portal.vo.OmsOrderDTO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Service
public class VipCenterServiceImpl implements VipCenterService {
//店长升级金额
@Value("${storeManagerAmount}")
private BigDecimal storeManagerAmount;
//代理升级金额
@Value("${agentAmount}")
private BigDecimal agentAmount;
//市代理升级金额
@Value("${cityAgentAmount}")
private BigDecimal cityAgentAmount;
@Value("${redis.key.prefix.orderId}")
private String REDIS_KEY_PREFIX_ORDER_ID;
@Autowired
private RedisService redisService;
@Autowired
private OmsOrderMapper orderMapper;
@Override
public BigDecimal getUpgradeAmount(Long memberLevelId) {
BigDecimal amount = null;
if (MemberLevel.Partner.getValue() == memberLevelId){
amount = storeManagerAmount;
}
if (MemberLevel.Diamond.getValue() == memberLevelId){
amount = agentAmount;
}
if (MemberLevel.OneDiamond.getValue() == memberLevelId){
amount = cityAgentAmount;
}
return amount;
}
/**
* 创建购买权益订单
* @param param
* @return
*/
@Override
public CommonResult createUpgradeOrder(OmsOrderDTO param) {
if (param == null){
return CommonResult.validateFailed("订单数据为空");
}else {
//创建权益订单
OmsOrder order = new OmsOrder();
BeanUtils.copyProperties(param, order);
order.setOrderSn(generateUpgradeOrderSn(param)); //生成orderSn
order.setCreateTime(new Date()); //创建订单时间
order.setStatus(0); //订单状态--未支付
order.setOrderType(3); //订单类型--虚拟订单
orderMapper.insert(order);
//返回订单id
Map<String, Object> result = new HashMap<>();
result.put("orderId", order.getId());
return CommonResult.success(result, "下单成功");
}
}
/**
* 生成18位订单编号:8位日期+2位订单类型+2位支付方式+6位以上自增id
*/
private String generateUpgradeOrderSn(OmsOrderDTO param) {
StringBuilder sb = new StringBuilder();
String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
String key = REDIS_KEY_PREFIX_ORDER_ID + date;
Long increment = redisService.increment(key, 1);
sb.append(date);
sb.append(String.format("%02d", param.getOrderType()));
sb.append(String.format("%02d", param.getPayType()));
String incrementStr = increment.toString();
if (incrementStr.length() <= 6) {
sb.append(String.format("%06d", increment));
} else {
sb.append(incrementStr);
}
return sb.toString();
}
}

View File

@@ -0,0 +1,29 @@
package com.buy507.mall.portal.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OmsOrderDTO {
@ApiModelProperty(value = "用户id")
private Long memberId;
@ApiModelProperty(value = "用户帐号")
private String memberUsername;
@ApiModelProperty(value = "应付金额(实际支付金额)")
private BigDecimal payAmount;
@ApiModelProperty(value = "支付方式0->未支付1->支付宝2->微信3->线下支付4->积分支付5—>余额支付")
private Integer payType;
@ApiModelProperty(value = "订单类型0->正常订单1->秒杀订单3->虚拟订单")
private Integer orderType;
}

View File

@@ -8,6 +8,9 @@ mybatis:
mapper-locations: mapper-locations:
- classpath:dao/*.xml - classpath:dao/*.xml
- classpath*:com/**/mapper/*.xml - classpath*:com/**/mapper/*.xml
configuration:
#开启驼峰命名
map-underscore-to-camel-case: true
jwt: jwt:
tokenHeader: Authorization #JWT存储的请求头 tokenHeader: Authorization #JWT存储的请求头