|
@@ -71,6 +71,7 @@ import com.zhongzheng.modules.user.domain.UserSubscribe;
|
|
|
import com.zhongzheng.modules.user.service.IUserService;
|
|
|
import com.zhongzheng.modules.user.vo.UserSubscribeVo;
|
|
|
import com.zhongzheng.modules.user.vo.UserVo;
|
|
|
+import net.sf.jsqlparser.statement.select.Top;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
@@ -179,6 +180,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
@Value("${oldSys.host}")
|
|
|
private String OLD_SYS_HOST;
|
|
|
|
|
|
+ @Value("${oldOrder.finishOrder}")
|
|
|
+ private String FINISH_ORDER;
|
|
|
+
|
|
|
@Override
|
|
|
public TopOldOrderVo queryById(String orderSn) {
|
|
|
//查询视图 v_top_order
|
|
@@ -198,8 +202,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
}
|
|
|
//业务分类
|
|
|
TopOldOrderGoods orderGoods = topOrderGoodsService.getOne(new LambdaQueryWrapper<TopOldOrderGoods>().eq(TopOldOrderGoods::getOrderSn, orderVo.getOrderSn()).last("limit 1"));
|
|
|
- orderVo.setSchemeName(orderGoods.getBusinessFullName().substring(0,4));
|
|
|
- }else {
|
|
|
+ orderVo.setSchemeName(orderGoods.getBusinessFullName().substring(0, 4));
|
|
|
+ } else {
|
|
|
orderVo.setSchemeName("学校业务");
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(orderVo.getOrderReceived()) && ObjectUtils.isNotNull(orderVo.getOrderRefunded())) {
|
|
@@ -217,16 +221,14 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
orderVoList.forEach(item -> {
|
|
|
List<String> businessNames = baseMapper.queryBusinessBySn(item.getOrderSn());
|
|
|
item.setBusinessNames(businessNames);
|
|
|
- if (item.getOrderFrom() == 2) {
|
|
|
- //B端订单转账凭证
|
|
|
- List<TopOldOrderAttachment> list = topOrderAttachmentService
|
|
|
- .list(new LambdaQueryWrapper<TopOldOrderAttachment>()
|
|
|
- .eq(TopOldOrderAttachment::getOrderSn, item.getOrderSn())
|
|
|
- .eq(TopOldOrderAttachment::getAttachmentType, 1)
|
|
|
- .eq(TopOldOrderAttachment::getStatus, 1));
|
|
|
- if (CollectionUtils.isNotEmpty(list)) {
|
|
|
- item.setAttachmentList(list.stream().map(x -> BeanUtil.toBean(x, TopOldOrderAttachmentVo.class)).collect(Collectors.toList()));
|
|
|
- }
|
|
|
+ //订单转账凭证
|
|
|
+ List<TopOldOrderAttachment> attachmentList = topOrderAttachmentService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderAttachment>()
|
|
|
+ .eq(TopOldOrderAttachment::getOrderSn, item.getOrderSn())
|
|
|
+ .eq(TopOldOrderAttachment::getAttachmentType, 1)
|
|
|
+ .eq(TopOldOrderAttachment::getStatus, 1));
|
|
|
+ if (CollectionUtils.isNotEmpty(attachmentList)) {
|
|
|
+ item.setAttachmentList(attachmentList.stream().map(x -> BeanUtil.toBean(x, TopOldOrderAttachmentVo.class)).collect(Collectors.toList()));
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(item.getOrderReceived()) && ObjectUtils.isNotNull(item.getOrderRefunded())) {
|
|
|
item.setOrderPractical(item.getOrderReceived().subtract(item.getOrderRefunded()));
|
|
@@ -284,7 +286,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
.eq(TopCostTp::getTenantId, bo.getTenantId()).eq(TopCostTp::getDefaultStatus, 1).last("limit 1"));
|
|
|
if (ObjectUtils.isNotNull(costTp)) {
|
|
|
TopCostTpVo topCostTpVo = BeanUtil.toBean(costTp, TopCostTpVo.class);
|
|
|
- List<TopCostTpItemVo> itemVoList = new ArrayList<>();
|
|
|
//成本项
|
|
|
BigDecimal costTotal = new BigDecimal("0.00");//成本
|
|
|
BigDecimal profitTotal = new BigDecimal("0.00"); //盈亏
|
|
@@ -328,7 +329,13 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
}
|
|
|
costTotal = costTotal.add(cost);
|
|
|
profitTotal = profitTotal.add(profit);
|
|
|
- itemVoList.add(BeanUtil.toBean(topCostTpItem, TopCostTpItemVo.class));
|
|
|
+ }
|
|
|
+ List<TopCostTpItem> costTpItemList = topCostTpItemService
|
|
|
+ .list(new LambdaQueryWrapper<TopCostTpItem>()
|
|
|
+ .eq(TopCostTpItem::getTpId, costTp.getTpId())
|
|
|
+ .eq(TopCostTpItem::getStatus, 1));
|
|
|
+ if (CollectionUtils.isNotEmpty(costTpItemList)) {
|
|
|
+ List<TopCostTpItemVo> itemVoList = costTpItemList.stream().map(x -> BeanUtil.toBean(x, TopCostTpItemVo.class)).collect(Collectors.toList());
|
|
|
topCostTpVo.setItemList(itemVoList);
|
|
|
}
|
|
|
add.setOrderCost(costTotal);
|
|
@@ -350,7 +357,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
List<TopOldOrderGoods> collect = bo.getOrderGoodsList().stream().map(item -> BeanUtil.toBean(item, TopOldOrderGoods.class)).collect(Collectors.toList());
|
|
|
//学员身份证加密
|
|
|
collect.forEach(x -> {
|
|
|
- if (ObjectUtils.isNotNull(x.getUserCard())){
|
|
|
+ if (ObjectUtils.isNotNull(x.getUserCard())) {
|
|
|
x.setUserCard(EncryptHandler.encrypt(x.getUserCard()));
|
|
|
}
|
|
|
x.setCheckStatus(0);//待审核
|
|
@@ -399,186 +406,196 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean editOrder(TopOldOrderAddBo bo) {
|
|
|
//校验订单号
|
|
|
TopOldOrder order = baseMapper.getOrderBySn(bo.getOrderSn());
|
|
|
- if (ObjectUtils.isNull(order)){
|
|
|
- throw new CustomException("订单号有误:"+bo.getOrderSn());
|
|
|
+ if (ObjectUtils.isNull(order)) {
|
|
|
+ throw new CustomException("订单号有误:" + bo.getOrderSn());
|
|
|
}
|
|
|
- if (order.getCheckStatus() == 1){
|
|
|
- throw new CustomException("订单已通过审核,修改订单请重新提审:"+bo.getOrderSn());
|
|
|
+ if (order.getCheckStatus() == 1) {
|
|
|
+ throw new CustomException("订单已通过审核,修改订单请重新提审:" + bo.getOrderSn());
|
|
|
}
|
|
|
|
|
|
TopOldOrder edit = BeanUtil.toBean(bo, TopOldOrder.class);
|
|
|
validEntityBeforeSave(edit);
|
|
|
edit.setCreateTime(DateUtils.getNowTime());
|
|
|
edit.setUpdateTime(DateUtils.getNowTime());
|
|
|
- // 获取企业默认成本模板
|
|
|
- TopCostTp costTp = topCostTpService.getOne(new LambdaQueryWrapper<TopCostTp>()
|
|
|
- .eq(TopCostTp::getTenantId, bo.getTenantId()).eq(TopCostTp::getDefaultStatus, 1).last("limit 1"));
|
|
|
- if (ObjectUtils.isNotNull(costTp)) {
|
|
|
- TopCostTpVo topCostTpVo = BeanUtil.toBean(costTp, TopCostTpVo.class);
|
|
|
- List<TopCostTpItemVo> itemVoList = new ArrayList<>();
|
|
|
- //成本项
|
|
|
- BigDecimal costTotal = new BigDecimal("0.00");//成本
|
|
|
- BigDecimal profitTotal = new BigDecimal("0.00"); //盈亏
|
|
|
- for (TopOldOrderGoodsAddBo orderGoods : bo.getOrderGoodsList()) {
|
|
|
- BigDecimal goodsPrice = orderGoods.getGoodsRealPrice();
|
|
|
- List<TopCostTpItem> items = topCostTpItemService.getCostByBusiness(orderGoods.getBusinessFullName(), costTp.getTpId());
|
|
|
- if (CollectionUtils.isEmpty(items)) {
|
|
|
- //匹配不到成本项
|
|
|
- continue;
|
|
|
- }
|
|
|
- //根据订单金额匹配成本阶梯
|
|
|
- List<TopCostTpItem> tpItems = items.stream().filter(x ->
|
|
|
- (ObjectUtils.isNull(x.getMinValue()) && ObjectUtils.isNull(x.getMaxValue()))
|
|
|
- || (goodsPrice.compareTo(x.getMinValue()) > 0 && goodsPrice.compareTo(x.getMaxValue()) < 0)
|
|
|
- || (goodsPrice.compareTo(x.getMinValue()) == 0 && goodsPrice.compareTo(x.getMaxValue()) == 0)).collect(Collectors.toList());
|
|
|
- if (CollectionUtils.isEmpty(tpItems)) {
|
|
|
- //匹配不到成本项阶梯值
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (tpItems.size() > 1) {
|
|
|
- //匹配到多个成本项
|
|
|
- throw new CustomException(String.format("成本项阶梯匹配有误!(有多个)请检查【%s,价格:%s】", orderGoods.getBusinessFullName(), goodsPrice.toString()));
|
|
|
- }
|
|
|
- //换算订单成本和盈亏
|
|
|
- TopCostTpItem topCostTpItem = tpItems.stream().findFirst().get();
|
|
|
- BigDecimal cost = new BigDecimal("0.00");//成本
|
|
|
- BigDecimal profit = new BigDecimal("0.00"); //盈亏
|
|
|
- BigDecimal bigDecimal = new BigDecimal("100");
|
|
|
- switch (topCostTpItem.getItemType()) {
|
|
|
- case 1://百分比
|
|
|
- BigDecimal divide = topCostTpItem.getTypeValue().divide(bigDecimal);
|
|
|
- cost = goodsPrice.multiply(divide);
|
|
|
- profit = goodsPrice.subtract(cost);
|
|
|
- break;
|
|
|
- case 2://固定金额
|
|
|
- cost = topCostTpItem.getTypeValue();
|
|
|
- profit = goodsPrice.subtract(cost);
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- costTotal = costTotal.add(cost);
|
|
|
- profitTotal = profitTotal.add(profit);
|
|
|
- itemVoList.add(BeanUtil.toBean(topCostTpItem, TopCostTpItemVo.class));
|
|
|
- topCostTpVo.setItemList(itemVoList);
|
|
|
- }
|
|
|
- edit.setOrderCost(costTotal);
|
|
|
- edit.setOrderProfit(profitTotal);
|
|
|
- edit.setCostJson(JSONObject.toJSONString(topCostTpVo));
|
|
|
- }
|
|
|
- edit.setCheckStatus(0);//待审核
|
|
|
- edit.setRefundStatus(1);//退款状态:正常
|
|
|
- edit.setFinishStatus(0);//完单状态:未完单
|
|
|
//未收账款
|
|
|
if (ObjectUtils.isNull(bo.getOrderReceived()) || bo.getOrderReceived().compareTo(new BigDecimal("0.00")) == 0) {
|
|
|
edit.setOrderUncollected(bo.getPayPrice());
|
|
|
} else {
|
|
|
edit.setOrderUncollected(bo.getPayPrice().subtract(bo.getOrderReceived()));
|
|
|
}
|
|
|
- this.updateById(edit);
|
|
|
//订单商品
|
|
|
if (CollectionUtils.isNotEmpty(bo.getOrderGoodsList())) {
|
|
|
- //删除之前关联重新添加
|
|
|
- topOrderGoodsService.remove(new LambdaQueryWrapper<TopOldOrderGoods>().eq(TopOldOrderGoods::getOrderSn,edit.getOrderSn()));
|
|
|
- List<TopOldOrderGoods> collect = bo.getOrderGoodsList().stream().map(item -> BeanUtil.toBean(item, TopOldOrderGoods.class)).collect(Collectors.toList());
|
|
|
- //学员身份证加密
|
|
|
- collect.forEach(x -> {
|
|
|
- if (ObjectUtils.isNotNull(x.getUserCard())){
|
|
|
- x.setUserCard(EncryptHandler.encrypt(x.getUserCard()));
|
|
|
+ bo.getOrderGoodsList().forEach(item -> {
|
|
|
+ if (item.getCheckStatus() == 0) {
|
|
|
+ //新增
|
|
|
+ TopOldOrderGoods oldOrderGoods = BeanUtil.toBean(item, TopOldOrderGoods.class);
|
|
|
+ oldOrderGoods.setTenantId(edit.getTenantId());
|
|
|
+ oldOrderGoods.setStatus(1);
|
|
|
+ oldOrderGoods.setUserCard(EncryptHandler.encrypt(item.getUserCard()));
|
|
|
+ oldOrderGoods.setCheckStatus(order.getCheckStatus());
|
|
|
+ topOrderGoodsService.save(oldOrderGoods);
|
|
|
+ }else if (item.getCheckStatus() == -1){
|
|
|
+ //取消
|
|
|
+ topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
|
|
|
+ .set(TopOldOrderGoods::getCheckStatus,-1)
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn,item.getOrderSn())
|
|
|
+ .eq(TopOldOrderGoods::getSignId,item.getSignId()));
|
|
|
}
|
|
|
});
|
|
|
- topOrderGoodsService.saveBatch(collect);
|
|
|
}
|
|
|
|
|
|
//订单附件
|
|
|
if (CollectionUtils.isNotEmpty(bo.getOrderAttachmentList())) {
|
|
|
//删除之前关联重新添加
|
|
|
- topOrderAttachmentService.remove(new LambdaQueryWrapper<TopOldOrderAttachment>().eq(TopOldOrderAttachment::getOrderSn,edit.getOrderSn()));
|
|
|
+ topOrderAttachmentService.remove(new LambdaQueryWrapper<TopOldOrderAttachment>().eq(TopOldOrderAttachment::getOrderSn, edit.getOrderSn()));
|
|
|
List<TopOldOrderAttachment> collect = bo.getOrderAttachmentList().stream().map(item -> BeanUtil.toBean(item, TopOldOrderAttachment.class)).collect(Collectors.toList());
|
|
|
topOrderAttachmentService.saveBatch(collect);
|
|
|
}
|
|
|
-
|
|
|
+ //重新计算成本
|
|
|
+ if (StringUtils.isNotBlank(order.getCostJson())) {
|
|
|
+ recalculateCost(order.getCostJson(),edit);
|
|
|
+ }
|
|
|
+ this.updateById(edit);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ private void recalculateCost(String costJson, TopOldOrder order) {
|
|
|
+ TopCostTpVo topCostTpVo = JSON.parseObject(costJson, TopCostTpVo.class);
|
|
|
+ //成本项
|
|
|
+ BigDecimal costTotal = new BigDecimal("0.00");//成本
|
|
|
+ BigDecimal profitTotal = new BigDecimal("0.00"); //盈亏
|
|
|
+ List<TopOldOrderGoods> orderGoodsList = topOrderGoodsService.list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn, order.getOrderSn()).ne(TopOldOrderGoods::getCheckStatus, -1).eq(TopOldOrderGoods::getStatus, 1));
|
|
|
+ for (TopOldOrderGoods orderGoods : orderGoodsList) {
|
|
|
+ BigDecimal goodsPrice = orderGoods.getGoodsRealPrice();
|
|
|
+ List<TopCostTpItemVo> items = topCostTpVo.getItemList();
|
|
|
+ if (CollectionUtils.isEmpty(items)) {
|
|
|
+ //匹配不到成本项
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //根据订单金额匹配成本阶梯
|
|
|
+ List<TopCostTpItemVo> tpItems = items.stream().filter(x ->
|
|
|
+ (ObjectUtils.isNull(x.getMinValue()) && ObjectUtils.isNull(x.getMaxValue()))
|
|
|
+ || (goodsPrice.compareTo(x.getMinValue()) > 0 && goodsPrice.compareTo(x.getMaxValue()) < 0)
|
|
|
+ || (goodsPrice.compareTo(x.getMinValue()) == 0 && goodsPrice.compareTo(x.getMaxValue()) == 0)).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isEmpty(tpItems)) {
|
|
|
+ //匹配不到成本项阶梯值
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (tpItems.size() > 1) {
|
|
|
+ //匹配到多个成本项
|
|
|
+ throw new CustomException(String.format("成本项阶梯匹配有误!(有多个)请检查【%s,价格:%s】", orderGoods.getBusinessFullName(), goodsPrice.toString()));
|
|
|
+ }
|
|
|
+ //换算订单成本和盈亏
|
|
|
+ TopCostTpItemVo topCostTpItem = tpItems.stream().findFirst().get();
|
|
|
+ BigDecimal cost = new BigDecimal("0.00");//成本
|
|
|
+ BigDecimal profit = new BigDecimal("0.00"); //盈亏
|
|
|
+ BigDecimal bigDecimal = new BigDecimal("100");
|
|
|
+ switch (topCostTpItem.getItemType()) {
|
|
|
+ case 1://百分比
|
|
|
+ BigDecimal divide = topCostTpItem.getTypeValue().divide(bigDecimal);
|
|
|
+ cost = goodsPrice.multiply(divide);
|
|
|
+ profit = goodsPrice.subtract(cost);
|
|
|
+ break;
|
|
|
+ case 2://固定金额
|
|
|
+ cost = topCostTpItem.getTypeValue();
|
|
|
+ profit = goodsPrice.subtract(cost);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ costTotal = costTotal.add(cost);
|
|
|
+ profitTotal = profitTotal.add(profit);
|
|
|
+ }
|
|
|
+ order.setOrderCost(costTotal);
|
|
|
+ order.setOrderProfit(profitTotal);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean editOrderCheck(TopOldOrderAddBo bo) {
|
|
|
TopOldOrder order = baseMapper.getOrderBySn(bo.getOrderSn());
|
|
|
- if (ObjectUtils.isNull(order)){
|
|
|
- throw new CustomException("订单号有误:"+bo.getOrderSn());
|
|
|
+ if (ObjectUtils.isNull(order)) {
|
|
|
+ throw new CustomException("订单号有误:" + bo.getOrderSn());
|
|
|
}
|
|
|
- if (order.getOrderFrom() == 1){
|
|
|
- throw new CustomException("订单号无效:"+bo.getOrderSn());
|
|
|
+ if (order.getOrderFrom() == 1) {
|
|
|
+ throw new CustomException("订单号无效:" + bo.getOrderSn());
|
|
|
}
|
|
|
- if (CollectionUtils.isEmpty(bo.getOrderGoodsList())){
|
|
|
+ if (CollectionUtils.isEmpty(bo.getOrderGoodsList())) {
|
|
|
return false;
|
|
|
}
|
|
|
List<TopOldOrderGoods> add = new ArrayList<>();
|
|
|
List<Long> signIds = new ArrayList<>();
|
|
|
//订单学员情况
|
|
|
for (TopOldOrderGoodsAddBo orderGoods : bo.getOrderGoodsList()) {
|
|
|
- switch (orderGoods.getCheckStatus()){
|
|
|
+ switch (orderGoods.getCheckStatus()) {
|
|
|
case 0://新增
|
|
|
orderGoods.setCheckStatus(0);//待审核
|
|
|
- add.add(BeanUtil.toBean(orderGoods,TopOldOrderGoods.class));
|
|
|
+ TopOldOrderGoods oldOrderGoods = BeanUtil.toBean(orderGoods, TopOldOrderGoods.class);
|
|
|
+ oldOrderGoods.setUserCard(EncryptHandler.encrypt(oldOrderGoods.getUserCard()));
|
|
|
+ add.add(oldOrderGoods);
|
|
|
break;
|
|
|
case -1://删除
|
|
|
signIds.add(orderGoods.getSignId());
|
|
|
break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
- if (CollectionUtils.isNotEmpty(add)){
|
|
|
+ if (CollectionUtils.isNotEmpty(add)) {
|
|
|
topOrderGoodsService.saveBatch(add);
|
|
|
}
|
|
|
- if (CollectionUtils.isNotEmpty(signIds)){
|
|
|
+ if (CollectionUtils.isNotEmpty(signIds)) {
|
|
|
topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
|
|
|
- .set(TopOldOrderGoods::getCheckStatus,-1)//删除学员
|
|
|
- .eq(TopOldOrderGoods::getOrderSn,bo.getOrderSn())
|
|
|
- .in(TopOldOrderGoods::getSignId,signIds));
|
|
|
+ .set(TopOldOrderGoods::getCheckStatus, -1)//删除学员
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn, bo.getOrderSn())
|
|
|
+ .in(TopOldOrderGoods::getSignId, signIds));
|
|
|
}
|
|
|
//订单待审核
|
|
|
TopOldOrder oldOrder = BeanUtil.toBean(bo, TopOldOrder.class);
|
|
|
oldOrder.setOrderId(order.getOrderId());
|
|
|
oldOrder.setCheckStatus(0);//待审核
|
|
|
- oldOrder.setCheckRemark(bo.getOrderGoodsList().stream().map(x -> x.getSignId().toString()).collect(Collectors.joining()));
|
|
|
+ oldOrder.setCheckRemark(bo.getOrderGoodsList().stream().map(x -> x.getSignId().toString()).collect(Collectors.joining(",")));
|
|
|
+ //重新计算成本
|
|
|
+ if (StringUtils.isNotBlank(order.getCostJson())) {
|
|
|
+ recalculateCost(order.getCostJson(),oldOrder);
|
|
|
+ }
|
|
|
updateById(oldOrder);
|
|
|
|
|
|
- if (bo.getOrderBase() == 1){
|
|
|
+ if (bo.getOrderBase() == 1) {
|
|
|
//新系统订单
|
|
|
List<TopOldOrderGoods> list = topOrderGoodsService
|
|
|
.list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
.eq(TopOldOrderGoods::getOrderSn, bo.getOrderSn())
|
|
|
.eq(TopOldOrderGoods::getCheckStatus, -1));
|
|
|
- if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
//暂时关闭学员订单
|
|
|
list.forEach(item -> {
|
|
|
User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getIdCard, item.getUserCard()));
|
|
|
- if (ObjectUtil.isNull(user)){
|
|
|
+ if (ObjectUtil.isNull(user)) {
|
|
|
return;
|
|
|
}
|
|
|
List<Order> orderList = orderService
|
|
|
.list(new LambdaQueryWrapper<Order>()
|
|
|
- .eq(Order::getUserId, user.getUserId())
|
|
|
- .eq(Order::getInputOrderSn, oldOrder.getInputOrderSn())
|
|
|
- .eq(Order::getStatus, 1));
|
|
|
- if (CollectionUtils.isNotEmpty(orderList)){
|
|
|
+ .eq(Order::getUserId, user.getUserId())
|
|
|
+ .eq(Order::getInputOrderSn, oldOrder.getInputOrderSn())
|
|
|
+ .eq(Order::getStatus, 1));
|
|
|
+ if (CollectionUtils.isNotEmpty(orderList)) {
|
|
|
List<OrderGoods> orderGoods = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
|
|
|
.in(OrderGoods::getOrderSn, orderList.stream().map(Order::getOrderSn).collect(Collectors.toList()))
|
|
|
.eq(OrderGoods::getGoodsId, item.getGoodsId())
|
|
|
- .eq(OrderGoods::getStatus,1));
|
|
|
- if (CollectionUtils.isNotEmpty(orderGoods)){
|
|
|
+ .eq(OrderGoods::getStatus, 1));
|
|
|
+ if (CollectionUtils.isNotEmpty(orderGoods)) {
|
|
|
orderGoods.forEach(x -> x.setStatus(-1));
|
|
|
orderGoodsService.updateBatchById(orderGoods);
|
|
|
orderService.update(new LambdaUpdateWrapper<Order>()
|
|
|
- .set(Order::getStatus,-1)
|
|
|
- .in(Order::getOrderSn,orderGoods.stream().map(OrderGoods::getOrderSn).collect(Collectors.toList())));
|
|
|
+ .set(Order::getStatus, -1)
|
|
|
+ .in(Order::getOrderSn, orderGoods.stream().map(OrderGoods::getOrderSn).collect(Collectors.toList())));
|
|
|
}
|
|
|
}
|
|
|
});
|
|
@@ -692,20 +709,20 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
if (ObjectUtils.isNull(data)) {
|
|
|
//data 为空
|
|
|
list.forEach(x -> x.setStudyStatus("未开始"));
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
List<TopOldOrderStudyVo> studyVos = JSONArray.parseArray(JSONObject.toJSONString(data), TopOldOrderStudyVo.class);
|
|
|
list.forEach(item -> {
|
|
|
item.setStudyStatus("未开始");
|
|
|
TopOldOrderStudyVo studyVo = studyVos.stream().filter(x -> x.getUnderOrdeEnrollItemId().equals(item.getSignId())
|
|
|
&& x.getIdNum().equals(item.getUserCard())).findFirst().orElse(null);
|
|
|
if (ObjectUtils.isNotNull(studyVo) && ObjectUtils.isNotNull(studyVo.getStudyHours())) {
|
|
|
- if (ObjectUtils.isNull(studyVo.getStudyHours()) && studyVo.getStudyHours() == 0) {
|
|
|
- item.setStudyStatus("未开始");
|
|
|
- } else if (studyVo.getStudyHours() < studyVo.getTotalHours()) {
|
|
|
- item.setStudyStatus("学习中");
|
|
|
- } else {
|
|
|
- item.setStudyStatus("已结束");
|
|
|
- }
|
|
|
+ if (ObjectUtils.isNull(studyVo.getStudyHours()) && studyVo.getStudyHours() == 0) {
|
|
|
+ item.setStudyStatus("未开始");
|
|
|
+ } else if (studyVo.getStudyHours() < studyVo.getTotalHours()) {
|
|
|
+ item.setStudyStatus("学习中");
|
|
|
+ } else {
|
|
|
+ item.setStudyStatus("已结束");
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -752,29 +769,29 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
LambdaQueryWrapper<TopOldOrderGoods> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn());
|
|
|
wrapper.eq(TopOldOrderGoods::getStatus, 1);
|
|
|
- if (StringUtils.isNotBlank(oldOrder.getCheckRemark())){
|
|
|
- wrapper.in(TopOldOrderGoods::getSignId,Arrays.asList(oldOrder.getCheckRemark().split(",")));
|
|
|
+ if (StringUtils.isNotBlank(oldOrder.getCheckRemark())) {
|
|
|
+ wrapper.in(TopOldOrderGoods::getSignId, Arrays.asList(oldOrder.getCheckRemark().split(",")));
|
|
|
singIds = Arrays.stream(oldOrder.getCheckRemark().split(",")).collect(Collectors.toList());
|
|
|
}
|
|
|
List<TopOldOrderGoods> orderGoods = topOrderGoodsService.list(wrapper);
|
|
|
- if (CollectionUtils.isNotEmpty(orderGoods)){
|
|
|
+ if (CollectionUtils.isNotEmpty(orderGoods)) {
|
|
|
orderGoods.forEach(x -> x.setCheckStatus(bo.getCheckStatus()));
|
|
|
topOrderGoodsService.updateBatchById(orderGoods);
|
|
|
}
|
|
|
- if (CollectionUtils.isNotEmpty(singIds) && oldOrder.getOrderBase() == 1){
|
|
|
+ if (CollectionUtils.isNotEmpty(singIds) && oldOrder.getOrderBase() == 1) {
|
|
|
//处理退学学员 并且订单在新系统
|
|
|
- switch (bo.getCheckStatus()){
|
|
|
+ switch (bo.getCheckStatus()) {
|
|
|
case 1://审核通过
|
|
|
List<TopOldOrderGoods> list = topOrderGoodsService
|
|
|
.list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
- .eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn())
|
|
|
- .in(TopOldOrderGoods::getSignId, singIds)
|
|
|
- .eq(TopOldOrderGoods::getCheckStatus, -1));
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn())
|
|
|
+ .in(TopOldOrderGoods::getSignId, singIds)
|
|
|
+ .eq(TopOldOrderGoods::getCheckStatus, -1));
|
|
|
List<String> userNames = new ArrayList<>();
|
|
|
list.forEach(item -> {
|
|
|
User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getIdCard, item.getUserCard()));
|
|
|
userNames.add(user.getNickname());
|
|
|
- if (ObjectUtil.isNull(user)){
|
|
|
+ if (ObjectUtil.isNull(user)) {
|
|
|
return;
|
|
|
}
|
|
|
List<Order> orderList = orderService
|
|
@@ -782,18 +799,18 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
.eq(Order::getUserId, user.getUserId())
|
|
|
.eq(Order::getInputOrderSn, oldOrder.getInputOrderSn())
|
|
|
.eq(Order::getStatus, -1));
|
|
|
- if (CollectionUtils.isNotEmpty(orderList)){
|
|
|
+ if (CollectionUtils.isNotEmpty(orderList)) {
|
|
|
List<OrderGoods> orderGoodsList = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
|
|
|
.in(OrderGoods::getOrderSn, orderList.stream().map(Order::getOrderSn).collect(Collectors.toList()))
|
|
|
.eq(OrderGoods::getGoodsId, item.getGoodsId())
|
|
|
- .eq(OrderGoods::getStatus,-1));
|
|
|
- if (CollectionUtils.isNotEmpty(orderGoodsList)){
|
|
|
+ .eq(OrderGoods::getStatus, -1));
|
|
|
+ if (CollectionUtils.isNotEmpty(orderGoodsList)) {
|
|
|
//处理班级
|
|
|
classGradeUserService.update(new LambdaUpdateWrapper<ClassGradeUser>()
|
|
|
- .in(ClassGradeUser::getGradeId,
|
|
|
- orderGoodsList.stream().filter(x -> ObjectUtils.isNotNull(x.getGradeId())).map(OrderGoods::getGradeId).collect(Collectors.toList()))
|
|
|
- .eq(ClassGradeUser::getUserId,user.getUserId())
|
|
|
- .set(ClassGradeUser::getStatus,0));//移除班级
|
|
|
+ .in(ClassGradeUser::getGradeId,
|
|
|
+ orderGoodsList.stream().filter(x -> ObjectUtils.isNotNull(x.getGradeId())).map(OrderGoods::getGradeId).collect(Collectors.toList()))
|
|
|
+ .eq(ClassGradeUser::getUserId, user.getUserId())
|
|
|
+ .set(ClassGradeUser::getStatus, 0));//移除班级
|
|
|
}
|
|
|
}
|
|
|
});
|
|
@@ -802,40 +819,40 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
//消息通知教务
|
|
|
this.informRemind(userNames);
|
|
|
break;
|
|
|
- case 2: //审核未通过
|
|
|
- List<TopOldOrderGoods> list2 = topOrderGoodsService
|
|
|
- .list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
- .eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn())
|
|
|
- .in(TopOldOrderGoods::getSignId, singIds)
|
|
|
- .eq(TopOldOrderGoods::getCheckStatus, -1));
|
|
|
- list2.forEach(item -> {
|
|
|
- User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getIdCard, item.getUserCard()));
|
|
|
- if (ObjectUtil.isNull(user)){
|
|
|
- return;
|
|
|
- }
|
|
|
- List<Order> orderList = orderService
|
|
|
- .list(new LambdaQueryWrapper<Order>()
|
|
|
- .eq(Order::getUserId, user.getUserId())
|
|
|
- .eq(Order::getInputOrderSn, oldOrder.getInputOrderSn())
|
|
|
- .eq(Order::getStatus, -1));
|
|
|
- if (CollectionUtils.isNotEmpty(orderList)){
|
|
|
- List<OrderGoods> orderGoodsList = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
|
|
|
- .in(OrderGoods::getOrderSn, orderList.stream().map(Order::getOrderSn).collect(Collectors.toList()))
|
|
|
- .eq(OrderGoods::getGoodsId, item.getGoodsId())
|
|
|
- .eq(OrderGoods::getStatus,-1));
|
|
|
- if (CollectionUtils.isNotEmpty(orderGoodsList)){
|
|
|
- //改为正常
|
|
|
- orderGoodsList.forEach(x -> x.setStatus(1));
|
|
|
- orderGoodsService.updateBatchById(orderGoodsList);
|
|
|
- orderService.update(new LambdaUpdateWrapper<Order>()
|
|
|
- .set(Order::getStatus,1)
|
|
|
- .in(Order::getOrderSn,orderGoodsList.stream().map(OrderGoods::getOrderSn).collect(Collectors.toList())));
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- //清除标识IDs
|
|
|
- oldOrder.setCheckRemark("");
|
|
|
- break;
|
|
|
+ case 2: //审核未通过
|
|
|
+ List<TopOldOrderGoods> list2 = topOrderGoodsService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn())
|
|
|
+ .in(TopOldOrderGoods::getSignId, singIds)
|
|
|
+ .eq(TopOldOrderGoods::getCheckStatus, -1));
|
|
|
+ list2.forEach(item -> {
|
|
|
+ User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getIdCard, item.getUserCard()));
|
|
|
+ if (ObjectUtil.isNull(user)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Order> orderList = orderService
|
|
|
+ .list(new LambdaQueryWrapper<Order>()
|
|
|
+ .eq(Order::getUserId, user.getUserId())
|
|
|
+ .eq(Order::getInputOrderSn, oldOrder.getInputOrderSn())
|
|
|
+ .eq(Order::getStatus, -1));
|
|
|
+ if (CollectionUtils.isNotEmpty(orderList)) {
|
|
|
+ List<OrderGoods> orderGoodsList = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
|
|
|
+ .in(OrderGoods::getOrderSn, orderList.stream().map(Order::getOrderSn).collect(Collectors.toList()))
|
|
|
+ .eq(OrderGoods::getGoodsId, item.getGoodsId())
|
|
|
+ .eq(OrderGoods::getStatus, -1));
|
|
|
+ if (CollectionUtils.isNotEmpty(orderGoodsList)) {
|
|
|
+ //改为正常
|
|
|
+ orderGoodsList.forEach(x -> x.setStatus(1));
|
|
|
+ orderGoodsService.updateBatchById(orderGoodsList);
|
|
|
+ orderService.update(new LambdaUpdateWrapper<Order>()
|
|
|
+ .set(Order::getStatus, 1)
|
|
|
+ .in(Order::getOrderSn, orderGoodsList.stream().map(OrderGoods::getOrderSn).collect(Collectors.toList())));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //清除标识IDs
|
|
|
+ oldOrder.setCheckRemark("");
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -848,7 +865,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
params.put("sign", sign);
|
|
|
params.put("orderSn", bo.getOrderSn());
|
|
|
params.put("status", bo.getCheckStatus().toString());
|
|
|
- if (StringUtils.isNotBlank(bo.getCheckReason())){
|
|
|
+ if (StringUtils.isNotBlank(bo.getCheckReason())) {
|
|
|
params.put("remark", bo.getCheckReason());
|
|
|
}
|
|
|
params.put("auditor", bo.getLoginName());
|
|
@@ -867,14 +884,14 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
|
|
|
public void informRemind(List<String> userNames) {
|
|
|
//学员退学提醒
|
|
|
- List<InformRemindRelevance> remindRelevances = informRemindRelevanceService.list(new LambdaQueryWrapper<InformRemindRelevance>().eq(InformRemindRelevance::getType,1));
|
|
|
+ List<InformRemindRelevance> remindRelevances = informRemindRelevanceService.list(new LambdaQueryWrapper<InformRemindRelevance>().eq(InformRemindRelevance::getType, 1));
|
|
|
InformRemindVo informRemindVo = informRemindService.queryByName("学员退学提醒");
|
|
|
for (InformRemindRelevance remindVo : remindRelevances) {
|
|
|
SysUser sysUser = sysUserService.getById(remindVo.getRelevanceId());
|
|
|
- if (ObjectUtil.isNull(sysUser)){
|
|
|
+ if (ObjectUtil.isNull(sysUser)) {
|
|
|
continue;
|
|
|
}
|
|
|
- if (informRemindVo.getWayStatus().equals(1)) {
|
|
|
+ if (informRemindVo.getWayStatus().equals(1)) {
|
|
|
InformSysUserAddBo informUserAddBo = new InformSysUserAddBo();
|
|
|
informUserAddBo.setUserId(sysUser.getUserId());
|
|
|
informUserAddBo.setSendStatus(1);
|
|
@@ -884,7 +901,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
informUserAddBo.setRemindId(informRemindVo.getId());
|
|
|
informUserAddBo.setSystemStatus(1);
|
|
|
informUserAddBo.setRemind("学员退学提醒,请尽快处理");
|
|
|
- informUserAddBo.setText(String.format("学员【%s】已退学,请及时处理",userNames.stream().collect(Collectors.joining())));
|
|
|
+ informUserAddBo.setText(String.format("学员【%s】已退学,请及时处理", userNames.stream().collect(Collectors.joining())));
|
|
|
informSysUserService.insertByAddBo(informUserAddBo);
|
|
|
}
|
|
|
if (informRemindVo.getNoteStatus().equals(1) && StringUtils.isNotBlank(sysUser.getPhonenumber())) {
|
|
@@ -1309,11 +1326,11 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean finishOrder(TopFinishOrderBo bo) {
|
|
|
- //todo 完单角色校验
|
|
|
+ // 完单角色校验
|
|
|
if (CollectionUtils.isEmpty(bo.getOrderSnList())) {
|
|
|
throw new CustomException("订单号不能为空");
|
|
|
}
|
|
|
- if (ObjectUtils.isNotNull(bo.getLoginId())){
|
|
|
+ if (ObjectUtils.isNotNull(bo.getLoginId())) {
|
|
|
validFinish(bo);
|
|
|
}
|
|
|
bo.getOrderSnList().forEach(orderSn -> {
|
|
@@ -1377,6 +1394,23 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
}
|
|
|
);
|
|
|
|
|
|
+ //完单通知业务员
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ Long nowTime = DateUtils.getNowTime();
|
|
|
+ String sign = ToolsUtils.EncoderByMd5(nowTime+ "pubilc2022");
|
|
|
+ params.put("stamp", nowTime.toString());
|
|
|
+ params.put("sign", sign);
|
|
|
+ params.put("orderSn", bo.getOrderSnList().stream().collect(Collectors.joining()));
|
|
|
+ String respone = "";
|
|
|
+ try {
|
|
|
+ respone = HttpUtils.postFormBody(FINISH_ORDER, params);
|
|
|
+ if (!respone.contains("\"Status\":true")) {
|
|
|
+ throw new CustomException("旧系统完单接口请求错误");
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
+ log.error("旧系统完单接口请求错误" + respone);
|
|
|
+ throw new CustomException("旧系统完单接口请求错误");
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -1951,7 +1985,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
Long nowTime = DateUtils.getNowTime();
|
|
|
String ToBankConnetNum = "";
|
|
|
String orderSn = "10002304261108345450143";
|
|
|
- String sign = ToolsUtils.EncoderByMd5(orderSn+nowTime.toString()+"pubilc2022");
|
|
|
+ String sign = ToolsUtils.EncoderByMd5(orderSn + nowTime.toString() + "pubilc2022");
|
|
|
params.put("stamp", nowTime.toString());
|
|
|
params.put("sign", sign);
|
|
|
params.put("MainUniqueId", orderSn);
|
|
@@ -1960,21 +1994,21 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
params.put("ToBankTypeName", "招商银行深圳分行");
|
|
|
params.put("Money", "0.01");
|
|
|
params.put("TrainOrgId", "1");
|
|
|
- if(Validator.isNotEmpty(ToBankConnetNum)){
|
|
|
+ if (Validator.isNotEmpty(ToBankConnetNum)) {
|
|
|
params.put("ToBankConnetNum", ToBankConnetNum);
|
|
|
}
|
|
|
String respone = "";
|
|
|
System.out.println(params);
|
|
|
- String path = OLD_SYS_HOST+"/WitSystem/BussinessApi/NeedToPay";
|
|
|
+ String path = OLD_SYS_HOST + "/WitSystem/BussinessApi/NeedToPay";
|
|
|
try {
|
|
|
respone = HttpUtils.postFormBody(path, params);
|
|
|
System.out.println(respone);
|
|
|
if (!respone.contains("\"Status\":true")) {
|
|
|
|
|
|
- throw new CustomException("同步请求错误"+respone);
|
|
|
+ throw new CustomException("同步请求错误" + respone);
|
|
|
}
|
|
|
} catch (IOException e) {
|
|
|
- throw new CustomException("同步请求错误"+e.getMessage());
|
|
|
+ throw new CustomException("同步请求错误" + e.getMessage());
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
@@ -1991,23 +2025,23 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
.eq(TopOldSellerDiscount::getSellerKey, bo.getSellerKey())
|
|
|
.eq(TopOldSellerDiscount::getTenantId, bo.getTenantId())
|
|
|
.last("limit 1"));
|
|
|
- return BeanUtil.toBean(discount,TopSellerDiscountVo.class);
|
|
|
+ return BeanUtil.toBean(discount, TopSellerDiscountVo.class);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public TopOrderRevocationVo orderRevocation(TopOrderRevocationBo bo) {
|
|
|
TopOldOrder order = baseMapper.getOrderBySn(bo.getOrderSn());
|
|
|
- if (ObjectUtils.isNull(order)){
|
|
|
+ if (ObjectUtils.isNull(order)) {
|
|
|
throw new CustomException("订单号有误!");
|
|
|
}
|
|
|
- if (order.getCheckStatus() == 1){
|
|
|
+ if (order.getCheckStatus() == 1) {
|
|
|
throw new CustomException("审核已通过,不能撤销!");
|
|
|
}
|
|
|
order.setCheckStatus(3);//已撤销
|
|
|
updateById(order);
|
|
|
List<TopOldOrderGoods> orderGoods = topOrderGoodsService.list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
.eq(TopOldOrderGoods::getOrderSn, order.getOrderSn()).eq(TopOldOrderGoods::getStatus, 1));
|
|
|
- if (CollectionUtils.isNotEmpty(orderGoods)){
|
|
|
+ if (CollectionUtils.isNotEmpty(orderGoods)) {
|
|
|
orderGoods.forEach(x -> x.setCheckStatus(3));//已撤销
|
|
|
topOrderGoodsService.updateBatchById(orderGoods);
|
|
|
}
|