|
@@ -34,6 +34,8 @@ import com.zhongzheng.modules.inform.bo.InformSysUserAddBo;
|
|
import com.zhongzheng.modules.inform.service.IInformRemindService;
|
|
import com.zhongzheng.modules.inform.service.IInformRemindService;
|
|
import com.zhongzheng.modules.inform.service.IInformSysUserService;
|
|
import com.zhongzheng.modules.inform.service.IInformSysUserService;
|
|
import com.zhongzheng.modules.inform.vo.InformRemindVo;
|
|
import com.zhongzheng.modules.inform.vo.InformRemindVo;
|
|
|
|
+import com.zhongzheng.modules.order.bo.OrderInvoiceBo;
|
|
|
|
+import com.zhongzheng.modules.order.bo.OrderInvoiceHostBo;
|
|
import com.zhongzheng.modules.order.domain.*;
|
|
import com.zhongzheng.modules.order.domain.*;
|
|
import com.zhongzheng.modules.order.service.*;
|
|
import com.zhongzheng.modules.order.service.*;
|
|
import com.zhongzheng.modules.order.vo.OrderGoodsVo;
|
|
import com.zhongzheng.modules.order.vo.OrderGoodsVo;
|
|
@@ -155,6 +157,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
@Autowired
|
|
@Autowired
|
|
private IOrderService orderService;
|
|
private IOrderService orderService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private IOrderInvoiceOrderService orderInvoiceOrderService;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private IUserService userService;
|
|
private IUserService userService;
|
|
|
|
|
|
@@ -325,6 +330,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
if (CollectionUtils.isNotEmpty(orderVoList)) {
|
|
if (CollectionUtils.isNotEmpty(orderVoList)) {
|
|
//订单业务类型
|
|
//订单业务类型
|
|
orderVoList.forEach(item -> {
|
|
orderVoList.forEach(item -> {
|
|
|
|
+ item.setUserCheckStatus(1);
|
|
List<String> businessNames = baseMapper.queryBusinessBySn(item.getOrderSn());
|
|
List<String> businessNames = baseMapper.queryBusinessBySn(item.getOrderSn());
|
|
item.setBusinessNames(businessNames);
|
|
item.setBusinessNames(businessNames);
|
|
//订单转账凭证
|
|
//订单转账凭证
|
|
@@ -347,6 +353,14 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
BigDecimal add = orderCost.add(cost).add(instCost);
|
|
BigDecimal add = orderCost.add(cost).add(instCost);
|
|
item.setOrderCost(add);
|
|
item.setOrderCost(add);
|
|
}
|
|
}
|
|
|
|
+ //学员审核状态
|
|
|
|
+ int userCount = topOrderGoodsService.count(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
|
+ .eq(TopOldOrderGoods::getCheckStatus, 0)
|
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn, item.getOrderSn())
|
|
|
|
+ .eq(TopOldOrderGoods::getStatus, 1));
|
|
|
|
+ if (userCount > 0){
|
|
|
|
+ item.setUserCheckStatus(0);
|
|
|
|
+ }
|
|
//退款审核角色
|
|
//退款审核角色
|
|
if (Arrays.asList(0, 2).contains(item.getRefundStatus())) {
|
|
if (Arrays.asList(0, 2).contains(item.getRefundStatus())) {
|
|
String refundSn = "";
|
|
String refundSn = "";
|
|
@@ -918,6 +932,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
oldOrderGoods.setUserCard(EncryptHandler.encrypt(oldOrderGoods.getUserCard()));
|
|
oldOrderGoods.setUserCard(EncryptHandler.encrypt(oldOrderGoods.getUserCard()));
|
|
oldOrderGoods.setStatus(1);
|
|
oldOrderGoods.setStatus(1);
|
|
oldOrderGoods.setTenantId(order.getTenantId());
|
|
oldOrderGoods.setTenantId(order.getTenantId());
|
|
|
|
+ oldOrderGoods.setApplyUpTime(DateUtils.getNowTime());
|
|
add.add(oldOrderGoods);
|
|
add.add(oldOrderGoods);
|
|
break;
|
|
break;
|
|
case -1://删除
|
|
case -1://删除
|
|
@@ -1994,6 +2009,137 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public TopOldOrderUpVo getOrderGoodsApplyList(String orderSn) {
|
|
|
|
+ //查询视图 v_top_order
|
|
|
|
+ TopOldOrderVo orderVo = baseMapper.queryById(orderSn);
|
|
|
|
+ if (ObjectUtils.isNull(orderVo)) {
|
|
|
|
+ throw new CustomException("订单号错误!");
|
|
|
|
+ }
|
|
|
|
+ if (orderVo.getOrderFrom() == 1){return new TopOldOrderUpVo();}
|
|
|
|
+
|
|
|
|
+ //订单是否存在修改
|
|
|
|
+ List<TopOldOrderGoods> orderGoodsList = topOrderGoodsService
|
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
|
+ .eq(TopOldOrderGoods::getCheckStatus, 0)
|
|
|
|
+ .eq(TopOldOrderGoods::getStatus, 1));
|
|
|
|
+ if (CollectionUtils.isEmpty(orderGoodsList)){
|
|
|
|
+ return new TopOldOrderUpVo();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ TopOldOrderUpVo topOldOrderUpVo = new TopOldOrderUpVo();
|
|
|
|
+ topOldOrderUpVo.setApplyUpTime(orderGoodsList.get(0).getApplyUpTime());
|
|
|
|
+ topOldOrderUpVo.setApplyUpName(orderVo.getPurchaseOrg());
|
|
|
|
+ topOldOrderUpVo.setOrderSn(orderSn);
|
|
|
|
+
|
|
|
|
+ List<TopOldOrderStudyVo> studyVos = new ArrayList<>();
|
|
|
|
+ // 老系统查询学习状态
|
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
|
+ Long nowTime = DateUtils.getNowTime();
|
|
|
|
+ String sign = ToolsUtils.EncoderByMd5(orderSn + nowTime.toString() + "pubilc2022");
|
|
|
|
+ params.put("stamp", nowTime.toString());
|
|
|
|
+ params.put("sign", sign);
|
|
|
|
+ params.put("orderSn", orderSn);
|
|
|
|
+ params.put("type", orderVo.getOrderType().toString());
|
|
|
|
+ String respone = "";
|
|
|
|
+ try {
|
|
|
|
+ respone = HttpUtils.postFormBody(ORDER_STUDY, params);
|
|
|
|
+ if (!respone.contains("\"Status\":true")) {
|
|
|
|
+ throw new CustomException("旧系统订单学员学习情况接口请求错误");
|
|
|
|
+ }
|
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(respone);
|
|
|
|
+ Object data = jsonObject.get("Data");
|
|
|
|
+ if (ObjectUtils.isNotNull(data)) {
|
|
|
|
+ studyVos = JSONArray.parseArray(JSONObject.toJSONString(data), TopOldOrderStudyVo.class);
|
|
|
|
+ }
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ log.error("旧系统订单学员学习情况接口请求错误" + respone);
|
|
|
|
+ throw new CustomException("旧系统订单学员学习情况接口请求错误");
|
|
|
|
+ }
|
|
|
|
+ List<TopOrderGoodsUpVo> goodsUpVos = new ArrayList<>();
|
|
|
|
+ Set<String> business = new HashSet<>();
|
|
|
|
+ for (TopOldOrderGoods orderGoods : orderGoodsList) {
|
|
|
|
+ business.add(orderGoods.getBusinessFullName());
|
|
|
|
+ goodsUpVos.add(getGoodsUp(orderGoods,studyVos));
|
|
|
|
+ //获取修改前的数据
|
|
|
|
+ List<TopOldOrderGoods> list = topOrderGoodsService.list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn, orderGoods.getOrderSn())
|
|
|
|
+ .eq(TopOldOrderGoods::getSignId, orderGoods.getSignId())
|
|
|
|
+ .eq(TopOldOrderGoods::getCheckStatus, -1));
|
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
|
+ for (TopOldOrderGoods goods : list) {
|
|
|
|
+ business.add(orderGoods.getBusinessFullName());
|
|
|
|
+ goodsUpVos.add(getGoodsUp(goods,studyVos));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ topOldOrderUpVo.setBusinessName(business.stream().collect(Collectors.joining(",")));
|
|
|
|
+ topOldOrderUpVo.setOrderGoodsList(goodsUpVos);
|
|
|
|
+ return topOldOrderUpVo;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public List<TopOldOrderInvoiceVo> getOrderInvoiceList(String orderSn) {
|
|
|
|
+ //查询视图 v_top_order
|
|
|
|
+ TopOldOrderVo orderVo = baseMapper.queryById(orderSn);
|
|
|
|
+ if (ObjectUtils.isNull(orderVo)) {
|
|
|
|
+ throw new CustomException("订单号错误!");
|
|
|
|
+ }
|
|
|
|
+ List<TopOldOrderInvoiceVo> resultList = new ArrayList<>();
|
|
|
|
+ if (orderVo.getOrderFrom() == 1){
|
|
|
|
+ //新系统
|
|
|
|
+ resultList = orderService.getOrderInvoiceList(orderSn);
|
|
|
|
+ }else {
|
|
|
|
+ resultList = baseMapper.getOrderInvoiceList(orderSn);
|
|
|
|
+ }
|
|
|
|
+ if (CollectionUtils.isEmpty(resultList)){
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ for (TopOldOrderInvoiceVo invoiceVo : resultList) {
|
|
|
|
+ if (StringUtils.isNotBlank(invoiceVo.getContent())){
|
|
|
|
+ OrderInvoiceHostBo hostBo = JSONObject.parseObject(invoiceVo.getContent(), OrderInvoiceHostBo.class);
|
|
|
|
+ if (ObjectUtils.isNull(hostBo.getOrder())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ OrderInvoiceBo order = hostBo.getOrder();
|
|
|
|
+ invoiceVo.setBuyerName(order.getBuyerName());
|
|
|
|
+ invoiceVo.setBuyerTaxNum(order.getBuyerTaxNum());
|
|
|
|
+ invoiceVo.setEmail(order.getEmail());
|
|
|
|
+ invoiceVo.setRemark(order.getRemark());
|
|
|
|
+ invoiceVo.setInvoiceType(
|
|
|
|
+ StringUtils.isNotBlank(order.getInvoiceLine()) && order.getInvoiceLine().equals("bs")?"专票":"普票"
|
|
|
|
+ );
|
|
|
|
+ if (ObjectUtils.isNotNull(order.getInvoiceDetail())){
|
|
|
|
+ invoiceVo.setPrice(order.getInvoiceDetail().getPrice());
|
|
|
|
+ invoiceVo.setApplyPrice(order.getInvoiceDetail().getPrice());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return resultList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private TopOrderGoodsUpVo getGoodsUp(TopOldOrderGoods orderGoods,List<TopOldOrderStudyVo> studyVos){
|
|
|
|
+ TopOrderGoodsUpVo vo = BeanUtil.toBean(orderGoods, TopOrderGoodsUpVo.class);
|
|
|
|
+ //学习状态
|
|
|
|
+ if (CollectionUtils.isEmpty(studyVos)) {
|
|
|
|
+ vo.setStudyStatus("未开始");
|
|
|
|
+ } else {
|
|
|
|
+ TopOldOrderStudyVo studyVo = studyVos.stream().filter(x -> x.getUnderOrdeEnrollItemId().equals(vo.getSignId())
|
|
|
|
+ && x.getIdNum().equals(vo.getUserCard())).findFirst().orElse(null);
|
|
|
|
+ if (ObjectUtils.isNotNull(studyVo) && ObjectUtils.isNotNull(studyVo.getStudyHours())) {
|
|
|
|
+ if (ObjectUtils.isNull(studyVo.getStudyHours()) && studyVo.getStudyHours() == 0) {
|
|
|
|
+ vo.setStudyStatus("未开始");
|
|
|
|
+ } else if (studyVo.getStudyHours() < studyVo.getTotalHours()) {
|
|
|
|
+ vo.setStudyStatus("学习中");
|
|
|
|
+ } else {
|
|
|
|
+ vo.setStudyStatus("已结束");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return vo;
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public boolean orderRefundApply(TopOrderRefundApplyBo bo) {
|
|
public boolean orderRefundApply(TopOrderRefundApplyBo bo) {
|
|
@@ -3032,26 +3178,51 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
BigDecimal cost = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getOrderCost())).map(TopOldOrderVo::getOrderCost).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal cost = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getOrderCost())).map(TopOldOrderVo::getOrderCost).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
//订单学员数
|
|
//订单学员数
|
|
Set<String> userCard = new HashSet<>();
|
|
Set<String> userCard = new HashSet<>();
|
|
|
|
+ Map<Integer,List<TopOldOrderVo>> orderMap = new HashMap<>();
|
|
|
|
+ List<TopOldOrderVo> orderSn = new ArrayList<>();
|
|
|
|
+ Set<String> userCheckOrderSn = new HashSet<>();
|
|
|
|
+ Integer key = 1;
|
|
for (TopOldOrderVo orderVo : vos) {
|
|
for (TopOldOrderVo orderVo : vos) {
|
|
- if (orderVo.getOrderFrom() != 1) {
|
|
|
|
- //旧系统订单
|
|
|
|
- List<TopOldOrderGoods> list = topOrderGoodsService
|
|
|
|
- .list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
|
- .eq(TopOldOrderGoods::getOrderSn, orderVo.getOrderSn())
|
|
|
|
- .eq(TopOldOrderGoods::getStatus, 1)
|
|
|
|
- .ne(TopOldOrderGoods::getCheckStatus, -1));
|
|
|
|
- if (CollectionUtils.isNotEmpty(list)) {
|
|
|
|
- list.forEach(x -> userCard.add(x.getUserCard()));
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- //新系统订单
|
|
|
|
- User user = userService.getById(orderVo.getUserId());
|
|
|
|
- if (ObjectUtils.isNotNull(user)) {
|
|
|
|
- userCard.add(user.getIdCard());
|
|
|
|
- }
|
|
|
|
|
|
+ orderSn.add(orderVo);
|
|
|
|
+ if (orderSn.size() == 1000){
|
|
|
|
+ orderMap.put(key,orderSn);
|
|
|
|
+ orderSn = new ArrayList<>();
|
|
|
|
+ key ++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ orderMap.forEach((k,v) -> {
|
|
|
|
+ Map<Integer, List<TopOldOrderVo>> collect = v.stream().collect(Collectors.groupingBy(TopOldOrderVo::getOrderFrom));
|
|
|
|
+ collect.forEach((m,l) -> {
|
|
|
|
+ if (m != 1){
|
|
|
|
+ //旧系统订单
|
|
|
|
+ List<TopOldOrderGoods> list = topOrderGoodsService
|
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
|
+ .in(TopOldOrderGoods::getOrderSn, l.stream().map(TopOldOrderVo::getOrderSn).collect(Collectors.toList()))
|
|
|
|
+ .eq(TopOldOrderGoods::getStatus, 1)
|
|
|
|
+ .ne(TopOldOrderGoods::getCheckStatus, -1));
|
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
|
+ list.forEach(x -> userCard.add(x.getUserCard()));
|
|
|
|
+ Set<String> collect1 = list.stream().filter(x -> x.getCheckStatus() == 0).map(TopOldOrderGoods::getOrderSn).collect(Collectors.toSet());
|
|
|
|
+ userCheckOrderSn.addAll(collect1);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ //新系统订单
|
|
|
|
+ List<User> list = userService.list(new LambdaQueryWrapper<User>().in(User::getUserId, l.stream().map(TopOldOrderVo::getUserId).collect(Collectors.toList())));
|
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
|
+ userCard.addAll(list.stream().map(x -> EncryptHandler.decrypt(x.getIdCard())).collect(Collectors.toList()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ });
|
|
|
|
+ });
|
|
Integer orderNum = vos.size();
|
|
Integer orderNum = vos.size();
|
|
|
|
+ Integer count = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getCheckStatus()) && x.getCheckStatus() == 0).collect(Collectors.toList()).size();
|
|
|
|
+ Integer count2 = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getRefundStatus()) && x.getRefundStatus() == 0).collect(Collectors.toList()).size();
|
|
|
|
+ Integer count3 = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getFinishStatus()) && x.getFinishStatus() == 0).collect(Collectors.toList()).size();
|
|
|
|
+ vo.setCheckOrderNum(count);
|
|
|
|
+ vo.setCheckRefundNum(count2);
|
|
|
|
+ vo.setCheckFinishNum(count3);
|
|
|
|
+ vo.setCheckUserNum(userCheckOrderSn.size());
|
|
vo.setOrderProfitTotal(profit);
|
|
vo.setOrderProfitTotal(profit);
|
|
vo.setOrderPriceTotal(price);
|
|
vo.setOrderPriceTotal(price);
|
|
vo.setOrderReceivedTotal(received);
|
|
vo.setOrderReceivedTotal(received);
|