|
@@ -1,9 +1,15 @@
|
|
package com.xyzc.start.service.impl;
|
|
package com.xyzc.start.service.impl;
|
|
|
|
|
|
import com.xyzc.common.core.exception.ErrorCode;
|
|
import com.xyzc.common.core.exception.ErrorCode;
|
|
|
|
+import com.xyzc.common.core.exception.ServerException;
|
|
import com.xyzc.common.core.utils.AssertUtils;
|
|
import com.xyzc.common.core.utils.AssertUtils;
|
|
|
|
+import com.xyzc.common.core.utils.MapstructUtils;
|
|
|
|
+import com.xyzc.common.core.utils.SpringUtils;
|
|
import com.xyzc.common.web.security.user.SecurityUser;
|
|
import com.xyzc.common.web.security.user.SecurityUser;
|
|
|
|
+import com.xyzc.start.constant.BaseUserOrderStatus;
|
|
import com.xyzc.start.constant.SchemeConst;
|
|
import com.xyzc.start.constant.SchemeConst;
|
|
|
|
+import com.xyzc.start.domain.BaseUserOrder;
|
|
|
|
+import com.xyzc.start.domain.BaseUserOrderDetail;
|
|
import com.xyzc.start.domain.Scheme;
|
|
import com.xyzc.start.domain.Scheme;
|
|
import com.xyzc.start.domain.bo.CreateOrderBo;
|
|
import com.xyzc.start.domain.bo.CreateOrderBo;
|
|
import com.xyzc.start.domain.vo.*;
|
|
import com.xyzc.start.domain.vo.*;
|
|
@@ -13,6 +19,7 @@ import lombok.RequiredArgsConstructor;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@@ -27,6 +34,8 @@ public class SchemeServiceImpl implements ISchemeService {
|
|
private final AiModelMapper aiModelMapper;
|
|
private final AiModelMapper aiModelMapper;
|
|
|
|
|
|
private final FuelPackageMapper fuelPackageMapper;
|
|
private final FuelPackageMapper fuelPackageMapper;
|
|
|
|
+ private final BaseUserOrderMapper baseUserOrderMapper;
|
|
|
|
+ private final BaseUserOrderDetailMapper baseUserOrderDetailMapper;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 获取当前方案
|
|
* 获取当前方案
|
|
@@ -95,17 +104,6 @@ public class SchemeServiceImpl implements ISchemeService {
|
|
return objects;
|
|
return objects;
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 根据id获取燃料信息
|
|
|
|
- *
|
|
|
|
- * @param fuelId
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public List<FuelPackageVo> queryCurrentFuelById(Long fuelId) {
|
|
|
|
-
|
|
|
|
- return schemeMapper.queryFuelPackageById(fuelId);
|
|
|
|
- }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* 分页查询燃料规则详情
|
|
* 分页查询燃料规则详情
|
|
@@ -161,30 +159,85 @@ public class SchemeServiceImpl implements ISchemeService {
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public BaseUserOrderVo createOrder(CreateOrderBo bo) {
|
|
public BaseUserOrderVo createOrder(CreateOrderBo bo) {
|
|
|
|
+ // 生成订单
|
|
|
|
+ BaseUserOrderVo baseUserOrderVo = new BaseUserOrderVo();
|
|
|
|
+ baseUserOrderVo.setBaseUserId(SecurityUser.getUserId());
|
|
|
|
+
|
|
List<MemberCardOrderVo> memberCardOrderList = null;
|
|
List<MemberCardOrderVo> memberCardOrderList = null;
|
|
// 或者燃料包
|
|
// 或者燃料包
|
|
List<FuelPackageOrderVo> fuelPackageOrderList = null;
|
|
List<FuelPackageOrderVo> fuelPackageOrderList = null;
|
|
|
|
|
|
|
|
+ // 判断套餐是否生效
|
|
if (SchemeConst.MEMEBER_TYPE.equals(bo.getType())) {
|
|
if (SchemeConst.MEMEBER_TYPE.equals(bo.getType())) {
|
|
Scheme scheme = schemeMapper.querySchemeByMemberId(bo);
|
|
Scheme scheme = schemeMapper.querySchemeByMemberId(bo);
|
|
// 没有生效的套餐抛出异常
|
|
// 没有生效的套餐抛出异常
|
|
AssertUtils.notNull(scheme, ErrorCode.SCHEME_NOT_EXIST);
|
|
AssertUtils.notNull(scheme, ErrorCode.SCHEME_NOT_EXIST);
|
|
-
|
|
|
|
memberCardOrderList = memberCardMapper.queryOrderByMemberId(bo, 1810310843224322049L);
|
|
memberCardOrderList = memberCardMapper.queryOrderByMemberId(bo, 1810310843224322049L);
|
|
|
|
|
|
|
|
+ baseUserOrderVo.setGoodsAmount(memberCardOrderList.get(0).getPrice());
|
|
|
|
+ baseUserOrderVo.setPayAmount(memberCardOrderList.get(0).getPrice());
|
|
|
|
+
|
|
} else if (SchemeConst.FUEL_TYPE.equals(bo.getType())) {
|
|
} else if (SchemeConst.FUEL_TYPE.equals(bo.getType())) {
|
|
Scheme scheme = schemeMapper.querySchemeByFuel(bo);
|
|
Scheme scheme = schemeMapper.querySchemeByFuel(bo);
|
|
// 没有生效的套餐抛出异常
|
|
// 没有生效的套餐抛出异常
|
|
AssertUtils.notNull(scheme, ErrorCode.SCHEME_NOT_EXIST);
|
|
AssertUtils.notNull(scheme, ErrorCode.SCHEME_NOT_EXIST);
|
|
-
|
|
|
|
fuelPackageOrderList = fuelPackageMapper.queryOrderByFuelPackageId(bo, 1810310843224322049L);
|
|
fuelPackageOrderList = fuelPackageMapper.queryOrderByFuelPackageId(bo, 1810310843224322049L);
|
|
|
|
+
|
|
|
|
+ baseUserOrderVo.setGoodsAmount(fuelPackageOrderList.get(0).getPrice());
|
|
|
|
+ baseUserOrderVo.setPayAmount(fuelPackageOrderList.get(0).getPrice());
|
|
}
|
|
}
|
|
|
|
|
|
- // TODO 生成一个假数据
|
|
|
|
- BaseUserOrderVo baseUserOrderVo = new BaseUserOrderVo();
|
|
|
|
|
|
+ // 设置订单信息
|
|
baseUserOrderVo.setMemberCardList(memberCardOrderList);
|
|
baseUserOrderVo.setMemberCardList(memberCardOrderList);
|
|
baseUserOrderVo.setFuelPackageList(fuelPackageOrderList);
|
|
baseUserOrderVo.setFuelPackageList(fuelPackageOrderList);
|
|
|
|
+ baseUserOrderVo.setStatus(BaseUserOrderStatus.UNPAID);
|
|
|
|
+ baseUserOrderVo.setDiscountAmount(new BigDecimal(0));
|
|
|
|
+
|
|
|
|
+ // 插入订单,返回订单id
|
|
|
|
+ BaseUserOrder convert = MapstructUtils.convert(baseUserOrderVo, BaseUserOrder.class);
|
|
|
|
+ AssertUtils.notNull(convert, ErrorCode.ORDER_NO_EXIST);
|
|
|
|
+ convert.setBaseUserId(SecurityUser.getUserId());
|
|
|
|
+ // todo 后期写活
|
|
|
|
+ convert.setAgentMerId(1810310843224322049L);
|
|
|
|
+ convert.setBaseUserId(SecurityUser.getUserId());
|
|
|
|
+ baseUserOrderMapper.insert(convert);
|
|
|
|
+ baseUserOrderVo.setId(convert.getId());
|
|
|
|
+ baseUserOrderVo.setCreateTime(convert.getCreateTime());
|
|
|
|
+
|
|
|
|
+ // 生成订单详情
|
|
|
|
+ BaseUserOrderDetail baseUserOrderDetail = new BaseUserOrderDetail();
|
|
|
|
+ baseUserOrderDetail.setAgentId(1810310843224322049L);
|
|
|
|
+ baseUserOrderDetail.setGoodsType(bo.getType());
|
|
|
|
+ baseUserOrderDetail.setGoodsId(bo.getId());
|
|
|
|
+ baseUserOrderDetail.setBaseUserOrderId(convert.getId());
|
|
|
|
+ // TODO: 这里因为是单个商品购买,所以只需要输入1即可,后续别的地方需要活用
|
|
|
|
+ baseUserOrderDetail.setGoodsCount(1);
|
|
|
|
+ baseUserOrderDetail.setBaseUserId(SecurityUser.getUserId());
|
|
|
|
+
|
|
|
|
+ // 插入会员卡信息或者插入燃料包信息
|
|
|
|
+ if (SchemeConst.MEMEBER_TYPE.equals(bo.getType())) {
|
|
|
|
+ baseUserOrderDetailMapper.insert(baseUserOrderDetail);
|
|
|
|
+ } else if (SchemeConst.FUEL_TYPE.equals(bo.getType())) {
|
|
|
|
+ baseUserOrderDetailMapper.insert(baseUserOrderDetail);
|
|
|
|
+ }
|
|
|
|
|
|
return baseUserOrderVo;
|
|
return baseUserOrderVo;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 消费mq消息,拿到订单支付状态,修改订单状态
|
|
|
|
+ */
|
|
|
|
+// @Override
|
|
|
|
+// public void updateOrderStatus(BaseUserOrder baseUserOrder) {
|
|
|
|
+// if (BaseUserOrderStatus.PAID.equals(baseUserOrder.getStatus())) {
|
|
|
|
+// baseUserOrderMapper.updateOrderStatus(baseUserOrder);
|
|
|
|
+// } else {
|
|
|
|
+// throw new ServerException("订单状态异常");
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|