会员中心、添加商品
This commit is contained in:
@@ -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();
|
||||
//会员价格
|
||||
|
||||
@@ -40,7 +40,7 @@ public interface PmsProductMapper {
|
||||
|
||||
PmsProduct getProductByOrderSn(String orderSn);
|
||||
|
||||
|
||||
int insertAll(PmsProduct product);
|
||||
|
||||
|
||||
}
|
||||
@@ -148,7 +148,7 @@
|
||||
<include refid="Example_Where_Clause" />
|
||||
</if>
|
||||
</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">
|
||||
SELECT LAST_INSERT_ID()
|
||||
</selectKey>
|
||||
|
||||
@@ -940,4 +940,58 @@
|
||||
LIMIT 1
|
||||
)
|
||||
</select>
|
||||
|
||||
<insert id="insertAll" useGeneratedKeys="true" parameterType="com.buy507.mall.model.PmsProduct">
|
||||
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
|
||||
SELECT LAST_INSERT_ID()
|
||||
</selectKey>
|
||||
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};
|
||||
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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存储的请求头
|
||||
|
||||
Reference in New Issue
Block a user