yangdamao 2 年之前
父节点
当前提交
a38387de3c
共有 100 个文件被更改,包括 3006 次插入786 次删除
  1. 7 1
      run-dev.sh
  2. 45 0
      run-pre.sh
  3. 3 1
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/AdminSaasApplication.java
  4. 227 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/common/CommonController.java
  5. 32 3
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseBusinessController.java
  6. 48 4
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseEducationTypeController.java
  7. 32 4
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseProjectTypeController.java
  8. 62 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/ReceiveOrderController.java
  9. 114 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/TopCostTpController.java
  10. 127 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/TopDivideLogController.java
  11. 80 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/TopOrderRecNoteController.java
  12. 112 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/inform/TopInformSysUserController.java
  13. 112 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/mall/TopStoreController.java
  14. 105 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderAttachmentController.java
  15. 112 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderCheckLogController.java
  16. 310 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderController.java
  17. 105 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderGoodsController.java
  18. 64 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOrderBankPayController.java
  19. 40 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java
  20. 6 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/system/SuperSysLoginController.java
  21. 144 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/system/SysProfileController.java
  22. 48 3
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/system/SysTenantController.java
  23. 2 2
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysRoleController.java
  24. 1 1
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysUserController.java
  25. 67 79
      zhongzheng-admin-saas/src/main/resources/application-dev.yml
  26. 69 81
      zhongzheng-admin-saas/src/main/resources/application-pre.yml
  27. 67 79
      zhongzheng-admin-saas/src/main/resources/application-prod.yml
  28. 1 1
      zhongzheng-admin/src/main/java/com/zhongzheng/ZhongZhengApplication.java
  29. 36 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  30. 0 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java
  31. 2 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderGoodsRefundController.java
  32. 8 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserController.java
  33. 67 79
      zhongzheng-admin/src/main/resources/application-dev.yml
  34. 67 79
      zhongzheng-admin/src/main/resources/application-pre.yml
  35. 67 79
      zhongzheng-admin/src/main/resources/application-prod.yml
  36. 3 1
      zhongzheng-api/src/main/java/com/zhongzheng/ZhongZhengApiApplication.java
  37. 11 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserStudyRecordController.java
  38. 67 80
      zhongzheng-api/src/main/resources/application-dev.yml
  39. 26 13
      zhongzheng-api/src/main/resources/application-pre.yml
  40. 67 79
      zhongzheng-api/src/main/resources/application-prod.yml
  41. 5 5
      zhongzheng-common/pom.xml
  42. 1 1
      zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/TopSysRole.java
  43. 1 1
      zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/TopSysUser.java
  44. 56 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/DateUtils.java
  45. 4 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/ServletUtils.java
  46. 54 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/TelPhoneUtils.java
  47. 68 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/ToolsUtils.java
  48. 2 1
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/http/HttpUtils.java
  49. 3 0
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/config/SecurityConfig.java
  50. 1 2
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/DistributionSellerServiceImpl.java
  51. 104 6
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java
  52. 55 3
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java
  53. 2 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/impl/ActivityGoodsPriceServiceImpl.java
  54. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/ExamQuestionServiceImpl.java
  55. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/ExamServiceImpl.java
  56. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionBusinessServiceImpl.java
  57. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionChapterExamServiceImpl.java
  58. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionChapterServiceImpl.java
  59. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionModuleChapterServiceImpl.java
  60. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionModuleServiceImpl.java
  61. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionServiceImpl.java
  62. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/CertificateCommonServiceImpl.java
  63. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/CertificateServiceImpl.java
  64. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/CertificateTpServiceImpl.java
  65. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ProfileFieldServiceImpl.java
  66. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ProfileTpBusinessServiceImpl.java
  67. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ProfileTpServiceImpl.java
  68. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseBusinessServiceImpl.java
  69. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseChapterBusinessServiceImpl.java
  70. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseChapterSectionServiceImpl.java
  71. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseChapterServiceImpl.java
  72. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseEducationTierServiceImpl.java
  73. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseEducationTypeServiceImpl.java
  74. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseHandoutsBusinessServiceImpl.java
  75. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseHandoutsServiceImpl.java
  76. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseMenuExamServiceImpl.java
  77. 4 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseMenuServiceImpl.java
  78. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseModuleBusinessServiceImpl.java
  79. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseModuleChapterServiceImpl.java
  80. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseModuleServiceImpl.java
  81. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseProjectTypeServiceImpl.java
  82. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSectionBusinessServiceImpl.java
  83. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSectionServiceImpl.java
  84. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSectionWatchPerServiceImpl.java
  85. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java
  86. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseStreamingBusinessServiceImpl.java
  87. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseStreamingServiceImpl.java
  88. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSubjectProjectServiceImpl.java
  89. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseSubjectServiceImpl.java
  90. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/MajorProjectServiceImpl.java
  91. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/MajorServiceImpl.java
  92. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserChapterSectionVo.java
  93. 2 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityGoodsServiceImpl.java
  94. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityImageServiceImpl.java
  95. 2 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityPosterServiceImpl.java
  96. 2 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java
  97. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionRebateServiceImpl.java
  98. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamPaperServiceImpl.java
  99. 30 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/AlikeGoodsBo.java
  100. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java

+ 7 - 1
run-dev.sh

@@ -20,6 +20,8 @@ echo '----build image----'
 docker run -p 5055:5055 --name ${app_name} \
 --restart=always \
 --link mysql:db \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
 -e 'spring.profiles.active'=${profile_active} \
 -e TZ="Asia/Shanghai" \
 --add-host=gdxypx.xy.com:192.168.1.210 \
@@ -59,6 +61,8 @@ docker run \
 --name ${app_admin_name} \
 --restart=always \
 --link mysql:db \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
 -e 'spring.profiles.active'=${profile_active} \
 -e TZ="Asia/Shanghai" \
 --add-host=gdxypx.xy.com:192.168.1.210 \
@@ -99,12 +103,14 @@ docker run \
 --name ${app_admin_name} \
 --restart=always \
 --link mysql:db \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
 -e 'spring.profiles.active'=${profile_active} \
 -e TZ="Asia/Shanghai" \
 --add-host=gdxypx.xy.com:192.168.1.210 \
 -v /etc/localtime:/etc/localtime \
 -v /usr/share/fonts:/usr/share/fonts \
--v /data/logs/dev_admin:/logs \
+-v /data/logs/dev_admin_top:/logs \
 -v /mydata/app/${app_admin_name}/logs:/var/logs \
 -v /data/nginx/conf.d:/data/nginx/conf.d \
 -d ${group_admin_name}/${app_admin_name}:${app_admin_version}

+ 45 - 0
run-pre.sh

@@ -20,6 +20,8 @@ echo '----build image----'
 docker run -p 6055:5055 --name ${app_name} \
 --restart=always \
 --link mysql:db \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
 -e 'spring.profiles.active'=${profile_active} \
 -e TZ="Asia/Shanghai" \
 -v /etc/localtime:/etc/localtime \
@@ -62,6 +64,8 @@ docker run \
 --name ${app_admin_name} \
 --restart=always \
 --link mysql:db \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
 -e 'spring.profiles.active'=${profile_active} \
 -e TZ="Asia/Shanghai" \
 -v /etc/localtime:/etc/localtime \
@@ -73,5 +77,46 @@ docker run \
 echo '----start container admin----'
 
 
+echo "开始等待20秒..."
+# 1-10秒内随机
+sleep 5
+echo "等待后继续"
+
+#!/usr/bin/env bash
+# 定义应用组名
+group_admin_name='zhongzheng-pre'
+# 定义应用名称
+app_admin_name='zhongzheng-saas-admin-top-pre'
+# 定义应用版本
+app_admin_version='1.0-SNAPSHOT'
+# 定义应用环境
+profile_active='pre'
+echo '----copy jar admin----'
+docker stop ${app_admin_name}
+echo '----stop container admin----'
+docker rm ${app_admin_name}
+echo '----rm container admin----'
+docker rmi ${group_admin_name}/${app_admin_name}:${app_admin_version}
+echo '----rm image admin----'
+# 打包编译docker镜像
+docker build -f /mydata/maven/build/Dockerfile-saas -t ${group_admin_name}/${app_admin_name}:${app_admin_version} .
+echo '----build image admin----'
+docker run \
+-p 8077:7077 \
+--name ${app_admin_name} \
+--restart=always \
+--link mysql:db \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
+-e 'spring.profiles.active'=${profile_active} \
+-e TZ="Asia/Shanghai" \
+--add-host=gdxypx.xy.com:192.168.1.210 \
+-v /etc/localtime:/etc/localtime \
+-v /usr/share/fonts:/usr/share/fonts \
+-v /data/logs/pre_admin_top:/logs \
+-v /mydata/app/${app_admin_name}/logs:/var/logs \
+-v /data/nginx/conf.d:/data/nginx/conf.d \
+-d ${group_admin_name}/${app_admin_name}:${app_admin_version}
+echo '----start container admin top----'
 
 

+ 3 - 1
zhongzheng-admin-saas/src/main/java/com/zhongzheng/AdminSaasApplication.java

@@ -4,9 +4,11 @@ import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
 
-@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,DruidDataSourceAutoConfigure.class})
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
+@EnableScheduling
 public class AdminSaasApplication {
 
     public static void main(String[] args)

+ 227 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -1,11 +1,14 @@
 package com.zhongzheng.controller.common;
 
 import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.config.RuoYiConfig;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.core.redis.RedisCache;
 import com.zhongzheng.common.enums.BusinessType;
@@ -13,6 +16,7 @@ import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.ToolsUtils;
+import com.zhongzheng.common.utils.file.FileUtils;
 import com.zhongzheng.framework.web.service.WxLoginService;
 import com.zhongzheng.modules.activity.vo.ActivityGoodsPriceVo;
 import com.zhongzheng.modules.base.bo.ConfigQueryBo;
@@ -41,6 +45,13 @@ import com.zhongzheng.modules.sdk.service.NuonuoService;
 import com.zhongzheng.modules.system.bo.SysTenantQueryBo;
 import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.system.service.ISysTenantService;
+import com.zhongzheng.modules.top.financial.bo.*;
+import com.zhongzheng.modules.top.financial.vo.TopOrderLogVo;
+import com.zhongzheng.modules.top.financial.vo.TopOrderRevocationVo;
+import com.zhongzheng.modules.top.financial.vo.TopSellerDiscountVo;
+import com.zhongzheng.modules.top.goods.bo.*;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
+import com.zhongzheng.modules.top.order.bo.PayOrderCallBackBo;
 import com.zhongzheng.modules.wx.bo.WxInfoBo;
 import com.zhongzheng.modules.wx.bo.WxInfoQuery;
 import com.zhongzheng.modules.wx.bo.WxServerBody;
@@ -48,10 +59,15 @@ import com.zhongzheng.modules.wx.domain.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.text.ParseException;
 import java.util.HashMap;
 import java.util.List;
@@ -69,9 +85,39 @@ import java.util.Map;
 @RequestMapping("/sys/common/")
 public class CommonController extends BaseController {
 
+    private static final Logger log = LoggerFactory.getLogger(CommonController.class);
 
     private final ITopNuoMplatformLogService iTopNuoMplatformLogService;
 
+    private final ITopOldOrderService iTopOldOrderService;
+
+    /**
+     * 通用下载请求
+     *
+     * @param fileName 文件名称
+     * @param delete   是否删除
+     */
+    @GetMapping("/download")
+    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
+        try {
+            if (!FileUtils.checkAllowDownload(fileName)) {
+                throw new Exception(StrUtil.format("文件名称({})非法,不允许下载。 ", fileName));
+            }
+            String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
+            String filePath = RuoYiConfig.getDownloadPath() + fileName;
+
+            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+            FileUtils.setAttachmentResponseHeader(response, realFileName);
+            FileUtils.writeBytes(filePath, response.getOutputStream());
+           /* if (delete)
+            {
+                FileUtils.deleteFile(filePath);
+            }*/
+            FileUtils.deleteFile(filePath);
+        } catch (Exception e) {
+            log.error("下载文件失败", e);
+        }
+    }
 
     /**
      * 新增诺税通开单记录
@@ -86,4 +132,185 @@ public class CommonController extends BaseController {
         }
         return AjaxResult.success(iTopNuoMplatformLogService.insertByAddBo(bo));
     }
+
+    /**
+     * B端订单退款申请
+     */
+    @ApiOperation("B端订单退款申请")
+    @PostMapping("/refund/apply")
+    public AjaxResult<Void> orderRefundApply(@RequestBody TopOrderRefundApplyBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.orderRefundApply(bo) ? 1 : 0);
+    }
+
+    /**
+     * B端订单新增订单
+     */
+    @ApiOperation("新增订单")
+    @PostMapping("/save/order")
+    public AjaxResult<Void> saveOrder(@RequestBody TopOldOrderAddBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+
+    /**
+     * B端订单回款
+     */
+    @ApiOperation("B端订单回款")
+    @PostMapping("/proceeds")
+    public AjaxResult<Void> orderProceeds(@RequestBody TopOrderProceedsBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.orderProceeds(bo) ? 1 : 0);
+    }
+
+    /**
+     * 新增诺税通开单记录
+     */
+    @ApiOperation("付款企业网银")
+    @PreAuthorize("@ss.hasPermi('system:log:add')")
+    @Log(title = "付款企业网银", businessType = BusinessType.INSERT)
+    @PostMapping("/payToCompany")
+    public AjaxResult<Void> payToCompany(@RequestBody TopOldOrderQueryBo bo) {
+        return toAjax(iTopOldOrderService.payToCompany(bo) ? 1 : 0);
+    }
+
+    @ApiOperation("付款企业网银支付回调")
+    @PreAuthorize("@ss.hasPermi('system:log:add')")
+    @Log(title = "付款企业网银支付回调", businessType = BusinessType.INSERT)
+    @PostMapping("/payToCompanyCallBack")
+    public AjaxResult<Void> payToCompanyCallBack(@RequestBody PayOrderCallBackBo bo) {
+        if(!ToolsUtils.checkSignCwSnFromOldSys(bo.getMainUniqueId(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.payToCompanyCallBack(bo) ? 1 : 0);
+    }
+
+    /**
+     * B端订单修改
+     */
+    @ApiOperation("B端订单修改")
+    @PostMapping("/edit/order")
+    public AjaxResult<Void> editOrder(@RequestBody TopOldOrderAddBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.editOrder(bo) ? 1 : 0);
+    }
+
+    /**
+     * B端订单审核修改
+     */
+    @ApiOperation("B端订单审核修改")
+    @PostMapping("/edit/order/check")
+    public AjaxResult<Void> editOrderCheck(@RequestBody TopOldOrderAddBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.editOrderCheck(bo) ? 1 : 0);
+    }
+
+    /**
+     * B端订单佣金修改
+     */
+    @ApiOperation("B端订单佣金修改")
+    @PostMapping("/edit/order/brokerage")
+    public AjaxResult<Void> editOrderBrokerage(@RequestBody OrderBrokerageBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.editOrderBrokerage(bo) ? 1 : 0);
+    }
+
+    /**
+     * 批量修改订单备注
+     */
+    @ApiOperation("批量修改订单备注")
+    @PostMapping("/update/order/remark")
+    public AjaxResult<Void> updateRemark(@RequestBody TopUpdateRemarkBo bo) {
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.updateRemark(bo) ? 1 : 0);
+    }
+
+    /**
+     * 订单修改(不审核)
+     */
+    @ApiOperation("订单修改(不审核)")
+    @PostMapping("/update/order/info")
+    public AjaxResult<Void> updateOrderInfo(@RequestBody TopOldOrderAddBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.updateOrderInfo(bo) ? 1 : 0);
+    }
+
+    /**
+     * B端订单审核修改通知
+     */
+    @ApiOperation("B端订单审核修改通知")
+    @PostMapping("/edit/order/remind")
+    public AjaxResult<Void> editOrderRemind(@RequestBody TopOrderRemindBo bo) {
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.editOrderRemind(bo) ? 1 : 0);
+    }
+
+    /**
+     * B端订单批量完单
+     */
+    @ApiOperation("B端订单批量完单")
+    @PostMapping("/order/finish")
+    public AjaxResult<Void> finishOrder(@RequestBody TopFinishOrderBo bo) {
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return toAjax(iTopOldOrderService.finishOrder(bo) ? 1 : 0);
+    }
+
+    /**
+     * B端订单获取业务员优惠额度
+     */
+    @ApiOperation("B端订单获取业务员优惠额度")
+    @PostMapping("/seller/discount")
+    public AjaxResult<TopSellerDiscountVo> getSellerDiscount(@RequestBody TopSellerDiscountBo bo) {
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return AjaxResult.success(iTopOldOrderService.getSellerDiscount(bo));
+    }
+
+    /**
+     * B端订单撤销
+     */
+    @ApiOperation("B端订单撤销")
+    @PostMapping("/order/revocation")
+    public AjaxResult<TopOrderRevocationVo> orderRevocation(@RequestBody TopOrderRevocationBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        return AjaxResult.success(iTopOldOrderService.orderRevocation(bo));
+    }
+
+    /**
+     * B端订单操作历史记录
+     */
+    @ApiOperation("B端订单操作历史记录")
+    @PostMapping("/order/record")
+    public TableDataInfo<TopOrderLogVo> orderRevocation(@RequestBody TopOldOrderQueryBo bo) {
+        if(!ToolsUtils.checkOrderSignFromOldSys(bo.getOrderSn(),bo.getStamp().toString(),bo.getSign())){
+            throw new CustomException("签名错误");
+        }
+        startPage();
+        List<TopOrderLogVo> list = iTopOldOrderService.logList(bo);
+        return getDataTable(list);
+    }
 }

+ 32 - 3
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseBusinessController.java

@@ -1,7 +1,14 @@
 package com.zhongzheng.controller.course;
 
+import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.course.bo.CourseBusinessAddBo;
+import com.zhongzheng.modules.course.bo.CourseBusinessEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseBusinessAddBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseBusinessEditBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseBusinessQueryBo;
 import com.zhongzheng.modules.top.goods.service.ITopCourseBusinessService;
 import com.zhongzheng.modules.top.goods.vo.TopCourseBusinessVo;
@@ -9,9 +16,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -39,4 +45,27 @@ public class TopCourseBusinessController extends BaseController {
         List<TopCourseBusinessVo> list = iCourseBusinessService.queryList(bo);
         return getDataTable(list);
     }
