From 5d934acaa19edb9f0b43972f991cc1d1e2b6ffce Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 15 Jul 2021 11:03:47 +0800
Subject: [PATCH] fix
---
gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java | 52 ++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 40 insertions(+), 12 deletions(-)
diff --git a/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java b/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
index 1ae3967..27e1bf8 100644
--- a/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
+++ b/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
@@ -1,12 +1,15 @@
package com.xzx.gc.order.service;
import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xzx.gc.common.constant.Constants;
import com.xzx.gc.common.exception.RestException;
import com.xzx.gc.common.utils.IdUtils;
+import com.xzx.gc.common.utils.LocationUtils;
import com.xzx.gc.entity.*;
import com.xzx.gc.order.dto.AddJhyOrderDto;
import com.xzx.gc.order.dto.JhyOrderConfirmDto;
@@ -55,17 +58,25 @@
@Autowired
private IdUtils idUtils;
+ @Autowired
+ private DistribService distribService;
+
public void addJhyOrder(AddJhyOrderDto orderDto) {
JhyInfo jhyInfo = jhyInfoMapper.selectJhyInfoByUserId(orderDto.getUserId());
if (jhyInfo != null && JhyInfo.CHECK_PASS.equals(jhyInfo.getStatus())) {
throw new RestException(-3, "集货员不能下单");
}
- // TODO 判断地址附近500米是否有集物员
+ AddressInfo addressInfo = addressMapper.selectByPrimaryKey(orderDto.getAddressId());
+
+ List<JhyInfo> jhyInfos = jhyInfoMapper.selectJhyInfoListInAddressRange(addressInfo.getAddressId());
+ if (CollUtil.isEmpty(jhyInfos)) {
+ throw new RestException(-3, "该区域暂无集物员");
+ }
+
String orderNo = idUtils.generate("JW", 10);
JhyOrder jhyOrder = new JhyOrder();
- AddressInfo addressInfo = addressMapper.selectByPrimaryKey(orderDto.getAddressId());
jhyOrder.setOrderNo(orderNo);
jhyOrder.setArea(addressInfo.getAddressArea());
@@ -155,7 +166,12 @@
throw new RestException(-3, "无权限操作");
}
- order.setStatus(JhyOrder.ORDER_STATUS_CANCEL);
+ if (userId.equals(order.getJhyId())) {
+ order.setStatus(JhyOrder.ORDER_STATUS_WAITING);
+ } else {
+ order.setStatus(JhyOrder.ORDER_STATUS_CANCEL);
+ }
+
jhyOrderMapper.updateByPrimaryKey(order);
}
@@ -168,9 +184,10 @@
BigDecimal totalScore = BigDecimal.ZERO;
for (JhyOrderConfirmItemsDto item : confirmDto.getItems()) {
JhyOrderItems orderItem = jhyOrderItemsMapper.selectByPrimaryKey(item.getId());
- BigDecimal total = orderItem.getPrice().multiply(BigDecimal.valueOf(40)).multiply(new BigDecimal(item.getWeight()));
+ BigDecimal weight = StrUtil.isNotBlank(item.getWeight()) ? new BigDecimal(item.getWeight()) : BigDecimal.ZERO;
+ BigDecimal total = orderItem.getPrice().multiply(BigDecimal.valueOf(40)).multiply(weight);
orderItem.setScore(total.setScale(0, BigDecimal.ROUND_DOWN).toString());
- orderItem.setWeight(StrUtil.isNotBlank(item.getWeight()) ? new BigDecimal(item.getWeight()) : BigDecimal.ZERO);
+ orderItem.setWeight(weight);
jhyOrderItemsMapper.updateByPrimaryKey(orderItem);
totalScore = totalScore.add(total);
@@ -192,20 +209,31 @@
jhyScoreDetail.setOrderNo(order.getOrderNo());
jhyScoreDetail.setUserId(order.getJhyId());
jhyScoreDetail.setType(ScoreDetails.SCORE_TYPE_PAY);
- jhyScoreDetail.setChangeScore(totalScore.negate());
- jhyScoreDetail.setOriginalScore(jhyScore);
- jhyScoreDetail.setCurrentScore(jhyScore.subtract(totalScore));
+ jhyScoreDetail.setChangeScore(totalScore.negate().setScale( 0, BigDecimal.ROUND_DOWN ));
+ jhyScoreDetail.setOriginalScore(jhyScore.setScale( 0, BigDecimal.ROUND_DOWN ));
+ jhyScoreDetail.setCurrentScore(jhyScore.subtract(totalScore).setScale( 0, BigDecimal.ROUND_DOWN ));
+ jhyScoreDetail.setCreatedTime(new Date());
scoreDetailsMapper.insert(jhyScoreDetail);
+
+ jhyAccount.setCollectScore(jhyScore.subtract(totalScore).setScale( 0, BigDecimal.ROUND_DOWN ).toString());
+ accountMapper.updateByPrimaryKey(jhyAccount);
AccountInfo userAccount = accountMapper.selectAccountInfoByUserId(order.getUserId());
BigDecimal userScore = StrUtil.isBlank(userAccount.getCollectScore()) ? BigDecimal.ZERO : new BigDecimal(userAccount.getCollectScore());
ScoreDetails userScoreDetail = new ScoreDetails();
userScoreDetail.setOrderNo(order.getOrderNo());
- userScoreDetail.setUserId(order.getJhyId());
+// userScoreDetail.setUserId(order.getJhyId());
+ userScoreDetail.setUserId(order.getUserId());
userScoreDetail.setType(ScoreDetails.SCORE_TYPE_EXCHANGE);
- userScoreDetail.setChangeScore(totalScore);
- userScoreDetail.setOriginalScore(userScore);
- userScoreDetail.setCurrentScore(userScore.add(totalScore));
+ userScoreDetail.setChangeScore(totalScore.setScale( 0, BigDecimal.ROUND_DOWN ));
+ userScoreDetail.setOriginalScore(userScore.setScale( 0, BigDecimal.ROUND_DOWN ));
+ userScoreDetail.setCurrentScore(userScore.add(totalScore).setScale( 0, BigDecimal.ROUND_DOWN ));
+ userScoreDetail.setCreatedTime(new Date());
scoreDetailsMapper.insert(userScoreDetail);
+
+ userAccount.setCollectScore(userScore.add(totalScore).setScale( 0, BigDecimal.ROUND_DOWN ).toString());
+ accountMapper.updateByPrimaryKey(userAccount);
+
+ distribService.distribRecord(order.getId(), confirmDto.getUserId());
}
}
--
Gitblit v1.9.1