|
@@ -4,7 +4,11 @@ import cn.hutool.core.date.LocalDateTimeUtil;
|
|
import cn.hutool.core.util.NumberUtil;
|
|
import cn.hutool.core.util.NumberUtil;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.qs.mp.admin.domain.Goods;
|
|
|
|
+import com.qs.mp.admin.domain.GoodsSku;
|
|
import com.qs.mp.admin.domain.vo.ShippingTemplateCalculateVO;
|
|
import com.qs.mp.admin.domain.vo.ShippingTemplateCalculateVO;
|
|
|
|
+import com.qs.mp.admin.service.IGoodsService;
|
|
|
|
+import com.qs.mp.admin.service.IGoodsSkuService;
|
|
import com.qs.mp.channel.domain.ChannelOrder;
|
|
import com.qs.mp.channel.domain.ChannelOrder;
|
|
import com.qs.mp.channel.domain.param.OrderPayParam;
|
|
import com.qs.mp.channel.domain.param.OrderPayParam;
|
|
import com.qs.mp.common.core.domain.AjaxResult;
|
|
import com.qs.mp.common.core.domain.AjaxResult;
|
|
@@ -90,6 +94,12 @@ public class UserDeliverOrderController extends BaseApiController {
|
|
@Autowired
|
|
@Autowired
|
|
private IShippingTemplateService shippingTemplateService;
|
|
private IShippingTemplateService shippingTemplateService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private IGoodsService goodsService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IGoodsSkuService goodsSkuService;
|
|
|
|
+
|
|
@Value("${shipping.user}")
|
|
@Value("${shipping.user}")
|
|
public Long shippingTemplateId;
|
|
public Long shippingTemplateId;
|
|
|
|
|
|
@@ -175,9 +185,43 @@ public class UserDeliverOrderController extends BaseApiController {
|
|
Integer orderAmt = 0;
|
|
Integer orderAmt = 0;
|
|
Integer freightAmt = 0;
|
|
Integer freightAmt = 0;
|
|
|
|
|
|
- List<UserPrizeStorage> prizeStorageList = userPrizeStorageService.list(new LambdaQueryWrapper<UserPrizeStorage>()
|
|
|
|
- .eq(UserPrizeStorage::getUserId, userId).eq(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.NOT_DISTRIBUTED)
|
|
|
|
- .in(UserPrizeStorage::getStorageId, param.getIds()));
|
|
|
|
|
|
+
|
|
|
|
+ // 商品数量
|
|
|
|
+ int goodsNum = 0;
|
|
|
|
+ List<UserPrizeStorage> prizeStorageList = new ArrayList<>();
|
|
|
|
+ if (DeliverOrderResourceEnum.PAYMENT.equals(param.getResource())) {
|
|
|
|
+ // 现金支付,设置金额信息
|
|
|
|
+ if (Objects.isNull(param.getGoodsId()) || Objects.isNull(param.getNum())) {
|
|
|
|
+ return AjaxResult.error("商品信息不能为空");
|
|
|
|
+ }
|
|
|
|
+ goodsNum = param.getNum();
|
|
|
|
+ // 获取商品信息
|
|
|
|
+ Goods goods = goodsService.getById(param.getGoodsId());
|
|
|
|
+ GoodsSku goodsSku = goodsSkuService.getById(param.getSkuId());
|
|
|
|
+ if (Objects.isNull(goods)) {
|
|
|
|
+ return AjaxResult.error("商品不存在");
|
|
|
|
+ }
|
|
|
|
+ // 封装商品信息出参
|
|
|
|
+ UserPrizeStorage prizeStorage = new UserPrizeStorage();
|
|
|
|
+ prizeStorage.setGoodsId(goods.getGoodsId());
|
|
|
|
+ prizeStorage.setPicUrl(goods.getPicUrl());
|
|
|
|
+ prizeStorage.setTitle(goods.getTitle());
|
|
|
|
+ prizeStorage.setGoodsNum(goodsNum);
|
|
|
|
+ if (Objects.nonNull(goodsSku)) {
|
|
|
|
+ prizeStorage.setPicUrl(goodsSku.getPicUrl());
|
|
|
|
+ prizeStorage.setSkuId(goodsSku.getSkuId());
|
|
|
|
+ prizeStorage.setProperties(goodsSku.getProperties());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ prizeStorageList.add(prizeStorage);
|
|
|
|
+ orderSettleVO.setResource(DeliverOrderResourceEnum.PAYMENT);
|
|
|
|
+ }else {
|
|
|
|
+ prizeStorageList = userPrizeStorageService.list(new LambdaQueryWrapper<UserPrizeStorage>()
|
|
|
|
+ .eq(UserPrizeStorage::getUserId, userId).eq(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.NOT_DISTRIBUTED)
|
|
|
|
+ .in(UserPrizeStorage::getStorageId, param.getIds()));
|
|
|
|
+ goodsNum = prizeStorageList.stream().mapToInt(UserPrizeStorage::getGoodsNum).sum();
|
|
|
|
+ orderSettleVO.setResource(DeliverOrderResourceEnum.DELIVER);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
// 计算运费
|
|
// 计算运费
|
|
@@ -192,7 +236,6 @@ public class UserDeliverOrderController extends BaseApiController {
|
|
orderSettleVO.setFreightType(shippingTemplateCalculateVO.getType());
|
|
orderSettleVO.setFreightType(shippingTemplateCalculateVO.getType());
|
|
|
|
|
|
if (ShippingTemplateRuleTypeEnum.SHIP.getValue().equals(shippingTemplateCalculateVO.getType())) {
|
|
if (ShippingTemplateRuleTypeEnum.SHIP.getValue().equals(shippingTemplateCalculateVO.getType())) {
|
|
- int goodsNum = prizeStorageList.stream().mapToInt(UserPrizeStorage::getGoodsNum).sum();
|
|
|
|
// 计算运费
|
|
// 计算运费
|
|
freightAmt = shippingTemplateService.calculateFreightAmt(goodsNum,shippingTemplateCalculateVO);
|
|
freightAmt = shippingTemplateService.calculateFreightAmt(goodsNum,shippingTemplateCalculateVO);
|
|
}
|
|
}
|