|
@@ -411,6 +411,32 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_CREATE)
|
|
|
public TradeOrderDO createOrder(Long userId, AppTradeOrderCreateReqVO createReqVO) {
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ QueryWrapper<OrderPercentageDO> queryWrapper = new QueryWrapper<>();
|
|
|
+ OrderPercentageDO orderPercentageDO = orderPercentageMapper.selectOne(queryWrapper);
|
|
|
+
|
|
|
+ * 毛利 = 成本 * 0.38... (推广费用)
|
|
|
+ */
|
|
|
+ String grossProfitPerc = orderPercentageDO.getGrossProfitPerc();
|
|
|
+ float grossProfitPercFloat = Float.parseFloat(grossProfitPerc);
|
|
|
+ if(grossProfitPercFloat>1){
|
|
|
+ throw new RuntimeException("商品毛利值,占利润比例异常,达到"+grossProfitPerc+"!!");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ * 购物本人自得 百分比
|
|
|
+ */
|
|
|
+ String grossProfitUserQuotaPerc = orderPercentageDO.getGrossProfitUserQuotaPerc();
|
|
|
+ float grossProfitUserQuotaPercFloat = Float.parseFloat(grossProfitUserQuotaPerc);
|
|
|
+ if(grossProfitUserQuotaPercFloat>0.5){
|
|
|
+ throw new RuntimeException("消费本人获得积分,占毛利比例异常,达到"+grossProfitUserQuotaPerc+"!!");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
List<AppTradeOrderSettlementReqVO.Item> productSkuList = createReqVO.getItems();
|
|
@@ -609,67 +635,67 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
boolean caculateFreezeAmount = false;
|
|
|
|
|
|
|
|
|
- if(caculateFreezeAmount){
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- QueryWrapper<OrderPercentageDO> queryWrapper = new QueryWrapper<>();
|
|
|
- OrderPercentageDO orderPercentageDO = orderPercentageMapper.selectOne(queryWrapper);
|
|
|
-
|
|
|
- * 毛利 = 成本 * 0.38... (推广费用)
|
|
|
- */
|
|
|
- String grossProfitPerc = orderPercentageDO.getGrossProfitPerc();
|
|
|
-
|
|
|
- * 推广-推荐人额度 百分比
|
|
|
- */
|
|
|
- String grossProfitAncestorQuotaPerc = orderPercentageDO.getGrossProfitAncestorQuotaPerc();
|
|
|
-
|
|
|
- for(Map<String,Object> m:orderMapList){
|
|
|
- TradeOrderDO order = (TradeOrderDO)(m.get("order"));
|
|
|
-
|
|
|
- List<Long> skuList = new ArrayList<>();
|
|
|
-
|
|
|
- List<TradeOrderItemDO> TradeOrderItemList = tradeOrderItemMapper.selectList("order_id", order.getId());
|
|
|
- for (TradeOrderItemDO tradeOrderItemDO : TradeOrderItemList) {
|
|
|
- Long skuId = tradeOrderItemDO.getSkuId();
|
|
|
- skuList.add(skuId);
|
|
|
- }
|
|
|
-
|
|
|
- List<ProductSkuDO> productSkuDOS = productSkuMapper.selectBatchIds(skuList);
|
|
|
- Map<Long,ProductSkuDO> skuDOMap = new HashMap<Long,ProductSkuDO>();
|
|
|
- for (ProductSkuDO productSkuDO : productSkuDOS) {
|
|
|
- skuDOMap.put(productSkuDO.getId(),productSkuDO);
|
|
|
- }
|
|
|
-
|
|
|
- Long totalFreezeAmount = 0l;
|
|
|
- for (TradeOrderItemDO tradeOrderItemDO : TradeOrderItemList) {
|
|
|
- ProductSkuDO productSkuDO = skuDOMap.get(tradeOrderItemDO.getSkuId());
|
|
|
-
|
|
|
- Integer promotionExpenses = (productSkuDO.getPrice()-productSkuDO.getCostPrice())
|
|
|
- *tradeOrderItemDO.getCount();
|
|
|
-
|
|
|
-
|
|
|
- Long itemFreezeAmount =
|
|
|
- promotionExpenses2GrossProfitAncestorQuota(promotionExpenses,
|
|
|
- grossProfitPerc,
|
|
|
- grossProfitAncestorQuotaPerc
|
|
|
- );
|
|
|
-
|
|
|
-
|
|
|
- TradeOrderItemDO toid = new TradeOrderItemDO();
|
|
|
- toid.setId(tradeOrderItemDO.getId());
|
|
|
- toid.setIncreaseIntegral(itemFreezeAmount);
|
|
|
- tradeOrderItemMapper.updateById(toid);
|
|
|
-
|
|
|
- totalFreezeAmount+=itemFreezeAmount;
|
|
|
- }
|
|
|
-
|
|
|
- Long tradeOrderId = order.getId();
|
|
|
- String OrderNum =order.getNo();
|
|
|
- integralService.updateUserIntegral(userId, CaclEnum.ORDER_PAY_INTEGRAL, payPoints*(-1),totalFreezeAmount,tradeOrderId,OrderNum);
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
return virtualOrder;
|
|
|
}
|
|
@@ -836,8 +862,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
* 毛利 = 成本 * 0.38... (推广费用)
|
|
|
*/
|
|
|
String grossProfitPerc = orderPercentageDO.getGrossProfitPerc();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- * 推广-推荐人额度 百分比
|
|
|
+ * 购物本人自得 百分比
|
|
|
*/
|
|
|
String grossProfitUserQuotaPerc = orderPercentageDO.getGrossProfitUserQuotaPerc();
|
|
|
|