|
@@ -21,11 +21,10 @@ import com.zhongzheng.common.core.page.TableDataInfo;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
|
import com.zhongzheng.common.type.EncryptHandler;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
|
-import com.zhongzheng.common.utils.SecurityUtils;
|
|
|
import com.zhongzheng.common.utils.ToolsUtils;
|
|
|
import com.zhongzheng.common.utils.http.HttpUtils;
|
|
|
-import com.zhongzheng.modules.course.domain.CourseSubject;
|
|
|
-import com.zhongzheng.modules.course.service.ICourseSubjectService;
|
|
|
+import com.zhongzheng.modules.course.domain.*;
|
|
|
+import com.zhongzheng.modules.course.service.*;
|
|
|
import com.zhongzheng.modules.goods.domain.Goods;
|
|
|
import com.zhongzheng.modules.goods.service.IGoodsService;
|
|
|
import com.zhongzheng.modules.grade.domain.ClassGradeUser;
|
|
@@ -60,7 +59,12 @@ import com.zhongzheng.modules.top.goods.mapper.TopOldOrderMapper;
|
|
|
import com.zhongzheng.modules.top.goods.service.*;
|
|
|
import com.zhongzheng.modules.top.goods.vo.*;
|
|
|
import com.zhongzheng.modules.top.order.bo.*;
|
|
|
+import com.zhongzheng.modules.top.order.domain.TopOldOrderQuestion;
|
|
|
+import com.zhongzheng.modules.top.order.domain.TopOldOrderReplenish;
|
|
|
import com.zhongzheng.modules.top.order.domain.TopOrderBankPay;
|
|
|
+import com.zhongzheng.modules.top.order.bo.TopOrderRepQueryBo;
|
|
|
+import com.zhongzheng.modules.top.order.service.ITopOldOrderQuestionService;
|
|
|
+import com.zhongzheng.modules.top.order.service.ITopOldOrderReplenishService;
|
|
|
import com.zhongzheng.modules.top.order.service.ITopOrderBankPayService;
|
|
|
import com.zhongzheng.modules.top.order.vo.*;
|
|
|
import com.zhongzheng.modules.top.order.vo.TopOrderStatisticsTwoVo;
|
|
@@ -74,8 +78,9 @@ import com.zhongzheng.modules.top.user.service.ITopSysRoleService;
|
|
|
import com.zhongzheng.modules.top.user.service.ITopSysUserRoleService;
|
|
|
import com.zhongzheng.modules.top.user.service.ITopSysUserService;
|
|
|
import com.zhongzheng.modules.user.domain.User;
|
|
|
+import com.zhongzheng.modules.user.domain.UserSubscribe;
|
|
|
import com.zhongzheng.modules.user.service.IUserService;
|
|
|
-import org.springframework.beans.BeanUtils;
|
|
|
+import com.zhongzheng.modules.user.service.IUserSubscribeService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -84,7 +89,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.io.IOException;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
@@ -107,6 +111,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
@Autowired
|
|
|
private IOrderGoodsService orderGoodsService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IOrderGoodsRefundService orderGoodsRefundService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private ICourseSubjectService courseSubjectService;
|
|
|
|
|
@@ -161,6 +168,18 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
@Autowired
|
|
|
private IGoodsService goodsService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IMajorService majorService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ICourseEducationTypeService courseEducationTypeService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ICourseProjectTypeService courseProjectTypeService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ICourseBusinessService courseBusinessService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private ITopOldOrderCheckService topOldOrderCheckService;
|
|
|
|
|
@@ -206,9 +225,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
@Autowired
|
|
|
private ITopOrderBankPayService topOrderBankPayService;
|
|
|
|
|
|
- @Autowired
|
|
|
- private IOrderGoodsRefundService orderGoodsRefundService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private ITopSysConfigService topConfigService;
|
|
|
|
|
@@ -233,6 +249,15 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
@Autowired
|
|
|
private ISysOldOrgService iSysOldOrgService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ITopOldOrderReplenishService topOldOrderReplenishService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ITopOldOrderQuestionService topOldOrderQuestionService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IUserSubscribeService userSubscribeService;
|
|
|
+
|
|
|
@Value("${oldOrder.studyRecord}")
|
|
|
private String ORDER_STUDY;
|
|
|
|
|
@@ -266,6 +291,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
@Value("${oldOrder.updateRemark}")
|
|
|
private String UPDATE_REMARK;
|
|
|
|
|
|
+ @Value("${oldOrder.getResitTimes}")
|
|
|
+ private String GET_RESIT_TIMES;
|
|
|
+
|
|
|
@Value("${shared.statistics}")
|
|
|
private String SHARED_STATISTICS;
|
|
|
|
|
@@ -4456,6 +4484,448 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<TopOldOrderRepVo> queryOrderRepList(TopOrderRepQueryBo bo) {
|
|
|
+ //查询视图 v_top_order
|
|
|
+ if (ObjectUtils.isNotNull(bo.getEducationTypeId())) {
|
|
|
+ TopCourseEducationType educationType = topCourseEducationTypeService.getById(bo.getEducationTypeId());
|
|
|
+ if (StringUtils.isNotBlank(educationType.getSchemeName())) {
|
|
|
+ bo.setBusinessFullName(educationType.getSchemeName() + educationType.getEducationName());
|
|
|
+ } else {
|
|
|
+ bo.setBusinessFullName(educationType.getEducationName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(bo.getBusinessId())) {
|
|
|
+ String name = topCourseBusinessService.getBusinessFullName(bo.getBusinessId());
|
|
|
+ bo.setBusinessFullName(name);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<TopOldOrderRepVo> orderRepList = baseMapper.queryOrderRepList(bo);
|
|
|
+ if (CollectionUtils.isEmpty(orderRepList)){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ for (TopOldOrderRepVo vo : orderRepList) {
|
|
|
+ //成交数量
|
|
|
+ Integer count = topOrderGoodsService.count(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn, vo.getOrderSn())
|
|
|
+ .eq(TopOldOrderGoods::getStatus, 1)
|
|
|
+ .eq(TopOldOrderGoods::getCheckStatus, 1));
|
|
|
+ vo.setConcludeNum(count);
|
|
|
+ //业务层次
|
|
|
+ if (StringUtils.isNotBlank(vo.getBusinessFullName())){
|
|
|
+ String substring = vo.getBusinessFullName().substring(4, 8);
|
|
|
+ String substring2 = vo.getBusinessFullName().substring(8);
|
|
|
+ vo.setBusinessName(substring2);
|
|
|
+ vo.setEduName(substring);
|
|
|
+ }
|
|
|
+ //每月收款明细
|
|
|
+ TopOldOrderReplenish replenish = topOldOrderReplenishService
|
|
|
+ .getOne(new LambdaQueryWrapper<TopOldOrderReplenish>()
|
|
|
+ .eq(TopOldOrderReplenish::getOrderSn, vo.getOrderSn())
|
|
|
+ .eq(TopOldOrderReplenish::getStatus, 1)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(replenish)){
|
|
|
+ if (StringUtils.isNotBlank(replenish.getProceedsJson())){
|
|
|
+ String proceedsJson = replenish.getProceedsJson();
|
|
|
+ Map map = JSON.parseObject(proceedsJson, Map.class);
|
|
|
+ vo.setProceedsJsonMap((Map<String,BigDecimal>)map);
|
|
|
+ }
|
|
|
+ BigDecimal uncollected = ObjectUtils.isNotNull(replenish.getOrderResidue())?replenish.getOrderResidue():new BigDecimal(0.00);
|
|
|
+ vo.setUncollected(uncollected);
|
|
|
+ vo.setReceived(vo.getPriceTotal().subtract(uncollected));
|
|
|
+ vo.setProceedsRecord(replenish.getProceedsRecord());
|
|
|
+ //已退
|
|
|
+ BigDecimal refunded = new BigDecimal("0.00");
|
|
|
+ TopOldOrder orderBySn = baseMapper.getOrderBySn(vo.getOrderSn());
|
|
|
+ if (orderBySn.getOrderFrom() == 1 || orderBySn.getOrderFrom() == 4){
|
|
|
+ //新系统订单
|
|
|
+ List<OrderGoodsRefund> list = orderGoodsRefundService.list(new LambdaQueryWrapper<OrderGoodsRefund>()
|
|
|
+ .eq(OrderGoodsRefund::getOrderSn, orderBySn.getOrderSn())
|
|
|
+ .eq(OrderGoodsRefund::getStatus, 1)
|
|
|
+ .eq(OrderGoodsRefund::getPeriodStatus, 3));
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ refunded = list.stream().map(OrderGoodsRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ List<TopOldOrderRefund> list = topOldOrderRefundService.list(new LambdaQueryWrapper<TopOldOrderRefund>()
|
|
|
+ .eq(TopOldOrderRefund::getOrderSn, orderBySn.getOrderSn())
|
|
|
+ .eq(TopOldOrderRefund::getStatus, 1)
|
|
|
+ .eq(TopOldOrderRefund::getPeriodStatus, 3));
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ refunded = list.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vo.setRefunded(refunded);
|
|
|
+ vo.setPractical(vo.getPriceTotal().subtract(refunded));
|
|
|
+ //发票
|
|
|
+ List<TopNuoMplatformLog> fromLogs = topNuoMplatformLogService
|
|
|
+ .list(new LambdaQueryWrapper<TopNuoMplatformLog>()
|
|
|
+ .like(TopNuoMplatformLog::getOrderNoList, vo.getOrderSn())
|
|
|
+ .eq(TopNuoMplatformLog::getStatus, 2));
|
|
|
+ if (CollectionUtils.isNotEmpty(fromLogs)){
|
|
|
+ for (TopNuoMplatformLog fromLog : fromLogs) {
|
|
|
+ OrderInvoiceHostBo invoiceBo = JSONObject.parseObject(fromLog.getContent(), OrderInvoiceHostBo.class);
|
|
|
+ if (ObjectUtils.isNotNull(invoiceBo) && ObjectUtils.isNotNull(invoiceBo.getOrder())){
|
|
|
+ OrderInvoiceBo order = invoiceBo.getOrder();
|
|
|
+ vo.setInvoiceApplyTime(order.getInvoiceDate());
|
|
|
+ vo.setInvoiceType(
|
|
|
+ StringUtils.isNotBlank(order.getInvoiceLine()) && order.getInvoiceLine().equals("bs")?"专票":"普票"
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vo.setIntegral(replenish.getIntegral());
|
|
|
+ vo.setProceedsDate(replenish.getProceedsDate());
|
|
|
+ vo.setProceedsCheckDate(replenish.getProceedsCheckDate());
|
|
|
+ vo.setProceedsChange(replenish.getProceedsChange());
|
|
|
+ vo.setCost(replenish.getCost());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return orderRepList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<TopOldOrderRepDetailVo> getOrderDetailList(TopOrderRepGoodsQueryBo queryBo) {
|
|
|
+ List<TopOldOrderRepDetailVo> list;
|
|
|
+ if (queryBo.getOrderForm() == 1) {
|
|
|
+ //新系统订单
|
|
|
+ list = orderGoodsService.listRepByOrderSn(queryBo);
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ for (TopOldOrderRepDetailVo item : list) {
|
|
|
+ item.setApplyNum(0);
|
|
|
+ item.setUserCard(EncryptHandler.decryptTwo(item.getUserCard()));
|
|
|
+ //补考次数
|
|
|
+ int count = userSubscribeService.count(new LambdaQueryWrapper<UserSubscribe>()
|
|
|
+ .eq(UserSubscribe::getOrderGoodsId, item.getOrderGoodsId())
|
|
|
+ .eq(UserSubscribe::getSubscribeStatus, 1)
|
|
|
+ .ne(UserSubscribe::getExamStatus, 0));
|
|
|
+ if (count > 0){
|
|
|
+ item.setApplyNum(count - 1);
|
|
|
+ }
|
|
|
+ List<TopOldOrderQuestion> questions = topOldOrderQuestionService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderQuestion>()
|
|
|
+ .eq(TopOldOrderQuestion::getOrderSn, item.getOrderSn())
|
|
|
+ .eq(TopOldOrderQuestion::getOrderGoodsId, item.getOrderGoodsId())
|
|
|
+ .eq(TopOldOrderQuestion::getStatus, 1));
|
|
|
+ if (CollectionUtils.isNotEmpty(questions)){
|
|
|
+ item.setQuestionRecord(questions.size());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //旧系统订单
|
|
|
+ list = topOrderGoodsService.listRepByOrderSn(queryBo);
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ List<TopOrderRequestVo> requestVos = new ArrayList<>();
|
|
|
+ if (queryBo.getOrderBase() != 1){
|
|
|
+ List<TopOrderRequestDetailBo> collect = list.stream().map(x -> {
|
|
|
+ TopOrderRequestDetailBo requestBo = new TopOrderRequestDetailBo();
|
|
|
+ requestBo.setIdNum(EncryptHandler.decryptTwo(x.getUserCard()));
|
|
|
+ requestBo.setMajorName(x.getMajorName());
|
|
|
+ return requestBo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ //旧系统查询补考次数
|
|
|
+ TopOrderRequestBo requestBo = new TopOrderRequestBo();
|
|
|
+ Long nowTime = DateUtils.getNowTime();
|
|
|
+ String sign = ToolsUtils.EncoderByMd5(nowTime.toString() + "pubilc2022");
|
|
|
+ requestBo.setSign(sign);
|
|
|
+ requestBo.setStamp(nowTime);
|
|
|
+ requestBo.setQueryList(collect);
|
|
|
+ String respone = "";
|
|
|
+ try {
|
|
|
+ respone = HttpUtils.sendPost(GET_RESIT_TIMES, JSONObject.parseObject(JSON.toJSONString(requestBo)));
|
|
|
+ if (!respone.contains("\"Status\":true")) {
|
|
|
+ throw new CustomException("旧系统查询补考次数接口请求错误!");
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(respone);
|
|
|
+ if (ObjectUtils.isNotNull(jsonObject) && ObjectUtils.isNotNull(jsonObject.get("Data"))){
|
|
|
+ requestVos = JSONArray.parseArray(JSONArray.toJSONString(jsonObject.get("Data")),TopOrderRequestVo.class);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("旧系统修改备注接口请求错误" + respone);
|
|
|
+ throw new CustomException("旧系统修改备注接口请求错误");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (TopOldOrderRepDetailVo item : list) {
|
|
|
+ item.setUserCard(EncryptHandler.decryptTwo(item.getUserCard()));
|
|
|
+ item.setApplyNum(0);
|
|
|
+ //补考次数
|
|
|
+ if (queryBo.getOrderBase() == 1){
|
|
|
+ TopOldOrder order = getOne(new LambdaQueryWrapper<TopOldOrder>().eq(TopOldOrder::getOrderSn, queryBo.getOrderSn()));
|
|
|
+ User user = userService.getByCardNoTenant(EncryptHandler.decrypt(item.getUserCard()));
|
|
|
+ Order orderOne = orderService.getOne(new LambdaQueryWrapper<Order>()
|
|
|
+ .eq(Order::getInputOrderSn, order.getInputOrderSn())
|
|
|
+ .eq(Order::getUserId,user.getUserId())
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(orderOne)){
|
|
|
+ OrderGoods orderGoodsOne = orderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>()
|
|
|
+ .eq(OrderGoods::getOrderSn, orderOne.getOrderSn())
|
|
|
+ .eq(OrderGoods::getGoodsId, item.getGoodsId())
|
|
|
+ .ne(OrderGoods::getRefundStatus,2)
|
|
|
+ .ne(OrderGoods::getPayStatus,1)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(orderGoodsOne)){
|
|
|
+ int count = userSubscribeService.count(new LambdaQueryWrapper<UserSubscribe>()
|
|
|
+ .eq(UserSubscribe::getOrderGoodsId, orderGoodsOne.getOrderGoodsId())
|
|
|
+ .eq(UserSubscribe::getSubscribeStatus, 1)
|
|
|
+ .ne(UserSubscribe::getExamStatus, 0));
|
|
|
+ if (count > 0){
|
|
|
+ item.setApplyNum(count - 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if (CollectionUtils.isNotEmpty(requestVos)){
|
|
|
+ TopOrderRequestVo topOrderRequestVo = requestVos.stream()
|
|
|
+ .filter(x -> x.getIdNum().equals(item.getUserCard()) && x.getMajorName().equals(item.getMajorName())).findFirst().orElse(null);
|
|
|
+ if (ObjectUtils.isNotNull(topOrderRequestVo)){
|
|
|
+ item.setApplyNum(topOrderRequestVo.getCount());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<TopOldOrderQuestion> questions = topOldOrderQuestionService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderQuestion>()
|
|
|
+ .eq(TopOldOrderQuestion::getOrderSn, item.getOrderSn())
|
|
|
+ .eq(TopOldOrderQuestion::getOrderGoodsId, item.getOrderGoodsId())
|
|
|
+ .eq(TopOldOrderQuestion::getStatus, 1));
|
|
|
+ if (CollectionUtils.isNotEmpty(questions)){
|
|
|
+ item.setQuestionRecord(questions.size());
|
|
|
+ }
|
|
|
+ //退款状态
|
|
|
+ List<TopOldOrderRefund> oldOrderRefunds = topOldOrderRefundService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderRefund>()
|
|
|
+ .eq(TopOldOrderRefund::getOrderSn, item.getOrderSn())
|
|
|
+ .eq(TopOldOrderRefund::getOrderGoodsId, item.getOrderGoodsId())
|
|
|
+ .eq(TopOldOrderRefund::getStatus, 1));
|
|
|
+ if (CollectionUtils.isNotEmpty(oldOrderRefunds) &&
|
|
|
+ oldOrderRefunds.stream().anyMatch(x -> x.getPeriodStatus() == 3)){
|
|
|
+ Long refundTime = oldOrderRefunds.stream().filter(x -> x.getPeriodStatus() == 3).findFirst().get().getRefundTime();
|
|
|
+ item.setRefundStatus(2);
|
|
|
+ item.setRefundTime(refundTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean editOrderRepList(TopOrderRepEditBo editBo) {
|
|
|
+ TopOldOrder orderBySn = baseMapper.getOrderBySn(editBo.getOrderSn());
|
|
|
+ if (ObjectUtils.isNull(orderBySn)){
|
|
|
+ throw new CustomException("订单号不存在!");
|
|
|
+ }
|
|
|
+ TopOldOrderReplenish replenish = topOldOrderReplenishService
|
|
|
+ .getOne(new LambdaQueryWrapper<TopOldOrderReplenish>()
|
|
|
+ .eq(TopOldOrderReplenish::getOrderSn, editBo.getOrderSn())
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNull(replenish)){
|
|
|
+ //新增
|
|
|
+ TopOldOrderReplenish orderReplenish = new TopOldOrderReplenish();
|
|
|
+ orderReplenish.setOrderSn(editBo.getOrderSn());
|
|
|
+ orderReplenish.setOrderFrom(orderBySn.getOrderFrom());
|
|
|
+ orderReplenish.setProceedsRecord(editBo.getProceedsRecord());
|
|
|
+ orderReplenish.setIntegral(editBo.getIntegral());
|
|
|
+ orderReplenish.setProceedsDate(editBo.getProceedsDate());
|
|
|
+ orderReplenish.setProceedsCheckDate(editBo.getProceedsCheckDate());
|
|
|
+ orderReplenish.setProceedsChange(editBo.getProceedsChange());
|
|
|
+ orderReplenish.setCost(editBo.getCost());
|
|
|
+ //每月收款记录
|
|
|
+ if (CollectionUtils.isNotEmpty(editBo.getProceedsJson())){
|
|
|
+ //总收款
|
|
|
+ BigDecimal reduce = editBo.getProceedsJson().values().stream().reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ //未收
|
|
|
+ orderReplenish.setOrderResidue(orderBySn.getOrderPrice().subtract(reduce));
|
|
|
+ orderReplenish.setProceedsJson(JSON.toJSONString(editBo.getProceedsJson()));
|
|
|
+ }
|
|
|
+ orderReplenish.setStatus(1);
|
|
|
+ orderReplenish.setCreateTime(DateUtils.getNowTime());
|
|
|
+ orderReplenish.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ topOldOrderReplenishService.save(orderReplenish);
|
|
|
+ }else {
|
|
|
+ //修改
|
|
|
+ replenish.setOrderSn(editBo.getOrderSn());
|
|
|
+ replenish.setOrderFrom(orderBySn.getOrderFrom());
|
|
|
+ replenish.setProceedsRecord(editBo.getProceedsRecord());
|
|
|
+ replenish.setIntegral(editBo.getIntegral());
|
|
|
+ replenish.setProceedsDate(editBo.getProceedsDate());
|
|
|
+ replenish.setProceedsCheckDate(editBo.getProceedsCheckDate());
|
|
|
+ replenish.setProceedsChange(editBo.getProceedsChange());
|
|
|
+ replenish.setCost(editBo.getCost());
|
|
|
+ //每月收款记录
|
|
|
+ if (CollectionUtils.isNotEmpty(editBo.getProceedsJson())){
|
|
|
+ if (StringUtils.isNotBlank(replenish.getProceedsJson())){
|
|
|
+ Map map = JSON.parseObject(replenish.getProceedsJson(), Map.class);
|
|
|
+ editBo.getProceedsJson().forEach((k,v) -> {
|
|
|
+ map.put(k,v);
|
|
|
+ });
|
|
|
+ //总收款
|
|
|
+ BigDecimal reduce = new BigDecimal("0.00");
|
|
|
+ for (Object value : map.values()) {
|
|
|
+ reduce = reduce.add(new BigDecimal(value.toString()));
|
|
|
+ }
|
|
|
+ //未收
|
|
|
+ replenish.setOrderResidue(orderBySn.getOrderPrice().subtract(reduce));
|
|
|
+ replenish.setProceedsJson(JSON.toJSONString(map));
|
|
|
+ }else {
|
|
|
+ //总收款
|
|
|
+ BigDecimal reduce = editBo.getProceedsJson().values().stream().reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ //未收
|
|
|
+ replenish.setOrderResidue(orderBySn.getOrderPrice().subtract(reduce));
|
|
|
+ replenish.setProceedsJson(JSON.toJSONString(editBo.getProceedsJson()));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ replenish.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ topOldOrderReplenishService.updateById(replenish);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean editOrderRepDetail(TopOrderRepDetailEditBo editBo) {
|
|
|
+ TopOldOrder oldOrder = baseMapper.getOrderBySn(editBo.getOrderSn());
|
|
|
+ if (ObjectUtils.isNull(oldOrder)){
|
|
|
+ throw new CustomException("订单查询有误");
|
|
|
+ }
|
|
|
+ if (oldOrder.getOrderFrom() == 1){
|
|
|
+ orderGoodsService.update(new LambdaUpdateWrapper<OrderGoods>()
|
|
|
+ .eq(OrderGoods::getOrderSn,editBo.getOrderSn())
|
|
|
+ .eq(OrderGoods::getOrderGoodsId,editBo.getOrderGoodsId())
|
|
|
+ .set(ObjectUtils.isNotNull(editBo.getFinishTime()),OrderGoods::getFinishTime,editBo.getFinishTime())
|
|
|
+ .set(ObjectUtils.isNotNull(editBo.getAcquireTime()),OrderGoods::getAcquireTime,editBo.getAcquireTime())
|
|
|
+ .set(ObjectUtils.isNotNull(editBo.getPublicityTime()),OrderGoods::getPublicityTime,editBo.getPublicityTime())
|
|
|
+ );
|
|
|
+ }else {
|
|
|
+ topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn,editBo.getOrderSn())
|
|
|
+ .eq(TopOldOrderGoods::getOrderGoodsId,editBo.getOrderGoodsId())
|
|
|
+ .set(ObjectUtils.isNotNull(editBo.getFinishTime()),TopOldOrderGoods::getFinishTime,editBo.getFinishTime())
|
|
|
+ .set(ObjectUtils.isNotNull(editBo.getAcquireTime()),TopOldOrderGoods::getAcquireTime,editBo.getAcquireTime())
|
|
|
+ .set(ObjectUtils.isNotNull(editBo.getPublicityTime()),TopOldOrderGoods::getPublicityTime,editBo.getPublicityTime())
|
|
|
+ );
|
|
|
+
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<TopOldOrderQuestionVo> getOrderQuestionList(TopRepQuestionQueryBo queryBo) {
|
|
|
+ List<TopOldOrderQuestion> questions = topOldOrderQuestionService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderQuestion>()
|
|
|
+ .eq(TopOldOrderQuestion::getOrderSn, queryBo.getOrderSn())
|
|
|
+ .eq(TopOldOrderQuestion::getOrderGoodsId, queryBo.getOrderGoodsId())
|
|
|
+ .eq(TopOldOrderQuestion::getStatus, 1));
|
|
|
+ if (CollectionUtils.isEmpty(questions)){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ TopOldOrder orderBySn = baseMapper.getOrderBySn(queryBo.getOrderSn());
|
|
|
+ String majorName = "";
|
|
|
+ String eduName = "";
|
|
|
+ String businessName = "";
|
|
|
+ String userName = "";
|
|
|
+ String userCard = "";
|
|
|
+ if (orderBySn.getOrderFrom() == 1){
|
|
|
+ OrderGoods orderGoods = orderGoodsService.getById(queryBo.getOrderGoodsId());
|
|
|
+ Goods goods = goodsService.getById(orderGoods.getGoodsId());
|
|
|
+ Major major = majorService.getById(goods.getMajorId());
|
|
|
+ majorName = major.getCategoryName();
|
|
|
+ CourseEducationType educationType = courseEducationTypeService.getById(goods.getEducationTypeId());
|
|
|
+ eduName = educationType.getEducationName();
|
|
|
+ CourseProjectType projectType = courseProjectTypeService.getById(goods.getProjectId());
|
|
|
+ CourseBusiness business = courseBusinessService.getById(goods.getBusinessId());
|
|
|
+ businessName = business.getBusinessName()+projectType.getProjectName();
|
|
|
+ Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, queryBo.getOrderSn()));
|
|
|
+ User user = userService.getById(order.getUserId());
|
|
|
+ userCard = EncryptHandler.decryptTwo(user.getIdCard());
|
|
|
+ userName = user.getRealname();
|
|
|
+ }else {
|
|
|
+ TopOldOrderGoods orderGoods = topOrderGoodsService.getById(queryBo.getOrderGoodsId());
|
|
|
+ majorName = orderGoods.getMajorName();
|
|
|
+ String businessFullName = orderGoods.getBusinessFullName();
|
|
|
+ eduName = businessFullName.substring(4,8);
|
|
|
+ businessName = businessFullName.substring(8);
|
|
|
+ userCard = EncryptHandler.decryptTwo(orderGoods.getUserCard());
|
|
|
+ userName = orderGoods.getUserName();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<TopOldOrderQuestionVo> resultList = new ArrayList<>();
|
|
|
+ for (TopOldOrderQuestion s : questions) {
|
|
|
+ TopOldOrderQuestionVo questionVo = new TopOldOrderQuestionVo();
|
|
|
+ questionVo.setId(s.getId());
|
|
|
+ questionVo.setUserName(userName);
|
|
|
+ questionVo.setUserCard(userCard);
|
|
|
+ questionVo.setBusinessName(businessName);
|
|
|
+ questionVo.setEduName(eduName);
|
|
|
+ questionVo.setOrderSn(s.getOrderSn());
|
|
|
+ questionVo.setOrderGoodsId(s.getOrderGoodsId());
|
|
|
+ questionVo.setMajorName(majorName);
|
|
|
+ questionVo.setOpenDate(s.getOpenDate());
|
|
|
+ questionVo.setRemark(s.getRemark());
|
|
|
+ resultList.add(questionVo);
|
|
|
+ }
|
|
|
+ return resultList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TopOldOrderQuestionVo getOrderQuestionDetail(TopRepQuestionQueryBo queryBo) {
|
|
|
+ TopOldOrderQuestionVo vo = new TopOldOrderQuestionVo();
|
|
|
+ TopOldOrder orderBySn = baseMapper.getOrderBySn(queryBo.getOrderSn());
|
|
|
+ String majorName = "";
|
|
|
+ String eduName = "";
|
|
|
+ String businessName = "";
|
|
|
+ String userName = "";
|
|
|
+ String userCard = "";
|
|
|
+ if (orderBySn.getOrderFrom() == 1){
|
|
|
+ OrderGoods orderGoods = orderGoodsService.getById(queryBo.getOrderGoodsId());
|
|
|
+ Goods goods = goodsService.getById(orderGoods.getGoodsId());
|
|
|
+ Major major = majorService.getById(goods.getMajorId());
|
|
|
+ majorName = major.getCategoryName();
|
|
|
+ CourseEducationType educationType = courseEducationTypeService.getById(goods.getEducationTypeId());
|
|
|
+ eduName = educationType.getEducationName();
|
|
|
+ CourseProjectType projectType = courseProjectTypeService.getById(goods.getProjectId());
|
|
|
+ CourseBusiness business = courseBusinessService.getById(goods.getBusinessId());
|
|
|
+ businessName = business.getBusinessName()+projectType.getProjectName();
|
|
|
+ Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, queryBo.getOrderSn()));
|
|
|
+ User user = userService.getById(order.getUserId());
|
|
|
+ userName = user.getRealname();
|
|
|
+ userCard = EncryptHandler.decryptTwo(user.getIdCard());
|
|
|
+ }else {
|
|
|
+ TopOldOrderGoods orderGoods = topOrderGoodsService.getById(queryBo.getOrderGoodsId());
|
|
|
+ majorName = orderGoods.getMajorName();
|
|
|
+ String businessFullName = orderGoods.getBusinessFullName();
|
|
|
+ eduName = businessFullName.substring(4,8);
|
|
|
+ businessName = businessFullName.substring(8);
|
|
|
+ userName = orderGoods.getUserName();
|
|
|
+ userCard = EncryptHandler.decryptTwo(orderGoods.getUserCard());
|
|
|
+ }
|
|
|
+ vo.setUserName(userName);
|
|
|
+ vo.setUserCard(userCard);
|
|
|
+ vo.setBusinessName(businessName);
|
|
|
+ vo.setEduName(eduName);
|
|
|
+ vo.setOrderSn(queryBo.getOrderSn());
|
|
|
+ vo.setOrderGoodsId(queryBo.getOrderGoodsId());
|
|
|
+ vo.setMajorName(majorName);
|
|
|
+ return vo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean saveOrderQuestion(TopOrderRepQuestionBo bo) {
|
|
|
+ TopOldOrderQuestion question = BeanUtil.toBean(bo, TopOldOrderQuestion.class);
|
|
|
+ question.setStatus(1);
|
|
|
+ question.setCreateTime(DateUtils.getNowTime());
|
|
|
+ question.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ return topOldOrderQuestionService.save(question);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean delOrderQuestion(Long id) {
|
|
|
+ TopOldOrderQuestion orderQuestion = topOldOrderQuestionService.getById(id);
|
|
|
+ if (ObjectUtils.isNull(orderQuestion)){
|
|
|
+ throw new CustomException("数据有误!");
|
|
|
+ }
|
|
|
+ orderQuestion.setStatus(0);
|
|
|
+ return topOldOrderQuestionService.updateById(orderQuestion);
|
|
|
+ }
|
|
|
+
|
|
|
private List<Long> getDayTime(Long startTime,Long endTime){
|
|
|
List<Long> tiemList = new ArrayList<>();
|
|
|
Long zeroTime = DateUtils.getScheduleTimeZeroTime(startTime);
|