diff --git a/mall-admin/src/main/java/com/buy507/mall/service/impl/PmsProductServiceImpl.java b/mall-admin/src/main/java/com/buy507/mall/service/impl/PmsProductServiceImpl.java index 3c72a3e..b222a08 100644 --- a/mall-admin/src/main/java/com/buy507/mall/service/impl/PmsProductServiceImpl.java +++ b/mall-admin/src/main/java/com/buy507/mall/service/impl/PmsProductServiceImpl.java @@ -84,6 +84,7 @@ public class PmsProductServiceImpl implements PmsProductService { log.info("b"+String.valueOf(productParam.getProductAttributeCategoryId())); log.info("c"+String.valueOf(product.getProductCategoryId())); log.info("d"+String.valueOf(product.getProductAttributeCategoryId())); + product.setOriginalPrice(productParam.getPrice()); productMapper.insertAll(product); //根据促销类型设置价格:、阶梯价格、满减价格 Long productId = product.getId(); diff --git a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml index b41bc04..fd456d0 100644 --- a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml +++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml @@ -148,7 +148,7 @@ - + SELECT LAST_INSERT_ID() diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/controller/VipCenterController.java b/mall-portal/src/main/java/com/buy507/mall/portal/controller/VipCenterController.java deleted file mode 100644 index f72f46c..0000000 --- a/mall-portal/src/main/java/com/buy507/mall/portal/controller/VipCenterController.java +++ /dev/null @@ -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 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-portal/src/main/java/com/buy507/mall/portal/controller/VipController.java b/mall-portal/src/main/java/com/buy507/mall/portal/controller/VipController.java new file mode 100644 index 0000000..21ae1e5 --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/controller/VipController.java @@ -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 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"); + } + } +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/VipCenterService.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/VipCenterService.java new file mode 100644 index 0000000..922d084 --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/VipCenterService.java @@ -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); +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java index ff6936f..f645071 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java @@ -566,7 +566,7 @@ public class UmsMemberServiceImpl implements UmsMemberService { result.setNickname(member.getNickname() == null ? "" : member.getNickname()); result.setHeadPicture(member.getIcon() == null ? "" :member.getIcon()); result.setGender(member.getGender()); - result.setMemberLevel(member.getMemberLevel().getValue()); + result.setMemberLevel(member.getMemberLevel().getValue()-1); result.setMemberId(loginMember.getId()); result.setRealName(member.getRealName()); result.setDetailAddress(member.getDetailAddress()); diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/VipCenterServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/VipCenterServiceImpl.java new file mode 100644 index 0000000..d9ecb88 --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/VipCenterServiceImpl.java @@ -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 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(); + } +} diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/vo/OmsOrderDTO.java b/mall-portal/src/main/java/com/buy507/mall/portal/vo/OmsOrderDTO.java new file mode 100644 index 0000000..81304c1 --- /dev/null +++ b/mall-portal/src/main/java/com/buy507/mall/portal/vo/OmsOrderDTO.java @@ -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; +} diff --git a/mall-portal/src/main/resources/application.yml b/mall-portal/src/main/resources/application.yml index 9c17320..2890bfd 100644 --- a/mall-portal/src/main/resources/application.yml +++ b/mall-portal/src/main/resources/application.yml @@ -8,6 +8,9 @@ mybatis: mapper-locations: - classpath:dao/*.xml - classpath*:com/**/mapper/*.xml + configuration: + #开启驼峰命名 + map-underscore-to-camel-case: true jwt: tokenHeader: Authorization #JWT存储的请求头