超级会员相关
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package com.czg.service.market.mapper;
|
||||
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
import com.czg.market.entity.MemberOrder;
|
||||
|
||||
/**
|
||||
* 会员充值订单 映射层。
|
||||
*
|
||||
* @author zs
|
||||
* @since 2025-09-11
|
||||
*/
|
||||
public interface MemberOrderMapper extends BaseMapper<MemberOrder> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.czg.service.market.service.impl;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.czg.market.dto.MemberConfigDTO;
|
||||
import com.czg.account.entity.ShopInfo;
|
||||
import com.czg.account.entity.UserInfo;
|
||||
import com.czg.account.service.ShopInfoService;
|
||||
import com.czg.account.service.ShopUserService;
|
||||
import com.czg.market.service.TbMemberConfigService;
|
||||
import com.czg.account.service.UserInfoService;
|
||||
import com.czg.market.vo.MemberConfigVO;
|
||||
import com.czg.exception.CzgException;
|
||||
import com.czg.market.dto.MemberOrderDTO;
|
||||
import com.czg.service.market.enums.OrderStatusEnums;
|
||||
import com.czg.service.market.mapper.MemberOrderMapper;
|
||||
import com.czg.utils.AssertUtil;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import com.czg.market.entity.MemberOrder;
|
||||
import com.czg.market.service.MemberOrderService;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 会员充值订单 服务层实现。
|
||||
*
|
||||
* @author zs
|
||||
* @since 2025-09-11
|
||||
*/
|
||||
@DubboService
|
||||
public class MemberOrderServiceImpl extends ServiceImpl<MemberOrderMapper, MemberOrder> implements MemberOrderService {
|
||||
@DubboReference
|
||||
private ShopInfoService shopInfoService;
|
||||
@DubboReference
|
||||
private UserInfoService userInfoService;
|
||||
@DubboReference
|
||||
private ShopUserService shopUserService;
|
||||
@DubboReference
|
||||
private TbMemberConfigService memberConfigService;
|
||||
|
||||
@Override
|
||||
public MemberOrder createMemberOrder(MemberOrderDTO orderDTO) {
|
||||
ShopInfo shopInfo = shopInfoService.getById(orderDTO.getShopId());
|
||||
AssertUtil.isNull(shopInfo, "生成订单失败,店铺信息不存在");
|
||||
|
||||
if (orderDTO.getUserId() != null) {
|
||||
UserInfo userInfo = userInfoService.getById(orderDTO.getUserId());
|
||||
AssertUtil.isNull(userInfo, "生成订单失败,用户信息不存在");
|
||||
}
|
||||
|
||||
MemberConfigVO memberConfigVO = memberConfigService.detail(shopInfo.getId());
|
||||
if(memberConfigVO.getConfigList() == null || memberConfigVO.getConfigList().isEmpty()) {
|
||||
throw new CzgException("会员开通方案未配置,请联系店铺");
|
||||
}
|
||||
|
||||
MemberConfigDTO.ConfigList configItem = memberConfigVO.getConfigList().stream()
|
||||
.filter(item -> item.getName().equals(orderDTO.getName()))
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new CzgException("会员开通方案未配置,请联系店铺"));
|
||||
|
||||
|
||||
//生成订单
|
||||
MemberOrder orderInfo = new MemberOrder();
|
||||
|
||||
orderInfo.setOrderNo(orderDTO.getPlatformType() + IdUtil.getSnowflakeNextId());
|
||||
orderInfo.setShopId(orderDTO.getShopId());
|
||||
orderInfo.setPayAmount(BigDecimal.ZERO);
|
||||
orderInfo.setStatus(OrderStatusEnums.UNPAID.getCode());
|
||||
orderInfo.setAmount(configItem.getPrice().multiply(BigDecimal.valueOf(orderDTO.getNum())));
|
||||
orderInfo.setPrice(configItem.getPrice());
|
||||
orderInfo.setName(configItem.getName());
|
||||
orderInfo.setUserId(orderDTO.getUserId());
|
||||
orderInfo.setReward(configItem.getReward());
|
||||
orderInfo.setCircleTime(configItem.getCircleTime());
|
||||
if (configItem.getCouponList() != null && !configItem.getCouponList().isEmpty()) {
|
||||
orderInfo.setCouponList(JSONObject.toJSONString(configItem.getCouponList()));
|
||||
}
|
||||
orderInfo.setNum(orderDTO.getNum());
|
||||
save(orderInfo);
|
||||
return orderInfo;
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,8 @@ import com.czg.market.dto.MemberConfigDTO;
|
||||
import com.czg.market.dto.MemberLevelDTO;
|
||||
import com.czg.account.entity.*;
|
||||
import com.czg.account.service.*;
|
||||
import com.czg.market.entity.MemberOrder;
|
||||
import com.czg.market.service.MemberOrderService;
|
||||
import com.czg.market.vo.MemberConfigVO;
|
||||
import com.czg.market.vo.MemberLevelVO;
|
||||
import com.czg.exception.CzgException;
|
||||
@@ -17,7 +19,6 @@ import com.czg.market.entity.ShopCoupon;
|
||||
import com.czg.market.entity.TbMemberConfig;
|
||||
import com.czg.market.service.MemberLevelConfigService;
|
||||
import com.czg.market.service.TbMemberConfigService;
|
||||
import com.czg.order.entity.MemberOrder;
|
||||
import com.czg.order.entity.OrderInfo;
|
||||
import com.czg.order.entity.OrderPayment;
|
||||
import com.czg.order.service.OrderInfoService;
|
||||
@@ -61,6 +62,8 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
||||
private OrderPaymentService orderPaymentService;
|
||||
@DubboReference
|
||||
private MemberPointsService memberPointsService;
|
||||
@Resource
|
||||
private MemberOrderService memberOrderService;
|
||||
|
||||
@Override
|
||||
public MemberConfigVO detail(Long shopId) {
|
||||
@@ -249,6 +252,7 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
||||
boolean canOpen = false;
|
||||
// 购买开通
|
||||
if (memberOrderId != null) {
|
||||
MemberOrder memberOrder = memberOrderService.getOne(new QueryWrapper().eq(MemberOrder::getId, memberOrderId).eq(MemberOrder::getShopId, shopId));
|
||||
// MemberOrder memberOrder = memberOrderService.getOne(new QueryWrapper().eq(MemberOrder::getId, payment.getRelatedId()));
|
||||
// if (memberOrder == null) {
|
||||
// log.warn("会员购买支付失败,会员订单不存在,会员订单id:{}", payment.getRelatedId());
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.czg.service.market.mapper.MemberOrderMapper">
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user