he2802 2 lat temu
rodzic
commit
949d195cce
28 zmienionych plików z 481 dodań i 229 usunięć
  1. 1 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  2. 1 0
      zhongzheng-admin/src/main/resources/application-dev.yml
  3. 37 7
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/http/HttpUtils.java
  4. 9 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionServiceImpl.java
  5. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseMenuServiceImpl.java
  6. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsQueryBo.java
  7. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java
  8. 45 18
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  9. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/UserPeriodServiceImpl.java
  10. 6 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodVo.java
  11. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoodsRefund.java
  12. 46 70
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsRefundServiceImpl.java
  13. 17 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/RefundOrderBo.java
  14. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderQueryBo.java
  15. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopCourseBusinessMapper.java
  16. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopOldOrderMapper.java
  17. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopCourseBusinessService.java
  18. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopCourseBusinessServiceImpl.java
  19. 225 117
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java
  20. 13 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderRefundVo.java
  21. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/mall/bo/TopStoreQueryBo.java
  22. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/mall/service/impl/TopStoreServiceImpl.java
  23. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/mall/vo/TopStoreVo.java
  24. 5 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOldOrderCompanyExportVo.java
  25. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOldOrderSellerExportVo.java
  26. 9 0
      zhongzheng-system/src/main/resources/mapper/modules/top/TopCourseBusinessMapper.xml
  27. 3 0
      zhongzheng-system/src/main/resources/mapper/modules/top/TopDivideLogMapper.xml
  28. 23 9
      zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

