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 4202d64..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,7 +84,8 @@ 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()));
- productMapper.insertSelective(product);
+ product.setOriginalPrice(productParam.getPrice());
+ productMapper.insertAll(product);
//根据促销类型设置价格:、阶梯价格、满减价格
Long productId = product.getId();
//会员价格
diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java
index d86dc19..6d91636 100644
--- a/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java
+++ b/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java
@@ -40,7 +40,7 @@ public interface PmsProductMapper {
PmsProduct getProductByOrderSn(String orderSn);
-
+ int insertAll(PmsProduct product);
}
\ No newline at end of file
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-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml
index a8a9401..bd76f2f 100644
--- a/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml
+++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml
@@ -940,4 +940,58 @@
LIMIT 1
)
+
+
+
+ SELECT LAST_INSERT_ID()
+
+ INSERT INTO pms_product
+ SET
+ brand_id = #{brandId},
+ product_category_id = #{productCategoryId},
+ feight_template_id = #{feightTemplateId},
+ product_attribute_category_id = #{productAttributeCategoryId},
+ name = #{name},
+ pic = #{pic},
+ product_sn = #{productSn},
+ delete_status = #{deleteStatus},
+ publish_status = #{publishStatus},
+ new_status = #{newStatus},
+ vip_status = #{vipStatus},
+ points_area_status = #{pointsAreaStatus},
+ points_exchange_status = #{pointsExchangeStatus},
+ recommand_status = #{recommandStatus},
+ verify_status = #{verifyStatus},
+ sort = #{sort},
+ sale = #{sale},
+ price = #{price},
+ promotion_price = #{promotionPrice},
+ gift_growth = #{giftGrowth},
+ gift_point = #{giftPoint},
+ use_point_limit = #{usePointLimit},
+ sub_title = #{subTitle},
+ original_price = #{originalPrice},
+ stock = #{stock},
+ low_stock = #{lowStock},
+ unit = #{unit},
+ weight = #{weight},
+ preview_status = #{previewStatus},
+ service_ids = #{serviceIds},
+ keywords = #{keywords},
+ note = #{note},
+ album_pics = #{albumPics},
+ detail_title = #{detailTitle},
+ promotion_start_time = #{promotionStartTime},
+ promotion_end_time = #{promotionEndTime},
+ promotion_per_limit = #{promotionPerLimit},
+ promotion_type = #{promotionType},
+ brand_name = #{brandName},
+ product_category_name = #{productCategoryName},
+ description = #{description},
+ detail_desc = #{detailDesc},
+ detail_html = #{detailHtml},
+ detail_mobile_html = #{detailMobileHtml},
+ intergration_price = #{intergrationPrice};
+
+
\ No newline at end of file
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存储的请求头