+
+    /**
+     * 新增业务层次
+     */
+    @ApiOperation("新增总平台业务层次")
+    @PreAuthorize("@ss.hasPermi('course:business:add')")
+    @Log(title = "业务层次", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopCourseBusinessAddBo bo) {
+        return toAjax(iCourseBusinessService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改业务层次
+     */
+    @ApiOperation("修改总平台业务层次")
+    @PreAuthorize("@ss.hasPermi('course:business:edit')")
+    @Log(title = "业务层次", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopCourseBusinessEditBo bo) {
+        return toAjax(iCourseBusinessService.updateByEditBo(bo) ? 1 : 0);
+    }
+
 }

+ 48 - 4
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseEducationTypeController.java

@@ -1,7 +1,14 @@
 package com.zhongzheng.controller.course;
 
+import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.course.bo.CourseEducationTypeAddBo;
+import com.zhongzheng.modules.course.bo.CourseEducationTypeEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseEducationTypeAddBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseEducationTypeEditBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseEducationTypeQueryBo;
 import com.zhongzheng.modules.top.goods.service.ITopCourseEducationTypeService;
 import com.zhongzheng.modules.top.goods.vo.TopCourseEducationTypeVo;
@@ -9,15 +16,15 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
  * 教育类型Controller
- * 
+ *
  * @author ruoyi
  * @date 2021-10-08
  */
@@ -39,4 +46,41 @@ public class TopCourseEducationTypeController extends BaseController {
         List<TopCourseEducationTypeVo> list = iCourseEducationTypeService.queryList(bo);
         return getDataTable(list);
     }
+
+    /**
+     * 查询教育类型列表
+     */
+    @ApiOperation("查询所有业务层次列表")
+    @GetMapping("/allList")
+    public TableDataInfo<TopCourseEducationTypeVo> allList(TopCourseEducationTypeQueryBo bo) {
+        startPage();
+        List<Integer> statusList = new ArrayList<>();
+        statusList.add(1);
+        statusList.add(0);
+        bo.setStatusList(statusList);
+        List<TopCourseEducationTypeVo> list = iCourseEducationTypeService.queryAllList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 新增教育类型
+     */
+    @ApiOperation("新增总平台教育类型")
+    @PreAuthorize("@ss.hasPermi('course:type:add')")
+    @Log(title = "教育类型", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopCourseEducationTypeAddBo bo) {
+        return toAjax(iCourseEducationTypeService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改教育类型
+     */
+    @ApiOperation("修改总平台教育类型")
+    @PreAuthorize("@ss.hasPermi('course:type:edit')")
+    @Log(title = "教育类型", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopCourseEducationTypeEditBo bo) {
+        return toAjax(iCourseEducationTypeService.updateByEditBo(bo) ? 1 : 0);
+    }
 }

+ 32 - 4
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/course/TopCourseProjectTypeController.java

@@ -1,7 +1,14 @@
 package com.zhongzheng.controller.course;
 
+import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.course.bo.CourseProjectTypeAddBo;
+import com.zhongzheng.modules.course.bo.CourseProjectTypeEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeAddBo;
+import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeEditBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseProjectTypeQueryBo;
 import com.zhongzheng.modules.top.goods.service.ITopCourseProjectTypeService;
 import com.zhongzheng.modules.top.goods.vo.TopCourseProjectTypeVo;
@@ -9,15 +16,14 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
 /**
  * 项目类型Controller
- * 
+ *
  * @author ruoyi
  * @date 2021-10-08
  */
@@ -39,4 +45,26 @@ public class TopCourseProjectTypeController extends BaseController {
         List<TopCourseProjectTypeVo> list = iCourseProjectTypeService.queryList(bo);
         return getDataTable(list);
     }
+
+    /**
+     * 新增项目类型
+     */
+    @ApiOperation("新增总平台项目类型")
+    @PreAuthorize("@ss.hasPermi('course:type:add')")
+    @Log(title = "项目类型", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopCourseProjectTypeAddBo bo) {
+        return toAjax(iCourseProjectTypeService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改项目类型
+     */
+    @ApiOperation("修改总平台项目类型")
+    @PreAuthorize("@ss.hasPermi('course:type:edit')")
+    @Log(title = "项目类型", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopCourseProjectTypeEditBo bo) {
+        return toAjax(iCourseProjectTypeService.updateByEditBo(bo) ? 1 : 0);
+    }
 }

+ 62 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/ReceiveOrderController.java

@@ -0,0 +1,62 @@
+package com.zhongzheng.controller.financial;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.grade.vo.SyncUserChapterExport;
+import com.zhongzheng.modules.top.financial.bo.TopCostTpAddBo;
+import com.zhongzheng.modules.top.financial.bo.TopCostTpEditBo;
+import com.zhongzheng.modules.top.financial.bo.TopCostTpQueryBo;
+import com.zhongzheng.modules.top.financial.service.ITopCostTpService;
+import com.zhongzheng.modules.top.financial.vo.TopCostTpVo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderQueryBo;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
+import com.zhongzheng.modules.top.goods.vo.TopOldOrderVo;
+import com.zhongzheng.modules.top.order.vo.TopOldOrderExportVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 成本模板Controller
+ *
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Api(value = "应收订单控制器", tags = {"成本模板管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/receive/order")
+public class ReceiveOrderController extends BaseController {
+
+    private final ITopOldOrderService iTopOldOrderService;
+
+
+    @ApiOperation("应收订单列表")
+    @PreAuthorize("@ss.hasPermi('system:tp:list')")
+    @GetMapping("/list")
+    public TableDataInfo<TopOldOrderVo> list(TopOldOrderQueryBo bo) {
+        startPage();
+        List<TopOldOrderVo> list = iTopOldOrderService.queryReceiveList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("应收订单列表导出")
+    @PreAuthorize("@ss.hasPermi('system:tp:list')")
+    @GetMapping("/listExport")
+    public AjaxResult<List<TopOldOrderExportVo>> listExport(TopOldOrderQueryBo bo) {
+        List<TopOldOrderExportVo> list = iTopOldOrderService.queryReceiveListExport(bo);
+        ExcelUtil<TopOldOrderExportVo> util = new ExcelUtil<TopOldOrderExportVo>(TopOldOrderExportVo.class);
+        return util.exportExcel(list, "应收订单列表");
+    }
+
+}

+ 114 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/TopCostTpController.java

@@ -0,0 +1,114 @@
+package com.zhongzheng.controller.financial;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Arrays;
+
+
+import com.zhongzheng.modules.top.financial.bo.TopCostTpAddBo;
+import com.zhongzheng.modules.top.financial.bo.TopCostTpEditBo;
+import com.zhongzheng.modules.top.financial.bo.TopCostTpQueryBo;
+import com.zhongzheng.modules.top.financial.service.ITopCostTpService;
+import com.zhongzheng.modules.top.financial.vo.TopCostTpVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 成本模板Controller
+ *
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Api(value = "成本模板控制器", tags = {"成本模板管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/financial/tp")
+public class TopCostTpController extends BaseController {
+
+    private final ITopCostTpService iTopCostTpService;
+
+    /**
+     * 查询成本模板列表
+     */
+    @ApiOperation("查询成本模板列表")
+    @PreAuthorize("@ss.hasPermi('system:tp:list')")
+    @GetMapping("/list")
+    public TableDataInfo<TopCostTpVo> list(TopCostTpQueryBo bo) {
+        startPage();
+        List<Integer> statusList = new ArrayList<>();
+        statusList.add(0);
+        statusList.add(1);
+        bo.setStatusList(statusList);
+        List<TopCostTpVo> list = iTopCostTpService.selectList(bo);
+        return getDataTable(list);
+    }
+
+
+
+    /**
+     * 获取成本模板详细信息
+     */
+    @ApiOperation("获取成本模板详细信息")
+    @PreAuthorize("@ss.hasPermi('system:tp:query')")
+    @GetMapping("/{tpId}")
+    public AjaxResult<TopCostTpVo> getInfo(@PathVariable("tpId" ) Long tpId) {
+        return AjaxResult.success(iTopCostTpService.queryById(tpId));
+    }
+
+    /**
+     * 新增成本模板
+     */
+    @ApiOperation("新增成本模板")
+    @PreAuthorize("@ss.hasPermi('system:tp:add')")
+    @Log(title = "成本模板", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopCostTpAddBo bo) {
+        return toAjax(iTopCostTpService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改成本模板
+     */
+    @ApiOperation("修改成本模板")
+    @PreAuthorize("@ss.hasPermi('system:tp:edit')")
+    @Log(title = "成本模板", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopCostTpEditBo bo) {
+        return toAjax(iTopCostTpService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("修改成本模板默认状态")
+    @PreAuthorize("@ss.hasPermi('system:tp:edit')")
+    @Log(title = "成本模板", businessType = BusinessType.UPDATE)
+    @PostMapping("/editDefaultStatus")
+    public AjaxResult<Void> editDefaultStatus(@RequestBody TopCostTpEditBo bo) {
+        return toAjax(iTopCostTpService.updateDefaultStatus(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("成本模板批量删除")
+    @PreAuthorize("@ss.hasPermi('system:tp:edit')")
+    @Log(title = "成本模板批量删除", businessType = BusinessType.UPDATE)
+    @PostMapping("/deleteBatch")
+    public AjaxResult<Void> deleteBatch(@RequestBody TopCostTpQueryBo bo) {
+        return toAjax(iTopCostTpService.deleteBatch(bo) ? 1 : 0);
+    }
+}

+ 127 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/TopDivideLogController.java

@@ -0,0 +1,127 @@
+package com.zhongzheng.controller.financial;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.common.constant.UserConstants;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.modules.system.bo.SysTenantBadBillConfigBo;
+import com.zhongzheng.modules.top.financial.bo.TopDivideLogEditBo;
+import com.zhongzheng.modules.top.financial.bo.TopDivideLogQueryBo;
+import com.zhongzheng.modules.top.financial.bo.TopDivideOrderQueryBo;
+import com.zhongzheng.modules.top.financial.service.ITopDivideLogService;
+import com.zhongzheng.modules.top.financial.service.ITopDivideOrderService;
+import com.zhongzheng.modules.top.financial.vo.TopDivideLogVo;
+import com.zhongzheng.modules.top.financial.vo.TopDivideOrderVo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderEditBo;
+import com.zhongzheng.modules.top.user.vo.TopSysConfigVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 分成记录Controller
+ *
+ * @author ruoyi
+ * @date 2023-05-09
+ */
+@Api(value = "分成记录控制器", tags = {"分成记录管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/divide/log")
+public class TopDivideLogController extends BaseController {
+
+    private final ITopDivideLogService iTopDivideLogService;
+
+    private final ITopDivideOrderService iTopDivideOrderService;
+
+    /**
+     * 查询分成记录列表
+     */
+    @ApiOperation("查询机构分成记录列表")
+    @PreAuthorize("@ss.hasPermi('system:log:list')")
+    @GetMapping("/companyList")
+    public TableDataInfo<TopDivideLogVo> getCompanyList(TopDivideLogQueryBo bo) {
+        startPage();
+        List<TopDivideLogVo> list = iTopDivideLogService.getCompanyList(bo);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 分成记录修改备注
+     */
+    @ApiOperation("分成记录修改备注")
+    @PostMapping("/updateRemark")
+    public AjaxResult<Void> updateRemark(@RequestBody TopDivideLogEditBo bo) {
+        return toAjax(iTopDivideLogService.updateRemark(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("查询业务员提成列表")
+    @PreAuthorize("@ss.hasPermi('system:log:list')")
+    @GetMapping("/sellerList")
+    public TableDataInfo<TopDivideLogVo> getSellerList(TopDivideLogQueryBo bo) {
+        startPage();
+        List<TopDivideLogVo> list = iTopDivideLogService.getSellerList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("查询佣金列表")
+    @PreAuthorize("@ss.hasPermi('system:log:list')")
+    @GetMapping("/commissionList")
+    public TableDataInfo<TopDivideLogVo> getCommissionList(TopDivideLogQueryBo bo) {
+        startPage();
+        List<TopDivideLogVo> list = iTopDivideLogService.getCommissionList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("通过坏账配置详情")
+    @GetMapping(value = "/configKey/badBill")
+    public AjaxResult getBadBill()
+    {
+        return AjaxResult.success("配置内容",iTopDivideLogService.getBadBillConfig());
+    }
+
+    @ApiOperation("修改坏账配置")
+    @PostMapping("/updateBadBill")
+    public AjaxResult editBadBill(@Validated @RequestBody List<SysTenantBadBillConfigBo> bo)
+    {
+        return toAjax(iTopDivideLogService.updateBadBillConfig(bo));
+    }
+
+    @ApiOperation("查询月份订单列表")
+    @PreAuthorize("@ss.hasPermi('system:log:list')")
+    @GetMapping("/monthOrderList")
+    public AjaxResult<List<TopDivideOrderVo>> getMonthOrderList(TopDivideOrderQueryBo bo) {
+        List<TopDivideOrderVo> list = iTopDivideOrderService.getMonthOrderList(bo);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 获取分成记录详细信息
+     */
+    @ApiOperation("获取分成记录详细信息")
+    @PreAuthorize("@ss.hasPermi('system:log:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<TopDivideLogVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iTopDivideLogService.queryById(id));
+    }
+}

+ 80 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/TopOrderRecNoteController.java

@@ -0,0 +1,80 @@
+package com.zhongzheng.controller.financial;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.modules.top.order.bo.TopOrderRecNoteAddBo;
+import com.zhongzheng.modules.top.order.bo.TopOrderRecNoteEditBo;
+import com.zhongzheng.modules.top.order.bo.TopOrderRecNoteQueryBo;
+import com.zhongzheng.modules.top.order.service.ITopOrderRecNoteService;
+import com.zhongzheng.modules.top.order.vo.TopOrderRecNoteVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 订单收款提醒Controller
+ *
+ * @author hjl
+ * @date 2023-04-24
+ */
+@Api(value = "订单收款提醒控制器", tags = {"订单收款提醒管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/receive/order/note")
+public class TopOrderRecNoteController extends BaseController {
+
+    private final ITopOrderRecNoteService iTopOrderRecNoteService;
+
+
+
+    /**
+     * 获取订单收款提醒详细信息
+     */
+    @ApiOperation("获取订单收款提醒详细信息")
+    @PreAuthorize("@ss.hasPermi('system:note:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<TopOrderRecNoteVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iTopOrderRecNoteService.queryById(id));
+    }
+
+    /**
+     * 新增订单收款提醒
+     */
+    @ApiOperation("新增订单收款提醒")
+    @PreAuthorize("@ss.hasPermi('system:note:add')")
+    @Log(title = "订单收款提醒", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopOrderRecNoteAddBo bo) {
+        return toAjax(iTopOrderRecNoteService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改订单收款提醒
+     */
+    @ApiOperation("修改订单收款提醒")
+    @PreAuthorize("@ss.hasPermi('system:note:edit')")
+    @Log(title = "订单收款提醒", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopOrderRecNoteEditBo bo) {
+        return toAjax(iTopOrderRecNoteService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+
+}

+ 112 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/inform/TopInformSysUserController.java

@@ -0,0 +1,112 @@
+package com.zhongzheng.controller.inform;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.TopTokenService;
+import com.zhongzheng.modules.top.financial.bo.TopInformSysUserAddBo;
+import com.zhongzheng.modules.top.financial.bo.TopInformSysUserEditBo;
+import com.zhongzheng.modules.top.financial.bo.TopInformSysUserQueryBo;
+import com.zhongzheng.modules.top.financial.service.ITopInformSysUserService;
+import com.zhongzheng.modules.top.financial.vo.TopInformSysUserVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 通知绑定系统用户Controller
+ *
+ * @author hjl
+ * @date 2022-08-04
+ */
+@Api(value = "通知绑定系统用户控制器", tags = {"通知绑定系统用户管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/inform/sys_user")
+public class TopInformSysUserController extends BaseController {
+
+    private final ITopInformSysUserService iInformSysUserService;
+
+    private final TopTokenService tokenService;
+
+    /**
+     * 查询通知绑定系统用户列表
+     */
+    @ApiOperation("查询通知绑定系统用户列表")
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/list")
+    public TableDataInfo<TopInformSysUserVo> list(TopInformSysUserQueryBo bo) {
+        TopLoginUser TopLoginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(TopLoginUser.getUser().getUserId());
+        startPage();
+        List<TopInformSysUserVo> list = iInformSysUserService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 获取通知绑定系统用户详细信息
+     */
+    @ApiOperation("获取通知绑定教务用户未读消息数量")
+    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @GetMapping("/informUnReadSum")
+    public AjaxResult<Integer> informUnReadSum() {
+        TopLoginUser TopLoginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        return AjaxResult.success(iInformSysUserService.informUnReadSum(TopLoginUser.getUser().getUserId()));
+    }
+
+
+
+    /**
+     * 获取通知绑定系统用户详细信息
+     */
+    @ApiOperation("获取通知绑定系统用户详细信息")
+    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<TopInformSysUserVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iInformSysUserService.queryById(id));
+    }
+
+    /**
+     * 新增通知绑定系统用户
+     */
+    @ApiOperation("新增通知绑定系统用户")
+    @PreAuthorize("@ss.hasPermi('system:user:add')")
+    @Log(title = "通知绑定系统用户", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopInformSysUserAddBo bo) {
+        return toAjax(iInformSysUserService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改通知绑定系统用户
+     */
+    @ApiOperation("修改通知绑定系统用户")
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "通知绑定系统用户", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopInformSysUserEditBo bo) {
+        return toAjax(iInformSysUserService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+
+    /**
+     * 修改通知绑定系统用户
+     */
+    @ApiOperation("批量修改通知绑定系统用户状态")
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "批量修改通知绑定系统用户状态", businessType = BusinessType.UPDATE)
+    @PostMapping("/updateReadStatusBatch")
+    public AjaxResult<Void> updateReadStatusBatch(@RequestBody TopInformSysUserEditBo bo) {
+        return toAjax(iInformSysUserService.updateReadStatusBatch(bo) ? 1 : 0);
+    }
+
+}

+ 112 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/mall/TopStoreController.java

@@ -0,0 +1,112 @@
+package com.zhongzheng.controller.mall;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.modules.top.mall.bo.TopStoreAddBo;
+import com.zhongzheng.modules.top.mall.bo.TopStoreEditBo;
+import com.zhongzheng.modules.top.mall.bo.TopStoreQueryBo;
+import com.zhongzheng.modules.top.mall.service.ITopStoreService;
+import com.zhongzheng.modules.top.mall.vo.TopStoreVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 商户店铺管理Controller
+ *
+ * @author hjl
+ * @date 2023-05-18
+ */
+@Api(value = "商户店铺管理控制器", tags = {"商户店铺管理管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/mall/store")
+public class TopStoreController extends BaseController {
+
+    private final ITopStoreService iTopStoreService;
+
+    /**
+     * 查询商户店铺管理列表
+     */
+    @ApiOperation("查询商户店铺管理列表")
+    @PreAuthorize("@ss.hasPermi('system:store:list')")
+    @GetMapping("/list")
+    public TableDataInfo<TopStoreVo> list(TopStoreQueryBo bo) {
+        startPage();
+        List<TopStoreVo> list = iTopStoreService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出商户店铺管理列表
+     */
+    @ApiOperation("导出商户店铺管理列表")
+    @PreAuthorize("@ss.hasPermi('system:store:export')")
+    @Log(title = "商户店铺管理", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<TopStoreVo> export(TopStoreQueryBo bo) {
+        List<TopStoreVo> list = iTopStoreService.queryList(bo);
+        ExcelUtil<TopStoreVo> util = new ExcelUtil<TopStoreVo>(TopStoreVo.class);
+        return util.exportExcel(list, "商户店铺管理");
+    }
+
+    /**
+     * 获取商户店铺管理详细信息
+     */
+    @ApiOperation("获取商户店铺管理详细信息")
+    @PreAuthorize("@ss.hasPermi('system:store:query')")
+    @GetMapping("/{storeId}")
+    public AjaxResult<TopStoreVo> getInfo(@PathVariable("storeId" ) Long storeId) {
+        return AjaxResult.success(iTopStoreService.queryById(storeId));
+    }
+
+    /**
+     * 新增商户店铺管理
+     */
+    @ApiOperation("新增商户店铺管理")
+    @PreAuthorize("@ss.hasPermi('system:store:add')")
+    @Log(title = "商户店铺管理", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopStoreAddBo bo) {
+        return toAjax(iTopStoreService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改商户店铺管理
+     */
+    @ApiOperation("修改商户店铺管理")
+    @PreAuthorize("@ss.hasPermi('system:store:edit')")
+    @Log(title = "商户店铺管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopStoreEditBo bo) {
+        return toAjax(iTopStoreService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除商户店铺管理
+     */
+    @ApiOperation("删除商户店铺管理")
+    @PreAuthorize("@ss.hasPermi('system:store:remove')")
+    @Log(title = "商户店铺管理" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{storeIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] storeIds) {
+        return toAjax(iTopStoreService.deleteWithValidByIds(Arrays.asList(storeIds), true) ? 1 : 0);
+    }
+}

+ 105 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderAttachmentController.java

@@ -0,0 +1,105 @@
+package com.zhongzheng.controller.order;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderAttachmentAddBo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderAttachmentEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderAttachmentQueryBo;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderAttachmentService;
+import com.zhongzheng.modules.top.goods.vo.TopOldOrderAttachmentVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 订单附件Controller
+ * 
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Api(value = "订单附件控制器", tags = {"订单附件管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/order/attachment")
+public class TopOldOrderAttachmentController extends BaseController {
+
+    private final ITopOldOrderAttachmentService iTopOrderAttachmentService;
+
+    /**
+     * 查询订单附件列表
+     */
+    @ApiOperation("查询订单附件列表")
+    @PreAuthorize("@ss.hasPermi('system:attachment:list')")
+    @GetMapping("/list")
+    public TableDataInfo<TopOldOrderAttachmentVo> list(TopOldOrderAttachmentQueryBo bo) {
+        startPage();
+        List<TopOldOrderAttachmentVo> list = iTopOrderAttachmentService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出订单附件列表
+     */
+    @ApiOperation("导出订单附件列表")
+    @PreAuthorize("@ss.hasPermi('system:attachment:export')")
+    @Log(title = "订单附件", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<TopOldOrderAttachmentVo> export(TopOldOrderAttachmentQueryBo bo) {
+        List<TopOldOrderAttachmentVo> list = iTopOrderAttachmentService.queryList(bo);
+        ExcelUtil<TopOldOrderAttachmentVo> util = new ExcelUtil<TopOldOrderAttachmentVo>(TopOldOrderAttachmentVo.class);
+        return util.exportExcel(list, "订单附件");
+    }
+
+    /**
+     * 获取订单附件详细信息
+     */
+    @ApiOperation("获取订单附件详细信息")
+    @PreAuthorize("@ss.hasPermi('system:attachment:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<TopOldOrderAttachmentVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iTopOrderAttachmentService.queryById(id));
+    }
+
+    /**
+     * 新增订单附件
+     */
+    @ApiOperation("新增订单附件")
+    @PreAuthorize("@ss.hasPermi('system:attachment:add')")
+    @Log(title = "订单附件", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopOldOrderAttachmentAddBo bo) {
+        return toAjax(iTopOrderAttachmentService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改订单附件
+     */
+    @ApiOperation("修改订单附件")
+    @PreAuthorize("@ss.hasPermi('system:attachment:edit')")
+    @Log(title = "订单附件", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody TopOldOrderAttachmentEditBo bo) {
+        return toAjax(iTopOrderAttachmentService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除订单附件
+     */
+    @ApiOperation("删除订单附件")
+    @PreAuthorize("@ss.hasPermi('system:attachment:remove')")
+    @Log(title = "订单附件" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@PathVariable Long[] ids) {
+        return toAjax(iTopOrderAttachmentService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 112 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderCheckLogController.java

@@ -0,0 +1,112 @@
+package com.zhongzheng.controller.order;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.TopTokenService;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderCheckLogAddBo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderCheckLogEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderCheckLogQueryBo;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderCheckLogService;
+import com.zhongzheng.modules.top.goods.vo.TopOldOrderCheckLogVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 订单退款审核记录Controller
+ *
+ * @author ruoyi
+ * @date 2023-04-26
+ */
+@Api(value = "订单退款审核记录控制器", tags = {"订单退款审核记录管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/check/order/log")
+public class TopOldOrderCheckLogController extends BaseController {
+
+    private final ITopOldOrderCheckLogService iTopOldOrderCheckLogService;
+
+    private final TopTokenService tokenService;
+
+    /**
+     * 查询订单退款审核记录列表
+     */
+    @ApiOperation("查询审核记录列表")
+    @PreAuthorize("@ss.hasPermi('system:log:list')")
+    @GetMapping("/list")
+    public TableDataInfo<TopOldOrderCheckLogVo> list(TopOldOrderCheckLogQueryBo bo) {
+        startPage();
+        List<TopOldOrderCheckLogVo> list = iTopOldOrderCheckLogService.getCheckList(bo);
+        return getDataTable(list);
+    }
+
+
+
+    /**
+     * 获取订单退款审核记录详细信息
+     */
+    @ApiOperation("获取订单退款审核记录详细信息")
+    @PreAuthorize("@ss.hasPermi('system:log:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<TopOldOrderCheckLogVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iTopOldOrderCheckLogService.queryById(id));
+    }
+
+    /**
+     * 新增订单退款审核记录
+     */
+    @ApiOperation("新增订单退款审核记录")
+    @PreAuthorize("@ss.hasPermi('system:log:add')")
+    @Log(title = "订单退款审核记录", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopOldOrderCheckLogAddBo bo) {
+        return toAjax(iTopOldOrderCheckLogService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改订单退款审核记录
+     */
+    @ApiOperation("修改订单分成审核记录")
+    @PreAuthorize("@ss.hasPermi('system:log:edit')")
+    @Log(title = "订单退款审核记录", businessType = BusinessType.UPDATE)
+    @PostMapping("/editDivide")
+    public AjaxResult<Void> editDivide(@RequestBody TopOldOrderCheckLogEditBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        bo.setLoginName(loginUser.getUser().getUserName());
+        return toAjax(iTopOldOrderCheckLogService.updateDivideByEditBo(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("批量修改订单分成审核记录")
+    @PreAuthorize("@ss.hasPermi('system:log:edit')")
+    @Log(title = "批量修改订单分成审核记录", businessType = BusinessType.UPDATE)
+    @PostMapping("/updateBatchDivideByEditBo")
+    public AjaxResult<Void> updateBatchDivideByEditBo(@RequestBody List<TopOldOrderCheckLogEditBo> bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        for(TopOldOrderCheckLogEditBo editBo : bo){
+            editBo.setLoginId(loginUser.getUser().getUserId());
+            editBo.setLoginName(loginUser.getUser().getUserName());
+        }
+        return toAjax(iTopOldOrderCheckLogService.updateBatchDivideByEditBo(bo) ? 1 : 0);
+    }
+}

+ 310 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderController.java

@@ -0,0 +1,310 @@
+package com.zhongzheng.controller.order;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.framework.web.service.TopTokenService;
+import com.zhongzheng.modules.top.financial.bo.OrderRefundPayBo;
+import com.zhongzheng.modules.top.financial.bo.TopDivideLogQueryBo;
+import com.zhongzheng.modules.top.financial.vo.OrderRefundPayDetailVo;
+import com.zhongzheng.modules.top.financial.vo.TopCostTpVo;
+import com.zhongzheng.modules.top.financial.vo.TopOrderLogVo;
+import com.zhongzheng.modules.top.goods.bo.*;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
+import com.zhongzheng.modules.top.goods.vo.TopOldOrderGoodsListVo;
+import com.zhongzheng.modules.top.goods.vo.TopOldOrderVo;
+import com.zhongzheng.modules.top.goods.vo.TopOrderStatisticsVo;
+import com.zhongzheng.modules.top.goods.vo.TopRefundOrderDetailVo;
+import com.zhongzheng.modules.top.order.vo.TopOldOrderCommissionExportVo;
+import com.zhongzheng.modules.top.order.vo.TopOldOrderCompanyExportVo;
+import com.zhongzheng.modules.top.order.vo.TopOldOrderExportVo;
+import com.zhongzheng.modules.top.order.vo.TopOldOrderSellerExportVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 订单Controller
+ *
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Api(value = "订单控制器", tags = {"订单管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/top/order")
+public class TopOldOrderController extends BaseController {
+
+    private final ITopOldOrderService iTopOldOrderService;
+
+    private final TopTokenService tokenService;
+
+    /**
+     * 查询订单列表
+     */
+    @ApiOperation("查询订单列表")
+    @GetMapping("/list")
+    public TableDataInfo<TopOldOrderVo> list(TopOldOrderQueryBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        startPage();
+        List<TopOldOrderVo> list = iTopOldOrderService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出订单列表
+     */
+    @ApiOperation("导出订单列表")
+    @GetMapping("/export")
+    public AjaxResult<TopOldOrderVo> export(TopOldOrderQueryBo bo) {
+        List<TopOldOrderVo> list = iTopOldOrderService.queryList(bo);
+        ExcelUtil<TopOldOrderVo> util = new ExcelUtil<TopOldOrderVo>(TopOldOrderVo.class);
+        return util.exportExcel(list, "订单");
+    }
+
+    /**
+     * 获取订单详细信息
+     */
+    @ApiOperation("获取订单详细信息")
+    @GetMapping("/{orderSn}")
+    public AjaxResult<TopOldOrderVo> getInfo(@PathVariable("orderSn" ) String orderSn) {
+        return AjaxResult.success(iTopOldOrderService.queryById(orderSn));
+    }
+
+    /**
+     * 获取订单商品信息
+     */
+    @ApiOperation("获取订单商品信息")
+    @GetMapping("/goods/list")
+    public TableDataInfo<TopOldOrderGoodsListVo> getOrderGoodsList(TopOldOrderGoodsQuery query) {
+        startPage();
+        List<TopOldOrderGoodsListVo> list = iTopOldOrderService.getOrderGoodsList(query);
+        return getDataTable(list);
+    }
+
+    /**
+     * 新增订单
+     */
+    @ApiOperation("新增订单")
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopOldOrderAddBo bo) {
+        return toAjax(iTopOldOrderService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改订单
+     */
+    @ApiOperation("修改订单")
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody TopOldOrderEditBo bo) {
+        return toAjax(iTopOldOrderService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 订单审核
+     */
+    @ApiOperation("订单审核")
+    @PostMapping("/check")
+    public AjaxResult<Void> checkOrder(@RequestBody TopOldOrderCheckBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        bo.setLoginName(loginUser.getUser().getUserName());
+        return toAjax(iTopOldOrderService.checkOrder(bo) ? 1 : 0);
+    }
+
+    /**
+     * 订单学员审核
+     */
+    @ApiOperation("订单学员审核")
+    @PostMapping("/check/student")
+    public AjaxResult<Void> checkOrderStudent(@RequestBody TopOldOrderCheckBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        bo.setLoginName(loginUser.getUser().getUserName());
+        return toAjax(iTopOldOrderService.checkOrderStudent(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("业务员提成列表")
+    @PreAuthorize("@ss.hasPermi('system:tp:list')")
+    @GetMapping("/divSellerList")
+    public TableDataInfo<TopOldOrderVo> divSellerList(TopOldOrderQueryBo bo) {
+        startPage();
+        List<TopOldOrderVo> list = iTopOldOrderService.queryDivSellerList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("业务员提成列表导出")
+    @PreAuthorize("@ss.hasPermi('system:tp:list')")
+    @GetMapping("/sellerListExport")
+    public AjaxResult<List<TopOldOrderSellerExportVo>> sellerListExport(TopDivideLogQueryBo bo) {
+        List<TopOldOrderSellerExportVo> list = iTopOldOrderService.sellerListExport(bo);
+        ExcelUtil<TopOldOrderSellerExportVo> util = new ExcelUtil<TopOldOrderSellerExportVo>(TopOldOrderSellerExportVo.class);
+        return util.exportExcel(list, "机构分成列表");
+    }
+
+    @ApiOperation("佣金结算列表导出")
+    @PreAuthorize("@ss.hasPermi('system:tp:list')")
+    @GetMapping("/commissionListExport")
+    public AjaxResult<List<TopOldOrderSellerExportVo>> commissionListExport(TopDivideLogQueryBo bo) {
+        List<TopOldOrderCommissionExportVo> list = iTopOldOrderService.commissionListExport(bo);
+        ExcelUtil<TopOldOrderCommissionExportVo> util = new ExcelUtil<TopOldOrderCommissionExportVo>(TopOldOrderCommissionExportVo.class);
+        return util.exportExcel(list, "佣金结算列表");
+    }
+
+    @ApiOperation("机构分成列表")
+    @PreAuthorize("@ss.hasPermi('system:tp:list')")
+    @GetMapping("/queryTenantList")
+    public TableDataInfo<TopOldOrderVo> queryTenantList(TopOldOrderQueryBo bo) {
+        startPage();
+        List<TopOldOrderVo> list = iTopOldOrderService.queryTenantList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("机构分成列表导出")
+    @PreAuthorize("@ss.hasPermi('system:tp:list')")
+    @GetMapping("/tenantListExport")
+    public AjaxResult<List<TopOldOrderCompanyExportVo>> tenantListExport(TopDivideLogQueryBo bo) {
+        List<TopOldOrderCompanyExportVo> list = iTopOldOrderService.tenantListExport(bo);
+        ExcelUtil<TopOldOrderCompanyExportVo> util = new ExcelUtil<TopOldOrderCompanyExportVo>(TopOldOrderCompanyExportVo.class);
+        return util.exportExcel(list, "机构分成列表");
+    }
+
+    /**
+     * 订单修改备注
+     */
+    @ApiOperation("订单修改备注")
+    @PostMapping("/updateRemark")
+    public AjaxResult<Void> updateRemark(@RequestBody TopOldOrderEditBo bo) {
+        return toAjax(iTopOldOrderService.updateRemark(bo) ? 1 : 0);
+    }
+
+    /**
+     * 订单退款审核详情
+     */
+    @ApiOperation("订单退款审核详情")
+    @GetMapping("/refund/detail/{orderSn}")
+    public AjaxResult<TopRefundOrderDetailVo> refundOrderDetail(@PathVariable("orderSn") String orderSn) {
+        return AjaxResult.success(iTopOldOrderService.refundOrderDetail(orderSn));
+    }
+
+
+    /**
+     * 订单退款审核
+     */
+    @ApiOperation("订单退款审核")
+    @PostMapping("/refund/check")
+    public AjaxResult<Void> refundOrderCheck(@RequestBody TopRefundOrderCheckBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        bo.setLoginName(loginUser.getUser().getUserName());
+        return toAjax(iTopOldOrderService.refundOrderCheck(bo) ? 1 : 0);
+    }
+
+    /**
+     * 批量修改订单备注
+     */
+    @ApiOperation("批量修改订单备注")
+    @PostMapping("/update/remark")
+    public AjaxResult<Void> updateRemark(@RequestBody TopUpdateRemarkBo bo) {
+        return toAjax(iTopOldOrderService.updateRemark(bo) ? 1 : 0);
+    }
+
+    /**
+     * 批量完单
+     */
+    @ApiOperation("批量完单")
+    @PostMapping("/finish")
+    public AjaxResult<Void> finishOrder(@RequestBody TopFinishOrderBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        bo.setLoginName(loginUser.getUser().getUserName());
+        return toAjax(iTopOldOrderService.finishOrder(bo) ? 1 : 0);
+    }
+
+    /**
+     * 订单统计
+     */
+    @ApiOperation("订单统计")
+    @PostMapping("/statistics")
+    public AjaxResult<TopOrderStatisticsVo> statisticsOrder() {
+        return AjaxResult.success(iTopOldOrderService.statisticsOrder());
+    }
+
+    @ApiOperation("订单应收应付统计")
+    @GetMapping("/countOrderNum")
+    public AjaxResult<Map<String, Object>> countOrderNum(TopOldOrderQueryBo bo) {
+        return AjaxResult.success(iTopOldOrderService.countOrderNum(bo));
+    }
+
+    /**
+     * 订单成本
+     */
+    @ApiOperation("获取订单成本设置")
+    @GetMapping("/cost/{orderSn}")
+    public AjaxResult<TopCostTpVo> getOrderCost(@PathVariable("orderSn") String orderSn) {
+        return AjaxResult.success(iTopOldOrderService.getOrderCost(orderSn));
+    }
+
+    /**
+     * 订单成本修改
+     */
+    @ApiOperation("批量订单成本修改")
+    @PostMapping("/update/cost")
+    public AjaxResult<Void> updateOrderCost(@RequestBody TopUpdateCostBo bo) {
+        return toAjax(iTopOldOrderService.updateOrderCost(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("订单分成审核详情")
+    @GetMapping("/divide/detail")
+    public AjaxResult<TopOldOrderVo> divideOrderDetail(TopOldOrderCheckLogQueryBo bo) {
+        return AjaxResult.success(iTopOldOrderService.divideOrderDetail(bo));
+    }
+
+    /**
+     * 订单操作记录
+     */
+    @ApiOperation("订单操作记录")
+    @GetMapping("/log")
+    public TableDataInfo<TopOrderLogVo> logList(TopOldOrderQueryBo bo) {
+        startPage();
+        List<TopOrderLogVo> list = iTopOldOrderService.logList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 订单退款支付
+     */
+    @ApiOperation("订单退款支付")
+    @PostMapping("/refund/pay")
+    public AjaxResult<Void> orderRefundPay(@RequestBody OrderRefundPayBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        bo.setLoginName(loginUser.getUser().getUserName());
+        return toAjax(iTopOldOrderService.orderRefundPay(bo) ? 1 : 0);
+    }
+
+    /**
+     * 机构账号信息
+     */
+    @ApiOperation("机构账号信息")
+    @GetMapping("/refund/pay/detail/{orderSn}")
+    public AjaxResult<OrderRefundPayDetailVo> getOrderRefundPayDetail(@PathVariable("orderSn")String orderSn) {
+        return AjaxResult.success(iTopOldOrderService.getOrderRefundPayDetail(orderSn));
+    }
+
+}

+ 105 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderGoodsController.java

@@ -0,0 +1,105 @@
+package com.zhongzheng.controller.order;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsAddBo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsEditBo;
+import com.zhongzheng.modules.top.goods.bo.TopOldOrderGoodsQueryBo;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderGoodsService;
+import com.zhongzheng.modules.top.goods.vo.TopOldOrderGoodsVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 订单商品Controller
+ * 
+ * @author ruoyi
+ * @date 2023-04-20
+ */
+@Api(value = "订单商品控制器", tags = {"订单商品管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/order/goods")
+public class TopOldOrderGoodsController extends BaseController {
+
+    private final ITopOldOrderGoodsService iTopOldOrderGoodsService;
+
+    /**
+     * 查询订单商品列表
+     */
+    @ApiOperation("查询订单商品列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:list')")
+    @GetMapping("/list")
+    public TableDataInfo<TopOldOrderGoodsVo> list(TopOldOrderGoodsQueryBo bo) {
+        startPage();
+        List<TopOldOrderGoodsVo> list = iTopOldOrderGoodsService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出订单商品列表
+     */
+    @ApiOperation("导出订单商品列表")
+    @PreAuthorize("@ss.hasPermi('system:goods:export')")
+    @Log(title = "订单商品", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<TopOldOrderGoodsVo> export(TopOldOrderGoodsQueryBo bo) {
+        List<TopOldOrderGoodsVo> list = iTopOldOrderGoodsService.queryList(bo);
+        ExcelUtil<TopOldOrderGoodsVo> util = new ExcelUtil<TopOldOrderGoodsVo>(TopOldOrderGoodsVo.class);
+        return util.exportExcel(list, "订单商品");
+    }
+
+    /**
+     * 获取订单商品详细信息
+     */
+    @ApiOperation("获取订单商品详细信息")
+    @PreAuthorize("@ss.hasPermi('system:goods:query')")
+    @GetMapping("/{orderGoodsId}")
+    public AjaxResult<TopOldOrderGoodsVo> getInfo(@PathVariable("orderGoodsId" ) Long orderGoodsId) {
+        return AjaxResult.success(iTopOldOrderGoodsService.queryById(orderGoodsId));
+    }
+
+    /**
+     * 新增订单商品
+     */
+    @ApiOperation("新增订单商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:add')")
+    @Log(title = "订单商品", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopOldOrderGoodsAddBo bo) {
+        return toAjax(iTopOldOrderGoodsService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改订单商品
+     */
+    @ApiOperation("修改订单商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
+    @Log(title = "订单商品", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody TopOldOrderGoodsEditBo bo) {
+        return toAjax(iTopOldOrderGoodsService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除订单商品
+     */
+    @ApiOperation("删除订单商品")
+    @PreAuthorize("@ss.hasPermi('system:goods:remove')")
+    @Log(title = "订单商品" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{orderGoodsIds}")
+    public AjaxResult<Void> remove(@PathVariable Long[] orderGoodsIds) {
+        return toAjax(iTopOldOrderGoodsService.deleteWithValidByIds(Arrays.asList(orderGoodsIds), true) ? 1 : 0);
+    }
+}

+ 64 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOrderBankPayController.java

@@ -0,0 +1,64 @@
+package com.zhongzheng.controller.order;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.TopTokenService;
+import com.zhongzheng.modules.top.order.bo.TopOrderBankPayAddBo;
+import com.zhongzheng.modules.top.order.bo.TopOrderBankPayEditBo;
+import com.zhongzheng.modules.top.order.bo.TopOrderBankPayQueryBo;
+import com.zhongzheng.modules.top.order.service.ITopOrderBankPayService;
+import com.zhongzheng.modules.top.order.vo.TopOrderBankPayVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 订单网银打款Controller
+ *
+ * @author hjl
+ * @date 2023-05-08
+ */
+@Api(value = "订单网银打款控制器", tags = {"订单网银打款管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/order/bank/pay")
+public class TopOrderBankPayController extends BaseController {
+
+    private final ITopOrderBankPayService iTopOrderBankPayService;
+
+    private final TopTokenService tokenService;
+
+    /**
+     * 新增订单网银打款
+     */
+    @ApiOperation("新增订单网银打款")
+    @PreAuthorize("@ss.hasPermi('system:pay:add')")
+    @Log(title = "订单网银打款", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopOrderBankPayAddBo bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setLoginId(loginUser.getUser().getUserId());
+        bo.setLoginName(loginUser.getUser().getUserName());
+        return toAjax(iTopOrderBankPayService.payToCompany(bo) ? 1 : 0);
+    }
+
+}

+ 40 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java

@@ -8,6 +8,7 @@ import com.zhongzheng.modules.exam.bo.ExamApplyQueryBo;
 import com.zhongzheng.modules.polyv.service.IPolyvLiveService;
 import com.zhongzheng.modules.schedule.service.IScheduleService;
 import com.zhongzheng.modules.sdk.service.ITopNuoMplatformLogService;
+import com.zhongzheng.modules.top.order.service.ITopOrderRecNoteService;
 import com.zhongzheng.modules.user.bo.UserQueryBo;
 import com.zhongzheng.modules.user.bo.UserWxFollowQueryBo;
 import com.zhongzheng.modules.wx.bo.WxLoginBody;
@@ -38,10 +39,49 @@ public class ScheduleController extends BaseController {
 
     private final ITopNuoMplatformLogService iTopNuoMplatformLogService;
 
+    private final ITopOrderRecNoteService iTopOrderRecNoteService;
+
+    private final IScheduleService iScheduleService;
+
     @ApiOperation("发票开票结果更新")
     @GetMapping("/distributionRebate")
     public AjaxResult distributionRebate(UserQueryBo bo){
         iTopNuoMplatformLogService.updateByBatch();
         return AjaxResult.success();
     }
+
+    @ApiOperation("重开发票开票")
+    @GetMapping("/reOpenMplatform")
+    public AjaxResult reOpenMplatform(){
+        iTopNuoMplatformLogService.reOpenMplatform();
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("催款提醒")
+    @GetMapping("/recTimeNoteBatchPush")
+    public AjaxResult recTimeNoteBatchPush(){
+        iTopOrderRecNoteService.timeNoteBatchPush();
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("应收应付机构分成月度账单")
+    @GetMapping("/makeDivideMonthBill")
+    public AjaxResult makeDivideMonthBill(){
+        iScheduleService.makeDivideMonthBill();
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("应收应付机构佣金月度账单")
+    @GetMapping("/makeDivideBrokerageMonthBill")
+    public AjaxResult makeDivideBrokerageMonthBill(){
+        iScheduleService.makeDivideBrokerageMonthBill();
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("应收应付业务员提成月度账单")
+    @GetMapping("/makeDivideSellerMonthBill")
+    public AjaxResult makeDivideSellerMonthBill(){
+        iScheduleService.makeDivideSellerMonthBill();
+        return AjaxResult.success();
+    }
 }

+ 6 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/system/SuperSysLoginController.java

@@ -12,6 +12,7 @@ import com.zhongzheng.framework.web.service.TopSysPermissionService;
 import com.zhongzheng.framework.web.service.TopTokenService;
 import com.zhongzheng.modules.top.user.domain.TopSysMenu;
 import com.zhongzheng.modules.top.user.service.ITopSysMenuService;
+import com.zhongzheng.modules.top.user.service.ITopSysRoleService;
 import com.zhongzheng.modules.top.user.service.ITopSysUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -54,6 +55,9 @@ public class SuperSysLoginController
 
     @Autowired
     private ITopSysUserService userService;
+
+    @Autowired
+    private ITopSysRoleService iTopSysRoleService;
     /**
      * 登录方法
      *
@@ -89,10 +93,12 @@ public class SuperSysLoginController
         Set<String> roles = permissionService.getRolePermission(user);
         // 权限集合
         Set<String> permissions = permissionService.getMenuPermission(user);
+        List<Integer> rolesId = iTopSysRoleService.selectRoleListByUserId(user.getUserId());
         Map<String,Object> map = new HashMap<>();
         map.put("user", user);
         map.put("roles", roles);
         map.put("permissions", permissions);
+        map.put("rolesId", rolesId);
 
         return AjaxResult.success(map);
 

+ 144 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/system/SysProfileController.java

@@ -0,0 +1,144 @@
+package com.zhongzheng.controller.system;
+
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.config.RuoYiConfig;
+import com.zhongzheng.common.constant.UserConstants;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.entity.SysUser;
+import com.zhongzheng.common.core.domain.entity.TopSysUser;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.core.domain.model.TopLoginUser;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.ToolsUtils;
+import com.zhongzheng.common.utils.file.FileUploadUtils;
+import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.framework.web.service.TopTokenService;
+import com.zhongzheng.modules.system.service.ISysUserService;
+import com.zhongzheng.modules.top.user.service.ITopSysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+/**
+ * 个人信息 业务处理
+ *
+ * @author zhongzheng
+ */
+@RestController
+@RequestMapping("/system/user/profile")
+public class SysProfileController extends BaseController
+{
+    @Autowired
+    private ITopSysUserService userService;
+
+
+    @Autowired
+    private TopTokenService topTokenService;
+
+    /**
+     * 个人信息
+     */
+    @GetMapping
+    public AjaxResult profile()
+    {
+        TopLoginUser loginUser = topTokenService.getLoginUser(ServletUtils.getRequest());
+        TopSysUser user = loginUser.getUser();
+        AjaxResult ajax = AjaxResult.success(user);
+        ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
+        ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
+        return ajax;
+    }
+
+    /**
+     * 修改用户
+     */
+    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult updateProfile(@RequestBody TopSysUser user)
+    {
+        if (StrUtil.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        if (StrUtil.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        if (userService.updateUserProfile(user) > 0)
+        {
+            TopLoginUser loginUser = topTokenService.getLoginUser(ServletUtils.getRequest());
+            // 更新缓存用户信息
+            loginUser.getUser().setNickName(user.getNickName());
+            loginUser.getUser().setPhonenumber(user.getPhonenumber());
+            loginUser.getUser().setEmail(user.getEmail());
+            loginUser.getUser().setSex(user.getSex());
+            topTokenService.setLoginUser(loginUser);
+            return AjaxResult.success();
+        }
+        return AjaxResult.error("修改个人信息异常,请联系管理员");
+    }
+
+    /**
+     * 重置密码
+     */
+    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/updatePwd")
+    public AjaxResult updatePwd(String oldPassword, String newPassword)
+    {
+        TopLoginUser loginUser = topTokenService.getLoginUser(ServletUtils.getRequest());
+        String userName = loginUser.getUsername();
+        String password = loginUser.getPassword();
+        if (!SecurityUtils.matchesPassword(oldPassword, password))
+        {
+            return AjaxResult.error("修改密码失败,旧密码错误");
+        }
+        if(!ToolsUtils.verifPwd(newPassword)){
+            throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
+        }
+        if (SecurityUtils.matchesPassword(newPassword, password))
+        {
+            return AjaxResult.error("新密码不能与旧密码相同");
+        }
+        if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
+        {
+            // 更新缓存用户密码
+            loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
+            topTokenService.setLoginUser(loginUser);
+            return AjaxResult.success();
+        }
+        return AjaxResult.error("修改密码异常,请联系管理员");
+    }
+
+    /**
+     * 头像上传
+     */
+    @Log(title = "用户头像", businessType = BusinessType.UPDATE)
+    @PostMapping("/avatar")
+    public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException
+    {
+        if (!file.isEmpty())
+        {
+            TopLoginUser loginUser = topTokenService.getLoginUser(ServletUtils.getRequest());
+            String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file);
+            if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
+            {
+                AjaxResult ajax = AjaxResult.success();
+                ajax.put("imgUrl", avatar);
+                // 更新缓存用户头像
+                loginUser.getUser().setAvatar(avatar);
+                topTokenService.setLoginUser(loginUser);
+                return ajax;
+            }
+        }
+        return AjaxResult.error("上传图片异常,请联系管理员");
+    }
+}

+ 48 - 3
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/system/SysTenantController.java

@@ -3,10 +3,9 @@ package com.zhongzheng.controller.system;
 import java.util.List;
 import java.util.Arrays;
 
-import com.zhongzheng.modules.system.bo.SysTenantAddBo;
-import com.zhongzheng.modules.system.bo.SysTenantEditBo;
-import com.zhongzheng.modules.system.bo.SysTenantQueryBo;
+import com.zhongzheng.modules.system.bo.*;
 import com.zhongzheng.modules.system.service.ISysTenantService;
+import com.zhongzheng.modules.system.vo.SysTenantBankAccountVo;
 import com.zhongzheng.modules.system.vo.SysTenantVo;
 import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -78,6 +77,15 @@ public class SysTenantController extends BaseController {
         return AjaxResult.success(iSysTenantService.queryById(tenantId));
     }
 
+    /**
+     * 获取系统商户银行账号信息
+     */
+    @ApiOperation("获取系统商户银行账号信息")
+    @GetMapping("/bank/{tenantId}")
+    public AjaxResult<List<SysTenantBankAccountVo>> getBankAccountList(@PathVariable("tenantId" ) String tenantId) {
+        return AjaxResult.success(iSysTenantService.getBankAccountList(tenantId));
+    }
+
     /**
      * 新增系统商户
      */
@@ -89,6 +97,15 @@ public class SysTenantController extends BaseController {
         return toAjax(iSysTenantService.insertByAddBo(bo) ? 1 : 0);
     }
 
+    /**
+     * 总平台新增系统商户
+     */
+    @ApiOperation("总平台新增系统商户")
+    @PostMapping("/add")
+    public AjaxResult<Void> addTopTenant(@Validated @RequestBody SysTopTenantAddBo bo) {
+        return toAjax(iSysTenantService.addTopTenant(bo) ? 1 : 0);
+    }
+
     /**
      * 修改系统商户
      */
@@ -100,6 +117,34 @@ public class SysTenantController extends BaseController {
         return toAjax(iSysTenantService.updateByEditBo(bo) ? 1 : 0);
     }
 
+    /**
+     * 总平台修改系统商户
+     */
+    @ApiOperation("总平台修改系统商户")
+    @PostMapping("/edit/top")
+    public AjaxResult<Void> editTopTenant(@RequestBody SysTopTenantEditBo bo) {
+        return toAjax(iSysTenantService.editTopTenant(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除机构
+     */
+    @ApiOperation("删除机构")
+    @PostMapping("/delete/top")
+    public AjaxResult<Void> deleteTopTenant(@RequestBody SysTopTenantEditBo bo) {
+        return toAjax(iSysTenantService.deleteTopTenant(bo) ? 1 : 0);
+    }
+
+    /**
+     * 查询系统商户列表
+     */
+    @ApiOperation("查询系统商户列表")
+    @GetMapping("/top/list")
+    public AjaxResult<List<SysTenantVo>> getTopListAll(SysTenantQueryBo bo) {
+        List<SysTenantVo> list = iSysTenantService.queryList(bo);
+        return AjaxResult.success(list);
+    }
+
     /**
      * 删除系统商户
      */

+ 2 - 2
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysRoleController.java

@@ -6,6 +6,7 @@ import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.constant.UserConstants;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.entity.TopSysRole;
 import com.zhongzheng.common.core.domain.model.TopLoginUser;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.enums.BusinessType;
@@ -14,7 +15,6 @@ import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.framework.web.service.TopSysPermissionService;
 import com.zhongzheng.framework.web.service.TopTokenService;
-import com.zhongzheng.modules.top.user.domain.TopSysRole;
 import com.zhongzheng.modules.top.user.service.ITopSysRoleService;
 import com.zhongzheng.modules.top.user.service.ITopSysUserService;
 import io.swagger.annotations.Api;
@@ -29,7 +29,7 @@ import java.util.List;
 
 /**
  * 角色信息Controller
- * 
+ *
  * @author ruoyi
  * @date 2023-03-10
  */

+ 1 - 1
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/top/TopSysUserController.java

@@ -8,6 +8,7 @@ import com.zhongzheng.common.constant.UserConstants;
 import com.zhongzheng.common.core.bo.SysUserEditBo;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.entity.TopSysRole;
 import com.zhongzheng.common.core.domain.entity.TopSysUser;
 import com.zhongzheng.common.core.domain.model.TopLoginUser;
 import com.zhongzheng.common.core.page.TableDataInfo;
@@ -19,7 +20,6 @@ import com.zhongzheng.common.utils.ToolsUtils;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.framework.web.service.TopTokenService;
 import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
-import com.zhongzheng.modules.top.user.domain.TopSysRole;
 import com.zhongzheng.modules.top.user.service.ITopSysPostService;
 import com.zhongzheng.modules.top.user.service.ITopSysRoleService;
 import com.zhongzheng.modules.top.user.service.ITopSysUserService;

+ 67 - 79
zhongzheng-admin-saas/src/main/resources/application-dev.yml

@@ -1,85 +1,51 @@
 # 数据源配置
 spring:
     datasource:
-        #配置hikari连接池
-        hikari:
-            minimum-idle: 10
-            maximum-pool-size: 20
-            connection-timeout: 10000
-            idle-timeout: 30000
-            connection-init-sql: set names utf8mb4
-        #动态数据源配置
-        dynamic:
-            primary: master #设置默认的数据源或者数据源组,默认值即为master
-            strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
-            datasource:
-                #数据源
-                master:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: zhongzheng2021
-                #数据源
-                slave:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: zhongzheng2021
-#    datasource:
-#        type: com.alibaba.druid.pool.DruidDataSource
-#        driverClassName: com.mysql.cj.jdbc.Driver
-#        druid:
-#            # 主库数据源
-#            master:
-#                url: jdbc:mysql://192.168.1.222:3306/zz_edu_sass_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-#                username: root
-#                password:  zhongzheng2021
-#            # 从库数据源
-#            slave:
-#                # 从数据源开关/默认关闭
-#                enabled: true
-#                url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-#                username: root
-#                password: zhongzheng2021
-#            # 初始连接数
-#            initialSize: 5
-#            # 最小连接池数量
-#            minIdle: 10
-#            # 最大连接池数量
-#            maxActive: 20
-#            # 配置获取连接等待超时的时间
-#            maxWait: 60000
-#            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-#            timeBetweenEvictionRunsMillis: 60000
-#            # 配置一个连接在池中最小生存的时间,单位是毫秒
-#            minEvictableIdleTimeMillis: 300000
-#            # 配置一个连接在池中最大生存的时间,单位是毫秒
-#            maxEvictableIdleTimeMillis: 900000
-#            # 配置检测连接是否有效
-#            validationQuery: SELECT 1 FROM DUAL
-#            testWhileIdle: true
-#            testOnBorrow: false
-#            testOnReturn: false
-#            webStatFilter:
-#                enabled: true
-#            statViewServlet:
-#                enabled: true
-#                # 设置白名单,不填则允许所有访问
-#                allow:
-#                url-pattern: /druid/*
-#                # 控制台管理用户名和密码
-#                login-username: ruoyi
-#                login-password: 123456
-#            filter:
-#                stat:
-#                    enabled: true
-#                    # 慢SQL记录
-#                    log-slow-sql: true
-#                    slow-sql-millis: 1000
-#                    merge-sql: true
-#                wall:
-#                    config:
-#                        multi-statement-allow: true
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: zhongzheng2021
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
     # redis 配置
     redis:
         # 地址
@@ -181,3 +147,25 @@ distributionOldPay:
 handouts:
     savePath: http://192.168.1.7:9090/course/handouts/save
     updatePath: http://192.168.1.7:9090/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: SD39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://gdxypx.xy.com/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://gdxypx.xy.com/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://gdxypx.xy.com/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://gdxypx.xy.com/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://gdxypx.xy.com/WitSystem/BussinessApi/CommissionRate
+    refundPay: http://192.168.1.222:5030/common/platform/pay
+    refundPayHandle: http://192.168.1.222:5030/common/platform/pay/handle
+
+oldSys:
+    host: http://gdxypx.xy.com
+
+invoice:
+    host: http://192.168.1.222:7077/sys/common/openMplatform/log

+ 69 - 81
zhongzheng-admin-saas/src/main/resources/application-pre.yml

@@ -1,93 +1,59 @@
 # 数据源配置
 spring:
     datasource:
-        #配置hikari连接池
-        hikari:
-            minimum-idle: 10
-            maximum-pool-size: 20
-            connection-timeout: 10000
-            idle-timeout: 30000
-            connection-init-sql: set names utf8mb4
-        #动态数据源配置
-        dynamic:
-            primary: master #设置默认的数据源或者数据源组,默认值即为master
-            strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
-            datasource:
-                #数据源
-                master:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: gdxy2021!@#zzjykj
-                #数据源
-                slave:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: gdxy2021!@#zzjykj
-    #    datasource:
-    #        type: com.alibaba.druid.pool.DruidDataSource
-    #        driverClassName: com.mysql.cj.jdbc.Driver
-    #        druid:
-    #            # 主库数据源
-    #            master:
-    #                url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-    #                username: root
-    #                password: gdxy2021!@#zzjykj
-    #            # 从库数据源
-    #            slave:
-    #                # 从数据源开关/默认关闭
-    #                enabled: false
-    #                url:
-    #                username:
-    #                password:
-    #            # 初始连接数
-    #            initialSize: 5
-    #            # 最小连接池数量
-    #            minIdle: 10
-    #            # 最大连接池数量
-    #            maxActive: 20
-    #            # 配置获取连接等待超时的时间
-    #            maxWait: 60000
-    #            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-    #            timeBetweenEvictionRunsMillis: 60000
-    #            # 配置一个连接在池中最小生存的时间,单位是毫秒
-    #            minEvictableIdleTimeMillis: 300000
-    #            # 配置一个连接在池中最大生存的时间,单位是毫秒
-    #            maxEvictableIdleTimeMillis: 900000
-    #            # 配置检测连接是否有效
-    #            validationQuery: SELECT 1 FROM DUAL
-    #            testWhileIdle: true
-    #            testOnBorrow: false
-    #            testOnReturn: false
-    #            webStatFilter:
-    #                enabled: true
-    #            statViewServlet:
-    #                enabled: true
-    #                # 设置白名单,不填则允许所有访问
-    #                allow:
-    #                url-pattern: /druid/*
-    #                # 控制台管理用户名和密码
-    #                login-username: ruoyi
-    #                login-password: 123456
-    #            filter:
-    #                stat:
-    #                    enabled: true
-    #                    # 慢SQL记录
-    #                    log-slow-sql: true
-    #                    slow-sql-millis: 4000
-    #                    merge-sql: true
-    #                wall:
-    #                    config:
-    #                        multi-statement-allow: true
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_pre?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: zhongzheng2021
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
     # redis 配置
     redis:
         # 地址
-        host: 172.18.19.227
+        host: 192.168.1.222
         # 端口,默认为6379
         port: 6379
         # 数据库索引
-        database: 0
+        database: 1
         # 密码
         password: zhongzheng2021_redis
         # 连接超时时间
@@ -181,3 +147,25 @@ distributionOldPay:
 handouts:
     savePath: https://attach.xyyxt.net/course/handouts/save
     updatePath: https://attach.xyyxt.net/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: 39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://test.jqbao.net/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://test.jqbao.net/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://test.jqbao.net/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://test.jqbao.net/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://test.jqbao.net/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://test.jqbao.net/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://test.jqbao.net/WitSystem/BussinessApi/CommissionRate
+    refundPay: http://192.168.1.222:6030/common/platform/pay
+    refundPayHandle: http://192.168.1.222:6030/common/platform/pay/handle
+
+oldSys:
+    host: http://test.jqbao.net
+
+invoice:
+    host: http://192.168.1.222:8077/sys/common/openMplatform/log

+ 67 - 79
zhongzheng-admin-saas/src/main/resources/application-prod.yml

@@ -1,85 +1,51 @@
 # 数据源配置
 spring:
     datasource:
-        #配置hikari连接池
-        hikari:
-            minimum-idle: 10
-            maximum-pool-size: 20
-            connection-timeout: 10000
-            idle-timeout: 30000
-            connection-init-sql: set names utf8mb4
-        #动态数据源配置
-        dynamic:
-            primary: master #设置默认的数据源或者数据源组,默认值即为master
-            strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
-            datasource:
-                #数据源
-                master:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: gdxy2021!@#zzjykj
-                #数据源
-                slave:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: gdxy2021!@#zzjykj
-    #    datasource:
-    #        type: com.alibaba.druid.pool.DruidDataSource
-    #        driverClassName: com.mysql.cj.jdbc.Driver
-    #        druid:
-    #            # 主库数据源
-    #            master:
-    #                url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-    #                username: root
-    #                password: gdxy2021!@#zzjykj
-    #            # 从库数据源
-    #            slave:
-    #                # 从数据源开关/默认关闭
-    #                enabled: false
-    #                url:
-    #                username:
-    #                password:
-    #            # 初始连接数
-    #            initialSize: 5
-    #            # 最小连接池数量
-    #            minIdle: 10
-    #            # 最大连接池数量
-    #            maxActive: 20
-    #            # 配置获取连接等待超时的时间
-    #            maxWait: 60000
-    #            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-    #            timeBetweenEvictionRunsMillis: 60000
-    #            # 配置一个连接在池中最小生存的时间,单位是毫秒
-    #            minEvictableIdleTimeMillis: 300000
-    #            # 配置一个连接在池中最大生存的时间,单位是毫秒
-    #            maxEvictableIdleTimeMillis: 900000
-    #            # 配置检测连接是否有效
-    #            validationQuery: SELECT 1 FROM DUAL
-    #            testWhileIdle: true
-    #            testOnBorrow: false
-    #            testOnReturn: false
-    #            webStatFilter:
-    #                enabled: true
-    #            statViewServlet:
-    #                enabled: true
-    #                # 设置白名单,不填则允许所有访问
-    #                allow:
-    #                url-pattern: /druid/*
-    #                # 控制台管理用户名和密码
-    #                login-username: ruoyi
-    #                login-password: 123456
-    #            filter:
-    #                stat:
-    #                    enabled: true
-    #                    # 慢SQL记录
-    #                    log-slow-sql: true
-    #                    slow-sql-millis: 4000
-    #                    merge-sql: true
-    #                wall:
-    #                    config:
-    #                        multi-statement-allow: true
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: gdxy2021!@#zzjykj
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
     # redis 配置
     redis:
         # 地址
@@ -181,3 +147,25 @@ distributionOldPay:
 handouts:
     savePath: https://attach.xyyxt.net/course/handouts/save
     updatePath: https://attach.xyyxt.net/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: 39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://www.xyyxt.net/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://www.xyyxt.net/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://www.xyyxt.net/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://www.xyyxt.net/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://www.xyyxt.net/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://www.xyyxt.net/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://www.xyyxt.net/WitSystem/BussinessApi/CommissionRate
+    refundPay: https://cloud.xyyxt.net/common/platform/pay
+    refundPayHandle: https://cloud.xyyxt.net/common/platform/pay/handle
+
+oldSys:
+    host: https://www.xyyxt.net
+
+invoice:
+    host: https://ptapi.gdzzkj.net/sys/common/openMplatform/log

+ 1 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/ZhongZhengApplication.java

@@ -12,7 +12,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
  * @author zhongzheng
  */
 
-@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class })
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
 @EnableScheduling
 public class ZhongZhengApplication
 {

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

@@ -30,20 +30,25 @@ import com.zhongzheng.modules.distribution.service.IDistributionActivityGoodsSer
 import com.zhongzheng.modules.distribution.service.IDistributionCashWithdrawalService;
 import com.zhongzheng.modules.distribution.service.IDistributionSellerService;
 import com.zhongzheng.modules.distribution.vo.DistributionSellerVo;
+import com.zhongzheng.modules.goods.bo.AlikeGoodsBo;
 import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
 import com.zhongzheng.modules.goods.bo.GoodsStudyUrlBo;
 import com.zhongzheng.modules.goods.bo.UserGoodsListBo;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.GoodsJzsVo;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.goods.vo.UserGoodsListVo;
 import com.zhongzheng.modules.grade.bo.*;
 import com.zhongzheng.modules.grade.service.IClassGradeService;
 import com.zhongzheng.modules.grade.service.IUserPeriodService;
 import com.zhongzheng.modules.grade.vo.SyncGoodsExport;
+import com.zhongzheng.modules.order.bo.TopOldOrderRefundBo;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.service.IOrderGoodsRefundService;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderService;
+import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.system.bo.SysTenantAdminBo;
 import com.zhongzheng.modules.system.bo.SysTenantAdminOldBo;
 import com.zhongzheng.modules.system.bo.SysTenantQueryBo;
@@ -122,6 +127,8 @@ public class CommonController extends BaseController {
     private IDistributionSellerService iDistributionSellerService;
     @Autowired
     private IDistributionActivityGoodsService iDistributionActivityGoodsService;
+    @Autowired
+    private IOrderGoodsRefundService iOrderGoodsRefundService;
 
     /**
      * 通用下载请求
@@ -316,6 +323,16 @@ public class CommonController extends BaseController {
         return AjaxResult.success(token);
     }
 
+    @ApiOperation("获取同价格商品")
+    @PostMapping("/common/alike/goods")
+    public AjaxResult getAlikeGoods(@RequestBody AlikeGoodsBo bo) {
+        if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
+            return AjaxResult.error("签名错误");
+        }
+        List<GoodsVo> voList = iGoodsService.getAlikeGoods(bo);
+        return AjaxResult.success(voList);
+    }
+
     @ApiOperation("推送分销商品")
     @PostMapping("/toshareGoods")
     public AjaxResult toshareGoods(@RequestBody WxShareGoodsBo bo) {
@@ -356,6 +373,24 @@ public class CommonController extends BaseController {
         return AjaxResult.success();
     }
 
+    /**
+     * 总平台退款支付
+     */
+    @ApiOperation("总平台退款支付")
+    @PostMapping("/common/platform/pay")
+    public AjaxResult<Void> platformRefundPay(@RequestBody List<TopOldOrderRefundBo> bo) {
+        return toAjax(iOrderGoodsRefundService.platformRefundPay(bo) ? 1 : 0);
+    }
+
+    /**
+     * 总平台退款支付订单处理
+     */
+    @ApiOperation("总平台退款支付订单处理")
+    @PostMapping("/common/platform/pay/handle")
+    public AjaxResult<Void> platformRefundPayHandle(@RequestBody List<OrderGoodsVo> orderGoodsVos) {
+        return toAjax(iOrderGoodsRefundService.handleRefundOrder(orderGoodsVos) ? 1 : 0);
+    }
+
     @ApiOperation("获取企业列表")
     @GetMapping("common/tenant/list")
     public AjaxResult<List<SysTenantVo>> getTenantList() {
@@ -402,7 +437,7 @@ public class CommonController extends BaseController {
         return AjaxResult.success("成功", dualAuth);
     }
 
-    @ApiOperation("decodeTel")
+    @ApiOperation("decodeTel加密")
     @GetMapping("common/free/decodeTel")
     public AjaxResult<String> decodeTel(String key) {
         return AjaxResult.success("成功", EncryptHandler.decrypt(key));

+ 0 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -258,7 +258,6 @@ public class ClassGradeController extends BaseController {
         List<UserPeriodExportV2Vo> list = iClassGradeUserService.listUserStudyRecordV2(bo);
         return getDataTable(list);
     }
-
     /**
      * 查询学时学员记录列表
      *//*

+ 2 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderGoodsRefundController.java

@@ -7,8 +7,10 @@ import com.zhongzheng.modules.grade.bo.UserPeriodEditBo;
 import com.zhongzheng.modules.order.bo.OrderGoodsRefundAddBo;
 import com.zhongzheng.modules.order.bo.OrderGoodsRefundEditBo;
 import com.zhongzheng.modules.order.bo.OrderGoodsRefundQueryBo;
+import com.zhongzheng.modules.order.bo.TopOldOrderRefundBo;
 import com.zhongzheng.modules.order.service.IOrderGoodsRefundService;
 import com.zhongzheng.modules.order.vo.OrderGoodsRefundVo;
+import com.zhongzheng.modules.top.goods.domain.TopOldOrderRefund;
 import lombok.RequiredArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;

+ 8 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -7,9 +7,11 @@ import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.modules.alisms.service.IAliSmsService;
 import com.zhongzheng.modules.user.bo.*;
+import com.zhongzheng.modules.user.entity.ClientLoginUser;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.vo.UserIdCardBatchVo;
 import com.zhongzheng.modules.user.vo.UserStatstVo;
@@ -201,4 +203,10 @@ public class UserController extends BaseController {
     {
         return AjaxResult.success(iUserService.batchUserId(list));
     }
+
+    @ApiOperation("修改客户端用户密码")
+    @PostMapping("/updatePwd")
+    public AjaxResult<Void> updatePwd(@RequestBody UserAppUpdatePwdBo bo) {
+        return toAjax(iUserService.updatePwdByClient(bo)? 1 : 0);
+    }
 }

+ 67 - 79
zhongzheng-admin/src/main/resources/application-dev.yml

@@ -1,85 +1,51 @@
 # 数据源配置
 spring:
     datasource:
-        #配置hikari连接池
-        hikari:
-            minimum-idle: 10
-            maximum-pool-size: 20
-            connection-timeout: 10000
-            idle-timeout: 30000
-            connection-init-sql: set names utf8mb4
-        #动态数据源配置
-        dynamic:
-            primary: slave #设置默认的数据源或者数据源组,默认值即为master
-            strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
-            datasource:
-                #数据源
-                master:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: zhongzheng2021
-                #数据源
-                slave:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: zhongzheng2021
-#    datasource:
-#        type: com.alibaba.druid.pool.DruidDataSource
-#        driverClassName: com.mysql.cj.jdbc.Driver
-#        druid:
-#            # 主库数据源
-#            master:
-#                url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-#                username: root
-#                password:  zhongzheng2021
-#            # 从库数据源
-#            slave:
-#                # 从数据源开关/默认关闭
-#                enabled: false
-#                url:
-#                username:
-#                password:
-#            # 初始连接数
-#            initialSize: 5
-#            # 最小连接池数量
-#            minIdle: 10
-#            # 最大连接池数量
-#            maxActive: 20
-#            # 配置获取连接等待超时的时间
-#            maxWait: 60000
-#            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-#            timeBetweenEvictionRunsMillis: 60000
-#            # 配置一个连接在池中最小生存的时间,单位是毫秒
-#            minEvictableIdleTimeMillis: 300000
-#            # 配置一个连接在池中最大生存的时间,单位是毫秒
-#            maxEvictableIdleTimeMillis: 900000
-#            # 配置检测连接是否有效
-#            validationQuery: SELECT 1 FROM DUAL
-#            testWhileIdle: true
-#            testOnBorrow: false
-#            testOnReturn: false
-#            webStatFilter:
-#                enabled: true
-#            statViewServlet:
-#                enabled: true
-#                # 设置白名单,不填则允许所有访问
-#                allow:
-#                url-pattern: /druid/*
-#                # 控制台管理用户名和密码
-#                login-username: ruoyi
-#                login-password: 123456
-#            filter:
-#                stat:
-#                    enabled: true
-#                    # 慢SQL记录
-#                    log-slow-sql: true
-#                    slow-sql-millis: 1000
-#                    merge-sql: true
-#                wall:
-#                    config:
-#                        multi-statement-allow: true
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: zhongzheng2021
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
     # redis 配置
     redis:
         # 地址
@@ -183,3 +149,25 @@ distributionOldPay:
 handouts:
     savePath: http://192.168.1.7:9090/course/handouts/save
     updatePath: http://192.168.1.7:9090/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: 39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://gdxypx.xy.com/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://gdxypx.xy.com/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://gdxypx.xy.com/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://gdxypx.xy.com/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://gdxypx.xy.com/WitSystem/BussinessApi/CommissionRate
+    refundPay: http://192.168.1.222:5030/common/platform/pay
+    refundPayHandle: http://192.168.1.222:5030/common/platform/pay/handle
+
+oldSys:
+    host: http://gdxypx.xy.com
+
+invoice:
+    host: http://192.168.1.222:7077/sys/common/openMplatform/log

+ 67 - 79
zhongzheng-admin/src/main/resources/application-pre.yml

@@ -1,85 +1,51 @@
 # 数据源配置
 spring:
     datasource:
-        #配置hikari连接池
-        hikari:
-            minimum-idle: 10
-            maximum-pool-size: 20
-            connection-timeout: 10000
-            idle-timeout: 30000
-            connection-init-sql: set names utf8mb4
-        #动态数据源配置
-        dynamic:
-            primary: slave #设置默认的数据源或者数据源组,默认值即为master
-            strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
-            datasource:
-                #数据源
-                master:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: zhongzheng2021
-                #数据源
-                slave:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: zhongzheng2021
-#    datasource:
-#        type: com.alibaba.druid.pool.DruidDataSource
-#        driverClassName: com.mysql.cj.jdbc.Driver
-#        druid:
-#            # 主库数据源
-#            master:
-#                url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_pre?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-#                username: root
-#                password:  zhongzheng2021
-#            # 从库数据源
-#            slave:
-#                # 从数据源开关/默认关闭
-#                enabled: false
-#                url:
-#                username:
-#                password:
-#            # 初始连接数
-#            initialSize: 5
-#            # 最小连接池数量
-#            minIdle: 10
-#            # 最大连接池数量
-#            maxActive: 20
-#            # 配置获取连接等待超时的时间
-#            maxWait: 60000
-#            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-#            timeBetweenEvictionRunsMillis: 60000
-#            # 配置一个连接在池中最小生存的时间,单位是毫秒
-#            minEvictableIdleTimeMillis: 300000
-#            # 配置一个连接在池中最大生存的时间,单位是毫秒
-#            maxEvictableIdleTimeMillis: 900000
-#            # 配置检测连接是否有效
-#            validationQuery: SELECT 1 FROM DUAL
-#            testWhileIdle: true
-#            testOnBorrow: false
-#            testOnReturn: false
-#            webStatFilter:
-#                enabled: true
-#            statViewServlet:
-#                enabled: true
-#                # 设置白名单,不填则允许所有访问
-#                allow:
-#                url-pattern: /druid/*
-#                # 控制台管理用户名和密码
-#                login-username: ruoyi
-#                login-password: 123456
-#            filter:
-#                stat:
-#                    enabled: true
-#                    # 慢SQL记录
-#                    log-slow-sql: true
-#                    slow-sql-millis: 2500
-#                    merge-sql: true
-#                wall:
-#                    config:
-#                        multi-statement-allow: true
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_pre?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: zhongzheng2021
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
     # redis 配置
     redis:
         # 地址
@@ -181,3 +147,25 @@ distributionOldPay:
 handouts:
     savePath: https://attach.xyyxt.net/course/handouts/save
     updatePath: https://attach.xyyxt.net/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: 39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://test.jqbao.net/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://test.jqbao.net/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://test.jqbao.net/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://test.jqbao.net/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://test.jqbao.net/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://test.jqbao.net/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://test.jqbao.net/WitSystem/BussinessApi/CommissionRate
+    refundPay: http://192.168.1.222:6030/common/platform/pay
+    refundPayHandle: http://192.168.1.222:6030/common/platform/pay/handle
+
+oldSys:
+    host: http://test.jqbao.net
+
+invoice:
+    host: http://192.168.1.222:8077/sys/common/openMplatform/log

+ 67 - 79
zhongzheng-admin/src/main/resources/application-prod.yml

@@ -1,85 +1,51 @@
 # 数据源配置
 spring:
     datasource:
-        #配置hikari连接池
-        hikari:
-            minimum-idle: 10
-            maximum-pool-size: 20
-            connection-timeout: 10000
-            idle-timeout: 30000
-            connection-init-sql: set names utf8mb4
-        #动态数据源配置
-        dynamic:
-            primary: slave #设置默认的数据源或者数据源组,默认值即为master
-            strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
-            datasource:
-                #数据源
-                master:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: gdxy2021!@#zzjykj
-                #数据源
-                slave:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: gdxy2021!@#zzjykj
-#    datasource:
-#        type: com.alibaba.druid.pool.DruidDataSource
-#        driverClassName: com.mysql.cj.jdbc.Driver
-#        druid:
-#            # 主库数据源
-#            master:
-#                url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-#                username: root
-#                password: gdxy2021!@#zzjykj
-#            # 从库数据源
-#            slave:
-#                # 从数据源开关/默认关闭
-#                enabled: false
-#                url:
-#                username:
-#                password:
-#            # 初始连接数
-#            initialSize: 5
-#            # 最小连接池数量
-#            minIdle: 10
-#            # 最大连接池数量
-#            maxActive: 20
-#            # 配置获取连接等待超时的时间
-#            maxWait: 60000
-#            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-#            timeBetweenEvictionRunsMillis: 60000
-#            # 配置一个连接在池中最小生存的时间,单位是毫秒
-#            minEvictableIdleTimeMillis: 300000
-#            # 配置一个连接在池中最大生存的时间,单位是毫秒
-#            maxEvictableIdleTimeMillis: 900000
-#            # 配置检测连接是否有效
-#            validationQuery: SELECT 1 FROM DUAL
-#            testWhileIdle: true
-#            testOnBorrow: false
-#            testOnReturn: false
-#            webStatFilter:
-#                enabled: true
-#            statViewServlet:
-#                enabled: true
-#                # 设置白名单,不填则允许所有访问
-#                allow:
-#                url-pattern: /druid/*
-#                # 控制台管理用户名和密码
-#                login-username: ruoyi
-#                login-password: 123456
-#            filter:
-#                stat:
-#                    enabled: true
-#                    # 慢SQL记录
-#                    log-slow-sql: true
-#                    slow-sql-millis: 4000
-#                    merge-sql: true
-#                wall:
-#                    config:
-#                        multi-statement-allow: true
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: gdxy2021!@#zzjykj
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
     # redis 配置
     redis:
         # 地址
@@ -181,3 +147,25 @@ distributionOldPay:
 handouts:
     savePath: https://attach.xyyxt.net/course/handouts/save
     updatePath: https://attach.xyyxt.net/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: 39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://www.xyyxt.net/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://www.xyyxt.net/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://www.xyyxt.net/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://www.xyyxt.net/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://www.xyyxt.net/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://www.xyyxt.net/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://www.xyyxt.net/WitSystem/BussinessApi/CommissionRate
+    refundPay: https://cloud.xyyxt.net/common/platform/pay
+    refundPayHandle: https://cloud.xyyxt.net/common/platform/pay/handle
+
+oldSys:
+    host: http://test.jqbao.net
+
+invoice:
+    host: https://ptapi.gdzzkj.net/sys/common/openMplatform/log

+ 3 - 1
zhongzheng-api/src/main/java/com/zhongzheng/ZhongZhengApiApplication.java

@@ -5,9 +5,11 @@ import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
 
-@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class})
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
+@EnableScheduling
 public class ZhongZhengApiApplication {
 
     public static void main(String[] args)

+ 11 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserStudyRecordController.java

@@ -131,6 +131,17 @@ public class UserStudyRecordController extends BaseController {
         return AjaxResult.success(iUserStudyRecordService.menuAllList(bo));
     }
 
+    /**
+     * 查询课程目录结构列表
+     */
+    @ApiOperation("查询课程所有子目录带试卷结构列表")
+    @GetMapping("/menuAllListWithExam")
+    public AjaxResult<List<ClassPeriodVo>> menuAllListWithExam(UserStudyRecordQueryBo bo) {
+        ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return AjaxResult.success(iUserStudyRecordService.menuAllListWithExam(bo));
+    }
+
     @ApiOperation("查询用户每天学习记录列表")
     @GetMapping("/listUserRecord")
     public TableDataInfo<SectionStudyRecordVo> listUserRecord(UserStudyRecordQueryBo bo) {

+ 67 - 80
zhongzheng-api/src/main/resources/application-dev.yml

@@ -1,86 +1,51 @@
 # 数据源配置
 spring:
     datasource:
-        #配置hikari连接池
-        hikari:
-            minimum-idle: 10
-            maximum-pool-size: 20
-            connection-timeout: 10000
-            idle-timeout: 30000
-            connection-init-sql: set names utf8mb4
-        #动态数据源配置
-        dynamic:
-            primary: slave #设置默认的数据源或者数据源组,默认值即为master
-            strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
-            datasource:
-                #数据源
-                master:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: zhongzheng2021
-                #数据源
-                slave:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: zhongzheng2021
-#    datasource:
-#        type: com.alibaba.druid.pool.DruidDataSource
-#        driverClassName: com.mysql.cj.jdbc.Driver
-#        druid:
-#            # 主库数据源
-#            master:
-#                url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-##                url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_pre?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-#                username: root
-#                password: zhongzheng2021
-#            # 从库数据源
-#            slave:
-#                # 从数据源开关/默认关闭
-#                enabled: false
-#                url:
-#                username:
-#                password:
-#            # 初始连接数
-#            initialSize: 5
-#            # 最小连接池数量
-#            minIdle: 10
-#            # 最大连接池数量
-#            maxActive: 20
-#            # 配置获取连接等待超时的时间
-#            maxWait: 60000
-#            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-#            timeBetweenEvictionRunsMillis: 60000
-#            # 配置一个连接在池中最小生存的时间,单位是毫秒
-#            minEvictableIdleTimeMillis: 300000
-#            # 配置一个连接在池中最大生存的时间,单位是毫秒
-#            maxEvictableIdleTimeMillis: 900000
-#            # 配置检测连接是否有效
-#            validationQuery: SELECT 1 FROM DUAL
-#            testWhileIdle: true
-#            testOnBorrow: false
-#            testOnReturn: false
-#            webStatFilter:
-#                enabled: true
-#            statViewServlet:
-#                enabled: true
-#                # 设置白名单,不填则允许所有访问
-#                allow:
-#                url-pattern: /druid/*
-#                # 控制台管理用户名和密码
-#                login-username: ruoyi
-#                login-password: 123456
-#            filter:
-#                stat:
-#                    enabled: true
-#                    # 慢SQL记录
-#                    log-slow-sql: true
-#                    slow-sql-millis: 1000
-#                    merge-sql: true
-#                wall:
-#                    config:
-#                        multi-statement-allow: true
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: zhongzheng2021
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
     # redis 配置
     redis:
         # 地址
@@ -185,3 +150,25 @@ distributionOldPay:
 handouts:
     savePath: http://192.168.1.7:9090/course/handouts/save
     updatePath: http://192.168.1.7:9090/course/handouts/edit
+
+Nuonuo:
+    host: https://sandbox.nuonuocs.cn/open/v1/services
+    APPkey: SD39149760
+    APPSecret: SD168A248B2844E0
+
+oldOrder:
+    studyRecord: http://gdxypx.xy.com/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://gdxypx.xy.com/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://gdxypx.xy.com/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://gdxypx.xy.com/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://gdxypx.xy.com/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://gdxypx.xy.com/WitSystem/BussinessApi/CommissionRate
+    refundPay: http://192.168.1.222:5030/common/platform/pay
+    refundPayHandle: http://192.168.1.222:5030/common/platform/pay/handle
+
+oldSys:
+    host: http://gdxypx.xy.com
+
+invoice:
+    host: http://192.168.1.222:7077/sys/common/openMplatform/log

+ 26 - 13
zhongzheng-api/src/main/resources/application-pre.yml

@@ -4,18 +4,9 @@ spring:
         type: com.alibaba.druid.pool.DruidDataSource
         driverClassName: com.mysql.cj.jdbc.Driver
         druid:
-            # 主库数据源
-            master:
-                url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_pre?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                username: root
-                password: zhongzheng2021
-            # 从库数据源
-            slave:
-                # 从数据源开关/默认关闭
-                enabled: false
-                url:
-                username:
-                password:
+            url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas_pre?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: zhongzheng2021
             # 初始连接数
             initialSize: 5
             # 最小连接池数量
@@ -50,7 +41,7 @@ spring:
                     enabled: true
                     # 慢SQL记录
                     log-slow-sql: true
-                    slow-sql-millis: 2500
+                    slow-sql-millis: 1000
                     merge-sql: true
                 wall:
                     config:
@@ -156,3 +147,25 @@ distributionOldPay:
 handouts:
     savePath: https://attach.xyyxt.net/course/handouts/save
     updatePath: https://attach.xyyxt.net/course/handouts/edit
+
+Nuonuo:
+    host: https://sandbox.nuonuocs.cn/open/v1/services
+    APPkey: SD39149760
+    APPSecret: SD168A248B2844E0
+
+oldOrder:
+    studyRecord: http://test.jqbao.net/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://test.jqbao.net/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://test.jqbao.net/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://test.jqbao.net/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://test.jqbao.net/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://test.jqbao.net/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://test.jqbao.net/WitSystem/BussinessApi/CommissionRate
+    refundPay: http://192.168.1.222:6030/common/platform/pay
+    refundPayHandle: http://192.168.1.222:6030/common/platform/pay/handle
+
+oldSys:
+    host: http://test.jqbao.net
+
+invoice:
+    host: http://192.168.1.222:8077/sys/common/openMplatform/log

+ 67 - 79
zhongzheng-api/src/main/resources/application-prod.yml

@@ -1,85 +1,51 @@
 # 数据源配置
 spring:
     datasource:
-        #配置hikari连接池
-        hikari:
-            minimum-idle: 10
-            maximum-pool-size: 20
-            connection-timeout: 10000
-            idle-timeout: 30000
-            connection-init-sql: set names utf8mb4
-        #动态数据源配置
-        dynamic:
-            primary: slave #设置默认的数据源或者数据源组,默认值即为master
-            strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候会抛出异常,不启动则使用默认数据源.
-            datasource:
-                #数据源
-                master:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: gdxy2021!@#zzjykj
-                #数据源
-                slave:
-                    driver-class-name: com.mysql.cj.jdbc.Driver
-                    url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-                    username: root
-                    password: gdxy2021!@#zzjykj
-    #    datasource:
-    #        type: com.alibaba.druid.pool.DruidDataSource
-    #        driverClassName: com.mysql.cj.jdbc.Driver
-    #        druid:
-    #            # 主库数据源
-    #            master:
-    #                url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
-    #                username: root
-    #                password: gdxy2021!@#zzjykj
-    #            # 从库数据源
-    #            slave:
-    #                # 从数据源开关/默认关闭
-    #                enabled: false
-    #                url:
-    #                username:
-    #                password:
-    #            # 初始连接数
-    #            initialSize: 5
-    #            # 最小连接池数量
-    #            minIdle: 10
-    #            # 最大连接池数量
-    #            maxActive: 20
-    #            # 配置获取连接等待超时的时间
-    #            maxWait: 60000
-    #            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-    #            timeBetweenEvictionRunsMillis: 60000
-    #            # 配置一个连接在池中最小生存的时间,单位是毫秒
-    #            minEvictableIdleTimeMillis: 300000
-    #            # 配置一个连接在池中最大生存的时间,单位是毫秒
-    #            maxEvictableIdleTimeMillis: 900000
-    #            # 配置检测连接是否有效
-    #            validationQuery: SELECT 1 FROM DUAL
-    #            testWhileIdle: true
-    #            testOnBorrow: false
-    #            testOnReturn: false
-    #            webStatFilter:
-    #                enabled: true
-    #            statViewServlet:
-    #                enabled: true
-    #                # 设置白名单,不填则允许所有访问
-    #                allow:
-    #                url-pattern: /druid/*
-    #                # 控制台管理用户名和密码
-    #                login-username: ruoyi
-    #                login-password: 123456
-    #            filter:
-    #                stat:
-    #                    enabled: true
-    #                    # 慢SQL记录
-    #                    log-slow-sql: true
-    #                    slow-sql-millis: 4000
-    #                    merge-sql: true
-    #                wall:
-    #                    config:
-    #                        multi-statement-allow: true
+        type: com.alibaba.druid.pool.DruidDataSource
+        driverClassName: com.mysql.cj.jdbc.Driver
+        druid:
+            url: jdbc:mysql://rm-wz950fu2v70864v85.mysql.rds.aliyuncs.com/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+            username: root
+            password: gdxy2021!@#zzjykj
+            # 初始连接数
+            initialSize: 5
+            # 最小连接池数量
+            minIdle: 10
+            # 最大连接池数量
+            maxActive: 20
+            # 配置获取连接等待超时的时间
+            maxWait: 60000
+            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+            timeBetweenEvictionRunsMillis: 60000
+            # 配置一个连接在池中最小生存的时间,单位是毫秒
+            minEvictableIdleTimeMillis: 300000
+            # 配置一个连接在池中最大生存的时间,单位是毫秒
+            maxEvictableIdleTimeMillis: 900000
+            # 配置检测连接是否有效
+            validationQuery: SELECT 1 FROM DUAL
+            testWhileIdle: true
+            testOnBorrow: false
+            testOnReturn: false
+            webStatFilter:
+                enabled: true
+            statViewServlet:
+                enabled: true
+                # 设置白名单,不填则允许所有访问
+                allow:
+                url-pattern: /druid/*
+                # 控制台管理用户名和密码
+                login-username: ruoyi
+                login-password: 123456
+            filter:
+                stat:
+                    enabled: true
+                    # 慢SQL记录
+                    log-slow-sql: true
+                    slow-sql-millis: 1000
+                    merge-sql: true
+                wall:
+                    config:
+                        multi-statement-allow: true
     # redis 配置
     redis:
         # 地址
@@ -193,3 +159,25 @@ distributionOldPay:
 handouts:
     savePath: https://attach.xyyxt.net/course/handouts/save
     updatePath: https://attach.xyyxt.net/course/handouts/edit
+
+Nuonuo:
+    host: https://sdk.nuonuo.com/open/v1/services
+    APPkey: 39149760
+    APPSecret: 07168A248B2844E0
+
+oldOrder:
+    studyRecord: http://www.xyyxt.net/WitSystem/BussinessApi/GetStudyRecord
+    orderCheck: http://www.xyyxt.net/WitSystem/BussinessApi/AuditUnderOrder
+    finishOrder: http://www.xyyxt.net/WitSystem/BussinessApi/CompleteOrder
+    refuseCheck: http://www.xyyxt.net/WitSystem/BussinessApi/ReFundAuditResult
+    inputOrderSn: http://www.xyyxt.net/WitSystem/BussinessApi/GetNewYxtinputOrderSn
+    checkOrderStudent: http://www.xyyxt.net/WitSystem/BussinessApi/ReAuditUnderOrder
+    checkOrderBrokerage: http://www.xyyxt.net/WitSystem/BussinessApi/CommissionRate
+    refundPay: https://cloud.xyyxt.net/common/platform/pay
+    refundPayHandle: https://cloud.xyyxt.net/common/platform/pay/handle
+
+oldSys:
+    host: http://test.jqbao.net
+
+invoice:
+    host: https://ptapi.gdzzkj.net/sys/common/openMplatform/log

+ 5 - 5
zhongzheng-common/pom.xml

@@ -188,11 +188,11 @@
         </dependency>
 
         <!-- dynamic -->
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
-            <version>3.0.0</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.baomidou</groupId>-->
+<!--            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>-->
+<!--            <version>3.0.0</version>-->
+<!--        </dependency>-->
 
         <dependency>
             <groupId>com.baomidou</groupId>

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/user/domain/TopSysRole.java → zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/TopSysRole.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.top.user.domain;
+package com.zhongzheng.common.core.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.zhongzheng.common.annotation.Excel;

+ 1 - 1
zhongzheng-common/src/main/java/com/zhongzheng/common/core/domain/entity/TopSysUser.java

@@ -144,7 +144,7 @@ public class TopSysUser implements Serializable
 
     /** 角色对象 */
     @TableField(exist = false)
-    private List<SysRole> roles;
+    private List<TopSysRole> roles;
 
     /** 角色组 */
     @TableField(exist = false)

+ 56 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/DateUtils.java

@@ -3,7 +3,9 @@ package com.zhongzheng.common.utils;
 import java.lang.management.ManagementFactory;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
 import java.util.Calendar;
 import java.util.Date;
@@ -329,6 +331,21 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         return "P"+getDateOrderSn();
     }
 
+    public static String getInvoiceOrderSn()
+    {
+        DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+        String localDate = (LocalDateTime.now().format(ofPattern)).substring(2);
+        //随机数
+        String randomNumeric = RandomStringUtils.randomNumeric(4);
+        return "IN"+localDate+randomNumeric;
+
+    }
+
+    public static String getTagOrderSn(String tag)
+    {
+        return tag+getDateOrderSn();
+    }
+
     public static String secToTime(int time) {
         String timeStr = null;
         int hour = 0;
@@ -371,4 +388,43 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         return hh*60*60+mi*60+ss;
     }
 
+    public static Integer dayBetween(Long s1,Long s2) {
+        String date1str = timestampToDateFormat(s1);
+        String date2str = timestampToDateFormat(s2);
+        int count = 0;
+        if("".equals(date1str) || date1str == null || "".equals(date2str) || date2str == null) {
+            return count;
+        }
+        SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
+       try {
+           Date date1 = format.parse(date1str);
+           Date date2 = format.parse(date2str);
+           count = ((int) ((date1.getTime() - date2.getTime()) / (1000*3600*24)));
+           return count;
+        }catch (Exception e){
+           return null;
+       }
+    }
+
+    public static  Integer getTodayWeek(){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        int weekIdx = calendar.get(Calendar.DAY_OF_WEEK) - 1;
+        switch (weekIdx) {
+            case 1:
+                return 1;
+            case 2:
+                return 2;
+            case 3:
+                return 3;
+            case 4:
+                return 4;
+            case 5:
+                return 5;
+            case 6:
+                return 6;
+            default:
+                return 7;
+        }
+    }
 }

+ 4 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/ServletUtils.java

@@ -2,6 +2,7 @@ package com.zhongzheng.common.utils;
 
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.StrUtil;
+import org.apache.tomcat.util.http.MimeHeaders;
 import org.springframework.web.context.request.RequestAttributes;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
@@ -10,6 +11,8 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.Map;
 
 /**
  * 客户端工具类
@@ -78,6 +81,7 @@ public class ServletUtils
 
     }
 
+
     /**
      * 获取response
      */

+ 54 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/TelPhoneUtils.java

@@ -4,6 +4,9 @@ import com.zhongzheng.common.utils.spring.SpringUtils;
 import org.springframework.context.MessageSource;
 import org.springframework.context.i18n.LocaleContextHolder;
 
+import java.io.IOException;
+import java.util.Random;
+
 /**
  * 手机号码工具栏
  *
@@ -11,6 +14,57 @@ import org.springframework.context.i18n.LocaleContextHolder;
  */
 public class TelPhoneUtils
 {
+    //中国移动
+    public static final String[] CHINA_MOBILE = {
+            "134", "135", "136", "137", "138", "139", "150", "151", "152", "157", "158", "159",
+            "182", "183", "184", "187", "188", "178", "147", "172", "198"
+    };
+    //中国联通
+    public static final String[] CHINA_UNICOM = {
+            "130", "131", "132", "145", "155", "156", "166", "171", "175", "176", "185", "186", "166"
+    };
+    //中国电信
+    public static final String[] CHINA_TELECOME = {
+            "133", "149", "153", "173", "177", "180", "181", "189", "199"
+    };
+
+    /**
+     * 生成手机号
+     */
+    public static String createMobile() {
+        StringBuilder sb = new StringBuilder();
+        Random random = new Random();
+        int op = random.nextInt(3);//随机运营商标志位
+        String mobileThree;//手机号前三位
+        int temp;
+        switch (op) {
+            case 0:
+                mobileThree = CHINA_MOBILE[random.nextInt(CHINA_MOBILE.length)];
+                break;
+            case 1:
+                mobileThree = CHINA_UNICOM[random.nextInt(CHINA_UNICOM.length)];
+                break;
+            case 2:
+                mobileThree = CHINA_TELECOME[random.nextInt(CHINA_TELECOME.length)];
+                break;
+            default:
+                mobileThree = "op标志位有误!";
+                break;
+        }
+        if (mobileThree.length() > 3) {
+            return mobileThree;
+        }
+        sb.append(mobileThree);
+        //生成手机号后8位
+        for (int i = 0; i < 8; i++) {
+            temp = random.nextInt(10);
+            sb.append(temp);
+        }
+        return sb.toString();
+    }
+
+
+
     /**
      * 隐藏手机号码
      * @param tel

+ 68 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/ToolsUtils.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.common.utils;
 
+
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
@@ -17,11 +18,17 @@ import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.*;
+
+
+import static org.apache.xmlbeans.impl.util.Base64.encode;
+
+
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
+
 public class ToolsUtils {
 
     public static final int EMU_PER_PX = 9525;
@@ -269,6 +276,11 @@ public class ToolsUtils {
         return null;
     }
 
+    public static String encodetoStr(byte[] src) {
+        byte[] encoded = encode(src);
+        return new String(encoded,0,0,encoded.length);
+    }
+
     /**
      * 不够位数的在前面补0,保留num的长度位数字
      * @param code
@@ -296,6 +308,17 @@ public class ToolsUtils {
         return true;
     }
 
+    public static Boolean checkOrderSignFromOldSys(String orderSn,String stamp,String sign) {
+        String newSign = orderSn+stamp+"pubilc2022";
+        if(!sign.equals(ToolsUtils.EncoderByMd5(newSign))){
+            return false;
+        }
+        if((Long.parseLong(stamp)+10L>(DateUtils.getNowTime().longValue()))&&(Long.parseLong(stamp)<(DateUtils.getNowTime().longValue()-10L))){
+            return false;
+        }
+        return true;
+    }
+
     public static Boolean checkSignCwSnFromOldSys(String cwSn,String stamp,String sign) {
         String newSign = cwSn+stamp+"pubilc2022";
         if(!sign.equals(ToolsUtils.EncoderByMd5(newSign))){
@@ -337,6 +360,16 @@ public class ToolsUtils {
         return result;
     }
 
+    public static boolean verifEasyPwd(String passWord) {
+        if(Validator.isEmpty(passWord)){
+            return false;
+        }
+        if(passWord.length()<6||passWord.length()>18){
+            return false;
+        }
+        return true;
+    }
+
     public static boolean verifPwd(String passWord) {
         if(Validator.isEmpty(passWord)){
             return false;
@@ -421,4 +454,39 @@ public class ToolsUtils {
         return tmpImg ;
     }
 
+    public static String solve(String num) {
+        if (num == null) {
+            return null;
+        }
+        // 判断是否有小数
+        int index = num.indexOf(".");
+        if (index >= 0) {
+            String integer = num.substring(0, index);
+            String decimal = num.substring(index);
+            // 分隔后的整数+小数拼接起来
+            return addSeparator(integer) + decimal;
+        } else {
+            return addSeparator(num);
+        }
+    }
+
+    // 添加分隔符
+    public static String addSeparator(String num) {
+        int length = num.length();
+        ArrayList list = new ArrayList();
+        while (length > 3) {
+            list.add(num.substring(length - 3, length));
+            length = length - 3;
+        }
+        // 将前面小于三位的数字添加到ArrayList中
+        list.add(num.substring(0, length));
+        StringBuffer buffer = new StringBuffer();
+        // 倒序拼接
+        for (int i = list.size() - 1; i > 0; i--) {
+            buffer.append(list.get(i) + ",");
+        }
+        buffer.append(list.get(0));
+        return buffer.toString();
+    }
+
 }

+ 2 - 1
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/http/HttpUtils.java

@@ -166,7 +166,8 @@ public class HttpUtils
 
     public static String sendPostJsonHeader(String url, String json, Map<String, String> headersMap)
     {
-        HttpClient client =  HttpClients.createDefault();
+   //     System.out.println(json);
+        HttpClient client = HttpClients.createDefault();
         HttpPost post = new HttpPost(url);
         try {
             //此处应设定参数的编码格式,不然中文会变乱码

+ 3 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/config/SecurityConfig.java

@@ -139,6 +139,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/common/merge/file").anonymous()
                 .antMatchers("/common/get/goods").anonymous()
                 .antMatchers("/common/get/goods/studyUrl").anonymous()
+                .antMatchers("/common/platform/pay").anonymous()
+                .antMatchers("/common/platform/pay/handle").anonymous()
+                .antMatchers("/common/alike/goods").anonymous()
                 .antMatchers("/common/create/tenant/admin").anonymous()
                 .antMatchers("/common/create/tenant/admin/old").anonymous()
                 .antMatchers("/common/update/role").anonymous()

+ 1 - 2
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/DistributionSellerServiceImpl.java

@@ -3,7 +3,7 @@ package com.zhongzheng.framework.web.service;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -54,7 +54,6 @@ import java.util.stream.Collectors;
  * @date 2023-03-13
  */
 @Service
-@DS("slave")
 public class DistributionSellerServiceImpl extends ServiceImpl<DistributionSellerMapper, DistributionSeller> implements IDistributionSellerService {
 
     @Autowired

+ 104 - 6
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysTenantServiceImpl.java

@@ -3,10 +3,14 @@ package com.zhongzheng.framework.web.service;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
@@ -15,15 +19,22 @@ import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.modules.order.domain.Order;
+import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.system.bo.*;
 import com.zhongzheng.modules.system.domain.SysRoleMenu;
 import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.mapper.SysRoleMenuMapper;
 import com.zhongzheng.modules.system.mapper.SysTenantMapper;
 import com.zhongzheng.modules.system.service.*;
+import com.zhongzheng.modules.system.vo.SysTenantAccountVo;
+import com.zhongzheng.modules.system.vo.SysTenantBankAccountVo;
 import com.zhongzheng.modules.system.vo.SysTenantVo;
+import com.zhongzheng.modules.top.goods.domain.TopOldOrder;
+import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -39,8 +50,7 @@ import java.util.stream.Collectors;
  * @author hjl
  * @date 2021-08-03
  */
-@Service
-@DS("slave") //指定数据源
+@Service //指定数据源
 public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant> implements ISysTenantService {
 
     @Autowired
@@ -67,6 +77,15 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
     @Autowired
     private ISysDictTypeService iSysDictTypeService;
 
+    @Autowired
+    @Lazy
+    private ITopOldOrderService topOldOrderService;
+
+    @Autowired
+    @Lazy
+    private IOrderService orderService;
+
+
     @Override
     public SysTenantVo queryById(Long tenantId){
         SysTenant db = this.baseMapper.selectById(tenantId);
@@ -76,8 +95,9 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
     @Override
     public List<SysTenantVo> queryList(SysTenantQueryBo bo) {
         LambdaQueryWrapper<SysTenant> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getStatus() != null, SysTenant::getStatus, bo.getStatus());
+        lqw.ne(SysTenant::getStatus, -1);
         lqw.like(StrUtil.isNotBlank(bo.getTenantName()), SysTenant::getTenantName, bo.getTenantName());
+        lqw.eq(ObjectUtils.isNotNull(bo.getTenantid()),SysTenant::getTenantId, bo.getTenantid());
         return entity2Vo(this.list(lqw));
     }
 
@@ -89,7 +109,19 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
     */
     private List<SysTenantVo> entity2Vo(Collection<SysTenant> collection) {
         List<SysTenantVo> voList = collection.stream()
-                .map(any -> BeanUtil.toBean(any, SysTenantVo.class))
+                .map(any -> {
+                    SysTenantVo sysTenantVo = BeanUtil.toBean(any, SysTenantVo.class);
+                    if (StringUtils.isNotBlank(any.getAccountInformation())){
+                        String accountInformation = any.getAccountInformation();
+                        List<SysTenantAccountVo> accountVo = JSONArray.parseArray(accountInformation, SysTenantAccountVo.class);
+                        sysTenantVo.setAccountList(accountVo);
+                    }
+                    if (StringUtils.isNotBlank(any.getInvoiceInformation())){
+                        SysTopTenantInvoiceBo invoiceBo = JSONObject.parseObject(any.getInvoiceInformation(), SysTopTenantInvoiceBo.class);
+                        sysTenantVo.setInvoiceBo(invoiceBo);
+                    }
+                    return sysTenantVo;
+                })
                 .collect(Collectors.toList());
         if (collection instanceof Page) {
             Page<SysTenant> page = (Page<SysTenant>)collection;
@@ -263,7 +295,7 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
     }
 
     @Override
-    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    
     public List<SysTenant> getListSysTenant() {
         return list(new LambdaQueryWrapper<SysTenant>().eq(SysTenant::getStatus, 1));
     }
@@ -393,6 +425,72 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
         }
     }
 
+    @Override
+    public List<SysTenantBankAccountVo> getBankAccountList(String tenantId) {
+        SysTenant tenant = getById(Long.valueOf(tenantId));
+        if (ObjectUtils.isNull(tenant)){
+            throw new CustomException("机构信息获取失败!");
+        }
+        if (StringUtils.isBlank(tenant.getAccountInformation())){
+            return new ArrayList<>();
+        }
+        String accountInformation = tenant.getAccountInformation();
+        return JSONArray.parseArray(accountInformation,SysTenantBankAccountVo.class);
+    }
+
+    @Override
+    public boolean addTopTenant(SysTopTenantAddBo bo) {
+        SysTenant add = BeanUtil.toBean(bo, SysTenant.class);
+        validEntityBeforeSave(add);
+        add.setTenantId(createTenantId());
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        add.setStatus(1);
+        if (ObjectUtils.isNotNull(bo.getAccountList())){
+            add.setAccountInformation(JSONArray.toJSONString(bo.getAccountList()));
+        }
+        if (ObjectUtils.isNotNull(bo.getInvoiceBo())){
+            add.setInvoiceInformation(JSONObject.toJSONString(bo.getInvoiceBo()));
+        }
+        return this.save(add);
+    }
+
+    @Override
+    public boolean editTopTenant(SysTopTenantEditBo bo) {
+        SysTenant tenant = getById(bo.getTenantId());
+        if (ObjectUtils.isNull(tenant)){
+            throw new CustomException("机构信息有误");
+        }
+        tenant.setTenantName(bo.getTenantName());
+//        if(checkNameUnique(tenant)){
+//            throw new CustomException("公司名已存在");
+//        }
+        tenant.setHostH5(bo.getHostH5());
+        tenant.setHostPc(bo.getHostPc());
+        tenant.setBillType(bo.getBillType());
+        tenant.setBillDay(bo.getBillDay());
+        tenant.setAccountInformation(JSONArray.toJSONString(bo.getAccountList()));
+        tenant.setInvoiceInformation(JSONObject.toJSONString(bo.getInvoiceBo()));
+        return updateById(tenant);
+    }
+
+    @Override
+    public boolean deleteTopTenant(SysTopTenantEditBo bo) {
+        if (CollectionUtils.isEmpty(bo.getTenantIds())){
+            throw new CustomException("参数错误");
+        }
+        for (Long tenantId : bo.getTenantIds()) {
+            int count = topOldOrderService.count(new LambdaQueryWrapper<TopOldOrder>().eq(TopOldOrder::getTenantId, tenantId));
+            int num = orderService.count(new LambdaQueryWrapper<Order>().eq(Order::getTenantId, tenantId));
+            if (count > 0 || num > 0){
+                throw new CustomException("机构已有订单信息,请勿删除!");
+            }
+        }
+        return update(new LambdaUpdateWrapper<SysTenant>()
+        .in(SysTenant::getTenantId,bo.getTenantIds())
+        .set(SysTenant::getStatus,-1));
+    }
+
     private void initRoles(Long newTenantId,Long tenantId) {
         List<String> roleKey = new ArrayList<>();
         roleKey.add("seller");

+ 55 - 3
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java

@@ -35,6 +35,7 @@ import com.zhongzheng.modules.course.service.ICourseSubjectService;
 import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.vo.ClassGradeUserGoodsVo;
+import com.zhongzheng.modules.inform.domain.InformRemind;
 import com.zhongzheng.modules.system.service.ISysConfigService;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.domain.*;
@@ -185,6 +186,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
             List<ClassGradeUserGoodsVo> classGradeUserGoodsVos = iClassGradeUserService.listUser(classGradeUserQueryBo);
             userVo.setClassGradeUserGoodsVoList(classGradeUserGoodsVos);
             userVo.setOrderNum(userVo.getGoodsCourseNum());
+
+            UserVisitLog userVisitLog = iUserVisitLogService.getOne(new LambdaQueryWrapper<UserVisitLog>().eq(UserVisitLog::getUserId, userVo.getUserId()).orderByDesc(UserVisitLog::getId).last("limit 1"));
+            if(Validator.isNotEmpty(userVisitLog)){
+                userVo.setLastVisitTime(userVisitLog.getCreateTime());
+                userVo.setVisitFromPlat(Integer.parseInt(userVisitLog.getFromPlat()));
+            }
+
+            UserStudyLog userStudyLog = iUserStudyLogService.getOne(new LambdaQueryWrapper<UserStudyLog>().eq(UserStudyLog::getUserId, userVo.getUserId()).orderByDesc(UserStudyLog::getId).last("limit 1"));
+            if(Validator.isNotEmpty(userStudyLog)){
+                userVo.setLastStudyTime(userStudyLog.getCreateTime());
+                userVo.setStudyFromPlat(Integer.parseInt(userStudyLog.getFromPlat()));
+            }
         }
         return list;
     }
@@ -887,6 +900,26 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         return true;
     }
 
+    @Override
+    public Boolean updatePwdByClient(UserAppUpdatePwdBo bo) {
+        User user = getOne(new LambdaQueryWrapper<User>().eq(User::getUserId, bo.getUserId()));
+        if(Validator.isEmpty(user)){
+            throw new BaseException("用户信息错误");
+        }
+        if (Validator.isEmpty(bo.getNewPwd()))
+        {
+            throw new BaseException("新密码格式错误");
+        }
+        if(!ToolsUtils.verifEasyPwd(bo.getNewPwd())){
+            throw new CustomException("密码应由6-18位组成");
+        }
+        user.setPassword(SecurityUtils.encryptPassword(bo.getNewPwd()));
+        user.setPwdTime(DateUtils.getNowTime());
+        user.setUpdateTime(DateUtils.getNowTime());
+        updateById(user);
+        return true;
+    }
+
     @Override
     public List<UserIdCardBatchVo> batchUserId(List<UserIdCardAddBo> list) {
         List<UserIdCardBatchVo> list1 = new ArrayList<>();
@@ -910,8 +943,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
             }
             User user1 = getOne(new LambdaQueryWrapper<User>()
                     .eq(User::getTelphone,EncryptHandler.encrypt(bo.getTelphone())).last("limit 1"));
-            //手机号码存在
-            if(Validator.isNotEmpty(user1)){
+            //手机号码存在 身份证一致
+            if(Validator.isNotEmpty(user1) &&
+                    Validator.isNotEmpty(bo.getIdCard())&&Validator.isNotEmpty(user1.getIdCard())
+                    && EncryptHandler.decrypt(user1.getIdCard()).equals(bo.getIdCard())
+            ){
                 UserIdCardBatchVo user = BeanUtil.toBean(bo, UserIdCardBatchVo.class);
 //                if(Validator.isNotEmpty(bo.getIdCard())&&Validator.isNotEmpty(user1.getIdCard())&&!user1.getIdCard().equals(bo.getIdCard())){
 //                    throw new CustomException(bo.getRealname()+"身份证号码不一致");
@@ -937,7 +973,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
                     }
                 }*/
                 UserSystemRegisterBo registerBo = BeanUtil.toBean(bo, UserSystemRegisterBo.class);
-                registerBo.setTel(bo.getTelphone());
+                if (Validator.isNotEmpty(user1)){
+                    //手机号码存在,身份证不一致 (随机生成)
+                    registerBo.setTel(createTel());
+                }else {
+                    registerBo.setTel(bo.getTelphone());
+                }
                 registerBo.setIdcard(bo.getIdCard());
                 registerBo.setRegisterPlat("4");
                 Long userId = systemRegisterUser(registerBo);
@@ -953,6 +994,17 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         return list1;
     }
 
+    private String createTel() {
+        String mobile = TelPhoneUtils.createMobile();
+        int count = count(new LambdaQueryWrapper<User>()
+                .eq(User::getTelphone, EncryptHandler.encrypt(mobile)));
+        if (count > 0){
+            createTel();
+        }
+        return mobile;
+    }
+
+
     @Override
     public boolean editShareActivityCode(UserEditBo bo) {
         if (ObjectUtils.isNotNull(bo.getShareActivityCode())){

+ 2 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/activity/service/impl/ActivityGoodsPriceServiceImpl.java

@@ -1,6 +1,6 @@
 package com.zhongzheng.modules.activity.service.impl;
 
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zhongzheng.modules.activity.domain.ActivityGoodsPrice;
 import com.zhongzheng.modules.activity.mapper.ActivityGoodsPriceMapper;
@@ -18,10 +18,9 @@ import java.util.List;
  * @date 2022-04-13
  */
 @Service
-@DS("slave")
 public class ActivityGoodsPriceServiceImpl extends ServiceImpl<ActivityGoodsPriceMapper, ActivityGoodsPrice> implements IActivityGoodsPriceService {
     @Override
-    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    
     public void saveBatchEntity(List<ActivityGoodsPrice> priceList) {
         saveBatch(priceList);
     }

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/ExamQuestionServiceImpl.java

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.bank.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +27,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-22
  */
 @Service
-@DS("slave")
 public class ExamQuestionServiceImpl extends ServiceImpl<ExamQuestionMapper, ExamQuestion> implements IExamQuestionService {
 
     @Autowired

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/ExamServiceImpl.java

@@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -51,7 +51,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-22
  */
 @Service
-@DS("slave")
 public class ExamServiceImpl extends ServiceImpl<ExamMapper, Exam> implements IExamService {
 
     @Autowired

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionBusinessServiceImpl.java

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.bank.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +27,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-25
  */
 @Service
-@DS("slave")
 public class QuestionBusinessServiceImpl extends ServiceImpl<QuestionBusinessMapper, QuestionBusiness> implements IQuestionBusinessService {
 
     @Autowired

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionChapterExamServiceImpl.java

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.bank.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -31,7 +31,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-25
  */
 @Service
-@DS("slave")
 public class QuestionChapterExamServiceImpl extends ServiceImpl<QuestionChapterExamMapper, QuestionChapterExam> implements IQuestionChapterExamService {
 
     @Autowired

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionChapterServiceImpl.java

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.bank.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -44,7 +44,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-25
  */
 @Service
-@DS("slave")
 public class QuestionChapterServiceImpl extends ServiceImpl<QuestionChapterMapper, QuestionChapter> implements IQuestionChapterService {
 
     @Autowired

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionModuleChapterServiceImpl.java

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.bank.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -28,7 +28,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-26
  */
 @Service
-@DS("slave")
 public class QuestionModuleChapterServiceImpl extends ServiceImpl<QuestionModuleChapterMapper, QuestionModuleChapter> implements IQuestionModuleChapterService {
 
     @Autowired

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/bank/service/impl/QuestionModuleServiceImpl.java

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.bank.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -41,7 +41,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-25
  */
 @Service
-@DS("slave")
 public class QuestionModuleServiceImpl extends ServiceImpl<QuestionModuleMapper, QuestionModule> implements IQuestionModuleService {
 
     @Autowired

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

@@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -86,7 +86,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-21
  */
 @Service
-@DS("slave")
 public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> implements IQuestionService {
 
     @Autowired

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/CertificateCommonServiceImpl.java

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.base.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -29,7 +29,6 @@ import java.util.stream.Collectors;
  * @date 2022-06-07
  */
 @Service
-@DS("slave")
 public class CertificateCommonServiceImpl extends ServiceImpl<CertificateCommonMapper, CertificateCommon> implements ICertificateCommonService {
 
     @Override

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/CertificateServiceImpl.java

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.base.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -31,7 +31,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-08
  */
 @Service
-@DS("slave")
 public class CertificateServiceImpl extends ServiceImpl<CertificateMapper, Certificate> implements ICertificateService {
 
     @Override

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/CertificateTpServiceImpl.java

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.base.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -61,7 +61,6 @@ import java.util.stream.Collectors;
  * @date 2022-02-16
  */
 @Service
-@DS("slave")
 public class CertificateTpServiceImpl extends ServiceImpl<CertificateTpMapper, CertificateTp> implements ICertificateTpService {
 
     @Autowired

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ProfileFieldServiceImpl.java

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.base.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -28,7 +28,6 @@ import java.util.stream.Collectors;
  * @date 2021-11-19
  */
 @Service
-@DS("slave")
 public class ProfileFieldServiceImpl extends ServiceImpl<ProfileFieldMapper, ProfileField> implements IProfileFieldService {
 
     @Override

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ProfileTpBusinessServiceImpl.java

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.base.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -26,7 +26,6 @@ import java.util.stream.Collectors;
  * @date 2021-11-19
  */
 @Service
-@DS("slave")
 public class ProfileTpBusinessServiceImpl extends ServiceImpl<ProfileTpBusinessMapper, ProfileTpBusiness> implements IProfileTpBusinessService {
 
     @Override

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/ProfileTpServiceImpl.java

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.base.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -34,7 +34,6 @@ import java.util.stream.Collectors;
  * @date 2021-11-19
  */
 @Service
-@DS("slave")
 public class ProfileTpServiceImpl extends ServiceImpl<ProfileTpMapper, ProfileTp> implements IProfileTpService {
 
     @Autowired

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

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -39,7 +39,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-08
  */
 @Service
-@DS("slave")
 public class CourseBusinessServiceImpl extends ServiceImpl<CourseBusinessMapper, CourseBusiness> implements ICourseBusinessService {
 
     @Autowired

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -30,7 +30,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-09
  */
 @Service
-@DS("slave")
 public class CourseChapterBusinessServiceImpl extends ServiceImpl<CourseChapterBusinessMapper, CourseChapterBusiness> implements ICourseChapterBusinessService {
 
     @Autowired

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

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -33,7 +33,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-12
  */
 @Service
-@DS("slave")
 public class CourseChapterSectionServiceImpl extends ServiceImpl<CourseChapterSectionMapper, CourseChapterSection> implements ICourseChapterSectionService {
 
     @Autowired

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

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.course.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -38,7 +38,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-09
  */
 @Service
-@DS("slave")
 public class CourseChapterServiceImpl extends ServiceImpl<CourseChapterMapper, CourseChapter> implements ICourseChapterService {
 
     @Autowired

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

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +27,6 @@ import java.util.stream.Collectors;
  * @date 2021-11-01
  */
 @Service
-@DS("slave")
 public class CourseEducationTierServiceImpl extends ServiceImpl<CourseEducationTierMapper, CourseEducationTier> implements ICourseEducationTierService {
 
     @Override

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

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.course.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -39,7 +39,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-08
  */
 @Service
-@DS("slave")
 public class CourseEducationTypeServiceImpl extends ServiceImpl<CourseEducationTypeMapper, CourseEducationType> implements ICourseEducationTypeService {
 
     @Autowired

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +27,6 @@ import java.util.stream.Collectors;
  * @date 2021-11-02
  */
 @Service
-@DS("slave")
 public class CourseHandoutsBusinessServiceImpl extends ServiceImpl<CourseHandoutsBusinessMapper, CourseHandoutsBusiness> implements ICourseHandoutsBusinessService {
 
     @Override

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

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -42,7 +42,6 @@ import java.util.stream.Collectors;
  * @date 2021-11-02
  */
 @Service
-@DS("slave")
 public class CourseHandoutsServiceImpl extends ServiceImpl<CourseHandoutsMapper, CourseHandouts> implements ICourseHandoutsService {
 
     @Autowired

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -28,7 +28,6 @@ import java.util.stream.Collectors;
  * @date 2021-11-17
  */
 @Service
-@DS("slave")
 public class CourseMenuExamServiceImpl extends ServiceImpl<CourseMenuExamMapper, CourseMenuExam> implements ICourseMenuExamService {
 
     @Autowired

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

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -43,7 +43,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-12
  */
 @Service
-@DS("slave")
 public class CourseMenuServiceImpl extends ServiceImpl<CourseMenuMapper, CourseMenu> implements ICourseMenuService {
 
     @Autowired
@@ -78,7 +77,9 @@ public class CourseMenuServiceImpl extends ServiceImpl<CourseMenuMapper, CourseM
                 DecimalFormat df=new DecimalFormat("0.0");//设置保留位数
                 //设置学时
         //        courseMenuVo.setClassHours(Double.valueOf(String.format("%.2f", courseMenuVo.getDurationMinTime()/45.0)));
-                courseMenuVo.setClassHours(Double.valueOf(df.format(courseMenuVo.getDurationMinTime()/45)));
+//                courseMenuVo.setClassHours(Double.valueOf(df.format(courseMenuVo.getDurationMinTime()/45)));
+
+                courseMenuVo.setClassHours(Double.valueOf(String.format("%.1f", courseMenuVo.getDurationMinTime()/45.0)));
             }
         });
         return list;

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +27,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-09
  */
 @Service
-@DS("slave")
 public class CourseModuleBusinessServiceImpl extends ServiceImpl<CourseModuleBusinessMapper, CourseModuleBusiness> implements ICourseModuleBusinessService {
 
     @Autowired

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

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -32,7 +32,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-11
  */
 @Service
-@DS("slave")
 public class CourseModuleChapterServiceImpl extends ServiceImpl<CourseModuleChapterMapper, CourseModuleChapter> implements ICourseModuleChapterService {
 
     @Autowired

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

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.course.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -43,7 +43,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-09
  */
 @Service
-@DS("slave")
 public class CourseModuleServiceImpl extends ServiceImpl<CourseModuleMapper, CourseModule> implements ICourseModuleService {
 
     @Autowired

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.Page;
@@ -29,7 +29,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-08
  */
 @Service
-@DS("slave")
 public class CourseProjectTypeServiceImpl extends ServiceImpl<CourseProjectTypeMapper, CourseProjectType> implements ICourseProjectTypeService {
 
     @Override

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -30,7 +30,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-11
  */
 @Service
-@DS("slave")
 public class CourseSectionBusinessServiceImpl extends ServiceImpl<CourseSectionBusinessMapper, CourseSectionBusiness> implements ICourseSectionBusinessService {
 
     @Autowired

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

@@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -51,7 +51,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-11
  */
 @Service
-@DS("slave")
 public class CourseSectionServiceImpl extends ServiceImpl<CourseSectionMapper, CourseSection> implements ICourseSectionService {
 
     @Autowired

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

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.codec.Base64;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -34,7 +34,6 @@ import java.util.List;
  * @date 2022年08月16日 11:05
  */
 @Service
-@DS("slave")
 public class CourseSectionWatchPerServiceImpl extends ServiceImpl<CourseSectionWatchPerMapper, CourseSectionWatchPer> implements ICourseSectionWatchPerService {
 
     @Autowired

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

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.course.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -78,7 +78,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-09
  */
 @Service
-@DS("slave")
 public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> implements ICourseService {
 
     @Autowired

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +27,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-11
  */
 @Service
-@DS("slave")
 public class CourseStreamingBusinessServiceImpl extends ServiceImpl<CourseStreamingBusinessMapper, CourseStreamingBusiness> implements ICourseStreamingBusinessService {
 
     @Autowired

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

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.course.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -39,7 +39,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-11
  */
 @Service
-@DS("slave")
 public class CourseStreamingServiceImpl extends ServiceImpl<CourseStreamingMapper, CourseStreaming> implements ICourseStreamingService {
 
     @Autowired

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +27,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-09
  */
 @Service
-@DS("slave")
 public class CourseSubjectProjectServiceImpl extends ServiceImpl<CourseSubjectProjectMapper, CourseSubjectProject> implements ICourseSubjectProjectService {
 
     @Override

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -33,7 +33,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-09
  */
 @Service
-@DS("slave")
 public class CourseSubjectServiceImpl extends ServiceImpl<CourseSubjectMapper, CourseSubject> implements ICourseSubjectService {
 
     @Autowired

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -27,7 +27,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-09
  */
 @Service
-@DS("slave")
 public class MajorProjectServiceImpl extends ServiceImpl<MajorProjectMapper, MajorProject> implements IMajorProjectService {
 
     @Override

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

@@ -1,7 +1,7 @@
 package com.zhongzheng.modules.course.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -33,7 +33,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-09
  */
 @Service
-@DS("slave")
 public class MajorServiceImpl extends ServiceImpl<MajorMapper, Major> implements IMajorService {
 
     @Autowired

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseUserChapterSectionVo.java

@@ -98,7 +98,7 @@ public class CourseUserChapterSectionVo {
 	@ApiModelProperty("直播结束时间")
 	private Long liveEndTime;
 
-	@ApiModelProperty("1已学")
+	@ApiModelProperty("1已学")
 	private Long learning;
 
 	@ApiModelProperty("1审核已通过")

+ 2 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityGoodsServiceImpl.java

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.distribution.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -62,7 +62,6 @@ import java.util.stream.Collectors;
  * @date 2023-03-06
  */
 @Service
-@DS("slave")
 public class DistributionActivityGoodsServiceImpl extends ServiceImpl<DistributionActivityGoodsMapper, DistributionActivityGoods> implements IDistributionActivityGoodsService {
 
     @Autowired
@@ -584,7 +583,7 @@ public class DistributionActivityGoodsServiceImpl extends ServiceImpl<Distributi
     }
 
     @Override
-    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    
     public void saveBatchEntity(List<DistributionActivityGoods> activityGoodsList) {
         saveBatch(activityGoodsList);
     }

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityImageServiceImpl.java

@@ -1,6 +1,6 @@
 package com.zhongzheng.modules.distribution.service.impl;
 
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zhongzheng.modules.distribution.domain.DistributionActivityImage;
 import com.zhongzheng.modules.distribution.mapper.DistributionActivityImageMapper;
@@ -14,6 +14,5 @@ import org.springframework.stereotype.Service;
  * @date 2023-03-06
  */
 @Service
-@DS("slave")
 public class DistributionActivityImageServiceImpl extends ServiceImpl<DistributionActivityImageMapper, DistributionActivityImage> implements IDistributionActivityImageService {
 }

+ 2 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityPosterServiceImpl.java

@@ -5,7 +5,7 @@ import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -56,7 +56,6 @@ import java.util.stream.Collectors;
  * @date 2023-03-06
  */
 @Service
-@DS("slave")
 public class DistributionActivityPosterServiceImpl extends ServiceImpl<DistributionActivityPosterMapper, DistributionActivityPoster> implements IDistributionActivityPosterService {
 
     @Autowired
@@ -282,7 +281,7 @@ public class DistributionActivityPosterServiceImpl extends ServiceImpl<Distribut
 
 
     @Override
-    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    
     public void savePoster(DistributionActivityPoster poster) {
         save(poster);
     }

+ 2 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityServiceImpl.java

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.distribution.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -61,7 +61,6 @@ import java.util.stream.Collectors;
  * @date 2023-03-06
  */
 @Service
-@DS("slave")
 public class DistributionActivityServiceImpl extends ServiceImpl<DistributionActivityMapper, DistributionActivity> implements IDistributionActivityService {
 
     @Autowired
@@ -440,7 +439,7 @@ public class DistributionActivityServiceImpl extends ServiceImpl<DistributionAct
     }
 
     @Override
-    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    
     public void saveEntity(DistributionActivity dailyActivity) {
         save(dailyActivity);
     }

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionRebateServiceImpl.java

@@ -2,7 +2,7 @@ package com.zhongzheng.modules.distribution.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.distribution.bo.DistributionRebateAddBo;
 import com.zhongzheng.modules.distribution.bo.DistributionRebateEditBo;
@@ -30,7 +30,6 @@ import java.util.stream.Collectors;
  * @date 2023-03-06
  */
 @Service
-@DS("slave")
 public class DistributionRebateServiceImpl extends ServiceImpl<DistributionRebateMapper, DistributionRebate> implements IDistributionRebateService {
     @Override
     public DistributionRebateVo queryById(Long id){

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamPaperServiceImpl.java

@@ -3,7 +3,7 @@ package com.zhongzheng.modules.exam.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
-import com.baomidou.dynamic.datasource.annotation.DS;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -31,7 +31,6 @@ import java.util.stream.Collectors;
  * @date 2021-10-18
  */
 @Service
-@DS("slave")
 public class ExamPaperServiceImpl extends ServiceImpl<ExamPaperMapper, ExamPaper> implements IExamPaperService {
 
     @Override

+ 30 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/AlikeGoodsBo.java

@@ -0,0 +1,30 @@
+package com.zhongzheng.modules.goods.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年02月08日 11:23
+ */
+@Data
+public class AlikeGoodsBo implements Serializable {
+
+    @ApiModelProperty("当前时间戳")
+    @NotBlank(message = "当前时间戳不能为空")
+    private Long stamp;
+
+    @ApiModelProperty("签名")
+    @NotBlank(message = "签名不能为空")
+    private String sign;
+
+    @ApiModelProperty("商品ID")
+    private Long goodsId;
+
+    @ApiModelProperty("机构ID")
+    private Long tenantId;
+
+}

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

@@ -66,4 +66,10 @@ public interface GoodsMapper extends BaseMapper<Goods> {
     Long getCourseExamNum(@Param("goodsId") Long goodsId);
 
     Long getUserStudyNum(@Param("userId")Long userId,@Param("orderGoodsId") Long orderGoodsId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<GoodsVo> getAlikeGoods(Goods goods);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Goods getGoodsByIdNotTenant(Long goodsId);
 }

部分文件因为文件数量过多而无法显示