+ 1 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -385,7 +385,7 @@ public class CommonController extends BaseController {
     /**
      * 总平台退款支付订单处理
      */
-    @ApiOperation("总平台退款支付")
+    @ApiOperation("总平台退款支付订单处理")
     @PostMapping("/common/platform/pay/handle")
     public AjaxResult<Void> platformRefundPayHandle(@RequestBody List<OrderGoodsVo> orderGoodsVos) {
         return toAjax(iOrderGoodsRefundService.handleRefundOrder(orderGoodsVos) ? 1 : 0);

+ 1 - 0
zhongzheng-admin/src/main/resources/application-dev.yml

@@ -142,6 +142,7 @@ officialPush:
     token: 0ca175b9c0f726a831d895e26933246
 
 
+
 distributionOldPay:
     host: http://gdxypx.xy.com/System/BussinessApi/AddRedPackData
 

+ 37 - 7
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/http/HttpUtils.java

@@ -9,6 +9,8 @@ import org.apache.http.client.entity.UrlEncodedFormEntity;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
@@ -21,6 +23,8 @@ import org.slf4j.LoggerFactory;
 import javax.net.ssl.*;
 import java.io.*;
 import java.net.*;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
 import java.security.cert.X509Certificate;
 import java.util.*;
 
@@ -112,7 +116,12 @@ public class HttpUtils
         return result.toString();
     }
     public static String postFormBody(String url, Map<String, String> paramMap) throws IOException{
-        return post(url, paramMap, null);
+        try{
+            String result = post(url, paramMap, null);
+            return result;
+        }catch (Exception e){
+            return null;
+        }
 
     }
 
@@ -470,7 +479,7 @@ public class HttpUtils
      * @return 请求返回的数据
      * @throws IOException 读写异常
      */
-    private static String post(String url, Map<String, String> paramMap, String encoding) throws IOException {
+    private static String post(String url, Map<String, String> paramMap, String encoding) throws IOException, NoSuchAlgorithmException, KeyManagementException {
         log.debug("http 请求 url: {} , 请求参数: {}", url, appendUrl("", paramMap).replace("?", ""));
         encoding = encoding == null ? UTF8 : encoding;
         // 创建post方式请求对象
@@ -512,11 +521,28 @@ public class HttpUtils
      * @throws IOException 读写异常
      */
     private static <T> T post(String url, HttpPost httpPost, String encoding, DataParse<T> dataParse)
-            throws IOException {
+            throws IOException, NoSuchAlgorithmException, KeyManagementException {
+        TrustManager[] trustAllCerts = new TrustManager[] {
+                new X509TrustManager() {
+                    public X509Certificate[] getAcceptedIssuers() {
+                        return null;
+                    }
+                    public void checkClientTrusted(X509Certificate[] certs, String authType) {
+                        // don't check
+                    }
+                    public void checkServerTrusted(X509Certificate[] certs, String authType) {
+                        // don't check
+                    }
+                }
+        };
+
+        SSLContext ctx = SSLContext.getInstance("TLS");
+        ctx.init(null, trustAllCerts, null);
+        LayeredConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(ctx);
         T result = null;
         CloseableHttpResponse response = null;
         // 创建httpclient对象
-        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
+        CloseableHttpClient httpClient = HttpClientBuilder.create().setSSLSocketFactory(sslSocketFactory).build();
 
         // 执行请求操作,并拿到结果(同步阻塞)
         response = sendRequestAndGetResult(url, httpClient, httpPost);
@@ -599,8 +625,12 @@ public class HttpUtils
     }
 
     public static String postFormBodyHeader(String url, Map<String, String> paramMap, Map<String, String> headersMap, Header[] header) throws IOException{
-        return postHearder(url, paramMap, null, headersMap, header);
-
+        try{
+            String result = postHearder(url, paramMap, null, headersMap, header);
+            return result;
+        }catch (Exception e){
+            return null;
+        }
     }
 
     /**
@@ -612,7 +642,7 @@ public class HttpUtils
      * @return 请求返回的数据
      * @throws IOException 读写异常
      */
-    private static String postHearder(String url, Map<String, String> paramMap, String encoding, Map<String, String> headersMap, Header[] header) throws IOException {
+    private static String postHearder(String url, Map<String, String> paramMap, String encoding, Map<String, String> headersMap, Header[] header) throws IOException, NoSuchAlgorithmException, KeyManagementException {
         log.debug("http 请求 url: {} , 请求参数: {}", url, appendUrl("", paramMap).replace("?", ""));
         encoding = encoding == null ? UTF8 : encoding;
         // 创建post方式请求对象

+ 9 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionServiceImpl.java

@@ -801,6 +801,11 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
                             else{
                                 bo.setAnswerQuestion("0");
                             }
+                            if(Validator.isEmpty(bo.getAnswerQuestion())){
+                                question.setCause("题目答案错误");
+                                errorList.add(question);
+                                continue;
+                            }
                         }
                         if(type==4){
                             isAnLi = true;
@@ -959,7 +964,7 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
             addBo.setContent(entity.getOption());
             addBo.setOptionsId(j);
             optionsList.add(addBo);
-            if("是".equals(entity.getAnswer())){
+            if("是".equals(dealTxt(entity.getAnswer()))){
                 answerList.add(j);
                 /*if(type==1){ //单选
                     break;
@@ -1013,6 +1018,9 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
     }
 
     private String dealTxt(String txt) {
+        if(Validator.isEmpty(txt)){
+            return null;
+        }
         txt = txt.trim();
         if (txt.startsWith("\\t")) {
             txt = txt.replace("\\t", "");

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseMenuServiceImpl.java

@@ -73,7 +73,7 @@ public class CourseMenuServiceImpl extends ServiceImpl<CourseMenuMapper, CourseM
                 //设置节时长(分钟)
                 courseMenuVo.setDurationMinTime(Math.ceil(courseMenuVo.getDurationTime()/60.0));
                 //设置学时
-                courseMenuVo.setClassHours(Double.valueOf(String.format("%.2f", courseMenuVo.getDurationMinTime()/45.0)));
+                courseMenuVo.setClassHours(Double.valueOf(String.format("%.1f", courseMenuVo.getDurationMinTime()/45.0)));
             }
         });
         return list;

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsQueryBo.java

@@ -210,4 +210,5 @@ public class GoodsQueryBo extends BaseEntity {
 	/** 提交官方审核备注说明 */
 	@ApiModelProperty("提交官方审核备注说明")
 	private String commitPeriodRemark;
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -68,6 +68,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;

+ 45 - 18
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -1639,6 +1639,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         Collections.sort(classPeriodVos);
         Long startTotalTime = 0L;
         Long endTotalTime = 0L;
+        Long secTotalTime = 0L;
         for (ClassPeriodVo classPeriodVo : classPeriodVos) {
             //为模块搜索下面的章 和节 并搜索学时记录
             if (classPeriodVo.getType() == 1) {
@@ -1648,11 +1649,13 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                 for (ClassPeriodChapterVo classPeriodChapterVo : classPeriodChapterVos) {
                     if (classPeriodChapterVo.getType() == 2) {
                         Long ChapterEndTime = 0L;
+                        Long ChapterStartTime = 0L;
                         List<ClassPeriodSectionVo> classPeriodSectionVos = baseMapper.listPeriodSection(classPeriodChapterVo.getId(), bo.getGoodsId(), classPeriodVo.getCourseId(), bo.getUserId());
                         Collections.sort(classPeriodSectionVos);
                         classPeriodSectionVos.addAll(baseMapper.listperiodExam(classPeriodChapterVo.getId(), bo.getGoodsId(), classPeriodVo.getCourseId(), bo.getUserId(), classPeriodVo.getId()));
                         for (ClassPeriodSectionVo classPeriodSectionVo : classPeriodSectionVos) {
                             if (classPeriodSectionVo.getType() == 3) {
+                                secTotalTime+=classPeriodSectionVo.getDurationTime();
                                 //节
                                 UserPeriodQueryBo userPeriodQueryBo = new UserPeriodQueryBo();
                                 userPeriodQueryBo.setSectionId(classPeriodSectionVo.getId());
@@ -1673,13 +1676,12 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                                     classPeriodSectionVo.setNumIndex(Convert.toLong(userPeriodStatusVos.size()));
                                     classPeriodSectionVo.setStatus(userPeriodStatusVo.getStatus());
                                     classPeriodSectionVo.setNumList(Convert.toLong(userPeriodStatusVos.size()));
-                //                    classPeriodSectionVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
-                                    classPeriodSectionVo.setStudyEndTime(photoList.get(photoList.size()-1).getCreateTime());
-                                    classPeriodSectionVo.setStudyStartTime(userPeriodStatusVo.getRecordStartTime());
+                                    classPeriodSectionVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
+                                    classPeriodSectionVo.setStudyStartTime(photoList.get(0).getCreateTime());
                                     if(startTotalTime==0L||startTotalTime.longValue()>classPeriodSectionVo.getStudyStartTime().longValue()){
                                         startTotalTime = classPeriodSectionVo.getStudyStartTime();
                                     }
-                                    if(endTotalTime==0L||endTotalTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
+                                    if(endTotalTime==0L||(Validator.isNotEmpty(classPeriodSectionVo.getStudyEndTime())&&endTotalTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue())){
                                         endTotalTime = classPeriodSectionVo.getStudyEndTime();
                                     }
                                     classPeriodSectionVo.setPeriodStatus(userPeriodStatusVo.getPeriodStatus());
@@ -1688,9 +1690,12 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                                     classPeriodSectionVo.setAuditTime(userPeriodStatusVo.getAuditTime());
                                     classPeriodSectionVo.setAuditUserName(userPeriodStatusVo.getAuditUserName());
                                     classPeriodSectionVo.setDurationTime(userPeriodStatusVo.getDurationTime());
-                                    if(ChapterEndTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
+                                    if(Validator.isNotEmpty(classPeriodSectionVo.getStudyEndTime())&&ChapterEndTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
                                         ChapterEndTime = classPeriodSectionVo.getStudyEndTime();
                                     }
+                                    if(ChapterStartTime==0L||ChapterStartTime.longValue()>classPeriodSectionVo.getStudyStartTime().longValue()){
+                                        ChapterStartTime = classPeriodSectionVo.getStudyStartTime();
+                                    }
                                 }
                                 if(userPeriodStatusVos.size()>1){
                             //        int preIndex = userPeriodStatusVos.size() - 2;
@@ -1727,7 +1732,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                                     if(startTotalTime==0L||startTotalTime.longValue()>classPeriodSectionVo.getStudyStartTime().longValue()){
                                         startTotalTime = classPeriodSectionVo.getStudyStartTime();
                                     }
-                                    if(endTotalTime==0L||endTotalTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
+                                    if(endTotalTime==0L||(Validator.isNotEmpty(classPeriodSectionVo.getStudyEndTime())&&endTotalTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue())){
                                         endTotalTime = classPeriodSectionVo.getStudyEndTime();
                                     }
                                     classPeriodSectionVo.setPeriodStatus(userPeriodStatusVo.getPeriodStatus());
@@ -1736,9 +1741,12 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                                     classPeriodSectionVo.setAuditUserName(userPeriodStatusVo.getAuditUserName());
                                     classPeriodSectionVo.setPeriodStatusId(userPeriodStatusVo.getId());
                                     classPeriodSectionVo.setPerformance(Convert.toBigDecimal(userPeriodStatusVo.getPerformance()));
-                                    if(ChapterEndTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
+                                    if(Validator.isNotEmpty(classPeriodSectionVo.getStudyEndTime())&&ChapterEndTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
                                         ChapterEndTime = classPeriodSectionVo.getStudyEndTime();
                                     }
+                                    if(ChapterStartTime==0L||ChapterStartTime.longValue()>classPeriodSectionVo.getStudyStartTime().longValue()){
+                                        ChapterStartTime = classPeriodSectionVo.getStudyStartTime();
+                                    }
                                 }
                                 classPeriodSectionVo.setModuleId(classPeriodVo.getId());
                                 classPeriodSectionVo.setChapterId(classPeriodChapterVo.getId());
@@ -1747,6 +1755,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                             }
                         }
                         classPeriodChapterVo.setStudyEndTime(ChapterEndTime);
+                        classPeriodChapterVo.setStudyStartTime(ChapterStartTime);
                         classPeriodChapterVo.setClassPeriodSectionList(classPeriodSectionVos);
                     }
                     else if (classPeriodChapterVo.getType() == 5) {
@@ -1776,6 +1785,12 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                             classPeriodChapterVo.setAuditUserName(userPeriodStatusVo.getAuditUserName());
                             classPeriodChapterVo.setPeriodStatusId(userPeriodStatusVo.getId());
                             classPeriodChapterVo.setPerformance(Convert.toBigDecimal(userPeriodStatusVo.getPerformance()));
+                            if(startTotalTime==0L||startTotalTime.longValue()>classPeriodChapterVo.getStudyStartTime().longValue()){
+                                startTotalTime = classPeriodChapterVo.getStudyStartTime();
+                            }
+                            if(endTotalTime==0L||(Validator.isNotEmpty(classPeriodChapterVo.getStudyEndTime())&&endTotalTime.longValue()<classPeriodChapterVo.getStudyEndTime().longValue())){
+                                endTotalTime = classPeriodChapterVo.getStudyEndTime();
+                            }
                         }
 
                     }
@@ -1785,9 +1800,11 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             //为章搜索节记录和学时记录
             if (classPeriodVo.getType() == 2) {
                 Long ChapterEndTime = 0L;
+                Long ChapterStartTime = 0L;
                 List<ClassPeriodSectionVo> classPeriodSectionVos = baseMapper.listPeriodSection(classPeriodVo.getId(), bo.getGoodsId(), classPeriodVo.getCourseId(), bo.getUserId());
                 Collections.sort(classPeriodSectionVos);
                 for (ClassPeriodSectionVo classPeriodSectionVo : classPeriodSectionVos) {
+                    secTotalTime+=classPeriodSectionVo.getDurationTime();
                     UserPeriodQueryBo userPeriodQueryBo = new UserPeriodQueryBo();
                     userPeriodQueryBo.setSectionId(classPeriodSectionVo.getId());
                     userPeriodQueryBo.setCourseId(classPeriodSectionVo.getCourseId());
@@ -1807,13 +1824,12 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                         classPeriodSectionVo.setNumIndex(Convert.toLong(userPeriodStatusVos.size()));
                         classPeriodSectionVo.setStatus(userPeriodStatusVo.getStatus());
                         classPeriodSectionVo.setNumList(Convert.toLong(userPeriodStatusVos.size()));
-                //        classPeriodSectionVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
-                        classPeriodSectionVo.setStudyEndTime(photoList.get(photoList.size()-1).getCreateTime());
-                        classPeriodSectionVo.setStudyStartTime(userPeriodStatusVo.getRecordStartTime());
+                        classPeriodSectionVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
+                        classPeriodSectionVo.setStudyStartTime(photoList.get(0).getCreateTime());
                         if(startTotalTime==0L||startTotalTime.longValue()>classPeriodSectionVo.getStudyStartTime().longValue()){
                             startTotalTime = classPeriodSectionVo.getStudyStartTime();
                         }
-                        if(endTotalTime==0L||endTotalTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
+                        if(endTotalTime==0L||(Validator.isNotEmpty(classPeriodSectionVo.getStudyEndTime())&&endTotalTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue())){
                             endTotalTime = classPeriodSectionVo.getStudyEndTime();
                         }
                         classPeriodSectionVo.setPeriodStatus(userPeriodStatusVo.getPeriodStatus());
@@ -1822,9 +1838,12 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                         classPeriodSectionVo.setAuditTime(userPeriodStatusVo.getAuditTime());
                         classPeriodSectionVo.setAuditUserName(userPeriodStatusVo.getAuditUserName());
                         classPeriodSectionVo.setDurationTime(userPeriodStatusVo.getDurationTime());
-                        if(ChapterEndTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
+                        if(Validator.isNotEmpty(classPeriodSectionVo.getStudyEndTime())&&ChapterEndTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
                             ChapterEndTime = classPeriodSectionVo.getStudyEndTime();
                         }
+                        if(ChapterStartTime==0L||ChapterStartTime.longValue()>classPeriodSectionVo.getStudyStartTime().longValue()){
+                            ChapterStartTime = classPeriodSectionVo.getStudyStartTime();
+                        }
                     }
                     if(userPeriodStatusVos.size()>1){
                 //        int preIndex = userPeriodStatusVos.size() - 2;
@@ -1862,7 +1881,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                         if(startTotalTime==0L||startTotalTime.longValue()>classPeriodSectionVo.getStudyStartTime().longValue()){
                             startTotalTime = classPeriodSectionVo.getStudyStartTime();
                         }
-                        if(endTotalTime==0L||endTotalTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
+                        if(endTotalTime==0L||(Validator.isNotEmpty(classPeriodSectionVo.getStudyEndTime())&&endTotalTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue())){
                             endTotalTime = classPeriodSectionVo.getStudyEndTime();
                         }
                         classPeriodSectionVo.setPeriodStatus(userPeriodStatusVo.getPeriodStatus());
@@ -1872,9 +1891,12 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                         classPeriodSectionVo.setAuditUserName(userPeriodStatusVo.getAuditUserName());
                         classPeriodSectionVo.setPerformance(Convert.toBigDecimal(userPeriodStatusVo.getPerformance()));
                         classPeriodVo.setPerformance(Convert.toBigDecimal(userPeriodStatusVo.getPerformance()));
-                        if(ChapterEndTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
+                        if(Validator.isNotEmpty(classPeriodSectionVo.getStudyEndTime())&&ChapterEndTime.longValue()<classPeriodSectionVo.getStudyEndTime().longValue()){
                             ChapterEndTime = classPeriodSectionVo.getStudyEndTime();
                         }
+                        if(ChapterStartTime==0L||ChapterStartTime.longValue()>classPeriodSectionVo.getStudyStartTime().longValue()){
+                            ChapterStartTime = classPeriodSectionVo.getStudyStartTime();
+                        }
                     }
                     classPeriodSectionVo.setModuleId(0L);
                     classPeriodSectionVo.setChapterId(classPeriodVo.getId());
@@ -1884,10 +1906,12 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                 classPeriodSectionVos.addAll(classPeriodSectionVos1);
                 classPeriodVo.setClassPeriodSectionList(classPeriodSectionVos);
                 classPeriodVo.setStudyEndTime(ChapterEndTime);
+                classPeriodVo.setStudyStartTime(ChapterStartTime);
             }
 
             //为节搜索学时记录
             if (classPeriodVo.getType() == 3) {
+                secTotalTime+=classPeriodVo.getDurationTime();
                 UserPeriodQueryBo userPeriodQueryBo = new UserPeriodQueryBo();
                 userPeriodQueryBo.setSectionId(classPeriodVo.getId());
                 userPeriodQueryBo.setCourseId(classPeriodVo.getCourseId());
@@ -1908,13 +1932,14 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                     classPeriodVo.setNumIndex(Convert.toLong(userPeriodStatusVos.size()));
                     classPeriodVo.setStatus(userPeriodStatusVo.getStatus());
                     classPeriodVo.setNumList(Convert.toLong(userPeriodStatusVos.size()));
-    //                classPeriodVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
-                    classPeriodVo.setStudyEndTime(photoList.get(photoList.size()-1).getCreateTime());
-                    classPeriodVo.setStudyStartTime(userPeriodStatusVo.getRecordStartTime());
+                    classPeriodVo.setStudyEndTime(userPeriodStatusVo.getRecordEndTime());
+                    if(photoList.size()>0){
+                        classPeriodVo.setStudyStartTime(photoList.get(0).getCreateTime());
+                    }
                     if(startTotalTime==0L||startTotalTime.longValue()>classPeriodVo.getStudyStartTime().longValue()){
                         startTotalTime = classPeriodVo.getStudyStartTime();
                     }
-                    if(endTotalTime==0L||endTotalTime.longValue()<classPeriodVo.getStudyEndTime().longValue()){
+                    if(endTotalTime==0L||(Validator.isNotEmpty(classPeriodVo.getStudyEndTime())&&endTotalTime.longValue()<classPeriodVo.getStudyEndTime().longValue())){
                         endTotalTime = classPeriodVo.getStudyEndTime();
                     }
                     classPeriodVo.setPeriodStatus(userPeriodStatusVo.getPeriodStatus());
@@ -1940,6 +1965,8 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         if(classPeriodVos.size()>0){
             classPeriodVos.get(0).setStartTotalTime(startTotalTime);
             classPeriodVos.get(0).setEndTotalTime(endTotalTime);
+            classPeriodVos.get(0).setSecTotalTime(secTotalTime);
+
         }
         return classPeriodVos;
     }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/UserPeriodServiceImpl.java

@@ -74,6 +74,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
 import java.text.DecimalFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;

+ 6 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodVo.java

@@ -201,6 +201,11 @@ public class ClassPeriodVo implements Comparable<ClassPeriodVo> {
 	@ApiModelProperty("上一次结束")
 	private Long preEndTime;
 
+	private Long startTotalTime;
+
+	private Long endTotalTime;
+
+	private Long secTotalTime;
 	@Override
 	public int compareTo(ClassPeriodVo o) {
 		if(o.getCourseSort()==this.getCourseSort()){
@@ -210,6 +215,5 @@ public class ClassPeriodVo implements Comparable<ClassPeriodVo> {
 		}
 
 	}
-	private Long startTotalTime;
-	private Long endTotalTime;
+
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoodsRefund.java

@@ -75,4 +75,8 @@ private static final long serialVersionUID=1L;
     private Long periodReviewTime;
     /** 退款时间 */
     private Long refundTime;
+    /** 分成模式 1机构分成 2业务员分成 */
+    private Integer divideModel;
+    /** 待扣分成钱 */
+    private BigDecimal divideMoney;
 }

+ 46 - 70
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsRefundServiceImpl.java

@@ -269,31 +269,18 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
             throw new CustomException("直播商品不能退款");
         }
 
-//        OrderGoodsRefund add = BeanUtil.toBean(bo, OrderGoodsRefund.class);
-//        validEntityBeforeSave(add);
-//        add.setCreateTime(DateUtils.getNowTime());
-//        add.setUpdateTime(DateUtils.getNowTime());
-//        //退款单号
-//        add.setRefundSn(DateUtils.getDateOrderSn());
-//        add.setRefundFee(orderGoods.getGoodsReceived());
-//        add.setUserId(order.getUserId());
-//        add.setType(OrderGoodsRefund.TYPE_SMALL);
-//        add.setOrderGoodsId(orderGoods.getOrderGoodsId());
-//        this.save(add);
-        //退款推送总平台
-        TopOldOrderRefund add = BeanUtil.toBean(bo, TopOldOrderRefund.class);
+        OrderGoodsRefund add = BeanUtil.toBean(bo, OrderGoodsRefund.class);
+        validEntityBeforeSave(add);
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         //退款单号
         String refundSn = DateUtils.getDateOrderSn();
         add.setRefundSn(refundSn);
         add.setRefundFee(orderGoods.getGoodsReceived());
-        add.setRealRefundFee(orderGoods.getGoodsReceived());
         add.setUserId(order.getUserId());
-        add.setType(3);//新云学堂C端退款
-        add.setPeriodStatus(0);//待审核
+        add.setType(OrderGoodsRefund.TYPE_SMALL);
         add.setOrderGoodsId(orderGoods.getOrderGoodsId());
-        topOldOrderRefundService.save(add);
+        this.save(add);
         //订单状态修改
         iOrderService.update(new LambdaUpdateWrapper<Order>()
                         .set(Order::getRefundStatus,0)//待审核
@@ -333,52 +320,34 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
         }
 
         //通知教务审核(后台站内信)
-        InformRemind informRemind = informRemindService.getOne(new LambdaQueryWrapper<InformRemind>()
-        .eq(InformRemind::getRemind,"订单退款申请通知提醒").last("limit 1"));
-        if (informRemind.getWayStatus() == 1 && informRemind.getUserType() == 2) {
-            //获取初审审核人账号
-            CourseBusiness business = iCourseBusinessService.getById(goods.getBusinessId());
-            if (ObjectUtils.isNotNull(business) && StringUtils.isNotBlank(business.getRefundUserIds())){
-                List<SysUser> sysUsers = iSysUserService.listByIds(Arrays.asList(business.getRefundUserIds().split(",")));
-                if (CollectionUtils.isNotEmpty(sysUsers)){
-                    sysUsers.forEach(user -> {
-                        InformSysUser addBo = new InformSysUser();
-                        addBo.setUserId(user.getUserId());
-                        addBo.setSendTime(DateUtils.getNowTime());
-                        addBo.setSendStatus(1);
-                        addBo.setCreateTime(DateUtils.getNowTime());
-                        addBo.setUpdateTime(DateUtils.getNowTime());
-                        addBo.setRemindId(informRemind.getId());
-                        addBo.setReceiptStatus(0);
-                        addBo.setSystemStatus(1);
-                        addBo.setRemind("订单退款申请通知提醒");
-                        addBo.setGoodsId(goods.getGoodsId());
-                        addBo.setOrderGoodsId(orderGoods.getOrderGoodsId());
-                        GoodsVo goodsVo1 = iGoodsService.queryById(goods.getGoodsId());
-                        addBo.setText(String.format("【%s】课程申请退款,请尽快处理!",goodsVo1.getGoodsName()));
-                        iInformSysUserService.save(addBo);
-                    });
-                }
-            }
-
-        }
-
-//        OrderGoodsRefund add = getOne(new LambdaQueryWrapper<OrderGoodsRefund>().eq(OrderGoodsRefund::getGoodsId,bo.getGoodsId()).eq(OrderGoodsRefund::getOrderSn,bo.getOrderSn()));
-//        String out_trade_no = null;
-//        if(Validator.isNotEmpty(add)){
-//            out_trade_no = add.getRefundSn();
-//        }else{
-//
-//        }
-//        Map<String, String> payResult =  iWxPayService.refund(out_trade_no,order.getTransid(),add.getRefundFee(),order.getPayPrice());
-//        if("OK".equals(payResult.get("return_msg"))&&Validator.isNotEmpty(payResult.get("refund_id"))){
-//            refundCall(payResult.get("refund_id"),add.getRefundId(),orderGoods.getOrderGoodsId(),order,goods.getGoodsType(),orderGoods.getGradeId(),bo.getUserId(),goods.getGoodsId());
-//            //关闭C端用户的分销返利
+//        InformRemind informRemind = informRemindService.getOne(new LambdaQueryWrapper<InformRemind>()
+//        .eq(InformRemind::getRemind,"订单退款申请通知提醒").last("limit 1"));
+//        if (informRemind.getWayStatus() == 1 && informRemind.getUserType() == 2) {
+//            //获取初审审核人账号
+//            CourseBusiness business = iCourseBusinessService.getById(goods.getBusinessId());
+//            if (ObjectUtils.isNotNull(business) && StringUtils.isNotBlank(business.getRefundUserIds())){
+//                List<SysUser> sysUsers = iSysUserService.listByIds(Arrays.asList(business.getRefundUserIds().split(",")));
+//                if (CollectionUtils.isNotEmpty(sysUsers)){
+//                    sysUsers.forEach(user -> {
+//                        InformSysUser addBo = new InformSysUser();
+//                        addBo.setUserId(user.getUserId());
+//                        addBo.setSendTime(DateUtils.getNowTime());
+//                        addBo.setSendStatus(1);
+//                        addBo.setCreateTime(DateUtils.getNowTime());
+//                        addBo.setUpdateTime(DateUtils.getNowTime());
+//                        addBo.setRemindId(informRemind.getId());
+//                        addBo.setReceiptStatus(0);
+//                        addBo.setSystemStatus(1);
+//                        addBo.setRemind("订单退款申请通知提醒");
+//                        addBo.setGoodsId(goods.getGoodsId());
+//                        addBo.setOrderGoodsId(orderGoods.getOrderGoodsId());
+//                        GoodsVo goodsVo1 = iGoodsService.queryById(goods.getGoodsId());
+//                        addBo.setText(String.format("【%s】课程申请退款,请尽快处理!",goodsVo1.getGoodsName()));
+//                        iInformSysUserService.save(addBo);
+//                    });
+//                }
+//            }
 //
-//        shareClientCancelOldSys(order,orderGoods,add.getRefundFee());
-//            return true;
-//        }else{
-//            throw new CustomException("退款错误"+ JSON.toJSONString(payResult));
 //        }
         return true;
     }
@@ -472,16 +441,13 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
     }
 
     public Boolean topRefundCall(String WxpayRefundId,Long refundId,OrderGoods orderGoods,Order order,Integer goodsType,Long gradeId,Long userId,Long goodsId){
-        TopOldOrderRefund update = new TopOldOrderRefund();
-        update.setRefundId(refundId);
+        OrderGoodsRefund update = getById(refundId);
         update.setUpdateTime(DateUtils.getNowTime());
         update.setWxpayRefundId(WxpayRefundId);
         update.setRefundTime(DateUtils.getNowTime());
-        update.setDivideModel(orderGoods.getDivideModel());
-        update.setDivideMoney(orderGoods.getDivideMoney());
-        topOldOrderRefundService.updateById(update);
+        update.setPeriodStatus(3);//已完成
+        this.updateById(update);
         //修改订单商品退款状态
-        orderGoods.setOrderGoodsId(orderGoods.getOrderGoodsId());
         orderGoods.setRefundStatus(2); //已退款
         orderGoods.setUpdateTime(DateUtils.getNowTime());
         iOrderGoodsService.updateById(orderGoods);
@@ -505,6 +471,16 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
             order.setUpdateTime(DateUtils.getNowTime());
             order.setOrderStatus(Order.REFUND_PART);
         }
+        order.setRefundStatus(3);//退款已完成
+
+        //已退金额
+        BigDecimal add = BigDecimal.ZERO;
+        if (ObjectUtils.isNotNull(order.getOrderRefunded())){
+            add = order.getOrderRefunded().add(update.getRefundFee());
+        }else {
+            add = update.getRefundFee();
+        }
+        order.setOrderRefunded(add);
         iOrderService.updateById(order);
         //清除数据
         clearData(gradeId,userId,orderGoods.getOrderGoodsId(),goodsId,goodsType);
@@ -828,7 +804,7 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
         refundBos.forEach(bo -> {
             //小程序/H5/PC 同意退款处理
             Order order = iOrderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, bo.getOrderSn()));
-            Map<String, String> payResult =  iWxPayService.refund(bo.getRefundSn(),order.getTransid(),bo.getRealRefundFee(),order.getPayPrice());
+            Map<String, String> payResult =  iWxPayService.refund(bo.getRefundSn(),order.getTransid(),bo.getRefundFee(),order.getPayPrice());
             if("OK".equals(payResult.get("return_msg"))&&Validator.isNotEmpty(payResult.get("refund_id"))){
                 OrderGoods orderGoods = iOrderGoodsService.getById(bo.getOrderGoodsId());
                 Goods goods = iGoodsService.getById(bo.getGoodsId());
@@ -838,7 +814,7 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
                 }
                 topRefundCall(payResult.get("refund_id"),bo.getRefundId(),orderGoods,order,goods.getGoodsType(),orderGoods.getGradeId(),bo.getUserId(),goods.getGoodsId());
                 //关闭C端用户的分销返利
-                shareClientCancelOldSys(order,orderGoods,bo.getRealRefundFee());
+                shareClientCancelOldSys(order,orderGoods,bo.getRefundFee());
             }else{
                 throw new CustomException("退款错误"+ JSON.toJSONString(payResult));
             }

+ 17 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/RefundOrderBo.java

@@ -0,0 +1,17 @@
+package com.zhongzheng.modules.top.financial.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年05月18日 11:18
+ */
+@Data
+public class RefundOrderBo implements Serializable {
+
+    private String orderSn;
+
+    private Integer periodStatus;
+}

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderQueryBo.java

@@ -71,6 +71,10 @@ public class TopOldOrderQueryBo extends BaseEntity {
 	private String businessFullName;
 	@ApiModelProperty("当前登入人员ID")
 	private Long loginId;
+	@ApiModelProperty("教育类型ID")
+	private Long educationTypeId;
+	@ApiModelProperty("业务层次ID")
+	private Long businessId;
 	@ApiModelProperty("开始时间")
 	private Long startTime;
 	@ApiModelProperty("结束时间")

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopCourseBusinessMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.top.goods.bo.TopCourseBusinessQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopCourseBusiness;
 import com.zhongzheng.modules.top.goods.vo.TopCourseBusinessVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -18,4 +19,6 @@ public interface TopCourseBusinessMapper extends BaseMapper<TopCourseBusiness> {
     List<TopCourseBusinessVo> queryList(TopCourseBusinessQueryBo bo);
 
     List<TopCourseBusinessVo> queryAllList(TopCourseBusinessQueryBo bo);
+
+    String getBusinessFullName(@Param("businessId") Long businessId);
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopOldOrderMapper.java

@@ -2,9 +2,11 @@ package com.zhongzheng.modules.top.goods.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.top.financial.bo.RefundOrderBo;
 import com.zhongzheng.modules.top.financial.vo.TopOrderLogVo;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopOldOrder;
+import com.zhongzheng.modules.top.goods.vo.TopOldOrderRefundVo;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -43,4 +45,8 @@ public interface TopOldOrderMapper extends BaseMapper<TopOldOrder> {
     TopOldOrder getOrderBySn(@Param("orderSn") String orderSn);
 
     List<TopOrderLogVo> logList(TopOldOrderQueryBo bo);
+
+    List<TopOldOrderRefundVo> getRefundOrder(@Param("orderSn") String orderSn);
+
+    List<TopOldOrderRefundVo> getRefundOrderByBo(RefundOrderBo refundOrderBo);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopCourseBusinessService.java

@@ -53,4 +53,6 @@ public interface ITopCourseBusinessService extends IService<TopCourseBusiness> {
     TopCourseBusiness getEntityById(Long businessId);
 
 	List<TopCourseBusinessVo> queryAllList(TopCourseBusinessQueryBo bo);
+
+    String getBusinessFullName(Long businessId);
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopCourseBusinessServiceImpl.java

@@ -149,4 +149,9 @@ public class TopCourseBusinessServiceImpl extends ServiceImpl<TopCourseBusinessM
     public List<TopCourseBusinessVo> queryAllList(TopCourseBusinessQueryBo bo) {
         return baseMapper.queryAllList(bo);
     }
+
+    @Override
+    public String getBusinessFullName(Long businessId) {
+        return baseMapper.getBusinessFullName(businessId);
+    }
 }

+ 225 - 117
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -38,6 +38,7 @@ import com.zhongzheng.modules.inform.service.IInformSysUserService;
 import com.zhongzheng.modules.inform.vo.InformRemindVo;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.domain.OrderGoodsRefund;
 import com.zhongzheng.modules.order.service.IOrderGoodsRefundService;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.system.bo.SysTenantBadBillConfigBo;
@@ -259,6 +260,18 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Override
     public List<TopOldOrderVo> queryList(TopOldOrderQueryBo 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<TopOldOrderVo> orderVoList = baseMapper.queryList(bo);
         if (CollectionUtils.isNotEmpty(orderVoList)) {
             //订单业务类型
@@ -279,11 +292,20 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 }
                 //退款审核角色
                 if (Arrays.asList(0, 2).contains(item.getRefundStatus())) {
-                    List<TopOldOrderRefund> list = topOldOrderRefundService
-                            .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                                    .eq(TopOldOrderRefund::getOrderSn, item.getOrderSn())
-                                    .in(TopOldOrderRefund::getPeriodStatus, Arrays.asList(0, 1, 2)));
-                    String refundSn = list.stream().findFirst().get().getRefundSn();
+                    String refundSn = "";
+                    if (item.getOrderFrom() == 1){
+                        List<OrderGoodsRefund> list = orderGoodsRefundService
+                                .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                                        .eq(OrderGoodsRefund::getOrderSn, item.getOrderSn())
+                                        .in(OrderGoodsRefund::getPeriodStatus, Arrays.asList(0, 1, 2)));
+                        refundSn = list.stream().findFirst().get().getRefundSn();
+                    }else {
+                        List<TopOldOrderRefund> list = topOldOrderRefundService
+                                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                                        .eq(TopOldOrderRefund::getOrderSn, item.getOrderSn())
+                                        .in(TopOldOrderRefund::getPeriodStatus, Arrays.asList(0, 1, 2)));
+                        refundSn = list.stream().findFirst().get().getRefundSn();
+                    }
                     TopOldOrderCheckLog checkLog = topOldOrderCheckLogService
                             .getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                                     .eq(TopOldOrderCheckLog::getRefundSn, refundSn)
@@ -856,7 +878,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Override
     public List<TopOldOrderGoodsListVo> getOrderGoodsList(TopOldOrderGoodsQuery query) {
         TopOldOrder order = baseMapper.getOrderBySn(query.getOrderSn());
-        if (query.getOrderFrom() == 1) {
+        if (order.getOrderFrom() == 1) {
             //新系统订单
             List<TopOldOrderGoodsListVo> topOldOrderGoodsListVos = orderGoodsService.listByOrderSn(query);
             if (CollectionUtils.isNotEmpty(topOldOrderGoodsListVos)) {
@@ -1214,11 +1236,11 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             throw new CustomException("当前账号没有审核权限");
         }
         //退款详情
-        List<TopOldOrderRefund> orderRefundList = topOldOrderRefundService
-                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                .eq(TopOldOrderRefund::getOrderSn, bo.getOrderSn())
-                .eq(TopOldOrderRefund::getPeriodStatus, 2)//待退款
-                .eq(TopOldOrderRefund::getStatus, 1));
+        RefundOrderBo refundOrderBo = new RefundOrderBo();
+        refundOrderBo.setOrderSn(bo.getOrderSn());
+        refundOrderBo.setPeriodStatus(2);//待退款
+        List<TopOldOrderRefundVo> orderRefundList = baseMapper.getRefundOrderByBo(refundOrderBo);
+        orderRefundList.forEach(item -> item.setRealRefundFee(item.getRefundFee()));
         List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
         TopOldOrderCheckLog checkLog = topOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                 .eq(TopOldOrderCheckLog::getRefundSn, orderRefundList.get(0).getRefundSn())
@@ -1237,17 +1259,17 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             throw new CustomException("订单数据错误无法支付");
         }
         //退款金额
-        BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+        BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
         if (order.getOrderFrom() == 3 && bo.getPayType() == 2){
             if(Validator.isEmpty(bo.getToBankAcount())||Validator.isEmpty(bo.getToBankName())||Validator.isEmpty(bo.getToBankTypeName())){
                 throw new CustomException("支付参数错误");
             }
             //旧系统B端网银退款处理
-            handleEnterpriseRefund(refundPrice,order,bo);
-            orderRefundList.forEach(x -> x.setPeriodStatus(4));//支付中
-            topOldOrderRefundService.updateBatchById(orderRefundList);
+            Integer sign = handleEnterpriseRefund(refundPrice, order, bo);
+            orderRefundList.forEach(x -> x.setPeriodStatus(sign==2?4:3));//支付中
+            topOldOrderRefundService.updateBatchById(orderRefundList.stream().map(x -> BeanUtil.toBean(x,TopOldOrderRefund.class)).collect(Collectors.toList()));
             update(new LambdaUpdateWrapper<TopOldOrder>()
-                    .set(TopOldOrder::getRefundStatus,5) // 支付中
+                    .set(TopOldOrder::getRefundStatus,sign==2?5:3) // 支付中
                     .eq(TopOldOrder::getOrderSn,bo.getOrderSn()));
         }else if (order.getOrderFrom() == 1 && bo.getPayType() == 1){
             //新系统C端微信退款处理
@@ -1257,19 +1279,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             String params = JSONArray.toJSONString(orderRefundList);
             try {
                 respone = HttpUtils.sendPostJsonHeader(REFUND_PAY, params,map);
-                if (respone.contains("\"code\":200")) {
-                    //已退金额
-                    BigDecimal add = BigDecimal.ZERO;
-                    BigDecimal reduce = orderRefundList.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
-                    Order entity = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, order.getOrderSn()));
-                    if (ObjectUtils.isNotNull(entity.getOrderRefunded())){
-                        add = entity.getOrderRefunded().add(reduce);
-                    }else {
-                        add = reduce;
-                    }
-                    entity.setOrderRefunded(add);
-                    orderService.updateById(entity);
-                }
             } catch (Exception e) {
                 throw new CustomException("退款支付请求错误"+e.getMessage());
             }
@@ -1277,13 +1286,13 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             // 旧系统C端微信退款处理
             checkInform(order.getOrderSn(),orderRefundList.get(0).getType(),"",1,1,"已支付");
             orderRefundList.forEach(x -> x.setPeriodStatus(3));//已完成
-            topOldOrderRefundService.updateBatchById(orderRefundList);
+            topOldOrderRefundService.updateBatchById(orderRefundList.stream().map(x -> BeanUtil.toBean(x,TopOldOrderRefund.class)).collect(Collectors.toList()));
             topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
             .set(TopOldOrderGoods::getRefundStatus,2)//已退款
-            .in(TopOldOrderGoods::getOrderGoodsId,orderRefundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList())));
+            .in(TopOldOrderGoods::getOrderGoodsId,orderRefundList.stream().map(TopOldOrderRefundVo::getOrderGoodsId).collect(Collectors.toList())));
             //已退金额
             BigDecimal add = BigDecimal.ZERO;
-            BigDecimal reduce = orderRefundList.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal reduce = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
             if (ObjectUtils.isNotNull(order.getOrderRefunded())){
                 add = order.getOrderRefunded().add(reduce);
             }else {
@@ -1302,7 +1311,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return true;
     }
 
-    private void handleRefundOrder(List<TopOldOrderRefund> orderRefundList,String inputOrderSn,String tenantId){
+    private void handleRefundOrder(List<TopOldOrderRefundVo> orderRefundList,String inputOrderSn,String tenantId){
         orderRefundList.forEach(refund -> {
             TopOldOrderGoods item = topOrderGoodsService.getById(refund.getOrderGoodsId());
             User user = userService.getOne(new LambdaQueryWrapper<User>()
@@ -1338,7 +1347,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     }
 
 
-    private void handleEnterpriseRefund(BigDecimal refundPrice,TopOldOrder order,OrderRefundPayBo bo) {
+    private Integer handleEnterpriseRefund(BigDecimal refundPrice,TopOldOrder order,OrderRefundPayBo bo) {
         if (ObjectUtils.isNotNull(order.getOrderUncollected()) && order.getOrderUncollected().compareTo(BigDecimal.ZERO) !=0){
             //存在未收款金额
             BigDecimal orderUncollected = order.getOrderUncollected();
@@ -1392,7 +1401,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 throw new CustomException("退款支付请求错误"+e.getMessage());
             }
             topOrderBankPayService.save(add);
+            return 2;
         }
+        return 1;
     }
 
     @Override
@@ -1501,6 +1512,48 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
 
     }
 
+    public void informRemindOrderCheck(String result) {
+        //订单审核结果通知
+        List<InformRemindRelevance> remindRelevances = informRemindRelevanceService.list(new LambdaQueryWrapper<InformRemindRelevance>().eq(InformRemindRelevance::getType, 2));
+        if (CollectionUtils.isEmpty(remindRelevances)){
+            return;
+        }
+        InformRemindVo informRemindVo = informRemindService.queryByName("订单审核结果通知");
+        for (InformRemindRelevance remindVo : remindRelevances) {
+            SysUser sysUser = sysUserService.getById(remindVo.getRelevanceId());
+            if (ObjectUtil.isNull(sysUser)) {
+                continue;
+            }
+            if (informRemindVo.getWayStatus().equals(1)) {
+                InformSysUserAddBo informUserAddBo = new InformSysUserAddBo();
+                informUserAddBo.setUserId(sysUser.getUserId());
+                informUserAddBo.setSendStatus(1);
+                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                informUserAddBo.setRemindId(informRemindVo.getId());
+                informUserAddBo.setSystemStatus(1);
+                informUserAddBo.setRemind("订单审核结果通知");
+                informUserAddBo.setText(String.format("订单审核结果通知:%s", result));
+                informSysUserService.insertByAddBo(informUserAddBo);
+            }
+            if (informRemindVo.getNoteStatus().equals(1) && StringUtils.isNotBlank(sysUser.getPhonenumber())) {
+                //短信提醒
+//                InformSysUserAddBo informUserAddBo = new InformSysUserAddBo();
+//                informUserAddBo.setSendStatus(1);
+//                informUserAddBo.setSendTime(DateUtils.getNowTime());
+//                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+//                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+//                informUserAddBo.setRemindId(informRemindVo.getId());
+//                informUserAddBo.setSystemStatus(3);
+//                informUserAddBo.setRemind("学员退学提醒,请尽快处理");
+//                informUserAddBo.setText(String.format("学员【%s】已退学,请及时处理",userNames.stream().collect(Collectors.joining())));
+
+            }
+        }
+
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean orderRefundApply(TopOrderRefundApplyBo bo) {
@@ -1638,21 +1691,19 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (ObjectUtils.isNull(orderVo)) {
             throw new CustomException("订单号错误!");
         }
-        List<TopOldOrderRefund> refunds = topOldOrderRefundService
-                .list(new LambdaQueryWrapper<TopOldOrderRefund>().eq(TopOldOrderRefund::getOrderSn, orderSn)
-                        .eq(TopOldOrderRefund::getStatus, 1));
+        List<TopOldOrderRefundVo> refunds = baseMapper.getRefundOrder(orderVo.getOrderSn());
         if (CollectionUtils.isEmpty(refunds)) {
             return vo;
         }
         vo.setOrderId(orderVo.getOrderId());
         vo.setOrderSn(orderVo.getOrderSn());
-        Map<String, List<TopOldOrderRefund>> map = refunds.stream().collect(Collectors.groupingBy(TopOldOrderRefund::getRefundSn));
+        Map<String, List<TopOldOrderRefundVo>> map = refunds.stream().collect(Collectors.groupingBy(TopOldOrderRefundVo::getRefundSn));
         if (map.keySet().size() > 1) {
             //订单多次提交申请
             map.forEach((k, v) -> {
                 if (v.get(0).getPeriodStatus() == 0 || v.get(0).getPeriodStatus() == 1 || v.get(0).getPeriodStatus() == 2) {
                     vo.setRefundSn(k);
-                    BigDecimal reduce = v.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    BigDecimal reduce = v.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
                     vo.setRefundFee(reduce);
                     vo.setRefundReason(v.get(0).getApplyReason());
                     vo.setApplyTime(v.get(0).getCreateTime());
@@ -1660,7 +1711,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             });
         } else {
             vo.setRefundSn(refunds.get(0).getRefundSn());
-            BigDecimal reduce = refunds.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal reduce = refunds.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
             vo.setRefundFee(reduce);
             vo.setRefundReason(refunds.get(0).getApplyReason());
             vo.setApplyTime(refunds.get(0).getCreateTime());
@@ -1704,15 +1755,25 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (collect.stream().anyMatch(x -> x.getCheckSign() == 1)) {
                     vo.setCheckType(3);
                     //获取退款金额
-                    List<TopOldOrderRefund> list = topOldOrderRefundService
-                            .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                                    .eq(TopOldOrderRefund::getOrderSn, orderSn)
-                                    .eq(TopOldOrderRefund::getPeriodStatus, 2)//待退款
-                                    .eq(TopOldOrderRefund::getStatus, 1));
-                    if (CollectionUtils.isEmpty(list)){
-                        throw new CustomException("订单退款信息获取失败!");
+                    BigDecimal reduce = BigDecimal.ZERO;
+                    if (orderVo.getOrderFrom() == 1){
+                        List<OrderGoodsRefund> list = orderGoodsRefundService
+                                .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                                .eq(OrderGoodsRefund::getOrderSn, orderSn)
+                                .eq(OrderGoodsRefund::getPeriodStatus, 2)//待退款
+                                .eq(OrderGoodsRefund::getStatus, 1));
+                        reduce = list.stream().map(OrderGoodsRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    }else {
+                        List<TopOldOrderRefund> list = topOldOrderRefundService
+                                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                                        .eq(TopOldOrderRefund::getOrderSn, orderSn)
+                                        .eq(TopOldOrderRefund::getPeriodStatus, 2)//待退款
+                                        .eq(TopOldOrderRefund::getStatus, 1));
+                        if (CollectionUtils.isEmpty(list)){
+                            throw new CustomException("订单退款信息获取失败!");
+                        }
+                        reduce = list.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
                     }
-                    BigDecimal reduce = list.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
                     vo.setRefundMoney(reduce);
                     vo.setPayType(orderVo.getPayType());
                     vo.setBuyTime(orderVo.getBuyTime());
@@ -1735,6 +1796,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         //审核进度
         TopOldOrderCheckLogQueryBo queryBo = new TopOldOrderCheckLogQueryBo();
         queryBo.setOrderSn(orderVo.getOrderSn());
+        queryBo.setCheckFrom(bo.getCheckFrom());
         List<TopOldOrderCheckLogVo> checkLogVoList = topOldOrderCheckLogService
                 .getCheckList(queryBo);
         for (TopOldOrderCheckLogVo vo : checkLogVoList) {
@@ -1769,16 +1831,32 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }
         List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
         //找到当前申请退款的退款单号
-        List<TopOldOrderRefund> refundList = topOldOrderRefundService
-                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                        .eq(TopOldOrderRefund::getOrderSn, bo.getOrderSn())
-                        .in(TopOldOrderRefund::getPeriodStatus, Arrays.asList(0, 1, 2))
-                        .eq(TopOldOrderRefund::getStatus, 1));
-        if (CollectionUtils.isEmpty(refundList)) {
-            throw new CustomException("当前订单没有申请退款!请检查:" + bo.getOrderSn());
-        }
-        String refundSn = refundList.get(0).getRefundSn();
-        Integer type = refundList.get(0).getType();
+        String refundSn = "";
+        Integer type = 0;
+        if (order.getOrderFrom() == 1){
+            List<OrderGoodsRefund> refundList = orderGoodsRefundService
+                    .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                            .eq(OrderGoodsRefund::getOrderSn, bo.getOrderSn())
+                            .in(OrderGoodsRefund::getPeriodStatus, Arrays.asList(0, 1, 2))
+                            .eq(OrderGoodsRefund::getStatus, 1));
+            if (CollectionUtils.isEmpty(refundList)) {
+                throw new CustomException("当前订单没有申请退款!请检查:" + bo.getOrderSn());
+            }
+            refundSn = refundList.get(0).getRefundSn();
+            type = refundList.get(0).getType();
+        }else {
+            List<TopOldOrderRefund> refundList = topOldOrderRefundService
+                    .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                            .eq(TopOldOrderRefund::getOrderSn, bo.getOrderSn())
+                            .in(TopOldOrderRefund::getPeriodStatus, Arrays.asList(0, 1, 2))
+                            .eq(TopOldOrderRefund::getStatus, 1));
+            if (CollectionUtils.isEmpty(refundList)) {
+                throw new CustomException("当前订单没有申请退款!请检查:" + bo.getOrderSn());
+            }
+            refundSn = refundList.get(0).getRefundSn();
+            type = refundList.get(0).getType();
+        }
+
         //当前退款流程
         TopOldOrderCheckLog checkLog = topOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                 .eq(TopOldOrderCheckLog::getRefundSn, refundSn).eq(TopOldOrderCheckLog::getStatus, 1)
@@ -1837,37 +1915,27 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
 
         } else {
             //初审拒绝
-            //处理订单状态
-            List<TopOldOrderRefund> refundList = topOldOrderRefundService
-                    .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                            .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
-                            .eq(TopOldOrderRefund::getStatus, 1));
-            List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
-            for (TopOldOrderRefund item : refundList) {
-                item.setPeriodStatus(-1);//拒绝退款
-            }
-            topOldOrderRefundService.updateBatchById(refundList);
-            topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
-                    .set(TopOldOrderGoods::getRefundStatus, 3)//未通过
-                    .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
-
-            update(new LambdaUpdateWrapper<TopOldOrder>()
-                    .set(TopOldOrder::getRefundStatus, 4) //未通过
-                    .eq(TopOldOrder::getOrderSn, refundList.get(0).getOrderSn()));
-            //订单处理
-            TopOldOrder order = baseMapper.getOrderBySn(refundList.get(0).getOrderSn());
             // 订单退款通知业务系统
             if (oldOrder.getOrderFrom() != 1){
-                checkInform(order.getOrderSn(),type,bo.getCheckReason(),2,1,String.format("未通过(%s)",bo.getCheckRoleName()));
-            }
+                checkInform(oldOrder.getOrderSn(),type,bo.getCheckReason(),2,1,String.format("未通过(%s)",bo.getCheckRoleName()));
+                //处理订单状态
+                List<TopOldOrderRefund> refundList = topOldOrderRefundService
+                        .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                                .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
+                                .eq(TopOldOrderRefund::getStatus, 1));
+                List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
+                for (TopOldOrderRefund item : refundList) {
+                    item.setPeriodStatus(-1);//拒绝退款
+                }
+                topOldOrderRefundService.updateBatchById(refundList);
+                topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
+                        .set(TopOldOrderGoods::getRefundStatus, 3)//未通过
+                        .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
 
-            if (order.getOrderFrom() == 1) {
-                //新系统订单
-                orderGoodsService.update(new LambdaUpdateWrapper<OrderGoods>()
-                        .set(OrderGoods::getRefundStatus, 3)
-                        .in(OrderGoods::getOrderGoodsId, orderGoodsIds));
-            } else {
-                if (order.getOrderBase() == 1){
+                update(new LambdaUpdateWrapper<TopOldOrder>()
+                        .set(TopOldOrder::getRefundStatus, 4) //未通过
+                        .eq(TopOldOrder::getOrderSn, refundList.get(0).getOrderSn()));
+                if (oldOrder.getOrderBase() == 1){
                     //底单在新系统
                     List<TopOldOrderGoods> orderGoods = topOrderGoodsService.listByIds(orderGoodsIds);
                     orderGoods.forEach(item -> {
@@ -1877,7 +1945,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                             //处理新系统订单商品
                             List<Order> list = orderService
                                     .list(new LambdaUpdateWrapper<Order>()
-                                            .eq(Order::getInputOrderSn, order.getInputOrderSn())
+                                            .eq(Order::getInputOrderSn, oldOrder.getInputOrderSn())
                                             .eq(Order::getStatus, 1)
                                             .eq(Order::getUserId, user.getUserId()));
                             if (CollectionUtils.isNotEmpty(list)) {
@@ -1895,7 +1963,27 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         }
                     });
                 }
+            }else {
+                //新系统订单
+                //处理订单状态
+                List<OrderGoodsRefund> refundList = orderGoodsRefundService
+                        .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                                .eq(OrderGoodsRefund::getRefundSn, checkLog.getRefundSn())
+                                .eq(OrderGoodsRefund::getStatus, 1));
+                List<Long> orderGoodsIds = refundList.stream().map(OrderGoodsRefund::getOrderGoodsId).collect(Collectors.toList());
+                for (OrderGoodsRefund item : refundList) {
+                    item.setPeriodStatus(-1);//拒绝退款
+                }
+                orderGoodsRefundService.updateBatchById(refundList);
+                orderGoodsService.update(new LambdaUpdateWrapper<OrderGoods>()
+                        .set(OrderGoods::getRefundStatus, 3)//未通过
+                        .in(OrderGoods::getOrderGoodsId, orderGoodsIds));
+
+               orderService.update(new LambdaUpdateWrapper<Order>()
+                        .set(Order::getRefundStatus, 4) //未通过
+                        .eq(Order::getOrderSn, refundList.get(0).getOrderSn()));
             }
+
         }
     }
 
@@ -1972,32 +2060,53 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 check.setCheckSign(1);//开启当前流程
                 topOldOrderCheckLogService.updateById(check);
             }
+            //消息通知
+            informRemindOrderCheck(String.format("【%s】订单已通过【%s】审核",bo.getOrderSn(),bo.getCheckRoleName()));
         }
         TopOldOrder oldOrder = baseMapper.getOrderBySn(bo.getOrderSn());
         if (oldOrder.getOrderFrom() != 1){
             checkInform(bo.getOrderSn(),type,bo.getCheckReason(),1,0,String.format("%s(%s)",
                     periodStatus == 2?"待付款":"审核中",
                     bo.getCheckRoleName()));
-        }
+            //处理订单状态
+            List<TopOldOrderRefund> refundList = topOldOrderRefundService
+                    .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                            .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
+                            .eq(TopOldOrderRefund::getStatus, 1));
+            List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
+            for (TopOldOrderRefund item : refundList) {
+                item.setPeriodStatus(periodStatus);
+            }
+            topOldOrderRefundService.updateBatchById(refundList);
+            topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
+                    .set(TopOldOrderGoods::getRefundStatus, refundStatus)
+                    .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
 
-        //处理订单状态
-        List<TopOldOrderRefund> refundList = topOldOrderRefundService
-                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                        .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
-                        .eq(TopOldOrderRefund::getStatus, 1));
-        List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
-        for (TopOldOrderRefund item : refundList) {
-            item.setPeriodStatus(periodStatus);
-        }
-        topOldOrderRefundService.updateBatchById(refundList);
-        topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
-                .set(TopOldOrderGoods::getRefundStatus, refundStatus)
-                .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
+            if (periodStatus == 2) {
+                update(new LambdaUpdateWrapper<TopOldOrder>()
+                        .set(TopOldOrder::getRefundStatus, 2) //未退款
+                        .eq(TopOldOrder::getOrderSn, refundList.get(0).getOrderSn()));
+            }
+        }else {
+            //新云学堂订单
+            List<OrderGoodsRefund> refundList = orderGoodsRefundService
+                    .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                            .eq(OrderGoodsRefund::getRefundSn, checkLog.getRefundSn())
+                            .eq(OrderGoodsRefund::getStatus, 1));
+            List<Long> orderGoodsIds = refundList.stream().map(OrderGoodsRefund::getOrderGoodsId).collect(Collectors.toList());
+            for (OrderGoodsRefund item : refundList) {
+                    item.setPeriodStatus(periodStatus);
+            }
+            orderGoodsRefundService.updateBatchById(refundList);
+            topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
+                    .set(TopOldOrderGoods::getRefundStatus, refundStatus)
+                    .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
 
-        if (periodStatus == 2) {
-            update(new LambdaUpdateWrapper<TopOldOrder>()
-                    .set(TopOldOrder::getRefundStatus, 2) //未退款
-                    .eq(TopOldOrder::getOrderSn, refundList.get(0).getOrderSn()));
+            if (periodStatus == 2) {
+                orderService.update(new LambdaUpdateWrapper<Order>()
+                                    .set(Order::getRefundStatus, 2) //未退款
+                                    .eq(Order::getOrderSn, refundList.get(0).getOrderSn()));
+            }
         }
     }
 
@@ -2856,7 +2965,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             updateById(order);
             //订单在新系统 处理订单
             if (bo.getStatus() == 1 && order.getOrderBase() == 1 && ObjectUtils.isNotNull(order.getInputOrderSn())){
-                handleRefundOrder(list,order.getInputOrderSn(),order.getTenantId().toString());
+                handleRefundOrder(list.stream().map(x -> BeanUtil.toBean(x,TopOldOrderRefundVo.class)).collect(Collectors.toList()),order.getInputOrderSn(),order.getTenantId().toString());
             }
             checkInform(order.getOrderSn(),list.get(0).getType(),"",1,1,bo.getStatus() == 1?"已支付":"支付失败");
             return true;
@@ -2876,7 +2985,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 divideLog.setPayStatus(1);
                 divideLog.setPayTime(DateUtils.getNowTime());
                 iTopDivideOrderService.updateCheckStatusById(bankPay);
-
             }
             if(bo.getStatus()==0){
                 bankPay.setResultStatus(-1);
@@ -3259,28 +3367,28 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             TopDivideLogQueryBo queryBo1 =new TopDivideLogQueryBo();
             queryBo1.setDivideType(1);
             TopDivideLogVo vo1 = iTopDivideLogService.getSumMoney(queryBo1);
-            map.put("unDeductMoneyTotal",vo1.getUnDeductMoneyTotal());
-            map.put("unPayMoneyTotal",vo1.getUnPayMoneyTotal());
-            map.put("payMoneyTotal",vo1.getPayMoneyTotal());
-            map.put("deductMoneyTotal",vo1.getDeductMoneyTotal());
+            map.put("unDeductMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getUnDeductMoneyTotal());
+            map.put("unPayMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getUnPayMoneyTotal());
+            map.put("payMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getPayMoneyTotal());
+            map.put("deductMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getDeductMoneyTotal());
         }
         if(bo.getTotalType()==3){
             //3业务员提成
             TopDivideLogQueryBo queryBo1 =new TopDivideLogQueryBo();
             queryBo1.setDivideType(2);
             TopDivideLogVo vo1 = iTopDivideLogService.getSumMoney(queryBo1);
-            map.put("unDeductMoneyTotal",vo1.getUnDeductMoneyTotal());
-            map.put("unPayMoneyTotal",vo1.getUnPayMoneyTotal());
-            map.put("payMoneyTotal",vo1.getPayMoneyTotal());
-            map.put("deductMoneyTotal",vo1.getDeductMoneyTotal());
+            map.put("unDeductMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getUnDeductMoneyTotal());
+            map.put("unPayMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getUnPayMoneyTotal());
+            map.put("payMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getPayMoneyTotal());
+            map.put("deductMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getDeductMoneyTotal());
         }
         if(bo.getTotalType()==4){
             //4佣金结算
             TopDivideLogQueryBo queryBo1 =new TopDivideLogQueryBo();
             queryBo1.setDivideType(3);
             TopDivideLogVo vo1 = iTopDivideLogService.getSumMoney(queryBo1);
-            map.put("unPayMoneyTotal",vo1.getUnPayMoneyTotal());
-            map.put("payMoneyTotal",vo1.getPayMoneyTotal());
+            map.put("unPayMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getUnPayMoneyTotal());
+            map.put("payMoneyTotal",Validator.isEmpty(vo1)?0:vo1.getPayMoneyTotal());
         }
 
         return map;

+ 13 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderRefundVo.java

@@ -89,4 +89,17 @@ public class TopOldOrderRefundVo {
 	@Excel(name = "退款时间")
 	@ApiModelProperty("退款时间")
 	private Long refundTime;
+
+	@ApiModelProperty("退款订单类型:1新系统,2旧系统")
+	private Integer refundType;
+
+	@ApiModelProperty("分成模式 1机构分成 2业务员分成")
+	private Integer divideModel;
+
+	@ApiModelProperty("待扣分成钱")
+	private BigDecimal divideMoney;
+
+	private Long createTime;
+
+	private Long updateTime;
 }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/mall/bo/TopStoreQueryBo.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
 
@@ -56,5 +57,5 @@ public class TopStoreQueryBo extends BaseEntity {
 	private String initPwd;
 	/** 0 未启用 1启用 -1删除 */
 	@ApiModelProperty("0 未启用 1启用 -1删除")
-	private Integer status;
+	private List<Integer> status;
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/mall/service/impl/TopStoreServiceImpl.java

@@ -54,7 +54,7 @@ public class TopStoreServiceImpl extends ServiceImpl<TopStoreMapper, TopStore> i
         lqw.eq(StrUtil.isNotBlank(bo.getPassword()), TopStore::getPassword, bo.getPassword());
         lqw.eq(StrUtil.isNotBlank(bo.getContacts()), TopStore::getContacts, bo.getContacts());
         lqw.eq(StrUtil.isNotBlank(bo.getInitPwd()), TopStore::getInitPwd, bo.getInitPwd());
-        lqw.eq(bo.getStatus() != null, TopStore::getStatus, bo.getStatus());
+        lqw.in(bo.getStatus() != null, TopStore::getStatus, bo.getStatus());
         return entity2Vo(this.list(lqw));
     }
 

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/mall/vo/TopStoreVo.java

@@ -58,4 +58,7 @@ public class TopStoreVo {
 	private String remark;
 
 	private String tenantId;
+
+	private Long createTime;
+
 }

+ 5 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOldOrderCompanyExportVo.java

@@ -1,7 +1,6 @@
 package com.zhongzheng.modules.top.order.vo;
 
 
-
 import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -49,14 +48,19 @@ public class TopOldOrderCompanyExportVo {
 	@Excel(name = "待扣分成(元)")
 	@ApiModelProperty("待扣分成(元)")
 	private BigDecimal waitDeductMoney;
+	@Excel(name = "预付时间")
 	@ApiModelProperty("预付时间")
 	private String predictPayTime;
+	@Excel(name = "预付款剩余天数")
 	@ApiModelProperty("预付款剩余天数")
 	private Integer predictPayDay;
+	@Excel(name = "审核状态")
 	@ApiModelProperty("审核状态")
 	private String checkStatus;
+	@Excel(name = "支付时间")
 	@ApiModelProperty("支付时间")
 	private String payTime;
+	@Excel(name = "remark")
 	@ApiModelProperty("备注")
 	private String remark;
 

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOldOrderSellerExportVo.java

@@ -49,14 +49,19 @@ public class TopOldOrderSellerExportVo {
 	@Excel(name = "待扣分成(元)")
 	@ApiModelProperty("待扣分成(元)")
 	private BigDecimal waitDeductMoney;
+	@Excel(name = "预付时间")
 	@ApiModelProperty("预付时间")
 	private String predictPayTime;
+	@Excel(name = "预付款剩余天数")
 	@ApiModelProperty("预付款剩余天数")
 	private Integer predictPayDay;
+	@Excel(name = "审核状态")
 	@ApiModelProperty("审核状态")
 	private String checkStatus;
+	@Excel(name = "支付时间")
 	@ApiModelProperty("支付时间")
 	private String payTime;
+	@Excel(name = "备注")
 	@ApiModelProperty("备注")
 	private String remark;
 

+ 9 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopCourseBusinessMapper.xml

@@ -62,6 +62,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by b.sort
     </select>
 
+    <select id="getBusinessFullName" parameterType="java.lang.Long"  resultType="java.lang.String">
+        SELECT
+            CONCAT(cet.scheme_name,cet.education_name,IFNULL(cb.old_business_name, CONCAT(cb.business_name,cpt.project_name))) as `name`
+        FROM top_course_business cb
+                 LEFT JOIN top_course_project_type cpt ON cb.project_id = cpt.id
+                 LEFT JOIN top_course_education_type cet ON cpt.education_id = cet.id
+        WHERE cb.id = #{businessId}
+    </select>
+
     <select id="queryList" parameterType="com.zhongzheng.modules.course.bo.CourseBusinessQueryBo"  resultMap="TopCourseBusinessVoResult">
         SELECT
         b.*,

+ 3 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopDivideLogMapper.xml

@@ -74,6 +74,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="roleId != null and roleId != ''">
             AND cl.role_id = #{roleId}
         </if>
+        <if test="checkFrom != null and checkFrom != ''">
+            AND cl.check_from = #{checkFrom}
+        </if>
         <if test="checkStatus != null and checkStatus != ''">
             AND cl.check_status in
             <foreach collection="checkStatus" item="item" index="index" open="(" close=")" separator=",">

+ 23 - 9
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

@@ -47,9 +47,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         FROM
                 ( SELECT DISTINCT order_sn
                 <if test="businessFullName != null and businessFullName != '' and (userCard == null or userCard == '')">
-                    FROM `v_top_order_business`  where business_full_name = #{businessFullName}
+                    FROM `v_top_order_business`  where INSTR( business_full_name,#{businessFullName} ) > 0
                 </if>
-                <if test="userCard != null and userCard != '' and (businessFullName == null and businessFullName == '')">
+                <if test="(userCard != null and userCard != '') and (businessFullName == null or businessFullName == '')">
                     FROM `v_top_order_card`  where user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
                 </if>
                 <if test="userCard != null and userCard != '' and businessFullName != null and businessFullName != ''">
@@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     SELECT
                     DISTINCT order_sn
                     FROM
-                    ( SELECT order_sn FROM v_top_order_business WHERE business_full_name = #{businessFullName} UNION ALL SELECT order_sn FROM v_top_order_card
+                    ( SELECT order_sn FROM v_top_order_business WHERE INSTR( business_full_name,#{businessFullName} ) > 0  UNION ALL SELECT order_sn FROM v_top_order_card
                     WHERE user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}) b
                     ) m
                 </if>
@@ -71,8 +71,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 </if>
                  ) a
                     LEFT JOIN v_top_order vto ON a.order_sn = vto.order_sn
-        WHERE vto.`status` = 1
-        <if test="checkStatus != null and checkStatus != ''">
+        WHERE vto.`status` in (0,1)
+        <if test="checkStatus != null">
             AND vto.check_status = #{checkStatus}
         </if>
         <if test="refundStatusList != null and refundStatusList.size()!=0 ">
@@ -111,6 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 --             OR vto.course_org LIKE CONCAT( '%', #{keyword}, '%' )
             OR vto.order_org LIKE CONCAT( '%', #{keyword}, '%' ))
         </if>
+        order by vto.create_time DESC
     </select>
 
 
@@ -124,7 +125,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
         1 = 1
         <if test="businessFullName != null and businessFullName != ''">
-            AND otg.business_full_name = #{businessFullName}
+            AND INSTR( otg.business_full_name , #{businessFullName} ) > 0
         </if>
         <if test="userCard != null and userCard != ''">
             AND otg.user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
@@ -184,7 +185,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
             LEFT JOIN course_business cb ON g.business_id = cb.id
             WHERE
-            og.goods_id = g.goods_id AND CONCAT('学校业务', cet.education_name, cb.business_name, cpt.project_name) = #{businessFullName}) > 0
+            og.goods_id = g.goods_id
+              AND
+            INSTR( CONCAT('学校业务', cet.education_name, cb.business_name, cpt.project_name),#{businessFullName}) > 0) > 0
         </if>
         <if test="userCard != null and userCard != ''">
             AND o.user_id = (SELECT user_id FROM `user` WHERE id_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler})
@@ -199,10 +202,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </foreach>
         </if>
         <if test="creditStatus != null and creditStatus != '' and creditStatus == 0">
-            AND o.order_received <![CDATA[ < ]]> ot.pay_price
+            AND o.order_received <![CDATA[ < ]]> o.pay_price
         </if>
         <if test="creditStatus != null and creditStatus != '' and creditStatus == 1">
-            AND o.pay_price = ot.order_received
+            AND o.pay_price = o.order_received
         </if>
         <if test="invoiceStatus != null and invoiceStatus != ''">
             AND o.invoice_status = #{invoiceStatus}
@@ -399,4 +402,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT * FROM top_order_log WHERE order_sn = #{orderSn}
     </select>
 
+    <select id="getRefundOrder" parameterType="java.lang.String" resultType="com.zhongzheng.modules.top.goods.vo.TopOldOrderRefundVo">
+        SELECT * FROM v_top_order_refund WHERE order_sn = #{orderSn}
+    </select>
+
+    <select id="getRefundOrderByBo" parameterType="com.zhongzheng.modules.top.financial.bo.RefundOrderBo" resultType="com.zhongzheng.modules.top.goods.vo.TopOldOrderRefundVo">
+        SELECT * FROM v_top_order_refund WHERE order_sn = #{orderSn} AND status = 1
+        <if test="periodStatus != null and periodStatus != ''">
+            AND period_status = #{periodStatus}
+        </if>
+    </select>
+
 </mapper>