renqianlong 1 жил өмнө
parent
commit
5bd7feb188
100 өөрчлөгдсөн 4274 нэмэгдсэн , 505 устгасан
  1. 1 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/AdminBusinessApplication.java
  2. 81 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/alioss/OssController.java
  3. 98 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/bank/CommonBankController.java
  4. 71 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/common/ActivityRecommendController.java
  5. 2 4
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/common/LoginController.java
  6. 6 21
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyCertificateController.java
  7. 5 8
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyController.java
  8. 5 8
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyDepartmentController.java
  9. 5 6
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyUserController.java
  10. 57 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseBusinessController.java
  11. 44 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseChapterSectionController.java
  12. 49 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseEducationTypeController.java
  13. 46 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseMenuController.java
  14. 40 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseModuleChapterController.java
  15. 85 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseModuleController.java
  16. 47 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseProjectTypeController.java
  17. 45 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseSubjectController.java
  18. 74 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/GoodsCourseController.java
  19. 110 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/goods/BsUserGoodsCollectionController.java
  20. 23 228
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/goods/GoodsController.java
  21. 5 5
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffBankInfoController.java
  22. 5 8
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffCertificateController.java
  23. 5 5
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffContractArchivesController.java
  24. 5 8
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffController.java
  25. 5 5
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffEduBgController.java
  26. 5 5
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffEmergencyContactController.java
  27. 138 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysConfigController.java
  28. 126 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysDictDataController.java
  29. 144 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysDictTypeController.java
  30. 139 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysLoginController.java
  31. 174 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysMenuController.java
  32. 88 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysNoticeController.java
  33. 133 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysPostController.java
  34. 141 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysProfileController.java
  35. 184 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysRoleController.java
  36. 241 0
      zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysUserController.java
  37. 2 0
      zhongzheng-admin-business/src/main/resources/application-dev.yml
  38. 1 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/goods/GoodsController.java
  39. 0 1
      zhongzheng-common/pom.xml
  40. 1 6
      zhongzheng-common/src/main/java/com/zhongzheng/common/core/bo/SysUserEditBo.java
  41. 11 0
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/SecurityUtils.java
  42. 5 3
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java
  43. 1 5
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/security/filter/JwtAuthenticationTokenFilter.java
  44. 198 0
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/BsSysLoginService.java
  45. 566 0
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/BsSysTenantServiceImpl.java
  46. 1 4
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/BsTokenService.java
  47. 20 17
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/CompanyUserServiceImpl.java
  48. 26 1
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysPermissionService.java
  49. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyAddBo.java
  50. 7 5
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyCertificateAddBo.java
  51. 8 5
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyCertificateEditBo.java
  52. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyCertificateInfo.java
  53. 7 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyCertificateQueryBo.java
  54. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyDepartmentAddBo.java
  55. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyDepartmentEditBo.java
  56. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyDepartmentQueryBo.java
  57. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyEditBo.java
  58. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyQueryBo.java
  59. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyUserAddBo.java
  60. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyUserEditBo.java
  61. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyUserQueryBo.java
  62. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/ExcelCompanyCertificateBo.java
  63. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/UserBsAccountLoginBo.java
  64. 6 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/domain/Company.java
  65. 6 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/domain/CompanyCertificate.java
  66. 2 6
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/domain/CompanyDepartment.java
  67. 17 3
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/domain/CompanyUser.java
  68. 145 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/entity/ClientBsLoginUser.java
  69. 19 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/mapper/CompanyCertificateMapper.java
  70. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/mapper/CompanyDepartmentMapper.java
  71. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/mapper/CompanyMapper.java
  72. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/mapper/CompanyUserMapper.java
  73. 8 10
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/ICompanyCertificateService.java
  74. 6 7
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/ICompanyDepartmentService.java
  75. 6 7
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/ICompanyService.java
  76. 8 9
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/ICompanyUserService.java
  77. 71 23
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/impl/CompanyCertificateServiceImpl.java
  78. 10 11
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/impl/CompanyDepartmentServiceImpl.java
  79. 24 19
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/impl/CompanyServiceImpl.java
  80. 12 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/CompanyCertificateVo.java
  81. 2 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/CompanyDepartmentVo.java
  82. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/CompanyUserVo.java
  83. 9 4
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/CompanyVo.java
  84. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/ExcelCompanyCertificateVo.java
  85. 58 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/bo/BsUserGoodsCollectionAddBo.java
  86. 60 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/bo/BsUserGoodsCollectionEditBo.java
  87. 64 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/bo/BsUserGoodsCollectionQueryBo.java
  88. 57 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/domain/BsUserGoodsCollection.java
  89. 13 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/mapper/BsUserGoodsCollectionMapper.java
  90. 52 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/service/IBsUserGoodsCollectionService.java
  91. 235 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/service/impl/BsUserGoodsCollectionServiceImpl.java
  92. 58 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/vo/BsUserGoodsCollectionVo.java
  93. 4 8
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffAddBo.java
  94. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffBankInfoAddBo.java
  95. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffBankInfoEditBo.java
  96. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffBankInfoQueryBo.java
  97. 1 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffCertificateAddBo.java
  98. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffCertificateEditBo.java
  99. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffCertificateMajorInfo.java
  100. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffCertificateQueryBo.java

+ 1 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/AdminBusinessApplication.java

@@ -3,6 +3,7 @@ package com.zhongzheng;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 

+ 81 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/alioss/OssController.java

@@ -0,0 +1,81 @@
+package com.zhongzheng.controller.alioss;
+
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.modules.alioss.bo.OssRequest;
+import com.zhongzheng.modules.alioss.service.OssService;
+import com.zhongzheng.modules.alioss.vo.ResultBean;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 阿里OSS
+ *
+ * @author change
+ * @date 2021-05-17
+ */
+@Api(value = "阿里OSS上传文件控制器", tags = {"阿里OSS上传文件"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/aliyun/oss")
+public class OssController extends BaseController {
+
+    private static Logger log = LoggerFactory.getLogger(OssController.class);
+
+    private final OssService ossService;
+
+    /**
+     * policy获得
+     */
+    @ApiOperation("policy获得")
+    @GetMapping("/policy")
+    public AjaxResult<ResultBean> policy(@Validated OssRequest ossRequest) {
+        ResultBean result = ossService.getPolicy(ossRequest);
+        log.info("服务端生成签名:{}",result);
+        return AjaxResult.success(result);
+    }
+
+    /**
+     * 阿里回调OSS返回参数到前端
+     */
+    @ApiOperation("回调")
+    @PostMapping("/callback")
+    public ResultBean callback(HttpServletRequest request) {
+        ResultBean ossCallbackResult = ossService.callback(request);
+        log.info("oss成功的回调:{}",ossCallbackResult);
+        return ossCallbackResult;
+    }
+
+
+    /**
+     * upload上传文件
+     */
+    @ApiOperation("上传file图片")
+    @PostMapping("/upload")
+    public AjaxResult<String> upload( OssRequest file) throws Exception {
+        String result = ossService.upload(file);
+        log.info("服务端生成签名:{}",result);
+        return AjaxResult.success("返回图片路径",result);
+    }
+
+    @ApiOperation("上传file图片带路径")
+    @PostMapping("/uploadPath")
+    public AjaxResult<String> uploadPath(OssRequest file) throws Exception {
+        String result = ossService.uploadWithPath(file,file.getPath());
+        log.info("服务端生成签名:{}",result);
+        return AjaxResult.success("返回图片路径",result);
+    }
+
+}

+ 98 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/bank/CommonBankController.java

@@ -0,0 +1,98 @@
+package com.zhongzheng.controller.bank;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.modules.bank.bo.ExamQuestionQueryBo;
+import com.zhongzheng.modules.bank.bo.QuestionChapterExamQueryBo;
+import com.zhongzheng.modules.bank.bo.QuestionModuleChapterQueryBo;
+import com.zhongzheng.modules.bank.service.IExamQuestionService;
+import com.zhongzheng.modules.bank.service.IQuestionChapterExamService;
+import com.zhongzheng.modules.bank.service.IQuestionModuleChapterService;
+import com.zhongzheng.modules.bank.vo.ExamQuestionVo;
+import com.zhongzheng.modules.bank.vo.ExamVo;
+import com.zhongzheng.modules.bank.vo.QuestionChapterVo;
+import com.zhongzheng.modules.goods.bo.GoodsAttachedQueryBo;
+import com.zhongzheng.modules.goods.service.IGoodsAttachedService;
+import com.zhongzheng.modules.goods.vo.GoodsAttachedVo;
+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 java.util.List;
+
+/**
+ * 课程Controller
+ *
+ * @author hjl
+ * @date 2021-10-09
+ */
+@Api(value = "游客题库访问接口", tags = {"游客题库访问接口"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/app/common/bank/")
+public class CommonBankController extends BaseController {
+
+    private final IGoodsAttachedService iGoodsAttachedService;
+
+    private final IQuestionModuleChapterService iQuestionModuleChapterService;
+
+    private final IQuestionChapterExamService iQuestionChapterExamService;
+
+    private final IExamQuestionService iExamQuestionService;
+
+
+
+    /**
+     * 查询题目业务层次关系列表
+     */
+    @ApiOperation("查询题库商品试卷列表")
+    @GetMapping("/list")
+    public AjaxResult<List<GoodsAttachedVo>> bankList(GoodsAttachedQueryBo bo) {
+        List<GoodsAttachedVo> list = iGoodsAttachedService.getList(bo);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 查询关联章卷列表
+     */
+    @ApiOperation("查询模块卷关联章卷列表")
+    @GetMapping("/chapter/list")
+    public AjaxResult<List<QuestionChapterVo>> chapterList(QuestionModuleChapterQueryBo bo) {
+        List<QuestionChapterVo> list = iQuestionModuleChapterService.getList(bo);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 查询关联试卷列表
+     */
+    @ApiOperation("查询章卷关联试卷列表")
+    @GetMapping("/exam/list")
+    public AjaxResult<List<ExamVo>> examList(QuestionChapterExamQueryBo bo) {
+        List<ExamVo> list = iQuestionChapterExamService.getList(bo);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 查询题目业务层次关系列表
+     */
+    @ApiOperation("查询试卷题目列表")
+    @GetMapping("/question/list")
+    public AjaxResult<List<ExamQuestionVo>> questionList(ExamQuestionQueryBo bo) {
+        List<ExamQuestionVo> list = iExamQuestionService.getAppList(bo);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 查询随机练习试卷题目列表
+     */
+    @ApiOperation("查询随机练习试卷题目列表")
+    @GetMapping("/question/temp/list")
+    public AjaxResult<List<ExamQuestionVo>> questionTempList(ExamQuestionQueryBo bo) {
+        List<ExamQuestionVo> list = iExamQuestionService.getAppTempList(bo);
+        return AjaxResult.success(list);
+    }
+}

+ 71 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/common/ActivityRecommendController.java

@@ -0,0 +1,71 @@
+package com.zhongzheng.controller.common;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendGoodsQueryBo;
+import com.zhongzheng.modules.activity.bo.ActivityRecommendQueryBo;
+import com.zhongzheng.modules.activity.service.IActivityRecommendService;
+import com.zhongzheng.modules.activity.vo.ActivityRecommendGoodsVo;
+import com.zhongzheng.modules.activity.vo.ActivityRecommendVo;
+import com.zhongzheng.modules.course.vo.CourseSubjectVo;
+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.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 商品推荐Controller
+ *
+ * @author hjl
+ * @date 2022-04-13
+ */
+@Api(value = "商品推荐控制器", tags = {"商品推荐管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/app/common/activity/recommend")
+public class ActivityRecommendController extends BaseController {
+
+    private final IActivityRecommendService iActivityRecommendService;
+
+    /**
+     * 查询商品推荐列表
+     */
+    @ApiOperation("查询商品推荐列表")
+    @PreAuthorize("@ss.hasPermi('system:recommend:list')")
+    @GetMapping("/list")
+    public TableDataInfo<ActivityRecommendVo> list(ActivityRecommendQueryBo bo) {
+        startPage();
+        List<Integer> statusList = new ArrayList<>();
+        statusList.add(1);
+        bo.setStatusList(statusList);
+        List<ActivityRecommendVo> list = iActivityRecommendService.selectList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询商品推荐列表
+     */
+    @ApiOperation("查询商品推荐列表")
+    @GetMapping("/goodsList")
+    public TableDataInfo<ActivityRecommendGoodsVo> getGoodsList(ActivityRecommendGoodsQueryBo bo) {
+        return iActivityRecommendService.getGoodsList(bo);
+    }
+
+    /**
+     * 查询推荐商品科目列表
+     */
+    @ApiOperation("查询推荐商品科目列表")
+    @GetMapping("/subjectList")
+    public AjaxResult<List<CourseSubjectVo>> getSubjectList(ActivityRecommendGoodsQueryBo bo) {
+        return AjaxResult.success(iActivityRecommendService.getSubjectList(bo));
+    }
+
+}

+ 2 - 4
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/common/LoginController.java

@@ -2,10 +2,8 @@ package com.zhongzheng.controller.common;
 
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
-import com.zhongzheng.modules.company.bo.UserBsAccountLoginBo;
-import com.zhongzheng.modules.company.service.ICompanyUserService;
-import com.zhongzheng.modules.user.bo.*;
-import com.zhongzheng.modules.user.service.IUserService;
+import com.zhongzheng.modules.bs.company.bo.UserBsAccountLoginBo;
+import com.zhongzheng.modules.bs.company.service.ICompanyUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;

+ 6 - 21
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyCertificateController.java

@@ -1,27 +1,13 @@
 package com.zhongzheng.controller.company;
 
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Arrays;
-import java.util.Map;
 
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.lang.Validator;
-import com.zhongzheng.common.core.domain.model.LoginUser;
-import com.zhongzheng.common.utils.ServletUtils;
-import com.zhongzheng.common.utils.poi.EasyPoiUtil;
-import com.zhongzheng.modules.bank.bo.QuestionAddBo;
-import com.zhongzheng.modules.bank.vo.QuestionImportV2;
-import com.zhongzheng.modules.company.bo.ExcelCompanyCertificateBo;
+import com.zhongzheng.modules.bs.company.bo.ExcelCompanyCertificateBo;
 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;
@@ -30,16 +16,15 @@ 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.modules.company.vo.CompanyCertificateVo;
-import com.zhongzheng.modules.company.bo.CompanyCertificateQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyCertificateAddBo;
-import com.zhongzheng.modules.company.bo.CompanyCertificateEditBo;
-import com.zhongzheng.modules.company.service.ICompanyCertificateService;
+import com.zhongzheng.modules.bs.company.vo.CompanyCertificateVo;
+import com.zhongzheng.modules.bs.company.bo.CompanyCertificateQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyCertificateAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyCertificateEditBo;
+import com.zhongzheng.modules.bs.company.service.ICompanyCertificateService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 企业证书Controller

+ 5 - 8
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyController.java

@@ -1,15 +1,12 @@
 package com.zhongzheng.controller.company;
 
 import java.util.List;
-import java.util.Arrays;
 
 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;
@@ -18,11 +15,11 @@ 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.modules.company.vo.CompanyVo;
-import com.zhongzheng.modules.company.bo.CompanyQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyAddBo;
-import com.zhongzheng.modules.company.bo.CompanyEditBo;
-import com.zhongzheng.modules.company.service.ICompanyService;
+import com.zhongzheng.modules.bs.company.vo.CompanyVo;
+import com.zhongzheng.modules.bs.company.bo.CompanyQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyEditBo;
+import com.zhongzheng.modules.bs.company.service.ICompanyService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;

+ 5 - 8
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyDepartmentController.java

@@ -1,15 +1,12 @@
 package com.zhongzheng.controller.company;
 
 import java.util.List;
-import java.util.Arrays;
 
 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;
@@ -18,11 +15,11 @@ 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.modules.company.vo.CompanyDepartmentVo;
-import com.zhongzheng.modules.company.bo.CompanyDepartmentQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyDepartmentAddBo;
-import com.zhongzheng.modules.company.bo.CompanyDepartmentEditBo;
-import com.zhongzheng.modules.company.service.ICompanyDepartmentService;
+import com.zhongzheng.modules.bs.company.vo.CompanyDepartmentVo;
+import com.zhongzheng.modules.bs.company.bo.CompanyDepartmentQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyDepartmentAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyDepartmentEditBo;
+import com.zhongzheng.modules.bs.company.service.ICompanyDepartmentService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;

+ 5 - 6
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/company/CompanyUserController.java

@@ -18,12 +18,11 @@ 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.modules.company.vo.CompanyUserVo;
-import com.zhongzheng.modules.company.bo.CompanyUserQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyUserAddBo;
-import com.zhongzheng.modules.company.bo.CompanyUserEditBo;
-import com.zhongzheng.modules.company.service.ICompanyUserService;
-import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.bs.company.vo.CompanyUserVo;
+import com.zhongzheng.modules.bs.company.bo.CompanyUserQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyUserAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyUserEditBo;
+import com.zhongzheng.modules.bs.company.service.ICompanyUserService;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 57 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseBusinessController.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.controller.course;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
+import com.zhongzheng.modules.course.service.ICourseBusinessService;
+import com.zhongzheng.modules.course.vo.CourseBusinessVo;
+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.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 业务层次Controller
+ *
+ * @author ruoyi
+ * @date 2021-10-08
+ */
+@Api(value = "业务层次控制器", tags = {"业务层次管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/app/common/course/business")
+public class CourseBusinessController extends BaseController {
+
+    private final ICourseBusinessService iCourseBusinessService;
+
+    /**
+     * 查询业务层次列表
+     */
+    @ApiOperation("查询业务层次列表")
+    @GetMapping("/list")
+    public TableDataInfo<CourseBusinessVo> list(CourseBusinessQueryBo bo) {
+        bo.setStatus(new ArrayList<Integer>(Arrays.asList(1)));
+        startPage();
+        List<CourseBusinessVo> list = iCourseBusinessService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 获取业务层次详细信息
+     */
+    @ApiOperation("获取业务层次详细信息")
+    @GetMapping("/{id}")
+    public AjaxResult<CourseBusinessVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iCourseBusinessService.queryById(id));
+    }
+
+}

+ 44 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseChapterSectionController.java

@@ -0,0 +1,44 @@
+package com.zhongzheng.controller.course;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.modules.course.service.ICourseChapterSectionService;
+import com.zhongzheng.modules.course.vo.CourseChapterSectionVo;
+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.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 章与节关系Controller
+ *
+ * @author hjl
+ * @date 2021-10-12
+ */
+@Api(value = "章与节关系控制器", tags = {"章与节关系管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/course/chapter/section")
+public class CourseChapterSectionController extends BaseController {
+
+    private final ICourseChapterSectionService iCourseChapterSectionService;
+
+    /**
+     * 查询章与节关系列表
+     */
+    @ApiOperation("查询章与节关系列表")
+    @PreAuthorize("@ss.hasPermi('system:section:list')")
+    @GetMapping("/list/{id}")
+    public AjaxResult<List<CourseChapterSectionVo>> list(@PathVariable("id" ) Long id) {
+
+        List<CourseChapterSectionVo> list = iCourseChapterSectionService.getListById(id);
+        return AjaxResult.success(list);
+    }
+}

+ 49 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseEducationTypeController.java

@@ -0,0 +1,49 @@
+package com.zhongzheng.controller.course;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.modules.course.bo.CourseEducationTypeQueryBo;
+import com.zhongzheng.modules.course.service.ICourseEducationTypeService;
+import com.zhongzheng.modules.course.vo.CourseEducationTypeVo;
+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 java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 教育类型Controller
+ *
+ * @author ruoyi
+ * @date 2021-10-08
+ */
+@Api(value = "教育类型控制器", tags = {"教育类型管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/app/common/course/educationType")
+public class CourseEducationTypeController extends BaseController {
+
+    private final ICourseEducationTypeService iCourseEducationTypeService;
+
+
+
+    /**
+     * 查询教育类型列表
+     */
+    @ApiOperation("查询教育类型列表")
+    @GetMapping("/list")
+    public TableDataInfo<CourseEducationTypeVo> list(CourseEducationTypeQueryBo bo) {
+        bo.setStatus(new ArrayList<Integer>(Arrays.asList(1)));
+        startPage();
+        List<CourseEducationTypeVo> list = iCourseEducationTypeService.queryList(bo);
+        return getDataTable(list);
+    }
+
+
+}

+ 46 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseMenuController.java

@@ -0,0 +1,46 @@
+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.CourseMenuListAddBo;
+import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
+import com.zhongzheng.modules.course.service.ICourseMenuService;
+import com.zhongzheng.modules.course.vo.CourseMenuVo;
+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 2021-10-12
+ */
+@Api(value = "课程目录结构控制器", tags = {"课程目录结构管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/course/menu")
+public class CourseMenuController extends BaseController {
+
+    private final ICourseMenuService iCourseMenuService;
+
+    /**
+     * 查询课程目录结构列表
+     */
+    @ApiOperation("查询课程目录结构列表")
+    @PreAuthorize("@ss.hasPermi('system:menu:list')")
+    @GetMapping("/list")
+    public TableDataInfo<CourseMenuVo> list(CourseMenuQueryBo bo) {
+        startPage();
+        List<CourseMenuVo> list = iCourseMenuService.selectList(bo);
+        return getDataTable(list);
+    }
+}

+ 40 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseModuleChapterController.java

@@ -0,0 +1,40 @@
+package com.zhongzheng.controller.course;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.modules.course.service.ICourseModuleChapterService;
+import com.zhongzheng.modules.course.vo.CourseModuleChapterVo;
+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.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 模块与章关系Controller
+ *
+ * @author hjl
+ * @date 2021-10-11
+ */
+@Api(value = "模块与章关系控制器", tags = {"模块与章关系管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/course/module/chapter")
+public class CourseModuleChapterController extends BaseController {
+
+    private final ICourseModuleChapterService iCourseModuleChapterService;
+
+    @ApiOperation("查询模块与章关系列表")
+    @PreAuthorize("@ss.hasPermi('system:chapter:list')")
+    @GetMapping("/allList/{id}")
+    public AjaxResult<List<CourseModuleChapterVo>> all_list(@PathVariable("id" ) Long id) {
+        List<CourseModuleChapterVo> list = iCourseModuleChapterService.getListById(id);
+        return AjaxResult.success(list);
+    }
+}

+ 85 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseModuleController.java

@@ -0,0 +1,85 @@
+package com.zhongzheng.controller.course;
+
+import com.alibaba.fastjson.JSON;
+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.LoginUser;
+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.EasyPoiUtil;
+import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.modules.course.bo.CourseModuleAddBo;
+import com.zhongzheng.modules.course.bo.CourseModuleEditBo;
+import com.zhongzheng.modules.course.bo.CourseModuleQueryBo;
+import com.zhongzheng.modules.course.bo.CourseSectionBusinessAddBo;
+import com.zhongzheng.modules.course.domain.CourseModuleBusiness;
+import com.zhongzheng.modules.course.service.ICourseModuleBusinessService;
+import com.zhongzheng.modules.course.service.ICourseModuleService;
+import com.zhongzheng.modules.course.service.ICourseSectionService;
+import com.zhongzheng.modules.course.vo.CourseChapterSectionImport;
+import com.zhongzheng.modules.course.vo.CourseModuleVo;
+import com.zhongzheng.modules.goods.bo.GoodsBatchDelBo;
+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 org.springframework.web.multipart.MultipartFile;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 课程模块Controller
+ *
+ * @author hjl
+ * @date 2021-10-09
+ */
+@Api(value = "课程模块控制器", tags = {"课程模块管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/course/module")
+public class CourseModuleController extends BaseController {
+
+    private final ICourseModuleService iCourseModuleService;
+
+    private final ICourseModuleBusinessService iCourseModuleBusinessService;
+
+    private final TokenService tokenService;
+
+    private final ICourseSectionService iCourseSectionService;
+
+
+    /**
+     * 查询课程模块列表
+     */
+    @ApiOperation("查询课程模块列表")
+    @PreAuthorize("@ss.hasPermi('system:module:list')")
+    @GetMapping("/list")
+    public TableDataInfo<CourseModuleVo> list(CourseModuleQueryBo bo) {
+        startPage();
+        List<CourseModuleVo> list = iCourseModuleService.selectList(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("获取课程模块详细信息")
+    @PreAuthorize("@ss.hasPermi('system:module:query')")
+    @GetMapping("/{moduleId}")
+    public AjaxResult<CourseModuleVo> getInfo(@PathVariable("moduleId" ) Long moduleId) {
+        return AjaxResult.success(iCourseModuleService.queryById(moduleId));
+    }
+    /**
+     * 获取课程小节业务层次列表
+     */
+    @ApiOperation("获取课程模块业务层次列表")
+    @PreAuthorize("@ss.hasPermi('system:section:query')")
+    @GetMapping("/business/{moduleId}")
+    public AjaxResult<List<CourseModuleBusiness>> getBusinessList(@PathVariable("moduleId" ) Long moduleId) {
+        List<CourseModuleBusiness> list = iCourseModuleBusinessService.getListById(moduleId);
+        return AjaxResult.success(list);
+    }
+}

+ 47 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseProjectTypeController.java

@@ -0,0 +1,47 @@
+package com.zhongzheng.controller.course;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.modules.course.bo.CourseProjectTypeQueryBo;
+import com.zhongzheng.modules.course.service.ICourseProjectTypeService;
+import com.zhongzheng.modules.course.vo.CourseProjectTypeVo;
+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 java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 项目类型Controller
+ *
+ * @author ruoyi
+ * @date 2021-10-08
+ */
+@Api(value = "项目类型控制器", tags = {"项目类型管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/app/common/course/projectType")
+public class CourseProjectTypeController extends BaseController {
+
+    private final ICourseProjectTypeService iCourseProjectTypeService;
+
+    /**
+     * 查询项目类型列表
+     */
+    @ApiOperation("查询项目类型列表")
+    @GetMapping("/list")
+    public TableDataInfo<CourseProjectTypeVo> list(CourseProjectTypeQueryBo bo) {
+        bo.setStatus(new ArrayList<Integer>(Arrays.asList(1)));
+        startPage();
+        List<CourseProjectTypeVo> list = iCourseProjectTypeService.queryList(bo);
+        return getDataTable(list);
+    }
+
+
+}

+ 45 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/CourseSubjectController.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.controller.course;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.modules.course.bo.CourseSubjectQueryBo;
+import com.zhongzheng.modules.course.service.ICourseSubjectService;
+import com.zhongzheng.modules.course.vo.CourseSubjectVo;
+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 java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 科目Controller
+ *
+ * @author ruoyi
+ * @date 2021-10-09
+ */
+@Api(value = "科目控制器", tags = {"科目管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/app/common/course/subject")
+public class CourseSubjectController extends BaseController {
+
+    private final ICourseSubjectService iCourseSubjectService;
+
+    /**
+     * 查询科目列表
+     */
+    @ApiOperation("查询科目列表")
+    @GetMapping("/list")
+    public TableDataInfo<CourseSubjectVo> list(CourseSubjectQueryBo bo) {
+        bo.setStatus(new ArrayList<Integer>(Arrays.asList(1)));
+        startPage();
+        List<CourseSubjectVo> list = iCourseSubjectService.queryList(bo);
+        return getDataTable(list);
+    }
+}

+ 74 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/course/GoodsCourseController.java

@@ -0,0 +1,74 @@
+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.vo.CourseVo;
+import com.zhongzheng.modules.goods.bo.GoodsCourseAddBo;
+import com.zhongzheng.modules.goods.bo.GoodsCourseQueryBo;
+import com.zhongzheng.modules.goods.service.IGoodsCourseService;
+import com.zhongzheng.modules.goods.vo.GoodsCourseMoreVo;
+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 hjl
+ * @date 2021-10-12
+ */
+@Api(value = "商品课程关系控制器", tags = {"商品课程关系管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/BsGoods/course")
+public class GoodsCourseController extends BaseController {
+
+    private final IGoodsCourseService iGoodsCourseService;
+
+    /**
+     * 查询商品课程关系列表
+     */
+    @ApiOperation("查询商品课程关系列表")
+    @PreAuthorize("@ss.hasPermi('system:course:list')")
+    @GetMapping("/getList")
+    public TableDataInfo<CourseVo> getList(GoodsCourseQueryBo bo) {
+        startPage();
+        List<CourseVo> list = iGoodsCourseService.selectList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询商品课程关系列表
+     */
+    @ApiOperation("ID查询商品课程关系列表")
+    @PreAuthorize("@ss.hasPermi('system:course:list')")
+    @GetMapping("/list/{id}")
+    public TableDataInfo<CourseVo> list(@PathVariable("id" ) Long id) {
+        startPage();
+        GoodsCourseQueryBo courseQueryBo = new GoodsCourseQueryBo();
+        courseQueryBo.setGoodsId(id);
+        List<CourseVo> list = iGoodsCourseService.selectList(courseQueryBo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询商品课程关系列表
+     */
+    @ApiOperation("批量查询商品课程关系列表")
+    @PreAuthorize("@ss.hasPermi('system:course:list')")
+        @GetMapping("/listMore/{ids}")
+    public TableDataInfo<GoodsCourseMoreVo> listMore(@PathVariable Long[] ids) {
+        startPage();
+        List<GoodsCourseMoreVo> list = iGoodsCourseService.selectListMore(Arrays.asList(ids));
+        return getDataTable(list);
+    }
+}

+ 110 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/goods/BsUserGoodsCollectionController.java

@@ -0,0 +1,110 @@
+package com.zhongzheng.controller.goods;
+
+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.ServletUtils;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+
+import com.zhongzheng.framework.web.service.BsTokenService;
+import com.zhongzheng.modules.bs.goods.bo.BsUserGoodsCollectionAddBo;
+import com.zhongzheng.modules.bs.goods.bo.BsUserGoodsCollectionEditBo;
+import com.zhongzheng.modules.bs.goods.bo.BsUserGoodsCollectionQueryBo;
+import com.zhongzheng.modules.bs.goods.service.IBsUserGoodsCollectionService;
+import com.zhongzheng.modules.bs.goods.vo.BsUserGoodsCollectionVo;
+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 2024-04-22
+ */
+@Api(value = "用户商品收藏控制器", tags = {"用户商品收藏管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("bs/goods/collection")
+public class BsUserGoodsCollectionController extends BaseController {
+
+    private final IBsUserGoodsCollectionService iBsUserGoodsCollectionService;
+    private final BsTokenService bsTokenService;
+
+    /**
+     * 查询用户商品收藏列表
+     */
+    @ApiOperation("查询用户商品收藏列表")
+    @PreAuthorize("@ss.hasPermi('goods:collection:list')")
+    @GetMapping("/list")
+    public TableDataInfo<BsUserGoodsCollectionVo> list(BsUserGoodsCollectionQueryBo bo) {
+        startPage();
+        List<BsUserGoodsCollectionVo> list = iBsUserGoodsCollectionService.queryList(bo);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出用户商品收藏列表
+     */
+    @ApiOperation("导出用户商品收藏列表")
+    @PreAuthorize("@ss.hasPermi('goods:collection:export')")
+    @Log(title = "用户商品收藏", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult<BsUserGoodsCollectionVo> export(BsUserGoodsCollectionQueryBo bo) {
+        List<BsUserGoodsCollectionVo> list = iBsUserGoodsCollectionService.queryList(bo);
+        ExcelUtil<BsUserGoodsCollectionVo> util = new ExcelUtil<BsUserGoodsCollectionVo>(BsUserGoodsCollectionVo.class);
+        return util.exportExcel(list, "用户商品收藏");
+    }
+
+    /**
+     * 获取用户商品收藏详细信息
+     */
+    @ApiOperation("获取用户商品收藏详细信息")
+    @PreAuthorize("@ss.hasPermi('goods:collection:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<BsUserGoodsCollectionVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iBsUserGoodsCollectionService.queryById(id));
+    }
+
+    /**
+     * 新增用户商品收藏
+     */
+    @ApiOperation("新增用户商品收藏")
+    @PreAuthorize("@ss.hasPermi('goods:collection:add')")
+    @Log(title = "用户商品收藏", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody BsUserGoodsCollectionAddBo bo) {
+        bo.setUserId(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUser().getUserId());
+        return toAjax(iBsUserGoodsCollectionService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改用户商品收藏
+     */
+    @ApiOperation("修改用户商品收藏")
+    @PreAuthorize("@ss.hasPermi('goods:collection:edit')")
+    @Log(title = "用户商品收藏", businessType = BusinessType.UPDATE)
+    @PostMapping("/cancel")
+    public AjaxResult<Void> edit(@RequestBody BsUserGoodsCollectionEditBo bo) {
+        return toAjax(iBsUserGoodsCollectionService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除用户商品收藏
+     */
+    @ApiOperation("删除用户商品收藏")
+    @PreAuthorize("@ss.hasPermi('goods:collection:remove')")
+    @Log(title = "用户商品收藏" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@PathVariable Long[] ids) {
+        return toAjax(iBsUserGoodsCollectionService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 23 - 228
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -13,17 +13,24 @@ import com.zhongzheng.modules.exam.bo.ExamNumberGoodsQueryBo;
 import com.zhongzheng.modules.exam.vo.ExamNumberGoodsVo;
 import com.zhongzheng.modules.goods.bo.*;
 import com.zhongzheng.modules.goods.service.IGoodsAttachedService;
+import com.zhongzheng.modules.goods.service.IGoodsCourseService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.*;
+import com.zhongzheng.modules.order.service.IOrderBusinessConfigGoodsService;
+import com.zhongzheng.modules.order.vo.CompanyOrderBusinessConfigGoodsVo;
+import com.zhongzheng.modules.order.vo.OrderBusinessConfigGoodsVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 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.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 商品Controller
@@ -34,7 +41,7 @@ import java.util.List;
 @Api(value = "商品控制器", tags = {"商品管理"})
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 @RestController
-@RequestMapping("/goods")
+@RequestMapping("bs/BsGoods")
 public class GoodsController extends BaseController {
 
     private final IGoodsService iGoodsService;
@@ -42,35 +49,31 @@ public class GoodsController extends BaseController {
     private final IGoodsAttachedService iGoodsAttachedService;
 
     private final IQuestionService iQuestionService;
+    private final IOrderBusinessConfigGoodsService iOrderBusinessConfigGoodsService;
+    private final IGoodsCourseService iGoodsCourseService;
 
     /**
      * 查询商品列表
      */
     @ApiOperation("查询商品列表")
     @PreAuthorize("@ss.hasPermi('system:goods:list')")
-    @GetMapping("/list")
-    public TableDataInfo<GoodsVo> list(GoodsQueryBo bo) {
+    @GetMapping("/goodsList")
+    public TableDataInfo<CompanyGoodsVo> list( GoodsQueryBo bo) {
         startPage();
-        List<GoodsVo> list = iGoodsService.selectList(bo);
+        List<CompanyGoodsVo> list = iGoodsService.selectBsGoodList(bo);
         return getDataTable(list);
     }
 
-    @ApiOperation("导出直播商品列表")
+    /**
+     * 查询商品宝列表
+     */
+    @ApiOperation("查询商品列表")
     @PreAuthorize("@ss.hasPermi('system:goods:list')")
-    @GetMapping("/export_list")
-    public AjaxResult<ExportLiveGoodsVo> export_list(GoodsQueryBo bo) {
-        List<GoodsVo> list = iGoodsService.selectList(bo);
-        List<ExportLiveGoodsVo> list1 = new ArrayList<>();
-        for(GoodsVo vo : list){
-            ExportLiveGoodsVo goodsVo = BeanUtil.toBean(vo, ExportLiveGoodsVo.class);
-            goodsVo.setBusinessName(vo.getEducationName()+"-"+vo.getProjectName()+"-"+vo.getBusinessName());
-            if(Validator.isEmpty(vo.getPeriod())){
-                goodsVo.setPeriod(0L);
-            }
-            list1.add(goodsVo);
-        }
-        ExcelUtil<ExportLiveGoodsVo> util = new ExcelUtil<>(ExportLiveGoodsVo.class);
-        return util.exportExcel(list1,"直播学习记录");
+    @GetMapping("/getBsGoodlist")
+    public TableDataInfo<CompanyOrderBusinessConfigGoodsVo> getBsGoodList(GoodsQueryBo bo) {
+        startPage();
+        List<CompanyOrderBusinessConfigGoodsVo> bsGoodsList = iGoodsService.getBsGoodsPackageList(bo);
+        return getDataTable(bsGoodsList);
     }
 
 
@@ -90,94 +93,22 @@ public class GoodsController extends BaseController {
         return AjaxResult.success(list);
     }
 
-    @ApiOperation("修改商品默认规格模板")
-    @PostMapping("/update/spec")
-    public AjaxResult<Void> updateSpecTemplate(@RequestBody GoodsSpecTempEditBo bo) {
-        return toAjax(iGoodsService.updateSpecTemplate(bo) ? 1 : 0);
-    }
 
     @ApiOperation("取消商品默认规格模板")
     @PostMapping("/cancel/spec")
     public AjaxResult<Void> cancelSpecTemplate(@RequestBody GoodsSpecTempEditBo bo) {
         return toAjax(iGoodsService.cancelSpecTemplate(bo) ? 1 : 0);
     }
-
-    /**
-     * 导出商品列表
-     */
-    /*selectList*/
-
     /**
      * 获取商品详细信息
      */
     @ApiOperation("获取商品详细信息")
     @PreAuthorize("@ss.hasPermi('system:goods:query')")
     @GetMapping("/{goodsId}")
-    public AjaxResult<GoodsVo> getInfo(@PathVariable("goodsId" ) Long goodsId) {
+    public AjaxResult<GoodsVo> getInfo(@PathVariable("goodsId") Long goodsId) {
         return AjaxResult.success(iGoodsService.selectDetail(goodsId));
     }
 
-    /**
-     * 新增课程商品
-     */
-    @ApiOperation("新增课程商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:add')")
-    @Log(title = "商品", businessType = BusinessType.INSERT)
-    @PostMapping()
-    public AjaxResult<Void> add(@RequestBody GoodsAddBo bo) {
-        return toAjax(iGoodsService.insertByAddBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 修改商品
-     */
-    @ApiOperation("修改商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
-    @Log(title = "商品", businessType = BusinessType.UPDATE)
-    @PostMapping("/edit")
-    public AjaxResult<Void> edit(@RequestBody GoodsEditBo bo) {
-        return toAjax(iGoodsService.updateByEditBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 商品批量上下架
-     */
-    @ApiOperation("商品批量上下架")
-    @PostMapping("/batch/updateStatus")
-    public AjaxResult<Void> batchUpdateStatus(@RequestBody GoodsBatchUpdateStatusBo bo) {
-        return toAjax(iGoodsService.GoodsBatchUpdateStatusBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 商品批量删除
-     */
-    @ApiOperation("商品批量删除")
-    @PostMapping("/batch/del")
-    public AjaxResult<Void> batchDelGoods(@RequestBody GoodsBatchDelBo bo) {
-        return toAjax(iGoodsService.batchDelGoods(bo) ? 1 : 0);
-    }
-
-    /**
-     * 删除商品
-     */
-   /* @ApiOperation("删除商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:remove')")
-    @Log(title = "商品" , businessType = BusinessType.DELETE)
-    @DeleteMapping("/{goodsIds}")
-    public AjaxResult<Void> remove(@PathVariable Long[] goodsIds) {
-        return toAjax(iGoodsService.deleteWithValidByIds(Arrays.asList(goodsIds), true) ? 1 : 0);
-    }*/
-
-    /**
-     * 新增题库商品
-     */
-    @ApiOperation("新增题库商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:add')")
-    @Log(title = "商品", businessType = BusinessType.INSERT)
-    @PostMapping("/bank")
-    public AjaxResult<Void> addBank(@RequestBody GoodsBankAddBo bo) {
-        return toAjax(iGoodsService.insertBankByAddBo(bo)>0 ? 1 : 0);
-    }
 
     @ApiOperation("新增讲义商品")
     @PreAuthorize("@ss.hasPermi('system:goods:add')")
@@ -187,24 +118,6 @@ public class GoodsController extends BaseController {
         return toAjax(iGoodsService.insertHandoutsByAddBo(bo)>0 ? 1 : 0);
     }
 
-    /**
-     * 修改商品
-     */
-    @ApiOperation("修改题库商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
-    @Log(title = "题库商品", businessType = BusinessType.UPDATE)
-    @PostMapping("/bank/edit")
-    public AjaxResult<Void> editBank(@RequestBody GoodsBankEditBo bo) {
-        return toAjax(iGoodsService.updateBankByEditBo(bo) ? 1 : 0);
-    }
-
-    @ApiOperation("修改讲义商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
-    @Log(title = "讲义商品", businessType = BusinessType.UPDATE)
-    @PostMapping("/handouts/edit")
-    public AjaxResult<Void> editHandouts(@RequestBody GoodsEditBo bo) {
-        return toAjax(iGoodsService.updateHandoutsByEditBo(bo) ? 1 : 0);
-    }
 
     /**
      * 查询题目业务层次关系列表
@@ -218,51 +131,6 @@ public class GoodsController extends BaseController {
     }
 
 
-    /**
-     * 新增课程商品
-     */
-    @ApiOperation("新增补考商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:add')")
-    @Log(title = "商品", businessType = BusinessType.INSERT)
-    @PostMapping("/make")
-    public AjaxResult<Void> addMake(@RequestBody GoodsAddBo bo) {
-        return toAjax(iGoodsService.insertMakeByAddBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 修改商品
-     */
-    @ApiOperation("修改补考商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
-    @Log(title = "商品", businessType = BusinessType.UPDATE)
-    @PostMapping("/make/edit")
-    public AjaxResult<Void> editMake(@RequestBody GoodsEditBo bo) {
-        return toAjax(iGoodsService.updateMakeByEditBo(bo) ? 1 : 0);
-    }
-
-
-    /**
-     * 新增课程商品
-     */
-    @ApiOperation("新增前培商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:add')")
-    @Log(title = "商品", businessType = BusinessType.INSERT)
-    @PostMapping("/front")
-    public AjaxResult<Void> addFront(@RequestBody GoodsAddBo bo) {
-        return toAjax(iGoodsService.insertFrontByAddBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 修改商品
-     */
-    @ApiOperation("修改前培商品")
-    @PreAuthorize("@ss.hasPermi('system:goods:edit')")
-    @Log(title = "商品", businessType = BusinessType.UPDATE)
-    @PostMapping("/front/edit")
-    public AjaxResult<Void> editFront(@RequestBody GoodsEditBo bo) {
-        return toAjax(iGoodsService.updateFrontByEditBo(bo) ? 1 : 0);
-    }
-
     /**
      * 查询考试配置绑定商品列表
      */
@@ -307,78 +175,6 @@ public class GoodsController extends BaseController {
         return AjaxResult.success(list);
     }
 
-    /**
-     * 新增每日一练试卷时间
-     */
-    @ApiOperation("新增每日一练试卷时间")
-    @PostMapping("/addExamTime")
-    public AjaxResult<Void> addGoodsExamTime(@RequestBody List<BankGoodsExamAddBo> addBo) {
-        return toAjax(iQuestionService.addGoodsExamTime(addBo) ? 1 : 0);
-    }
-
-    /**
-     * 商品批量复制(新机构)
-     */
-    @ApiOperation("商品批量复制(全量)")
-    @PostMapping("/batch/copy/all")
-    public AjaxResult<Void> goodsBatchCopyTenant(@RequestBody GoodsBatchCopyTenantBo bo) {
-        return toAjax(iGoodsService.goodsBatchCopyTenant(bo) ? 1 : 0);
-    }
-
-    /**
-     * 商品批量复制(新机构)
-     */
-    @ApiOperation("商品批量复制(增量)")
-    @PostMapping("/batch/copy/add")
-    public AjaxResult<Void> goodsBatchCopyAddTenant(@RequestBody GoodsBatchCopyTenantBo bo) {
-        return toAjax(iGoodsService.goodsBatchCopyIncrementTenant(bo) ? 1 : 0);
-    }
-
-    /**
-     * 商品节点复制
-     */
-    @ApiOperation("商品节点复制")
-    @PostMapping("/node/copy/add")
-    public AjaxResult<Void> goodsNodeCopyAddTenant(@RequestBody GoodsNodeCopyTenantBo bo) {
-        return toAjax(iGoodsService.goodsNodeCopyAddTenant(bo) ? 1 : 0);
-    }
-
-    /**
-     * 商品讲义复制
-     */
-    @ApiOperation("商品讲义复制")
-    @PostMapping("/handouts/copy/add")
-    public AjaxResult<Void> goodsHandoutsCopyAddTenant(@RequestBody GoodsHandoutsCopyTenantBo bo) {
-        return toAjax(iGoodsService.goodsHandoutsCopyAddTenant(bo) ? 1 : 0);
-    }
-
-    /**
-     * 商品关系ID处理(全量复制后的处理方法)
-     */
-    @ApiOperation("商品关系ID处理(全量复制后的处理方法)")
-    @GetMapping("/batch/copy/dispose")
-    public AjaxResult<Void> goodsBatchCopyDisposeTenant() {
-        return toAjax(iGoodsService.goodsBatchCopyDisposeTenant() ? 1 : 0);
-    }
-
-    /**
-     * 修改商品课程关联
-     */
-    @ApiOperation("修改商品课程关联")
-    @PostMapping("/update/course")
-    public AjaxResult<Void> updateCourse() {
-        return toAjax(iGoodsService.goodsBatchCopyDisposeTenant() ? 1 : 0);
-    }
-
-
-    /**
-     * 修复二建/二造商品(注意不接页面,自己使用)
-     */
-    @ApiOperation("修复二建/二造商品")
-    @PostMapping("/update/goods/repair")
-    public AjaxResult<Void> updateGoodsRepair(@RequestBody UpdateGoodsRepairBo bo) {
-        return toAjax(iGoodsService.updateGoodsRepair(bo) ? 1 : 0);
-    }
 
     @ApiOperation("查询商品普通列表")
     @PreAuthorize("@ss.hasPermi('system:goods:list')")
@@ -390,5 +186,4 @@ public class GoodsController extends BaseController {
         List<GoodsVo> list = iGoodsService.queryList(bo);
         return AjaxResult.success(list);
     }
-
 }

+ 5 - 5
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffBankInfoController.java

@@ -18,11 +18,11 @@ 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.modules.staff.vo.StaffBankInfoVo;
-import com.zhongzheng.modules.staff.bo.StaffBankInfoQueryBo;
-import com.zhongzheng.modules.staff.bo.StaffBankInfoAddBo;
-import com.zhongzheng.modules.staff.bo.StaffBankInfoEditBo;
-import com.zhongzheng.modules.staff.service.IStaffBankInfoService;
+import com.zhongzheng.modules.bs.staff.vo.StaffBankInfoVo;
+import com.zhongzheng.modules.bs.staff.bo.StaffBankInfoQueryBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffBankInfoAddBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffBankInfoEditBo;
+import com.zhongzheng.modules.bs.staff.service.IStaffBankInfoService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;

+ 5 - 8
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffCertificateController.java

@@ -1,15 +1,12 @@
 package com.zhongzheng.controller.staff;
 
 import java.util.List;
-import java.util.Arrays;
 
 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;
@@ -18,11 +15,11 @@ 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.modules.staff.vo.StaffCertificateVo;
-import com.zhongzheng.modules.staff.bo.StaffCertificateQueryBo;
-import com.zhongzheng.modules.staff.bo.StaffCertificateAddBo;
-import com.zhongzheng.modules.staff.bo.StaffCertificateEditBo;
-import com.zhongzheng.modules.staff.service.IStaffCertificateService;
+import com.zhongzheng.modules.bs.staff.vo.StaffCertificateVo;
+import com.zhongzheng.modules.bs.staff.bo.StaffCertificateQueryBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffCertificateAddBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffCertificateEditBo;
+import com.zhongzheng.modules.bs.staff.service.IStaffCertificateService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;

+ 5 - 5
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffContractArchivesController.java

@@ -18,11 +18,11 @@ 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.modules.staff.vo.StaffContractArchivesVo;
-import com.zhongzheng.modules.staff.bo.StaffContractArchivesQueryBo;
-import com.zhongzheng.modules.staff.bo.StaffContractArchivesAddBo;
-import com.zhongzheng.modules.staff.bo.StaffContractArchivesEditBo;
-import com.zhongzheng.modules.staff.service.IStaffContractArchivesService;
+import com.zhongzheng.modules.bs.staff.vo.StaffContractArchivesVo;
+import com.zhongzheng.modules.bs.staff.bo.StaffContractArchivesQueryBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffContractArchivesAddBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffContractArchivesEditBo;
+import com.zhongzheng.modules.bs.staff.service.IStaffContractArchivesService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;

+ 5 - 8
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffController.java

@@ -1,15 +1,12 @@
 package com.zhongzheng.controller.staff;
 
 import java.util.List;
-import java.util.Arrays;
 
 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;
@@ -18,11 +15,11 @@ 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.modules.staff.vo.StaffVo;
-import com.zhongzheng.modules.staff.bo.StaffQueryBo;
-import com.zhongzheng.modules.staff.bo.StaffAddBo;
-import com.zhongzheng.modules.staff.bo.StaffEditBo;
-import com.zhongzheng.modules.staff.service.IStaffService;
+import com.zhongzheng.modules.bs.staff.vo.StaffVo;
+import com.zhongzheng.modules.bs.staff.bo.StaffQueryBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffAddBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffEditBo;
+import com.zhongzheng.modules.bs.staff.service.IStaffService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;

+ 5 - 5
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffEduBgController.java

@@ -18,11 +18,11 @@ 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.modules.staff.vo.StaffEduBgVo;
-import com.zhongzheng.modules.staff.bo.StaffEduBgQueryBo;
-import com.zhongzheng.modules.staff.bo.StaffEduBgAddBo;
-import com.zhongzheng.modules.staff.bo.StaffEduBgEditBo;
-import com.zhongzheng.modules.staff.service.IStaffEduBgService;
+import com.zhongzheng.modules.bs.staff.vo.StaffEduBgVo;
+import com.zhongzheng.modules.bs.staff.bo.StaffEduBgQueryBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffEduBgAddBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffEduBgEditBo;
+import com.zhongzheng.modules.bs.staff.service.IStaffEduBgService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;

+ 5 - 5
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/staff/StaffEmergencyContactController.java

@@ -18,11 +18,11 @@ 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.modules.staff.vo.StaffEmergencyContactVo;
-import com.zhongzheng.modules.staff.bo.StaffEmergencyContactQueryBo;
-import com.zhongzheng.modules.staff.bo.StaffEmergencyContactAddBo;
-import com.zhongzheng.modules.staff.bo.StaffEmergencyContactEditBo;
-import com.zhongzheng.modules.staff.service.IStaffEmergencyContactService;
+import com.zhongzheng.modules.bs.staff.vo.StaffEmergencyContactVo;
+import com.zhongzheng.modules.bs.staff.bo.StaffEmergencyContactQueryBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffEmergencyContactAddBo;
+import com.zhongzheng.modules.bs.staff.bo.StaffEmergencyContactEditBo;
+import com.zhongzheng.modules.bs.staff.service.IStaffEmergencyContactService;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;

+ 138 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysConfigController.java

@@ -0,0 +1,138 @@
+package com.zhongzheng.controller.system;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.annotation.RepeatSubmit;
+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.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.modules.bs.system.service.IBsSysConfigService;
+import com.zhongzheng.modules.bs.system.vo.BsSysConfigVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 参数配置 信息操作处理
+ *
+ * @author zhongzheng
+ */
+@Api(tags ="系统配置")
+@RestController
+@RequestMapping("/bs/system/config")
+public class BsSysConfigController extends BaseController
+{
+    @Autowired
+    private IBsSysConfigService configService;
+
+    /**
+     * 获取参数配置列表
+     */
+    @ApiOperation("配置列表")
+    @PreAuthorize("@ss.hasPermi('system:config:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsSysConfigVo config)
+    {
+        startPage();
+        List<BsSysConfigVo> list = configService.selectConfigList(config);
+        return getDataTable(list);
+    }
+
+    /*@Log(title = "参数管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:config:export')")
+    @GetMapping("/export")
+    public AjaxResult export(SysConfig config)
+    {
+        List<SysConfig> list = configService.selectConfigList(config);
+        ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
+        return util.exportExcel(list, "参数数据");
+    }*/
+
+    /**
+     * 根据参数编号获取详细信息
+     */
+    @ApiOperation("通过ID配置详情")
+    @PreAuthorize("@ss.hasPermi('system:config:query')")
+    @GetMapping(value = "/{configId}")
+    public AjaxResult getInfo(@PathVariable Long configId)
+    {
+        return AjaxResult.success(configService.selectConfigById(configId));
+    }
+
+    /**
+     * 根据参数键名查询参数值
+     */
+    @ApiOperation("通过KEY获取配置详情")
+    @GetMapping(value = "/configKey/{configKey}")
+    public AjaxResult getConfigKey(@PathVariable String configKey)
+    {
+        return AjaxResult.success("配置内容",configService.selectConfigByKey(configKey));
+    }
+
+    /**
+     * 新增参数配置
+     */
+    @ApiOperation("新增配置")
+    @PreAuthorize("@ss.hasPermi('system:config:add')")
+    @Log(title = "参数管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    @RepeatSubmit
+    public AjaxResult add(@Validated @RequestBody BsSysConfigVo config)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
+        {
+            return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(configService.insertConfig(config));
+    }
+
+    /**
+     * 修改参数配置
+     */
+    @ApiOperation("修改配置")
+    @PreAuthorize("@ss.hasPermi('system:config:edit')")
+    @Log(title = "参数管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody BsSysConfigVo config)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
+        {
+            return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(configService.updateConfig(config));
+    }
+
+    /**
+     * 删除参数配置
+     */
+    @ApiOperation("删除配置")
+    @PreAuthorize("@ss.hasPermi('system:config:remove')")
+    @Log(title = "参数管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{configIds}")
+    public AjaxResult remove(@PathVariable Long[] configIds)
+    {
+        return toAjax(configService.deleteConfigByIds(configIds));
+    }
+
+    /**
+     * 清空缓存
+     */
+    @ApiOperation("刷新配置缓存")
+    @PreAuthorize("@ss.hasPermi('system:config:remove')")
+    @Log(title = "参数管理", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/clearCache")
+    public AjaxResult clearCache()
+    {
+        configService.clearCache();
+        return AjaxResult.success();
+    }
+}

+ 126 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysDictDataController.java

@@ -0,0 +1,126 @@
+package com.zhongzheng.controller.system;
+
+import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.ObjectUtil;
+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.entity.SysDictData;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.framework.web.service.BsTokenService;
+import com.zhongzheng.modules.bs.system.domain.BsSysDictData;
+import com.zhongzheng.modules.bs.system.service.IBsSysDictDataService;
+import com.zhongzheng.modules.bs.system.service.IBsSysDictTypeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 数据字典信息
+ *
+ * @author zhongzheng
+ */
+@Api(tags = "字典数据管理")
+@RestController
+@RequestMapping("/bs/system/dict/data")
+public class BsSysDictDataController extends BaseController {
+    @Autowired
+    private IBsSysDictDataService dictDataService;
+
+    @Autowired
+    private IBsSysDictTypeService dictTypeService;
+    @Autowired
+    private BsTokenService bsTokenService;
+
+    @ApiOperation("获取字典数据列表")
+    //  @PreAuthorize("@ss.hasPermi('system:dict:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsSysDictData dictData) {
+        startPage();
+        List<BsSysDictData> list = dictDataService.selectDictDataList(dictData);
+        return getDataTable(list);
+    }
+
+    @Log(title = "字典数据", businessType = BusinessType.EXPORT)
+    //  @PreAuthorize("@ss.hasPermi('system:dict:export')")
+    @GetMapping("/export")
+    public AjaxResult export(BsSysDictData dictData) {
+        List<BsSysDictData> list = dictDataService.selectDictDataList(dictData);
+        ExcelUtil<BsSysDictData> util = new ExcelUtil<BsSysDictData>(BsSysDictData.class);
+        return util.exportExcel(list, "字典数据");
+    }
+
+    /**
+     * 查询字典数据详细
+     */
+    @ApiOperation("查询字典数据详细")
+    // @PreAuthorize("@ss.hasPermi('system:dict:query')")
+    @GetMapping(value = "/{dictCode}")
+    public AjaxResult getInfo(@PathVariable Long dictCode) {
+        return AjaxResult.success(dictDataService.selectDictDataById(dictCode));
+    }
+
+    /**
+     * 根据字典类型查询字典数据信息
+     */
+    @ApiOperation("根据字典类型查询字典数据信息")
+    @GetMapping(value = "/type/{dictType}")
+    public AjaxResult dictType(@PathVariable String dictType) {
+        List<BsSysDictData> data = dictTypeService.selectDictDataByType(dictType);
+        if (Validator.isNull(data)) {
+            data = new ArrayList<BsSysDictData>();
+        }
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @ApiOperation("新增字典数据")
+    @PreAuthorize("@ss.hasPermi('system:dict:add')")
+    @Log(title = "字典数据", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody BsSysDictData dict) {
+        dict.setCreateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        dict.setCreateTime(DateUtils.getNowTime());
+        dict.setUpdateTime(DateUtils.getNowTime());
+        return toAjax(dictDataService.insertDictData(dict));
+    }
+
+    /**
+     * 修改保存字典类型
+     */
+    @ApiOperation("修改保存字典数据")
+    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
+    @Log(title = "字典数据", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody BsSysDictData dict) {
+        dict.setUpdateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        dict.setUpdateTime(DateUtils.getNowTime());
+        return toAjax(dictDataService.updateDictData(dict));
+    }
+
+    /**
+     * 删除字典类型
+     */
+    @ApiOperation("删除字典数据")
+    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
+    @Log(title = "字典类型", businessType = BusinessType.DELETE)
+    @PostMapping("/delete/{dictCodes}")
+    public AjaxResult remove(@PathVariable Long[] dictCodes) {
+        return toAjax(dictDataService.deleteDictDataByIds(dictCodes));
+    }
+}

+ 144 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysDictTypeController.java

@@ -0,0 +1,144 @@
+package com.zhongzheng.controller.system;
+
+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.SysDictType;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.BsTokenService;
+import com.zhongzheng.modules.bs.system.domain.BsSysDictType;
+import com.zhongzheng.modules.bs.system.service.IBsSysDictTypeService;
+import com.zhongzheng.modules.system.service.ISysDictTypeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 数据字典信息
+ *
+ * @author zhongzheng
+ */
+@Api(tags ="字典类型管理")
+@RestController
+@RequestMapping("/bs/system/dict/type")
+public class BsSysDictTypeController extends BaseController
+{
+    @Autowired
+    private IBsSysDictTypeService dictTypeService;
+    @Autowired
+    private BsTokenService bsTokenService;
+
+    @ApiOperation("获取字典类型列表")
+ //   @PreAuthorize("@ss.hasPermi('system:dict:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsSysDictType dictType)
+    {
+        startPage();
+        List<BsSysDictType> list = dictTypeService.selectDictTypeList(dictType);
+        return getDataTable(list);
+    }
+
+    /*@Log(title = "字典类型", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:dict:export')")
+    @GetMapping("/export")
+    public AjaxResult export(SysDictType dictType)
+    {
+        List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
+        ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
+        return util.exportExcel(list, "字典类型");
+    }*/
+
+    /**
+     * 查询字典类型详细
+     */
+    @ApiOperation("查询字典类型详细")
+ //   @PreAuthorize("@ss.hasPermi('system:dict:query')")
+    @GetMapping(value = "/{dictId}")
+    public AjaxResult getInfo(@PathVariable Long dictId)
+    {
+        return AjaxResult.success(dictTypeService.selectDictTypeById(dictId));
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @ApiOperation("新增字典类型")
+    @PreAuthorize("@ss.hasPermi('system:dict:add')")
+    @Log(title = "字典类型", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody BsSysDictType dict)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict)))
+        {
+            return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+        dict.setCreateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        dict.setCreateTime(DateUtils.getNowTime());
+        dict.setUpdateTime(DateUtils.getNowTime());
+        return toAjax(dictTypeService.insertDictType(dict));
+    }
+
+    /**
+     * 修改字典类型
+     */
+    @ApiOperation("修改字典类型")
+    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
+    @Log(title = "字典类型", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody BsSysDictType dict)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict)))
+        {
+            return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+        dict.setUpdateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        dict.setUpdateTime(DateUtils.getNowTime());
+        return toAjax(dictTypeService.updateDictType(dict));
+    }
+
+    /**
+     * 删除字典类型
+     */
+    @ApiOperation("删除字典类型")
+    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
+    @Log(title = "字典类型", businessType = BusinessType.DELETE)
+    @PostMapping("/delete/{dictIds}")
+    public AjaxResult remove(@PathVariable Long[] dictIds)
+    {
+        return toAjax(dictTypeService.deleteDictTypeByIds(dictIds));
+    }
+
+    /**
+     * 清空缓存
+     */
+
+    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
+    @Log(title = "字典类型", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/clearCache")
+    public AjaxResult clearCache()
+    {
+        dictTypeService.clearCache();
+        return AjaxResult.success();
+    }
+
+    /**
+     * 获取字典选择框列表
+     */
+    /*@ApiOperation("获取字典选择框列表")
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect()
+    {
+        List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
+        return AjaxResult.success(dictTypes);
+    }*/
+}

+ 139 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysLoginController.java

@@ -0,0 +1,139 @@
+package com.zhongzheng.controller.system;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import com.zhongzheng.common.constant.Constants;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.domain.entity.SysUser;
+import com.zhongzheng.common.core.domain.model.LoginBody;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.ToolsUtils;
+import com.zhongzheng.framework.web.service.*;
+import com.zhongzheng.modules.bs.company.entity.ClientBsLoginUser;
+import com.zhongzheng.modules.bs.system.domain.BsSysMenu;
+import com.zhongzheng.modules.bs.system.domain.BsSysUser;
+import com.zhongzheng.modules.bs.system.service.IBsSysMenuService;
+import com.zhongzheng.modules.bs.system.service.IBsSysUserService;
+import com.zhongzheng.modules.goods.bo.OldTenantLoginBo;
+import com.zhongzheng.modules.system.service.ISysTenantService;
+import com.zhongzheng.modules.system.vo.SysTenantVo;
+import com.zhongzheng.modules.user.bo.UserBusinessLoginBo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * 登录验证
+ *
+ * @author zhongzheng
+ */
+@Api(tags ="登录用户操作管理")
+@ApiSupport(order = 2)
+@RestController
+@RequestMapping("/bs")
+public class BsSysLoginController
+{
+    @Autowired
+    private BsSysLoginService loginService;
+
+    @Autowired
+    private IBsSysMenuService menuService;
+
+    @Autowired
+    private SysPermissionService permissionService;
+
+    @Autowired
+    private BsTokenService tokenService;
+
+    @Autowired
+    private ISysTenantService iSysTenantService;
+    @Autowired
+    private IBsSysUserService iSysUserService;
+    /**
+     * 登录方法
+     *
+     * @param loginBody 登录信息
+     * @return 结果
+     */
+    @ApiOperation("业务系统获取登录token")
+    @GetMapping("/businessToken")
+    public AjaxResult businessToken(UserBusinessLoginBo loginBody)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        // 生成令牌
+        String token = loginService.businessLogin(loginBody);
+        ajax.put(Constants.TOKEN, token);
+        return ajax;
+    }
+
+    /**
+     * 登录方法
+     *
+     * @param loginBody 登录信息
+     * @return 结果
+     */
+    @ApiOperation("登录")
+    @PostMapping("/login")
+    public AjaxResult login(@RequestBody LoginBody loginBody)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        // 生成令牌
+        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
+                loginBody.getUuid(),loginBody.getSmsCode(),loginBody.getPhonenumber());
+        ajax.put(Constants.TOKEN, token);
+        return ajax;
+    }
+
+    /**
+     * 获取用户信息
+     *
+     * @return 用户信息
+     */
+    @ApiOperation("登录用户信息")
+    @GetMapping("/getInfo")
+    public AjaxResult getInfo()
+    {
+        ClientBsLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        BsSysUser user = iSysUserService.getOne(new LambdaQueryWrapper<BsSysUser>()
+                .eq(BsSysUser::getUserId, loginUser.getUser().getUserId()).last("limit 1"));
+        // 角色集合
+        SysUser bean = BeanUtil.toBean(user, SysUser.class);
+        Set<String> roles = permissionService.getRolePermission(bean);
+        // 权限集合
+        Set<String> permissions = permissionService.getMenuPermission(bean);
+        String tenantId = ServletUtils.getRequest().getHeader("TenantId");
+        SysTenantVo sysTenantVo = iSysTenantService.queryById(Long.parseLong(tenantId));
+        Map<String,Object> map = new HashMap<>();
+        map.put("user", user);
+        map.put("roles", roles);
+        map.put("permissions", permissions);
+        map.put("tenant", sysTenantVo);
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 获取路由信息
+     *
+     * @return 路由信息
+     */
+    @ApiOperation("路由菜单信息")
+    @GetMapping("/getRouters")
+    public AjaxResult getRouters()
+    {
+        ClientBsLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        // 用户信息
+        BsSysUser user = loginUser.getUser();
+        List<BsSysMenu> menus = menuService.selectMenuTreeByUserId(user.getUserId());
+        return AjaxResult.success(menuService.buildMenus(menus));
+    }
+
+}

+ 174 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysMenuController.java

@@ -0,0 +1,174 @@
+package com.zhongzheng.controller.system;
+
+import cn.hutool.core.util.StrUtil;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.constant.Constants;
+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.SysMenu;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.BsTokenService;
+import com.zhongzheng.modules.bs.company.entity.ClientBsLoginUser;
+import com.zhongzheng.modules.bs.system.domain.BsSysMenu;
+import com.zhongzheng.modules.bs.system.service.IBsSysMenuService;
+import com.zhongzheng.modules.system.service.ISysMenuService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 菜单信息
+ *
+ * @author zhongzheng
+ */
+@Api(tags ="菜单管理")
+@RestController
+@RequestMapping("/bs/system/menu")
+public class BsSysMenuController extends BaseController
+{
+    @Autowired
+    private IBsSysMenuService menuService;
+
+    @Autowired
+    private BsTokenService bsTokenService;
+
+    /**
+     * 获取菜单列表
+     */
+    @ApiOperation("获取菜单列表")
+    @PreAuthorize("@ss.hasPermi('system:menu:list')")
+    @GetMapping("/list")
+    public AjaxResult list(BsSysMenu menu)
+    {
+        ClientBsLoginUser loginUser = bsTokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUser().getUserId();
+        List<BsSysMenu> menus = menuService.selectMenuList(menu, userId);
+        return AjaxResult.success(menus);
+    }
+
+    /**
+     * 根据菜单编号获取详细信息
+     */
+    @ApiOperation("根据菜单编号获取详细信息")
+    @PreAuthorize("@ss.hasPermi('system:menu:query')")
+    @GetMapping(value = "/{menuId}")
+    public AjaxResult getInfo(@PathVariable Long menuId)
+    {
+        BsSysMenu sysMenu = menuService.selectMenuById(menuId);
+        sysMenu.setTenantId(null);
+        return AjaxResult.success(sysMenu);
+    }
+
+    /**
+     * 获取菜单下拉树列表
+     */
+    @ApiOperation("获取菜单下拉树列表")
+    @ApiOperationSupport(includeParameters = {})
+    @GetMapping("/treeselect")
+    public AjaxResult treeselect(BsSysMenu menu)
+    {
+        ClientBsLoginUser loginUser = bsTokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUser().getUserId();
+        List<BsSysMenu> menus = menuService.selectMenuList(menu, userId);
+        return AjaxResult.success(menuService.buildMenuTreeSelect(menus));
+    }
+
+    /**
+     * 加载对应角色菜单列表树
+     */
+    @ApiOperation("加载对应角色菜单列表树")
+    @GetMapping(value = "/roleMenuTreeselect/{roleId}")
+    public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId)
+    {
+        ClientBsLoginUser loginUser = bsTokenService.getLoginUser(ServletUtils.getRequest());
+        List<BsSysMenu> menus = menuService.selectMenuList(loginUser.getUser().getUserId());
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
+        ajax.put("menus", menuService.buildMenuTreeSelect(menus));
+        return ajax;
+    }
+
+    /**
+     * 新增菜单
+     */
+    @ApiOperation("新增菜单")
+    @ApiOperationSupport(ignoreParameters = {"children","createBy","createTime","menuId","params"
+            ,"parentName","remark","updateBy","updateTime"})
+    @PreAuthorize("@ss.hasPermi('system:menu:add')")
+    @Log(title = "菜单管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody BsSysMenu menu)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
+        {
+            return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame())
+                && !StrUtil.startWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS))
+        {
+            return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        menu.setCreateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        menu.setCreateTime(DateUtils.getNowTime());
+        menu.setUpdateTime(DateUtils.getNowTime());
+        return toAjax(menuService.insertMenu(menu));
+    }
+
+    /**
+     * 修改菜单
+     */
+    @ApiOperation("修改菜单")
+    @ApiOperationSupport(ignoreParameters = {"children","createBy","createTime","params"
+            ,"parentName","remark","updateBy","updateTime"})
+    @PreAuthorize("@ss.hasPermi('system:menu:edit')")
+    @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody BsSysMenu menu)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
+        {
+            return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame())
+                && !StrUtil.startWithAny(menu.getPath(), Constants.HTTP, Constants.HTTPS))
+        {
+            return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        else if (menu.getMenuId().equals(menu.getParentId()))
+        {
+            return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");
+        }
+        menu.setUpdateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        return toAjax(menuService.updateMenu(menu));
+    }
+
+    /**
+     * 删除菜单
+     */
+    @ApiOperation("删除菜单")
+    @PreAuthorize("@ss.hasPermi('system:menu:remove')")
+    @Log(title = "菜单管理", businessType = BusinessType.DELETE)
+    @PostMapping("/delete/{menuId}")
+    public AjaxResult remove(@PathVariable Long menuId)
+    {
+        if (menuService.hasChildByMenuId(menuId))
+        {
+            return AjaxResult.error("存在子菜单,不允许删除");
+        }
+        if (menuService.checkMenuExistRole(menuId))
+        {
+            return AjaxResult.error("菜单已分配,不允许删除");
+        }
+        return toAjax(menuService.deleteMenuById(menuId));
+    }
+}

+ 88 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysNoticeController.java

@@ -0,0 +1,88 @@
+package com.zhongzheng.controller.system;
+
+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.SecurityUtils;
+import com.zhongzheng.modules.bs.system.domain.BsSysNotice;
+import com.zhongzheng.modules.bs.system.service.IBsSysNoticeService;
+import com.zhongzheng.modules.system.domain.SysNotice;
+import com.zhongzheng.modules.system.service.ISysNoticeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 公告 信息操作处理
+ *
+ * @author zhongzheng
+ */
+@RestController
+@RequestMapping("/bs/system/notice")
+public class BsSysNoticeController extends BaseController
+{
+    @Autowired
+    private IBsSysNoticeService noticeService;
+
+    /**
+     * 获取通知公告列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsSysNotice notice)
+    {
+        startPage();
+        List<BsSysNotice> list = noticeService.selectNoticeList(notice);
+        return getDataTable(list);
+    }
+
+    /**
+     * 根据通知公告编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:query')")
+    @GetMapping(value = "/{noticeId}")
+    public AjaxResult getInfo(@PathVariable Long noticeId)
+    {
+        return AjaxResult.success(noticeService.selectNoticeById(noticeId));
+    }
+
+    /**
+     * 新增通知公告
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:add')")
+    @Log(title = "通知公告", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody BsSysNotice notice)
+    {
+        notice.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(noticeService.insertNotice(notice));
+    }
+
+    /**
+     * 修改通知公告
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:edit')")
+    @Log(title = "通知公告", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody BsSysNotice notice)
+    {
+        notice.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(noticeService.updateNotice(notice));
+    }
+
+    /**
+     * 删除通知公告
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:remove')")
+    @Log(title = "通知公告", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{noticeIds}")
+    public AjaxResult remove(@PathVariable Long[] noticeIds)
+    {
+        return toAjax(noticeService.deleteNoticeByIds(noticeIds));
+    }
+}

+ 133 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysPostController.java

@@ -0,0 +1,133 @@
+package com.zhongzheng.controller.system;
+
+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.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.bs.system.domain.BsSysPost;
+import com.zhongzheng.modules.bs.system.service.IBsSysPostService;
+import com.zhongzheng.modules.system.domain.SysPost;
+import com.zhongzheng.modules.system.service.ISysPostService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 岗位信息操作处理
+ *
+ * @author zhongzheng
+ */
+@Api(tags ="岗位信息管理")
+@RestController
+@RequestMapping("/bs/system/post")
+public class BsSysPostController extends BaseController
+{
+    @Autowired
+    private IBsSysPostService postService;
+
+    /**
+     * 获取岗位列表
+     */
+    @ApiOperation("岗位列表")
+    @PreAuthorize("@ss.hasPermi('system:post:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsSysPost post)
+    {
+        startPage();
+        List<BsSysPost> list = postService.selectPostList(post);
+        return getDataTable(list);
+    }
+
+    @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:post:export')")
+    @GetMapping("/export")
+    public AjaxResult export(BsSysPost post)
+    {
+        List<BsSysPost> list = postService.selectPostList(post);
+        ExcelUtil<BsSysPost> util = new ExcelUtil<BsSysPost>(BsSysPost.class);
+        return util.exportExcel(list, "岗位数据");
+    }
+
+    /**
+     * 根据岗位编号获取详细信息
+     */
+    @ApiOperation("根据岗位编号获取详细信息")
+    @PreAuthorize("@ss.hasPermi('system:post:query')")
+    @GetMapping(value = "/{postId}")
+    public AjaxResult getInfo(@PathVariable Long postId)
+    {
+        return AjaxResult.success(postService.selectPostById(postId));
+    }
+
+    /**
+     * 新增岗位
+     */
+    @ApiOperation("新增岗位")
+    @PreAuthorize("@ss.hasPermi('system:post:add')")
+    @Log(title = "岗位管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody BsSysPost post)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
+        {
+            return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
+        {
+            return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+        }
+        post.setCreateBy(SecurityUtils.getUsername());
+        return toAjax(postService.insertPost(post));
+    }
+
+    /**
+     * 修改岗位
+     */
+    @ApiOperation("修改岗位")
+    @PreAuthorize("@ss.hasPermi('system:post:edit')")
+    @Log(title = "岗位管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody BsSysPost post)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
+        {
+            return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
+        {
+            return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+        }
+        post.setUpdateBy(SecurityUtils.getUsername());
+        return toAjax(postService.updatePost(post));
+    }
+
+    /**
+     * 删除岗位
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:remove')")
+    @Log(title = "岗位管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{postIds}")
+    public AjaxResult remove(@PathVariable Long[] postIds)
+    {
+        return toAjax(postService.deletePostByIds(postIds));
+    }
+
+    /**
+     * 获取岗位选择框列表
+     */
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect()
+    {
+        List<BsSysPost> posts = postService.selectPostAll();
+        return AjaxResult.success(posts);
+    }
+}

+ 141 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysProfileController.java

@@ -0,0 +1,141 @@
+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.model.LoginUser;
+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.modules.bs.system.domain.BsSysUser;
+import com.zhongzheng.modules.bs.system.service.IBsSysUserService;
+import com.zhongzheng.modules.system.service.ISysUserService;
+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("/bs/system/user/profile")
+public class BsSysProfileController extends BaseController
+{
+    @Autowired
+    private IBsSysUserService userService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    /**
+     * 个人信息
+     */
+    @GetMapping
+    public AjaxResult profile()
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        SysUser 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 BsSysUser 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)
+        {
+            LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+            // 更新缓存用户信息
+            loginUser.getUser().setNickName(user.getNickName());
+            loginUser.getUser().setPhonenumber(user.getPhonenumber());
+            loginUser.getUser().setEmail(user.getEmail());
+            loginUser.getUser().setSex(user.getSex());
+            tokenService.setLoginUser(loginUser);
+            return AjaxResult.success();
+        }
+        return AjaxResult.error("修改个人信息异常,请联系管理员");
+    }
+
+    /**
+     * 重置密码
+     */
+    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/updatePwd")
+    public AjaxResult updatePwd(String oldPassword, String newPassword)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        String userName = loginUser.getUsername();
+        String password = loginUser.getPassword();
+        if (!SecurityUtils.matchesPassword(oldPassword, password))
+        {
+            return AjaxResult.error("修改密码失败,旧密码错误");
+        }
+        if(!ToolsUtils.verifEasyPwd(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));
+            tokenService.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())
+        {
+            LoginUser loginUser = tokenService.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);
+                tokenService.setLoginUser(loginUser);
+                return ajax;
+            }
+        }
+        return AjaxResult.error("上传图片异常,请联系管理员");
+    }
+}

+ 184 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysRoleController.java

@@ -0,0 +1,184 @@
+package com.zhongzheng.controller.system;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+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.SysRole;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.common.utils.SecurityUtils;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.framework.web.service.BsTokenService;
+import com.zhongzheng.framework.web.service.SysPermissionService;
+import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.modules.bs.company.entity.ClientBsLoginUser;
+import com.zhongzheng.modules.bs.system.domain.BsSysRole;
+import com.zhongzheng.modules.bs.system.service.IBsSysRoleService;
+import com.zhongzheng.modules.bs.system.service.IBsSysUserService;
+import com.zhongzheng.modules.system.service.ISysRoleService;
+import com.zhongzheng.modules.system.service.ISysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 角色信息
+ *
+ * @author zhongzheng
+ */
+@Api(tags = "角色信息管理")
+@RestController
+@RequestMapping("/bs/system/role")
+public class BsSysRoleController extends BaseController {
+    @Autowired
+    private IBsSysRoleService roleService;
+
+    @Autowired
+    private BsTokenService bsTokenService;
+
+    @Autowired
+    private SysPermissionService permissionService;
+
+    @Autowired
+    private IBsSysUserService userService;
+
+    @ApiOperation("角色列表")
+    @PreAuthorize("@ss.hasPermi('system:role:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsSysRole role) {
+        startPage();
+        List<BsSysRole> list = roleService.selectRoleList(role);
+        return getDataTable(list);
+    }
+
+    @Log(title = "角色管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:role:export')")
+    @GetMapping("/export")
+    public AjaxResult export(BsSysRole role) {
+        List<BsSysRole> list = roleService.selectRoleList(role);
+        ExcelUtil<BsSysRole> util = new ExcelUtil<BsSysRole>(BsSysRole.class);
+        return util.exportExcel(list, "角色数据");
+    }
+
+    /**
+     * 根据角色编号获取详细信息
+     */
+    @ApiOperation("根据角色编号获取详细信息")
+    @PreAuthorize("@ss.hasPermi('system:role:query')")
+    @GetMapping(value = "/getInfo")
+    public AjaxResult getInfo( Long roleId) {
+        return AjaxResult.success(roleService.selectRoleById(roleId));
+    }
+
+    /**
+     * 新增角色
+     */
+    @ApiOperation("新增角色")
+    @ApiOperationSupport(ignoreParameters = {"createBy", "createTime", "dataScope", "delFlag", "updateTime"
+            , "flag", "params", "roleId", "updateBy", "deptIds", "deptCheckStrictly", "menuCheckStrictly"})
+    @PreAuthorize("@ss.hasPermi('system:role:add')")
+    @Log(title = "角色管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody BsSysRole role) {
+        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) {
+            return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) {
+            return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setCreateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        role.setCreateTime(DateUtils.getNowTime());
+        role.setUpdateTime(DateUtils.getNowTime());
+        return toAjax(roleService.insertRole(role));
+
+    }
+
+    /**
+     * 修改保存角色
+     */
+    @ApiOperation("修改保存角色")
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody BsSysRole role) {
+        roleService.checkRoleAllowed(role);
+        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) {
+            return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) {
+            return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setUpdateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        role.setUpdateTime(DateUtils.getNowTime());
+        if (roleService.updateRole(role) > 0) {
+            // 更新缓存用户权限
+            ClientBsLoginUser loginUser = bsTokenService.getLoginUser(ServletUtils.getRequest());
+            if (Validator.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) {
+                loginUser.setPermissions(permissionService.getBsMenuPermission(loginUser.getUser()));
+                loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
+                bsTokenService.setLoginUser(loginUser);
+            }
+            return AjaxResult.success();
+        }
+        return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
+    }
+
+    /**
+     * 修改保存数据权限
+     */
+    @ApiOperation("修改保存数据权限")
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/dataScope")
+    public AjaxResult dataScope(@RequestBody BsSysRole role) {
+        roleService.checkRoleAllowed(role);
+        role.setUpdateTime(DateUtils.getNowTime());
+        role.setCreateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        return toAjax(roleService.authDataScope(role));
+    }
+
+    /**
+     * 状态修改
+     */
+    @ApiOperation("状态修改")
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/changeStatus")
+    public AjaxResult changeStatus(@RequestBody BsSysRole role) {
+        roleService.checkRoleAllowed(role);
+        role.setUpdateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        role.setUpdateTime(DateUtils.getNowTime());
+        return toAjax(roleService.updateRoleStatus(role));
+    }
+
+    /**
+     * 删除角色
+     */
+    @ApiOperation("删除角色")
+    @PreAuthorize("@ss.hasPermi('system:role:remove')")
+    @Log(title = "角色管理", businessType = BusinessType.DELETE)
+    @PostMapping("/delete/ids")
+    public AjaxResult remove( Long[] roleIds) {
+        return toAjax(roleService.deleteRoleByIds(roleIds));
+    }
+
+    /**
+     * 获取角色选择框列表
+     */
+    @ApiOperation("获取角色选择框列表")
+    @PreAuthorize("@ss.hasPermi('system:role:query')")
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect() {
+        return AjaxResult.success(roleService.selectRoleAll());
+    }
+}

+ 241 - 0
zhongzheng-admin-business/src/main/java/com/zhongzheng/controller/system/BsSysUserController.java

@@ -0,0 +1,241 @@
+package com.zhongzheng.controller.system;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.zhongzheng.common.annotation.Log;
+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.SysRole;
+import com.zhongzheng.common.core.domain.entity.SysUser;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+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.common.utils.ToolsUtils;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.framework.web.service.BsTokenService;
+import com.zhongzheng.framework.web.service.TokenService;
+import com.zhongzheng.modules.bs.company.entity.ClientBsLoginUser;
+import com.zhongzheng.modules.bs.system.domain.BsSysRole;
+import com.zhongzheng.modules.bs.system.domain.BsSysUser;
+import com.zhongzheng.modules.bs.system.service.IBsSysPostService;
+import com.zhongzheng.modules.bs.system.service.IBsSysRoleService;
+import com.zhongzheng.modules.bs.system.service.IBsSysUserService;
+import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
+import com.zhongzheng.modules.system.service.ISysPostService;
+import com.zhongzheng.modules.system.service.ISysRoleService;
+import com.zhongzheng.modules.system.service.ISysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.HttpRequestHandler;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 用户信息
+ *
+ * @author zhongzheng
+ */
+@Api(tags ="用户信息管理")
+@RestController
+@RequestMapping("/bs/system/user")
+public class BsSysUserController extends BaseController
+{
+    @Autowired
+    private IBsSysUserService userService;
+
+    @Autowired
+    private IBsSysRoleService roleService;
+
+    @Autowired
+    private BsTokenService bsTokenService;
+
+    @Resource
+    private AuthenticationManager authenticationManager;
+
+    /**
+     * 获取用户列表
+     */
+    @ApiOperation("获取用户列表")
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(BsSysUser user)
+    {
+        startPage();
+        List<BsSysUser> list = userService.selectUserList(user);
+        return getDataTable(list);
+    }
+
+    /**
+     * 根据用户编号获取详细信息
+     */
+    @ApiOperation("获取用户详细")
+    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @GetMapping(value = {  "/getInfo" })
+    public AjaxResult getInfo( Long userId)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        List<BsSysRole> roles = roleService.selectRoleAll();
+        BsSysUser sysUser = userService.selectUserById(userId);
+        if (!sysUser.isAdmin()){
+           roles=roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList());
+        }
+        if (Validator.isNotNull(userId))
+        {
+            BsSysUser bsSysUser = userService.selectUserById(userId);
+            bsSysUser.setRoles(roles);
+            ajax.put(AjaxResult.DATA_TAG, bsSysUser);
+            ajax.put("roleIds", roleService.selectRoleListByUserId(userId));
+        }
+        return ajax;
+    }
+
+    /**
+     * 新增用户
+     */
+    @ApiOperation("新增用户")
+    @ApiOperationSupport(ignoreParameters = {"id","orderDate.id"})
+    @PreAuthorize("@ss.hasPermi('system:user:add')")
+    @Log(title = "用户管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody BsSysUser user)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
+        {
+            return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        else if (Validator.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+        {
+            return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        else if (Validator.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+        {
+            return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        user.setCreateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        if(!ToolsUtils.verifEasyPwd(user.getPassword())){
+            throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
+        }
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setCreateTime(DateUtils.getNowTime());
+        user.setUpdateTime(DateUtils.getNowTime());
+        return toAjax(userService.insertUser(user));
+    }
+
+    /**
+     * 修改用户
+     */
+    @ApiOperation("更新用户")
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult edit(@Validated @RequestBody SysUserEditBo bo)
+    {
+        if (Validator.isNotEmpty(bo.getStatus())&&bo.getStatus().equals(-1)){
+            BsSysUser user = BeanUtil.toBean(bo, BsSysUser.class);
+            int result = userService.updateUser(user);
+            return toAjax(result);
+        }
+        BsSysUser user = BeanUtil.toBean(bo, BsSysUser.class);
+        userService.checkUserAllowed(user);
+        ClientBsLoginUser loginUser = bsTokenService.getLoginUser(ServletUtils.getRequest());
+        if(!loginUser.getUser().isAdmin()&&loginUser.getUser().getUserId()!=user.getUserId()){
+            return AjaxResult.error("您无权限修改本信息");
+        }
+
+        if (Validator.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        else if (Validator.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        if(Validator.isNotEmpty(user.getPassword())){
+            //重置密码
+            if(!loginUser.getUser().isAdmin()){
+                //普通用户需传入旧密码修改
+                // 旧密码用户验证
+                Authentication authentication = null;
+                try
+                {
+                    // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
+                    authentication = authenticationManager
+                            .authenticate(new UsernamePasswordAuthenticationToken(loginUser.getUser().getUserName(), bo.getOldPassword()));
+                }
+                catch (Exception e)
+                {
+                    return AjaxResult.error("旧密码错误");
+                }
+
+            }
+            if(!ToolsUtils.verifEasyPwd(user.getPassword())){
+                throw new CustomException("密码应由8-16位数字、大小写字母、符号组成");
+            }
+            user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+            user.setPwdTime(DateUtils.getNowTime());
+        }
+        user.setUpdateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        int result = userService.updateUser(user);
+        if(result>0){
+            BsSysUser bsSysUser = userService.selectUserByUserName(loginUser.getUser().getUserName());
+            //同个用户ID则更新用户信息,admin操作其他用户则不更新
+            if(bsSysUser.getUserId()==loginUser.getUser().getUserId()){
+                // 更新缓存用户
+                loginUser.setUser(bsSysUser);
+            }
+            bsTokenService.setLoginUser(loginUser);
+        }
+        return toAjax(result);
+    }
+
+    /**
+     * 状态修改
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/changeStatus")
+    public AjaxResult changeStatus(@RequestBody BsSysUser user)
+    {
+        userService.checkUserAllowed(user);
+        user.setUpdateBy(bsTokenService.getLoginUser(ServletUtils.getRequest()).getUsername());
+        user.setUpdateTime(DateUtils.getNowTime());
+        return toAjax(userService.updateUserStatus(user));
+    }
+
+
+//    @ApiOperation("检查密码修改时间")
+//    @PreAuthorize("@ss.hasPermi('system:user:list')")
+//    @GetMapping("/checkPwdTime")
+//    public AjaxResult<Boolean> checkPwdTime()
+//    {
+//        ClientBsLoginUser loginUser = bsTokenService.getLoginUser(ServletUtils.getRequest());
+//        BsSysUser user = userService.selectUserById(loginUser.getUser().getUserId());
+//        boolean needUpdate = false;
+//       if(Validator.isNotEmpty(user.getPwdTime())&&(DateUtils.getNowTime().longValue()-user.getPwdTime().longValue())>90*24*3600){
+//            needUpdate = true;
+//        }
+//        return AjaxResult.success(needUpdate);
+//    }
+}

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

@@ -123,6 +123,8 @@ liveGotoURL: http://
 
 enCodeVersion: trial
 
+tianchong: false
+
 oldStudySys:
     syncPath: http://gdxypx.xy.com/System/BussinessApi/PostUserStudyRecords
     sharePath: http://192.168.1.210:8086/witsystem/dataapi/SaleOrder

+ 1 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -15,6 +15,7 @@ import com.zhongzheng.modules.goods.bo.*;
 import com.zhongzheng.modules.goods.service.IGoodsAttachedService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.*;
+import com.zhongzheng.modules.order.vo.OrderBusinessConfigGoodsVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;

+ 0 - 1
zhongzheng-common/pom.xml

@@ -134,7 +134,6 @@
                 <artifactId>poi-ooxml</artifactId>
                <version>4.1.0</version>
             </dependency>
-
         <dependency>
             <groupId>org.apache.poi</groupId>
             <artifactId>poi</artifactId>

+ 1 - 6
zhongzheng-common/src/main/java/com/zhongzheng/common/core/bo/SysUserEditBo.java

@@ -30,10 +30,6 @@ public class SysUserEditBo
     @ApiModelProperty("用户编号")
     private Long userId;
 
-    /** 部门ID */
-    @Excel(name = "部门编号", type = Type.IMPORT)
-    @ApiModelProperty("部门编号")
-    private Long deptId;
 
     /** 用户账号 */
     @NotBlank(message = "用户账号不能为空")
@@ -85,9 +81,8 @@ public class SysUserEditBo
     private String status;
     @ApiModelProperty("角色组")
     private Long[] roleIds;
-    @ApiModelProperty("岗位组")
-    private Long[] postIds;
     /** 身份证号 */
     @ApiModelProperty("身份证号")
     private String idCard;
+    private Long companyId;
 }

+ 11 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/SecurityUtils.java

@@ -76,6 +76,17 @@ public class SecurityUtils
             throw new CustomException("获取用户信息异常", HttpStatus.HTTP_UNAUTHORIZED);
         }
     }
+//    public static BsSysUser getBsLoginUser()
+//    {
+//        try
+//        {
+//            return (BsSysUser) getAuthentication().getPrincipal();
+//        }
+//        catch (Exception e)
+//        {
+//            throw new CustomException("获取用户信息异常", HttpStatus.HTTP_UNAUTHORIZED);
+//        }
+//    }
 
     /**
      * 获取Authentication

+ 5 - 3
zhongzheng-framework/src/main/java/com/zhongzheng/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java

@@ -16,16 +16,18 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
 	@Value("${mybatis-plus.tenant.enabled-tenant:true}")
 	private boolean enabledTenant;
 
+	@Value("${tianchong:true}")
+	private boolean tianchong;
 	@Override
 	public void insertFill(MetaObject metaObject) {
 		//根据属性名字设置要填充的值
 		if (metaObject.hasGetter("createTime")) {
-			if (metaObject.getValue("createTime") == null && enabledTenant) {
+			if (metaObject.getValue("createTime") == null && enabledTenant && tianchong) {
 				this.setFieldValByName("createTime", DateUtils.getNowDate(), metaObject);
 			}
 		}
 		if (metaObject.hasGetter("createBy")) {
-			if (metaObject.getValue("createBy") == null) {
+			if (metaObject.getValue("createBy") == null && tianchong) {
 				this.setFieldValByName("createBy", SecurityUtils.getUsername(), metaObject);
 			}
 		}
@@ -34,7 +36,7 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
 	@Override
 	public void updateFill(MetaObject metaObject) {
 		if (metaObject.hasGetter("updateBy")) {
-			if (metaObject.getValue("updateBy" ) == null) {
+			if (metaObject.getValue("updateBy" ) == null && tianchong) {
 				this.setFieldValByName("updateBy", SecurityUtils.getUsername(), metaObject);
 			}
 		}

+ 1 - 5
zhongzheng-framework/src/main/java/com/zhongzheng/framework/security/filter/JwtAuthenticationTokenFilter.java

@@ -1,14 +1,10 @@
 package com.zhongzheng.framework.security.filter;
 
 import cn.hutool.core.lang.Validator;
-import cn.hutool.http.HttpStatus;
-import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.core.domain.model.TopLoginUser;
-import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.framework.web.service.BsTokenService;
 import com.zhongzheng.framework.web.service.TopTokenService;
-import com.zhongzheng.modules.company.entity.ClientBsLoginUser;
-import com.zhongzheng.modules.user.entity.ClientLoginSeller;
+import com.zhongzheng.modules.bs.company.entity.ClientBsLoginUser;
 import com.zhongzheng.modules.user.entity.ClientLoginUser;
 import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.utils.SecurityUtils;

+ 198 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/BsSysLoginService.java

@@ -0,0 +1,198 @@
+package com.zhongzheng.framework.web.service;
+
+import cn.hutool.core.lang.Validator;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.zhongzheng.common.constant.Constants;
+import com.zhongzheng.common.core.domain.entity.SysRole;
+import com.zhongzheng.common.core.domain.entity.SysUser;
+import com.zhongzheng.common.core.domain.model.LoginUser;
+import com.zhongzheng.common.core.redis.RedisCache;
+import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.exception.user.CaptchaException;
+import com.zhongzheng.common.exception.user.CaptchaExpireException;
+import com.zhongzheng.common.exception.user.UserPasswordNotMatchException;
+import com.zhongzheng.common.utils.*;
+import com.zhongzheng.common.utils.http.HttpUtils;
+import com.zhongzheng.framework.manager.AsyncManager;
+import com.zhongzheng.framework.manager.factory.AsyncFactory;
+import com.zhongzheng.modules.bs.company.entity.ClientBsLoginUser;
+import com.zhongzheng.modules.bs.system.domain.BsSysUser;
+import com.zhongzheng.modules.bs.system.service.IBsSysConfigService;
+import com.zhongzheng.modules.bs.system.service.IBsSysRoleService;
+import com.zhongzheng.modules.bs.system.service.IBsSysUserRoleService;
+import com.zhongzheng.modules.bs.system.service.IBsSysUserService;
+import com.zhongzheng.modules.distribution.domain.DistributionSeller;
+import com.zhongzheng.modules.distribution.service.IDistributionSellerService;
+import com.zhongzheng.modules.goods.bo.OldTenantLoginBo;
+import com.zhongzheng.modules.system.domain.SysUserRole;
+import com.zhongzheng.modules.system.service.ISysConfigService;
+import com.zhongzheng.modules.system.service.ISysRoleService;
+import com.zhongzheng.modules.system.service.ISysUserRoleService;
+import com.zhongzheng.modules.system.service.ISysUserService;
+import com.zhongzheng.modules.user.bo.UserBusinessLoginBo;
+import com.zhongzheng.modules.user.service.IUserLoginErrorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 登录校验方法
+ *
+ * @author zhongzheng
+ */
+@Component
+public class BsSysLoginService
+{
+    @Autowired
+    private BsTokenService tokenService;
+
+    @Resource
+    private AuthenticationManager authenticationManager;
+
+    @Autowired
+    private RedisCache redisCache;
+
+    @Autowired
+    private IBsSysUserService iSysUserService;
+
+    @Autowired
+    private IBsSysConfigService configService;
+
+
+    /**
+     * 登录验证
+     *
+     * @param username 用户名
+     * @param password 密码
+     * @param code 验证码
+     * @param uuid 唯一标识
+     * @return 结果
+     */
+    public String login(String username, String password, String code, String uuid,String smsCode,String tel)
+    {
+        String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
+        String captcha = redisCache.getCacheObject(verifyKey);
+        redisCache.deleteObject(verifyKey);
+        if (captcha == null)
+        {
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")));
+            throw new CaptchaExpireException();
+        }
+        if (!code.equalsIgnoreCase(captcha))
+        {
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
+            throw new CaptchaException();
+        }
+        // 用户验证
+        Authentication authentication = null;
+        try
+        {
+            String rsaPrivate = null;
+           try {
+                InputStream certStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("config/pri.key");
+                rsaPrivate = AES.getStringByInputStream_1(certStream);
+                certStream.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+
+            }
+            // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername
+            if(password.length()>20){
+                password = AES.decrypt(password,rsaPrivate);
+            }
+            System.out.println(username);
+            System.out.println(password);
+            authentication = authenticationManager
+                    .authenticate(new UsernamePasswordAuthenticationToken(username, password));
+        }
+        catch (Exception e)
+        {
+            if (e instanceof BadCredentialsException)
+            {
+                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+                throw new UserPasswordNotMatchException();
+            }
+            else
+            {
+                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()));
+                throw new CustomException(e.getMessage());
+            }
+        }
+        AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
+        ClientBsLoginUser loginUser = (ClientBsLoginUser) authentication.getPrincipal();
+        BsSysUser user = iSysUserService.updateLoginTimeIp(loginUser.getUser().getUserId());
+        String dualAuth = configService.selectConfigByKey("login.dual.auth");
+        if(Validator.isNotEmpty(dualAuth)&&dualAuth.equals("1")){
+            if(Validator.isEmpty(tel)){
+                throw new CustomException("手机号码不能为空");
+            }
+            String key = Constants.LOGIN_SMS + tel;
+            String localSmsCode =  redisCache.getCacheObject(key);
+            if(smsCode==null){
+                throw new CustomException("验证码不能为空");
+            }
+            if(!localSmsCode.equals(smsCode)){
+                throw new CustomException("验证码错误");
+            }
+            if(!tel.equals(user.getPhonenumber())){
+                throw new CustomException("手机号码和登录账号不匹配");
+            }
+        }
+        loginUser.setUser(user);
+        // 生成token
+        return tokenService.createToken(loginUser);
+    }
+
+    public String businessLogin(UserBusinessLoginBo loginBody)
+    {
+        String password;
+        if(Validator.isEmpty(loginBody.getPwd())){
+            throw new CustomException("密码不能为空");
+        }
+        try
+        {
+        String rsaPrivate = null;
+        try {
+            InputStream certStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("config/pri.key");
+            rsaPrivate = AES.getStringByInputStream_1(certStream);
+            certStream.close();
+        } catch (Exception e) {
+            throw new CustomException("参数错误"+e.getMessage());
+        }
+            password = AES.decrypt(loginBody.getPwd(),rsaPrivate);
+            String[] param = password.split("#");
+            if(param.length!=2||!"test".equals(param[0])){
+                throw new CustomException("参数内容非法");
+            }
+            Long nowTime = DateUtils.getNowTime();
+            Long paramTime = Long.valueOf(param[1]);
+            if(Validator.isEmpty(paramTime)){
+                throw new CustomException("参数内容错误");
+            }
+        }
+        catch (Exception e)
+        {
+            throw new CustomException(e.getMessage());
+        }
+        String username = "admin";
+        ClientBsLoginUser loginUser = new ClientBsLoginUser();
+        //普通系统用户
+        BsSysUser user = iSysUserService.selectUserByUserName(username);
+        user = iSysUserService.updateLoginTimeIp(user.getUserId());
+        loginUser.setUser(user);
+        // 生成token
+        return tokenService.createToken(loginUser);
+    }
+}

+ 566 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/BsSysTenantServiceImpl.java

@@ -0,0 +1,566 @@
+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.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;
+import com.zhongzheng.common.core.domain.entity.*;
+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.bs.system.bo.*;
+import com.zhongzheng.modules.bs.system.domain.*;
+import com.zhongzheng.modules.bs.system.mapper.BsSysRoleMenuMapper;
+import com.zhongzheng.modules.bs.system.mapper.BsSysTenantMapper;
+import com.zhongzheng.modules.bs.system.service.*;
+import com.zhongzheng.modules.bs.system.vo.BsSysTenantAccountVo;
+import com.zhongzheng.modules.bs.system.vo.BsSysTenantBankAccountVo;
+import com.zhongzheng.modules.bs.system.vo.BsSysTenantVo;
+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.Transactional;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 系统商户Service业务层处理
+ *
+ * @author hjl
+ * @date 2021-08-03
+ */
+@Service //指定数据源
+public class BsSysTenantServiceImpl extends ServiceImpl<BsSysTenantMapper, BsSysTenant> implements IBsSysTenantService {
+
+    @Autowired
+    private IBsSysUserService userService;
+
+    @Autowired
+    private IBsSysMenuService menuService;
+
+    @Autowired
+    private IBsSysRoleService roleService;
+
+    @Autowired
+    private BsSysRoleMenuMapper sysRoleMenuMapper;
+
+
+    @Autowired
+    private IBsSysDictDataService iSysDictDataService;
+
+    @Autowired
+    private IBsSysDictTypeService iSysDictTypeService;
+
+
+    @Override
+    public BsSysTenantVo queryById(Long tenantId){
+        BsSysTenant db = this.baseMapper.selectById(tenantId);
+        return BeanUtil.toBean(db, BsSysTenantVo.class);
+    }
+
+    @Override
+    public List<BsSysTenantVo> queryList(BsSysTenantQueryBo bo) {
+        LambdaQueryWrapper<BsSysTenant> lqw = Wrappers.lambdaQuery();
+        lqw.ne(BsSysTenant::getStatus, -1);
+        lqw.like(StrUtil.isNotBlank(bo.getTenantName()), BsSysTenant::getTenantName, bo.getTenantName());
+        lqw.eq(ObjectUtils.isNotNull(bo.getTenantid()),BsSysTenant::getTenantId, bo.getTenantid());
+        lqw.orderByDesc(BsSysTenant::getSort);
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<BsSysTenantVo> entity2Vo(Collection<BsSysTenant> collection) {
+        List<BsSysTenantVo> voList = collection.stream()
+                .map(any -> {
+                    BsSysTenantVo sysTenantVo = BeanUtil.toBean(any, BsSysTenantVo.class);
+                    if (StringUtils.isNotBlank(any.getAccountInformation())){
+                        String accountInformation = any.getAccountInformation();
+                        List<BsSysTenantAccountVo> accountVo = JSONArray.parseArray(accountInformation, BsSysTenantAccountVo.class);
+                        sysTenantVo.setAccountList(accountVo);
+                    }
+                    if (StringUtils.isNotBlank(any.getInvoiceInformation())){
+                        BsSysTopTenantInvoiceBo invoiceBo = JSONObject.parseObject(any.getInvoiceInformation(), BsSysTopTenantInvoiceBo.class);
+                        sysTenantVo.setInvoiceBo(invoiceBo);
+                    }
+                    return sysTenantVo;
+                })
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<BsSysTenant> page = (Page<BsSysTenant>)collection;
+            Page<BsSysTenantVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean insertByAddBo(BsSysTenantAddBo bo) {
+        return this.createTenant(bo);
+    }
+
+    @Override
+    public Boolean updateByEditBo(BsSysTenantEditBo bo) {
+        BsSysTenant update = BeanUtil.toBean(bo, BsSysTenant.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(BsSysTenant entity){
+        //TODO 做一些数据校验,如唯一约束
+        if(checkNameUnique(entity)){
+            throw new CustomException("公司名已存在");
+        }
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Long createTenantAdmin(BsSysTenantAdminBo bo) {
+        if(Validator.isEmpty(bo.getTenantName())){
+            throw new CustomException("没有企业名称");
+        }
+        //中正后台企业ID
+        Long tenantId = 867735392558919680L;
+        //设置新机构
+        BsSysTenant sysTenant = getById(tenantId);
+        sysTenant.setTenantName(bo.getTenantName());
+        sysTenant.setHostPc(bo.getHostPc());
+        sysTenant.setHostH5(bo.getHostH5());
+        sysTenant.setHostLive(bo.getHostLive());
+        sysTenant.setHostH5Seller(null);
+        sysTenant.setHostAdmin(null);
+        //生成tenantId
+        Long newTenantId = createTenantId();
+        sysTenant.setTenantId(newTenantId);
+        if (!save(sysTenant)){
+            throw new CustomException("创建企业失败");
+        }
+        //创建账号
+        BsSysUser admin = userService.selectUserByTenant("admin",tenantId);
+        admin.setTenantId(newTenantId);
+        admin.setUserId(null);
+        if(Validator.isNotEmpty(bo.getPassword())){
+            admin.setPassword(SecurityUtils.encryptPassword(bo.getPassword()));
+        }
+        if (!userService.save(admin)){
+            throw new CustomException("创建后台账号失败");
+        }
+        //创建菜单
+        List<BsSysMenu> list = menuService.listSysMenuByTenant(tenantId);
+        if (CollectionUtils.isEmpty(list)){
+            return newTenantId;
+        }
+        List<BsSysMenu> oldMenus = list.stream().map(item -> BeanUtil.toBean(item, BsSysMenu.class)).collect(Collectors.toList());
+        list.forEach(item -> {
+            item.setMenuId(null);
+            item.setTenantId(newTenantId);
+        });
+        if (!menuService.saveBatch(list)){
+            throw new CustomException("添加菜单失败");
+        }
+        //新菜单
+        List<BsSysMenu> newMenus = menuService.listSysMenuByTenant(newTenantId);
+        //匹配parent_id
+        for (BsSysMenu newMenu : newMenus) {
+            if (newMenu.getParentId() == 0){
+                continue;
+            }
+            List<BsSysMenu> collect = oldMenus.stream().filter(x -> x.getMenuName().equals(newMenu.getMenuName())
+                    && x.getCreateTime().equals(newMenu.getCreateTime()) && x.getOrderNum().equals(newMenu.getOrderNum())).collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(collect) || collect.size() > 1){
+                throw new CustomException("菜单匹配失败:"+newMenu.getMenuName());
+            }
+            BsSysMenu sysMenu = collect.stream().findFirst().orElse(null);
+            BsSysMenu parentMenu = oldMenus.stream().filter(x -> x.getMenuId().equals(sysMenu.getParentId())).findFirst().orElse(null);
+            List<BsSysMenu> collect2 = newMenus.stream().filter(x -> x.getMenuName().equals(parentMenu.getMenuName())
+                    && x.getCreateTime().equals(parentMenu.getCreateTime()) && x.getOrderNum().equals(parentMenu.getOrderNum())).collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(collect2) || collect2.size() > 1){
+                throw new CustomException("菜单匹配失败:"+newMenu.getMenuName());
+            }
+            newMenu.setParentId(collect2.get(0).getMenuId());
+        }
+        //修改父ID
+//        menuService.updateBatchById(newMenus);
+        newMenus.forEach(item -> {
+            menuService.updateParentById(item);
+        });
+
+        //新增分销角色
+        initRoles(newTenantId,tenantId);
+
+        //初始化配置和字典
+        initConfigAndDict(newTenantId,tenantId);
+        return newTenantId;
+
+    }
+
+    private Long createTenantId(){
+        String randomNumeric = RandomStringUtils.randomNumeric(15);
+        int count = count(new LambdaQueryWrapper<BsSysTenant>()
+                .eq(BsSysTenant::getTenantId, Long.valueOf(randomNumeric)));
+        if (count == 0){
+            return Long.valueOf(randomNumeric);
+        }else {
+            createTenantId();
+        }
+        return Long.valueOf(randomNumeric);
+    }
+
+    private boolean checkNameUnique(BsSysTenant entity) {
+        BsSysTenant info = getOne(new LambdaQueryWrapper<BsSysTenant>()
+                .eq(BsSysTenant::getTenantName,entity.getTenantName())
+                .last("limit 1"));
+        if (Validator.isNotNull(info)) {
+            return true;
+        }
+        return false;
+    }
+
+
+    public boolean createTenant(BsSysTenantAddBo bo){
+        BsSysTenant add = BeanUtil.toBean(bo, BsSysTenant.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        this.save(add);
+        //创建属于新公司的admin用户
+        Long tenantId = add.getTenantId();
+        ServletUtils.getRequestAttributes().getResponse().setHeader("TenantId",String.valueOf(tenantId));
+        BsSysUser user = new BsSysUser();
+        user.setUserName("admin");
+        user.setNickName(bo.getTenantName());
+        user.setCreateBy("SAAS-"+SecurityUtils.getUsername());
+        user.setPassword(SecurityUtils.encryptPassword(bo.getPassword()));
+        userService.insertUser(user);
+        return true;
+    }
+
+    @Override
+    public Long findTenantId(BsSysTenantQueryBo bo) {
+        return baseMapper.findTenantId(bo);
+    }
+
+    @Override
+    
+    public List<BsSysTenant> getListSysTenant() {
+        return list(new LambdaQueryWrapper<BsSysTenant>().eq(BsSysTenant::getStatus, 1));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void createTenantAdminOld(BsSysTenantAdminOldBo bo) {
+        if(Validator.isEmpty(bo.getTenantName())){
+            throw new CustomException("没有企业名称");
+        }
+        //中正后台企业ID
+        Long tenantId = 867735392558919680L;
+        //设置新机构
+        BsSysTenant sysTenant = getById(tenantId);
+        sysTenant.setTenantName(bo.getTenantName());
+        //生成tenantId
+//        Long newTenantId = createTenantId();
+        Long newTenantId = bo.getTenantId();
+        sysTenant.setTenantId(newTenantId);
+        sysTenant.setHostH5("");
+        sysTenant.setHostPc("");
+        sysTenant.setHostLive("");
+        sysTenant.setHostH5Seller("");
+        if (!save(sysTenant)){
+            throw new CustomException("创建企业失败");
+        }
+        //创建账号
+        BsSysUser admin = userService.selectUserByTenant("admin",tenantId);
+        admin.setTenantId(newTenantId);
+        admin.setUserId(null);
+
+        if (!userService.save(admin)){
+            throw new CustomException("创建后台账号失败");
+        }
+        //创建菜单
+        List<BsSysMenu> list = menuService.listSysMenuByTenant(tenantId);
+        if (CollectionUtils.isEmpty(list)){
+            return;
+        }
+        List<BsSysMenu> oldMenus = list.stream().map(item -> BeanUtil.toBean(item, BsSysMenu.class)).collect(Collectors.toList());
+        list.forEach(item -> {
+            item.setMenuId(null);
+            item.setTenantId(newTenantId);
+        });
+        if (!menuService.saveBatch(list)){
+            throw new CustomException("添加菜单失败");
+        }
+        //新菜单
+        List<BsSysMenu> newMenus = menuService.listSysMenuByTenant(newTenantId);
+        //匹配parent_id
+        for (BsSysMenu newMenu : newMenus) {
+            if (newMenu.getParentId() == 0){
+                continue;
+            }
+            List<BsSysMenu> collect = oldMenus.stream().filter(x -> x.getMenuName().equals(newMenu.getMenuName())
+                    && x.getCreateTime().equals(newMenu.getCreateTime()) && x.getOrderNum().equals(newMenu.getOrderNum())).collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(collect) || collect.size() > 1){
+                throw new CustomException("菜单匹配失败:"+newMenu.getMenuName());
+            }
+            BsSysMenu sysMenu = collect.stream().findFirst().orElse(null);
+            BsSysMenu parentMenu = oldMenus.stream().filter(x -> x.getMenuId().equals(sysMenu.getParentId())).findFirst().orElse(null);
+            List<BsSysMenu> collect2 = newMenus.stream().filter(x -> x.getMenuName().equals(parentMenu.getMenuName())
+                    && x.getCreateTime().equals(parentMenu.getCreateTime()) && x.getOrderNum().equals(parentMenu.getOrderNum())).collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(collect2) || collect2.size() > 1){
+                throw new CustomException("菜单匹配失败:"+newMenu.getMenuName());
+            }
+            newMenu.setParentId(collect2.get(0).getMenuId());
+        }
+        //修改父ID
+//        menuService.updateBatchById(newMenus);
+        newMenus.forEach(item -> {
+            menuService.updateParentById(item);
+        });
+
+        //新增分销角色
+        initRoles(newTenantId,tenantId);
+
+        //初始化配置和字典
+        initConfigAndDict(newTenantId,tenantId);
+    }
+
+    private void initConfigAndDict(Long newTenantId, Long tenantId) {
+        //字典
+        List<BsSysDictType> dictTypes = iSysDictTypeService.getListByTenant(tenantId);
+        if (CollectionUtils.isEmpty(dictTypes)){
+            return;
+        }
+        List<BsSysDictType> dictTypeList = dictTypes.stream().map(item -> {
+            item.setDictId(null);
+            item.setTenantId(newTenantId);
+            return item;
+        }).collect(Collectors.toList());
+        iSysDictTypeService.saveBatch(dictTypeList);
+        List<BsSysDictData> dictDatas = iSysDictDataService.getListByTenant(tenantId);
+        if (CollectionUtils.isEmpty(dictDatas)){
+            return;
+        }
+        for (BsSysDictData dictData : dictDatas) {
+            BsSysDictType dictType = iSysDictTypeService.getByIdTenant(dictData.getDictTypeId(),tenantId);
+            if (ObjectUtils.isNull(dictType)){
+                continue;
+            }
+            BsSysDictType dictType1 = dictTypeList.stream().filter(item -> item.getDictType().equals(dictType.getDictType())).findFirst().orElse(null);
+            if (ObjectUtils.isNull(dictType1)){
+                continue;
+            }
+            dictData.setDictCode(null);
+            dictData.setDictTypeId(dictType1.getDictId());
+            dictData.setTenantId(newTenantId.toString());
+        }
+        iSysDictDataService.saveBatch(dictDatas);
+    }
+
+    @Override
+    public void updateRoleTenant(List<Long> tenantIds) {
+        Long oldTenantId = 867735392558919680L;
+        for (Long tenantId : tenantIds) {
+            initRoles(tenantId,oldTenantId);
+        }
+    }
+
+    @Override
+    public void updateDictTenant(List<Long> tenantIds) {
+        Long oldTenantId = 867735392558919680L;
+        for (Long tenantId : tenantIds) {
+            initConfigAndDict(tenantId,oldTenantId);
+        }
+    }
+
+    @Override
+    public List<BsSysTenantBankAccountVo> getBankAccountList(String tenantId) {
+        BsSysTenant 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,BsSysTenantBankAccountVo.class);
+    }
+
+    @Override
+    public boolean addTopTenant(BsSysTopTenantAddBo bo) {
+        BsSysTenant add = BeanUtil.toBean(bo, BsSysTenant.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(BsSysTopTenantEditBo bo) {
+        BsSysTenant 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()));
+        tenant.setEduPhone(bo.getEduPhone());
+        return updateById(tenant);
+    }
+
+    @Override
+    public boolean deleteTopTenant(BsSysTopTenantEditBo bo) {
+        return false;
+    }
+
+
+    @Override
+    public List<BsSysTenant> getListNoTenant(Long tenantId) {
+        return baseMapper.getListNoTenant(tenantId);
+    }
+
+    @Override
+    public List<BsSysTenant> getExamRoomTenant() {
+        return baseMapper.getExamRoomTenant();
+    }
+
+    private void initRoles(Long newTenantId,Long tenantId) {
+        List<String> roleKey = new ArrayList<>();
+        roleKey.add("seller");
+        roleKey.add("seller_admin");
+        roleKey.add("supervisory");
+        roleKey.add("cashier");
+        roleKey.add("accounting");
+        roleKey.add("boss");
+        roleKey.add("edu");
+        roleKey.forEach(key -> {
+            BsSysRole tenantRole  = roleService.getRoleByTenantKey(key,newTenantId);
+            if (ObjectUtils.isNull(tenantRole)){
+                //新增
+                BsSysRole role = roleService.getRoleByTenantKey(key, tenantId);
+                if (ObjectUtils.isNull(role)){
+                    return;
+                }
+                role.setRoleId(null);
+                role.setTenantId(newTenantId.toString());
+                roleService.save(role);
+                tenantRole  = role;
+            }
+            //角色菜单
+            BsSysRole oldRole = roleService.getRoleByTenantKey(tenantRole.getRoleKey(), tenantId);
+            List<BsSysRoleMenu> sysRoleMenus = sysRoleMenuMapper.listByTenant(oldRole.getRoleId(),tenantId);
+            if (CollectionUtils.isNotEmpty(sysRoleMenus)){
+                List<BsSysRoleMenu> roleMenus = new ArrayList<>();
+                for (BsSysRoleMenu menu : sysRoleMenus) {
+                    BsSysMenu oldSysMenu = menuService.getMenuById(menu.getMenuId(),tenantId);
+                    if (ObjectUtils.isNull(oldSysMenu)){
+                        continue;
+                    }
+                    Long menuId = menuService.getMenuByTenant(oldSysMenu.getMenuName(),oldSysMenu.getOrderNum(),oldSysMenu.getCreateTime(),newTenantId);
+                    if (ObjectUtils.isNull(menuId)){
+                        oldSysMenu.setMenuId(null);
+                        oldSysMenu.setTenantId(newTenantId);
+                        //查询父ID
+                        Long parentId = getParentId(oldSysMenu,tenantId,newTenantId);
+                        oldSysMenu.setParentId(parentId);
+                        menuService.save(oldSysMenu);
+                        menuId = oldSysMenu.getMenuId();
+                    }
+                    BsSysRoleMenu sysRoleMenu = new BsSysRoleMenu();
+                    sysRoleMenu.setRoleId(tenantRole.getRoleId());
+                    sysRoleMenu.setMenuId(menuId);
+                    sysRoleMenu.setTenantId(newTenantId.toString());
+                    roleMenus.add(sysRoleMenu);
+                }
+                if (CollectionUtils.isNotEmpty(roleMenus)){
+                    roleMenus.forEach(item -> {
+                        sysRoleMenuMapper.insert(item);
+                    });
+                }
+            }
+        });
+    }
+
+    private Long getParentId(BsSysMenu oldSysMenu, Long tenantId, Long newTenantId) {
+        if (oldSysMenu.getParentId() == 0){
+            return 0L;
+        }
+        BsSysMenu sysMenu = menuService.getMenuById(oldSysMenu.getParentId(),tenantId);
+        if (ObjectUtils.isNull(oldSysMenu)){
+            return 0L;
+        }
+        Long menuId = menuService.getMenuByTenant(sysMenu.getMenuName(),sysMenu.getOrderNum(),sysMenu.getCreateTime(),newTenantId);
+        if (ObjectUtils.isNull(menuId)){
+            oldSysMenu.setMenuId(null);
+            oldSysMenu.setTenantId(newTenantId);
+            //查询父ID
+            Long parentId = getParentId(sysMenu,tenantId,newTenantId);
+            oldSysMenu.setParentId(parentId);
+            menuService.save(oldSysMenu);
+            menuId = oldSysMenu.getMenuId();
+        }
+        return menuId;
+    }
+
+}

+ 1 - 4
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/BsTokenService.java

@@ -9,12 +9,9 @@ import com.zhongzheng.common.core.redis.RedisCache;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.common.utils.ip.AddressUtils;
 import com.zhongzheng.common.utils.ip.IpUtils;
-import com.zhongzheng.modules.company.entity.ClientBsLoginUser;
+import com.zhongzheng.modules.bs.company.entity.ClientBsLoginUser;
 import com.zhongzheng.modules.user.bo.UserLoginKeyAddBo;
-import com.zhongzheng.modules.user.domain.User;
-import com.zhongzheng.modules.user.entity.ClientLoginUser;
 import com.zhongzheng.modules.user.service.IUserLoginKeyService;
-import com.zhongzheng.modules.user.service.IUserService;
 import io.jsonwebtoken.Claims;
 import io.jsonwebtoken.Jwts;
 import io.jsonwebtoken.SignatureAlgorithm;

+ 20 - 17
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/CompanyUserServiceImpl.java

@@ -14,15 +14,17 @@ import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.AES;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.SecurityUtils;
-import com.zhongzheng.modules.company.bo.CompanyUserAddBo;
-import com.zhongzheng.modules.company.bo.CompanyUserEditBo;
-import com.zhongzheng.modules.company.bo.CompanyUserQueryBo;
-import com.zhongzheng.modules.company.bo.UserBsAccountLoginBo;
-import com.zhongzheng.modules.company.domain.CompanyUser;
-import com.zhongzheng.modules.company.entity.ClientBsLoginUser;
-import com.zhongzheng.modules.company.mapper.CompanyUserMapper;
-import com.zhongzheng.modules.company.service.ICompanyUserService;
-import com.zhongzheng.modules.company.vo.CompanyUserVo;
+import com.zhongzheng.modules.bs.company.bo.CompanyUserAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyUserEditBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyUserQueryBo;
+import com.zhongzheng.modules.bs.company.bo.UserBsAccountLoginBo;
+import com.zhongzheng.modules.bs.company.domain.CompanyUser;
+import com.zhongzheng.modules.bs.company.entity.ClientBsLoginUser;
+import com.zhongzheng.modules.bs.company.mapper.CompanyUserMapper;
+import com.zhongzheng.modules.bs.company.service.ICompanyUserService;
+import com.zhongzheng.modules.bs.company.vo.CompanyUserVo;
+import com.zhongzheng.modules.bs.system.domain.BsSysUser;
+import com.zhongzheng.modules.bs.system.service.IBsSysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -45,6 +47,8 @@ public class CompanyUserServiceImpl extends ServiceImpl<CompanyUserMapper, Compa
 
     @Autowired
     private BsTokenService bsTokenService;
+    @Autowired
+    private IBsSysUserService iBsSysUserService;
 
 
     @Override
@@ -58,11 +62,10 @@ public class CompanyUserServiceImpl extends ServiceImpl<CompanyUserMapper, Compa
         if(Validator.isEmpty(bo.getAccount())){
             throw new CustomException("账号不能为空");
         }
-        CompanyUser user = getOne(new LambdaQueryWrapper<CompanyUser>()
-                .eq(CompanyUser::getUsername, bo.getAccount()));
-        if(Validator.isEmpty(user)){
+        BsSysUser bsSysUser = iBsSysUserService.getOne(new LambdaQueryWrapper<BsSysUser>().eq(BsSysUser::getUserName, bo.getAccount()).eq(BsSysUser::getStatus, 1));
+        if(Validator.isEmpty(bsSysUser)){
             throw new CustomException("登录信息错误");
-        } else if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
+        } else if (UserStatus.DISABLE.getCode().equals(bsSysUser.getStatus()))
         {
             throw new CustomException("对不起,您的账号:已停用");
         }
@@ -80,15 +83,15 @@ public class CompanyUserServiceImpl extends ServiceImpl<CompanyUserMapper, Compa
         }else{
             password = bo.getPwd();
         }
-        if (!SecurityUtils.matchesPassword(password,user.getPassword()))
+        if (!SecurityUtils.matchesPassword(password,bsSysUser.getPassword()))
         {
             throw new CustomException("登录信息错误");
         }
         ClientBsLoginUser loginUser = new ClientBsLoginUser();
-        loginUser.setUser(user);
+        loginUser.setUser(bsSysUser);
         Map<String,Object> map = new HashMap<>();
         map.put(Constants.TOKEN,bsTokenService.createToken(loginUser));
-        map.put("user_account",user.getUsername());
+        map.put("user_account",bsSysUser.getUserName());
         return map;
     }
 
@@ -96,7 +99,7 @@ public class CompanyUserServiceImpl extends ServiceImpl<CompanyUserMapper, Compa
     public List<CompanyUserVo> queryList(CompanyUserQueryBo bo) {
         LambdaQueryWrapper<CompanyUser> lqw = Wrappers.lambdaQuery();
         lqw.eq(ObjectUtil.isNotEmpty(bo.getCompanyId()), CompanyUser::getCompanyId, bo.getCompanyId());
-        lqw.like(StrUtil.isNotBlank(bo.getUsername()), CompanyUser::getUsername, bo.getUsername());
+        lqw.like(StrUtil.isNotBlank(bo.getUsername()), CompanyUser::getUserName, bo.getUsername());
         lqw.eq(StrUtil.isNotBlank(bo.getPassword()), CompanyUser::getPassword, bo.getPassword());
         lqw.eq(bo.getStatus() != null, CompanyUser::getStatus, bo.getStatus());
         return entity2Vo(this.list(lqw));

+ 26 - 1
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysPermissionService.java

@@ -2,6 +2,10 @@ package com.zhongzheng.framework.web.service;
 
 import java.util.HashSet;
 import java.util.Set;
+
+import com.zhongzheng.modules.bs.system.domain.BsSysRole;
+import com.zhongzheng.modules.bs.system.domain.BsSysUser;
+import com.zhongzheng.modules.bs.system.service.IBsSysMenuService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import com.zhongzheng.common.core.domain.entity.SysUser;
@@ -21,7 +25,8 @@ public class SysPermissionService
 
     @Autowired
     private ISysMenuService menuService;
-
+    @Autowired
+    private IBsSysMenuService iBsSysMenuService;
     /**
      * 获取角色数据权限
      *
@@ -63,4 +68,24 @@ public class SysPermissionService
         }
         return perms;
     }
+    /**
+     * 企业b端获取菜单数据权限
+     *
+     * @param user 用户信息
+     * @return 菜单权限信息
+     */
+    public Set<String> getBsMenuPermission(BsSysUser user)
+    {
+        Set<String> perms = new HashSet<String>();
+        // 管理员拥有所有权限
+        if (user.isAdmin())
+        {
+            perms.add("*:*:*");
+        }
+        else
+        {
+            perms.addAll(iBsSysMenuService.selectMenuPermsByUserId(user.getUserId()));
+        }
+        return perms;
+    }
 }

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyAddBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyAddBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -83,4 +83,7 @@ public class CompanyAddBo {
     /** 更新时间 */
     @ApiModelProperty("公司id")
     private Long companyId;
+    /** 更新时间 */
+    @ApiModelProperty("公司id")
+    private String businessImg;
 }

+ 7 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateAddBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyCertificateAddBo.java

@@ -1,13 +1,9 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
-import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
-import org.apache.poi.ss.formula.functions.T;
 
-import java.util.Date;
 import java.util.List;
 
 
@@ -62,6 +58,12 @@ public class CompanyCertificateAddBo {
     /** 有效日期 1:长期 */
     @ApiModelProperty("有效日期")
     private Long effectiveDate;
+    /** 有效日期 1:长期 */
+    @ApiModelProperty("有效日期是否长期")
+    private int effectiveFlag;
+    /** 有效日期 1:长期 */
+    @ApiModelProperty("营业时间是否长期")
+    private int operateFlag;
     /** 资质证书信息 */
     @ApiModelProperty("资质证书信息")
     private String text;

+ 8 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateEditBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyCertificateEditBo.java

@@ -1,11 +1,9 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
-import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
-import java.util.Date;
+
 import java.util.List;
 
 
@@ -47,7 +45,12 @@ public class CompanyCertificateEditBo {
     /** 预览 */
     @ApiModelProperty("预览")
     private String previewImg;
-
+    /** 有效日期 1:长期 */
+    @ApiModelProperty("有效日期是否长期")
+    private int effectiveFlag;
+    /** 有效日期 1:长期 */
+    @ApiModelProperty("营业时间是否长期")
+    private int operateFlag;
     /** 1有效 0无效 */
     @ApiModelProperty("1有效 0无效")
     private Integer status;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateInfo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyCertificateInfo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 7 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyCertificateQueryBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyCertificateQueryBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
@@ -35,7 +35,12 @@ public class CompanyCertificateQueryBo extends BaseEntity {
 	/** 排序的方向desc或者asc */
 	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
 	private String isAsc;
-
+	/** 有效日期 1:长期 */
+	@ApiModelProperty("有效日期是否长期")
+	private int effectiveFlag;
+	/** 有效日期 1:长期 */
+	@ApiModelProperty("营业时间是否长期")
+	private int operateFlag;
 	@ApiModelProperty("机构名称")
 	private String tenantId;
 	/** 公司id */

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyDepartmentAddBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyDepartmentAddBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyDepartmentEditBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyDepartmentEditBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyDepartmentQueryBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyDepartmentQueryBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyEditBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyEditBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -46,6 +46,9 @@ public class CompanyEditBo {
     /** 企业地址 */
     @ApiModelProperty("企业地址")
     private String companyAddress;
+    /** 企业地址 */
+    @ApiModelProperty("企业地址")
+    private String businessImg;
 
     /** 成立日期 */
     @ApiModelProperty("成立日期")

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyQueryBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyQueryBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -61,6 +61,9 @@ public class CompanyQueryBo extends BaseEntity {
 	/** 营业日期 */
 	@ApiModelProperty("营业日期")
 	private Long operateDate;
+	/** 是否长期营业 */
+	@ApiModelProperty("是否长期营业")
+	private int longFlag;
 	/** 登记机关 */
 	@ApiModelProperty("登记机关")
 	private String registrationAuthority;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyUserAddBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyUserAddBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyUserEditBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyUserEditBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/CompanyUserQueryBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/CompanyUserQueryBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/ExcelCompanyCertificateBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/ExcelCompanyCertificateBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/bo/UserBsAccountLoginBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/bo/UserBsAccountLoginBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.bo;
+package com.zhongzheng.modules.bs.company.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 6 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/Company.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/domain/Company.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.domain;
+package com.zhongzheng.modules.bs.company.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModelProperty;
@@ -19,7 +19,7 @@ import com.zhongzheng.common.annotation.Excel;
 @Data
 @NoArgsConstructor
 @Accessors(chain = true)
-@TableName("company")
+@TableName("bs_company")
 public class Company implements Serializable {
 
 private static final long serialVersionUID=1L;
@@ -45,6 +45,8 @@ private static final long serialVersionUID=1L;
     private Long establishDate;
     /** 营业日期 */
     private Long operateDate;
+    /** 是否长期营业 */
+    private int longFlag;
     /** 登记机关 */
     private String registrationAuthority;
     /** 经验范围 */
@@ -57,6 +59,8 @@ private static final long serialVersionUID=1L;
     private String department;
     /** 所在岗位 */
     private String position;
+    /** 公司营业执照 */
+    private String businessImg;
     /** 企业备注 */
     private String companyRemarks;
     /** 级别 1:总公司 2:分公司 */

+ 6 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/CompanyCertificate.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/domain/CompanyCertificate.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.domain;
+package com.zhongzheng.modules.bs.company.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModelProperty;
@@ -21,7 +21,7 @@ import com.zhongzheng.common.annotation.Excel;
 @Data
 @NoArgsConstructor
 @Accessors(chain = true)
-@TableName("company_certificate")
+@TableName("bs_company_certificate")
 public class CompanyCertificate implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -62,6 +62,10 @@ public class CompanyCertificate implements Serializable {
     /**
      * 有效日期
      */
+    /** 有效日期 1:长期 */
+    private int effectiveFlag;
+    /** 有效日期 1:长期 */
+    private int operateFlag;
     private Long effectiveDate;
     /**
      * 预警状态 1:正常 2:已过期

+ 2 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/CompanyDepartment.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/domain/CompanyDepartment.java

@@ -1,16 +1,12 @@
-package com.zhongzheng.modules.company.domain;
+package com.zhongzheng.modules.bs.company.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 import java.io.Serializable;
-import java.util.Date;
-import java.math.BigDecimal;
 import java.util.List;
 
-import com.zhongzheng.common.annotation.Excel;
-
 /**
  * 企业部门对象 company_department
  *
@@ -20,7 +16,7 @@ import com.zhongzheng.common.annotation.Excel;
 @Data
 @NoArgsConstructor
 @Accessors(chain = true)
-@TableName("company_department")
+@TableName("bs_company_department")
 public class CompanyDepartment implements Serializable {
 
 private static final long serialVersionUID=1L;

+ 17 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/domain/CompanyUser.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/domain/CompanyUser.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.domain;
+package com.zhongzheng.modules.bs.company.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
@@ -18,7 +18,7 @@ import com.zhongzheng.common.annotation.Excel;
 @Data
 @NoArgsConstructor
 @Accessors(chain = true)
-@TableName("company_user")
+@TableName("bs_sys_user")
 public class CompanyUser implements Serializable {
 
 private static final long serialVersionUID=1L;
@@ -29,7 +29,7 @@ private static final long serialVersionUID=1L;
     /** 公司id */
     private Long companyId;
     /** 企业用户名 */
-    private String username;
+    private String userName;
     /** 密码 */
     private String password;
     /** 1有效 0无效 */
@@ -40,4 +40,18 @@ private static final long serialVersionUID=1L;
     /** 更新时间 */
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private Long updateTime;
+    public CompanyUser(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public boolean isAdmin()
+    {
+        return isAdmin(this.userName);
+    }
+
+    public static boolean isAdmin(String userName)
+    {
+        return userName != null && "admin".equals(userName) ;
+    }
 }

+ 145 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/entity/ClientBsLoginUser.java

@@ -0,0 +1,145 @@
+package com.zhongzheng.modules.bs.company.entity;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.zhongzheng.common.core.domain.entity.SysUser;
+import com.zhongzheng.modules.bs.company.domain.CompanyUser;
+import com.zhongzheng.modules.bs.system.domain.BsSysUser;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+
+import java.util.Collection;
+import java.util.Set;
+
+/**
+ * 登录用户身份权限
+ *
+ * @author zhongzheng
+ */
+
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+public class ClientBsLoginUser implements UserDetails
+{
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户唯一标识
+     */
+    private String token;
+
+    /**
+     * 登录时间
+     */
+    private Long loginTime;
+
+    /**
+     * 过期时间
+     */
+    private Long expireTime;
+
+    /**
+     * 登录IP地址
+     */
+    private String ipaddr;
+
+    /**
+     * 登录地点
+     */
+    private String loginLocation;
+
+    /**
+     * 浏览器类型
+     */
+    private String browser;
+
+    /**
+     * 操作系统
+     */
+    private String os;
+
+    /**
+     * 权限列表
+     */
+    private Set<String> permissions;
+    /**
+     * 用户信息
+     */
+    private BsSysUser user;
+
+    public ClientBsLoginUser(BsSysUser user, Set<String> permissions)
+    {
+        this.user = user;
+        this.permissions = permissions;
+    }
+
+    @JsonIgnore
+    @Override
+    public String getPassword()
+    {
+        return user.getPassword();
+    }
+
+    @Override
+    public String getUsername()
+    {
+        return user.getUserName();
+    }
+
+    /**
+     * 账户是否未过期,过期无法验证
+     */
+    @JsonIgnore
+    @Override
+    public boolean isAccountNonExpired()
+    {
+        return true;
+    }
+
+    /**
+     * 指定用户是否解锁,锁定的用户无法进行身份验证
+     *
+     * @return
+     */
+    @JsonIgnore
+    @Override
+    public boolean isAccountNonLocked()
+    {
+        return true;
+    }
+
+    /**
+     * 指示是否已过期的用户的凭据(密码),过期的凭据防止认证
+     *
+     * @return
+     */
+    @JsonIgnore
+    @Override
+    public boolean isCredentialsNonExpired()
+    {
+        return true;
+    }
+
+    /**
+     * 是否可用 ,禁用的用户不能身份验证
+     *
+     * @return
+     */
+    @JsonIgnore
+    @Override
+    public boolean isEnabled()
+    {
+        return true;
+    }
+
+    @Override
+    public Collection<? extends GrantedAuthority> getAuthorities()
+    {
+        return null;
+    }
+}
+

+ 19 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/mapper/CompanyCertificateMapper.java

@@ -0,0 +1,19 @@
+package com.zhongzheng.modules.bs.company.mapper;
+
+import com.zhongzheng.modules.bs.company.bo.CompanyCertificateQueryBo;
+import com.zhongzheng.modules.bs.company.domain.CompanyCertificate;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.bs.company.vo.CompanyCertificateVo;
+
+import java.util.List;
+
+/**
+ * 企业证书Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+public interface CompanyCertificateMapper extends BaseMapper<CompanyCertificate> {
+    List<CompanyCertificateVo> selectCompanyCertificate(CompanyCertificateQueryBo bo);
+
+}

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/mapper/CompanyDepartmentMapper.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/mapper/CompanyDepartmentMapper.java

@@ -1,6 +1,6 @@
-package com.zhongzheng.modules.company.mapper;
+package com.zhongzheng.modules.bs.company.mapper;
 
-import com.zhongzheng.modules.company.domain.CompanyDepartment;
+import com.zhongzheng.modules.bs.company.domain.CompanyDepartment;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/mapper/CompanyMapper.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/mapper/CompanyMapper.java

@@ -1,6 +1,6 @@
-package com.zhongzheng.modules.company.mapper;
+package com.zhongzheng.modules.bs.company.mapper;
 
-import com.zhongzheng.modules.company.domain.Company;
+import com.zhongzheng.modules.bs.company.domain.Company;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**

+ 2 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/mapper/CompanyUserMapper.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/mapper/CompanyUserMapper.java

@@ -1,6 +1,6 @@
-package com.zhongzheng.modules.company.mapper;
+package com.zhongzheng.modules.bs.company.mapper;
 
-import com.zhongzheng.modules.company.domain.CompanyUser;
+import com.zhongzheng.modules.bs.company.domain.CompanyUser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**

+ 8 - 10
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyCertificateService.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/ICompanyCertificateService.java

@@ -1,15 +1,13 @@
-package com.zhongzheng.modules.company.service;
-
-import com.zhongzheng.modules.company.bo.ExcelCompanyCertificateBo;
-import com.zhongzheng.modules.company.domain.CompanyCertificate;
-import com.zhongzheng.modules.company.vo.CompanyCertificateVo;
-import com.zhongzheng.modules.company.bo.CompanyCertificateQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyCertificateAddBo;
-import com.zhongzheng.modules.company.bo.CompanyCertificateEditBo;
+package com.zhongzheng.modules.bs.company.service;
+
+import com.zhongzheng.modules.bs.company.bo.ExcelCompanyCertificateBo;
+import com.zhongzheng.modules.bs.company.domain.CompanyCertificate;
+import com.zhongzheng.modules.bs.company.vo.CompanyCertificateVo;
+import com.zhongzheng.modules.bs.company.bo.CompanyCertificateQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyCertificateAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyCertificateEditBo;
 import com.baomidou.mybatisplus.extension.service.IService;
-import org.springframework.web.multipart.MultipartFile;
 
-import java.util.Collection;
 import java.util.List;
 
 /**

+ 6 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyDepartmentService.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/ICompanyDepartmentService.java

@@ -1,13 +1,12 @@
-package com.zhongzheng.modules.company.service;
+package com.zhongzheng.modules.bs.company.service;
 
-import com.zhongzheng.modules.company.domain.CompanyDepartment;
-import com.zhongzheng.modules.company.vo.CompanyDepartmentVo;
-import com.zhongzheng.modules.company.bo.CompanyDepartmentQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyDepartmentAddBo;
-import com.zhongzheng.modules.company.bo.CompanyDepartmentEditBo;
+import com.zhongzheng.modules.bs.company.domain.CompanyDepartment;
+import com.zhongzheng.modules.bs.company.vo.CompanyDepartmentVo;
+import com.zhongzheng.modules.bs.company.bo.CompanyDepartmentQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyDepartmentAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyDepartmentEditBo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
-import java.util.Collection;
 import java.util.List;
 
 /**

+ 6 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyService.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/ICompanyService.java

@@ -1,13 +1,12 @@
-package com.zhongzheng.modules.company.service;
+package com.zhongzheng.modules.bs.company.service;
 
-import com.zhongzheng.modules.company.domain.Company;
-import com.zhongzheng.modules.company.vo.CompanyVo;
-import com.zhongzheng.modules.company.bo.CompanyQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyAddBo;
-import com.zhongzheng.modules.company.bo.CompanyEditBo;
+import com.zhongzheng.modules.bs.company.domain.Company;
+import com.zhongzheng.modules.bs.company.vo.CompanyVo;
+import com.zhongzheng.modules.bs.company.bo.CompanyQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyEditBo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
-import java.util.Collection;
 import java.util.List;
 
 /**

+ 8 - 9
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/ICompanyUserService.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/ICompanyUserService.java

@@ -1,13 +1,12 @@
-package com.zhongzheng.modules.company.service;
-
-import com.zhongzheng.modules.company.bo.UserBsAccountLoginBo;
-import com.zhongzheng.modules.company.domain.CompanyUser;
-import com.zhongzheng.modules.company.vo.CompanyUserVo;
-import com.zhongzheng.modules.company.bo.CompanyUserQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyUserAddBo;
-import com.zhongzheng.modules.company.bo.CompanyUserEditBo;
+package com.zhongzheng.modules.bs.company.service;
+
+import com.zhongzheng.modules.bs.company.bo.UserBsAccountLoginBo;
+import com.zhongzheng.modules.bs.company.domain.CompanyUser;
+import com.zhongzheng.modules.bs.company.vo.CompanyUserVo;
+import com.zhongzheng.modules.bs.company.bo.CompanyUserQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyUserAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyUserEditBo;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zhongzheng.modules.user.bo.UserAppAccountLoginBo;
 
 import java.util.Collection;
 import java.util.List;

+ 71 - 23
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/impl/CompanyCertificateServiceImpl.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/impl/CompanyCertificateServiceImpl.java

@@ -1,40 +1,31 @@
-package com.zhongzheng.modules.company.service.impl;
+package com.zhongzheng.modules.bs.company.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.poi.EasyPoiUtil;
-import com.zhongzheng.modules.company.bo.*;
-import com.zhongzheng.modules.company.domain.Company;
-import com.zhongzheng.modules.company.service.ICompanyService;
-import com.zhongzheng.modules.company.vo.ExcelCompanyCertificateVo;
-import com.zhongzheng.modules.tencentcloud.service.IFaceOcrService;
+import com.zhongzheng.modules.bs.company.bo.*;
+import com.zhongzheng.modules.bs.company.domain.Company;
+import com.zhongzheng.modules.bs.company.service.ICompanyService;
+import com.zhongzheng.modules.bs.company.vo.CompanyVo;
+import com.zhongzheng.modules.bs.company.vo.ExcelCompanyCertificateVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
-import com.zhongzheng.modules.company.domain.CompanyCertificate;
-import com.zhongzheng.modules.company.mapper.CompanyCertificateMapper;
-import com.zhongzheng.modules.company.vo.CompanyCertificateVo;
-import com.zhongzheng.modules.company.service.ICompanyCertificateService;
-import org.springframework.web.multipart.MultipartFile;
+import com.zhongzheng.modules.bs.company.domain.CompanyCertificate;
+import com.zhongzheng.modules.bs.company.mapper.CompanyCertificateMapper;
+import com.zhongzheng.modules.bs.company.vo.CompanyCertificateVo;
+import com.zhongzheng.modules.bs.company.service.ICompanyCertificateService;
 
-import java.text.SimpleDateFormat;
-import java.time.*;
-import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import static cn.hutool.core.date.DateUtil.*;
 
 /**
  * 企业证书Service业务层处理
@@ -60,10 +51,15 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
             return new ArrayList<>();
         }
         companyCertificateVos.forEach(item -> {
+            if (ObjectUtil.isNotEmpty(item.getCompanyType())){
+                String companyTypeNameByType = getCompanyTypeNameByType(item.getCompanyType());
+                item.setCompanyTypeName(companyTypeNameByType);
+            }
             if (ObjectUtil.isAllNotEmpty(item.getEffectiveDate(), item.getIssuanceDate())) {
                 Date effectivedate = new Date(item.getEffectiveDate() * 1000L);
                 if (effectivedate.compareTo(new Date()) > 0) {
                     item.setExpirationTime(0L);
+                    item.setWarningStatus(1);
                 } else {
                     //查询实时证书过期时间更新证书预警状态
                     CompanyCertificate companyCertificate = new CompanyCertificate();
@@ -76,6 +72,9 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
                     item.setExpirationTime(l);
                 }
             }
+            if (ObjectUtil.isNotEmpty(item.getEffectiveFlag())&&item.getEffectiveFlag()==1){
+                item.setWarningStatus(1);
+            }
         });
         return companyCertificateVos;
     }
@@ -103,13 +102,26 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
     @Override
     public Boolean insertByAddBo(CompanyCertificateAddBo bo) {
         CompanyCertificate add = BeanUtil.toBean(bo, CompanyCertificate.class);
+        if (ObjectUtil.isNotEmpty(bo.getCompanyId())){
+            CompanyVo companyVo = iCompanyService.queryById(bo.getCompanyId());
+            add.setCompanyName(companyVo.getCompanyName());
+            add.setCompanyType(companyVo.getCompanyType());
+            add.setCreditCode(companyVo.getCreditCode());
+            add.setRegisteredCapital(companyVo.getRegisteredCapital());
+            add.setLegalRepresentative(companyVo.getLegalRepresentative());
+            add.setCompanyAddress(companyVo.getCompanyAddress());
+            add.setEstablishDate(companyVo.getEstablishDate());
+            add.setOperateDate(companyVo.getOperateDate());
+            add.setRegistrationAuthority(companyVo.getRegistrationAuthority());
+            add.setExperienceScope(companyVo.getExperienceScope());
+        }
         add.setCertificateId(bo.getCertificateId());
         if (bo.getCertificateType().equals(2)) {
             add.setText(JSONArray.toJSONString(bo.getInfoList()));
         }
         //证书有效时间判断
         if (ObjectUtil.isNotEmpty(bo.getIssuanceDate()) && ObjectUtil.isNotEmpty(bo.getEffectiveDate())) {
-            if (bo.getEffectiveDate().equals(1L)) {
+            if (bo.getEffectiveFlag()==1) {
                 bo.setWarningStatus(1);
             } else {
                 Date issuancedate = new Date(bo.getIssuanceDate() * 1000L);
@@ -123,8 +135,6 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
                     add.setWarningStatus(2);
                 }
             }
-        } else {
-            throw new CustomException("时间不能为空");
         }
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
@@ -207,7 +217,45 @@ public class CompanyCertificateServiceImpl extends ServiceImpl<CompanyCertificat
         }
         return null;
     }
-
+    public String getCompanyTypeNameByType(Long companyType) {
+        //公司类型判断
+        if (companyType == 1L) {
+            return "有限责任公司";
+        } else if (companyType == 2L) {
+            return "国有企业";
+        } else if (companyType == 3L) {
+            return "集体企业";
+        } else if (companyType == 4L) {
+            return "股份合作企业";
+        } else if (companyType == 5L) {
+            return "联营企业";
+        } else if (companyType == 6L) {
+            return "私营企业";
+        } else if (companyType == 7L) {
+            return "其他企业";
+        } else if (companyType == 8L) {
+            return "合资经营企业 (港或澳、台资)";
+        } else if (companyType == 9L) {
+            return "合作经营企业 (港或澳、台资)";
+        } else if (companyType == 10L) {
+            return "港、澳、台商独资经营企业";
+        } else if (companyType == 11L) {
+            return "港、澳、台商投资股份有限公司";
+        } else if (companyType == 12L) {
+            return "其他港、澳、台商投资企业";
+        } else if (companyType == 13L) {
+            return "中外合资经营企业";
+        } else if (companyType == 14L) {
+            return "中外合作经营企业";
+        } else if (companyType == 15L) {
+            return "外资企业";
+        } else if (companyType == 16L) {
+            return "外商投资股份有限公司";
+        } else if (companyType == 17L) {
+            return "其他外商投资企业";
+        }
+        return null;
+    }
     public Integer getDocumentTypeByName(String documentTypeName) {
         //公司类型判断
         switch (documentTypeName) {

+ 10 - 11
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/impl/CompanyDepartmentServiceImpl.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/impl/CompanyDepartmentServiceImpl.java

@@ -1,26 +1,23 @@
-package com.zhongzheng.modules.company.service.impl;
+package com.zhongzheng.modules.bs.company.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
-import com.zhongzheng.common.core.domain.TreeSelect;
-import com.zhongzheng.common.core.domain.entity.SysDept;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
-import com.zhongzheng.modules.company.bo.CompanyQueryBo;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
-import com.zhongzheng.modules.company.bo.CompanyDepartmentAddBo;
-import com.zhongzheng.modules.company.bo.CompanyDepartmentQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyDepartmentEditBo;
-import com.zhongzheng.modules.company.domain.CompanyDepartment;
-import com.zhongzheng.modules.company.mapper.CompanyDepartmentMapper;
-import com.zhongzheng.modules.company.vo.CompanyDepartmentVo;
-import com.zhongzheng.modules.company.service.ICompanyDepartmentService;
+import com.zhongzheng.modules.bs.company.bo.CompanyDepartmentAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyDepartmentQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyDepartmentEditBo;
+import com.zhongzheng.modules.bs.company.domain.CompanyDepartment;
+import com.zhongzheng.modules.bs.company.mapper.CompanyDepartmentMapper;
+import com.zhongzheng.modules.bs.company.vo.CompanyDepartmentVo;
+import com.zhongzheng.modules.bs.company.service.ICompanyDepartmentService;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -143,12 +140,14 @@ public class CompanyDepartmentServiceImpl extends ServiceImpl<CompanyDepartmentM
             CompanyDepartment companyDepartment = this.baseMapper.selectById(add.getDepartmentId());
             if (ObjectUtil.isNotEmpty(companyDepartment)&&companyDepartment.getStatus().equals(1)){
                 add.setDepartmentFartherId(companyDepartment.getDepartmentId());
+                add.setDepartmentType(2L);
                 add.setDepartmentLevel(companyDepartment.getDepartmentLevel()+1L);
             }
             else {
                 throw new CustomException("父级部门不存在");
             }
         }else {
+            add.setDepartmentType(1L);
             add.setDepartmentLevel(1L);
         }
         add.setCreateTime(DateUtils.getNowTime());

+ 24 - 19
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/service/impl/CompanyServiceImpl.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/service/impl/CompanyServiceImpl.java

@@ -1,29 +1,30 @@
-package com.zhongzheng.modules.company.service.impl;
+package com.zhongzheng.modules.bs.company.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
-import com.zhongzheng.modules.company.domain.CompanyCertificate;
-import com.zhongzheng.modules.company.domain.CompanyDepartment;
-import com.zhongzheng.modules.company.service.ICompanyCertificateService;
-import com.zhongzheng.modules.company.service.ICompanyDepartmentService;
-import com.zhongzheng.modules.staff.domain.Staff;
-import com.zhongzheng.modules.staff.service.IStaffService;
+import com.zhongzheng.modules.bs.company.domain.CompanyCertificate;
+import com.zhongzheng.modules.bs.company.domain.CompanyDepartment;
+import com.zhongzheng.modules.bs.company.service.ICompanyCertificateService;
+import com.zhongzheng.modules.bs.company.service.ICompanyDepartmentService;
+import com.zhongzheng.modules.bs.staff.domain.Staff;
+import com.zhongzheng.modules.bs.staff.service.IStaffService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.Page;
-import com.zhongzheng.modules.company.bo.CompanyAddBo;
-import com.zhongzheng.modules.company.bo.CompanyQueryBo;
-import com.zhongzheng.modules.company.bo.CompanyEditBo;
-import com.zhongzheng.modules.company.domain.Company;
-import com.zhongzheng.modules.company.mapper.CompanyMapper;
-import com.zhongzheng.modules.company.vo.CompanyVo;
-import com.zhongzheng.modules.company.service.ICompanyService;
+import com.zhongzheng.modules.bs.company.bo.CompanyAddBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyQueryBo;
+import com.zhongzheng.modules.bs.company.bo.CompanyEditBo;
+import com.zhongzheng.modules.bs.company.domain.Company;
+import com.zhongzheng.modules.bs.company.mapper.CompanyMapper;
+import com.zhongzheng.modules.bs.company.vo.CompanyVo;
+import com.zhongzheng.modules.bs.company.service.ICompanyService;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -72,7 +73,7 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
         lqw.eq(StrUtil.isNotBlank(bo.getCompanyRemarks()), Company::getCompanyRemarks, bo.getCompanyRemarks());
         lqw.eq(bo.getCompanyLevel() != null, Company::getCompanyLevel, bo.getCompanyLevel());
         lqw.eq(ObjectUtil.isNotEmpty(bo.getFatherId()), Company::getFatherId, bo.getFatherId());
-        lqw.eq(bo.getStatus() != null, Company::getStatus, 1);
+        lqw.eq( Company::getStatus, 1);
         return entity2Vo(this.list(lqw));
 
     }
@@ -101,10 +102,12 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
     public Boolean insertByAddBo(CompanyAddBo bo) {
         Company add = BeanUtil.toBean(bo, Company.class);
         validEntityBeforeSave(add);
-        Date issuancedate = new Date(bo.getEstablishDate() * 1000L);
-        Date effectivedate = new Date(bo.getOperateDate() * 1000L);
-        if (effectivedate.compareTo(issuancedate) < 0) {
-            throw new CustomException("营业时间错误");
+        if(ObjectUtil.isAllNotEmpty(bo.getEstablishDate(),bo.getOperateDate())){
+            Date issuancedate = new Date(bo.getEstablishDate() * 1000L);
+            Date effectivedate = new Date(bo.getOperateDate() * 1000L);
+            if (effectivedate.compareTo(issuancedate) < 0) {
+                throw new CustomException("营业时间错误");
+            }
         }
         if (ObjectUtil.isNotEmpty(add.getCompanyId())) {
             Company company = this.baseMapper.selectById(add.getCompanyId());
@@ -154,6 +157,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
         }
         company.setStatus(0);
         this.baseMapper.updateById(company);
+        //同时删除相关部门
+        iCompanyDepartmentService.update(new LambdaUpdateWrapper<CompanyDepartment>().set(CompanyDepartment::getStatus, 0).eq(CompanyDepartment::getCompanyId, bo.getCompanyId()));
         return true;
     }
 

+ 12 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyCertificateVo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/CompanyCertificateVo.java

@@ -1,10 +1,11 @@
-package com.zhongzheng.modules.company.vo;
+package com.zhongzheng.modules.bs.company.vo;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zhongzheng.common.annotation.Log;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -71,6 +72,12 @@ public class CompanyCertificateVo {
 	@ApiModelProperty("发证日期")
 	private Long issuanceDate;
 	/** 有效日期 1:长期 */
+	@ApiModelProperty("有效日期是否长期")
+	private int effectiveFlag;
+	/** 有效日期 1:长期 */
+	@ApiModelProperty("营业时间是否长期")
+	private int operateFlag;
+	/** 有效日期 1:长期 */
 	@Excel(name = "有效日期")
 	@ApiModelProperty("有效日期")
 	private Long effectiveDate;
@@ -133,6 +140,9 @@ public class CompanyCertificateVo {
 	private String text;
 	/** 证书过期时间 */
 	private Long expirationTime;
-
+	/** 企业类型名称 */
+	private String companyTypeName;
+	/** 企业类型名称 */
+	private Long createTime;
 
 }

+ 2 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyDepartmentVo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/CompanyDepartmentVo.java

@@ -1,12 +1,10 @@
-package com.zhongzheng.modules.company.vo;
+package com.zhongzheng.modules.bs.company.vo;
 
 import com.zhongzheng.common.annotation.Excel;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.zhongzheng.modules.company.domain.CompanyDepartment;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
+
 import java.util.List;
 
 

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyUserVo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/CompanyUserVo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.vo;
+package com.zhongzheng.modules.bs.company.vo;
 
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;

+ 9 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/CompanyVo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/CompanyVo.java

@@ -1,12 +1,11 @@
-package com.zhongzheng.modules.company.vo;
+package com.zhongzheng.modules.bs.company.vo;
 
 import com.zhongzheng.common.annotation.Excel;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.zhongzheng.modules.company.domain.CompanyDepartment;
+import com.zhongzheng.modules.bs.company.domain.CompanyDepartment;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.util.Date;
+
 import java.util.List;
 
 
@@ -60,6 +59,9 @@ public class CompanyVo {
 	@Excel(name = "营业日期")
 	@ApiModelProperty("营业日期")
 	private Long operateDate;
+	/** 是否长期营业 */
+	@ApiModelProperty("是否长期营业")
+	private int longFlag;
 	/** 登记机关 */
 	@Excel(name = "登记机关")
 	@ApiModelProperty("登记机关")
@@ -96,6 +98,9 @@ public class CompanyVo {
 	@Excel(name = "企业父级id")
 	@ApiModelProperty("企业父级id")
 	private Long fatherId;
+	@Excel(name = "营业执照")
+	@ApiModelProperty("营业执照")
+	private String businessImg;
 	/** 1有效 0无效 */
 	@Excel(name = "1有效 0无效")
 	@ApiModelProperty("1有效 0无效")

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/company/vo/ExcelCompanyCertificateVo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/company/vo/ExcelCompanyCertificateVo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.company.vo;
+package com.zhongzheng.modules.bs.company.vo;
 
 
 import cn.afterturn.easypoi.excel.annotation.Excel;

+ 58 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/bo/BsUserGoodsCollectionAddBo.java

@@ -0,0 +1,58 @@
+package com.zhongzheng.modules.bs.goods.bo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 用户商品收藏添加对象 bs_user_goods_collection
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+@Data
+@ApiModel("用户商品收藏添加对象")
+public class BsUserGoodsCollectionAddBo {
+
+    /** 商品id */
+    @ApiModelProperty("商品id")
+    private Long goodsId;
+    /** 用户id */
+    @ApiModelProperty("用户id")
+    private Long userId;
+    /** 商品id */
+    @ApiModelProperty("商品包配置id")
+    private Long configId;
+    /** 类型 */
+    @ApiModelProperty("类型")
+    private Long type;
+    /** 状态 1有效 0无效 */
+    @ApiModelProperty("状态 1有效 0无效")
+    private Integer status;
+    /** 收藏状态 1有效 0无效 */
+    @ApiModelProperty("收藏状态 1有效 0无效")
+    private Integer collectStatus;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 商品名称 */
+    private String goodsName;
+    /** 教育类型 */
+    private Long educationType;
+    /** 项目id */
+    private Long projectId;
+    /** 项目名称 */
+    private String projectName;
+    /** 科目名称 */
+    private String subjectName;
+    /** 商品 */
+    private String goods;
+}

+ 60 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/bo/BsUserGoodsCollectionEditBo.java

@@ -0,0 +1,60 @@
+package com.zhongzheng.modules.bs.goods.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 用户商品收藏编辑对象 bs_user_goods_collection
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+@Data
+@ApiModel("用户商品收藏编辑对象")
+public class BsUserGoodsCollectionEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** 商品id */
+    @ApiModelProperty("商品id")
+    private Long goodsId;
+    @ApiModelProperty("商品包配置id")
+    private Long configId;
+    /** 类型 */
+    @ApiModelProperty("类型")
+    private Long type;
+    /** 用户id */
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+
+    /** 状态 1有效 0无效 */
+    @ApiModelProperty("状态 1有效 0无效")
+    private Integer status;
+
+    /** 收藏状态 1有效 0无效 */
+    @ApiModelProperty("收藏状态 1有效 0无效")
+    private Integer collectStatus;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 商品名称 */
+    private String goodsName;
+    /** 教育类型 */
+    private Long educationType;
+    /** 项目id */
+    private Long projectId;
+    /** 项目名称 */
+    private String projectName;
+    /** 科目名称 */
+    private String subjectName;
+    /** 商品 */
+    private String goods;
+}

+ 64 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/bo/BsUserGoodsCollectionQueryBo.java

@@ -0,0 +1,64 @@
+package com.zhongzheng.modules.bs.goods.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 用户商品收藏分页查询对象 bs_user_goods_collection
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("用户商品收藏分页查询对象")
+public class BsUserGoodsCollectionQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+	@ApiModelProperty("商品包配置id")
+	private Long configId;
+	/** 类型 */
+	@ApiModelProperty("类型")
+	private Long type;
+	/** 商品名称 */
+	private String goodsName;
+	/** 教育类型 */
+	private Long educationType;
+	/** 教育类型 */
+	private String educationName;
+	/** 项目id */
+	private Long projectId;
+	/** 项目名称 */
+	private String projectName;
+	/** 商品id */
+	@ApiModelProperty("商品id")
+	private Long goodsId;
+	/** 用户id */
+	@ApiModelProperty("用户id")
+	private Long userId;
+	/** 状态 1有效 0无效 */
+	@ApiModelProperty("状态 1有效 0无效")
+	private Integer status;
+	/** 收藏状态 1有效 0无效 */
+	@ApiModelProperty("收藏状态 1有效 0无效")
+	private Integer collectStatus;
+}

+ 57 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/domain/BsUserGoodsCollection.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.modules.bs.goods.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 用户商品收藏对象 bs_user_goods_collection
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("bs_user_goods_collection")
+public class BsUserGoodsCollection implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+    /** 商品id */
+    private Long goodsId;
+    private Long configId;
+    /** 用户id */
+    private Long userId;
+    /** 商品名称 */
+    private String goodsName;
+    /** 教育类型 */
+    private Long educationType;
+    /** 教育类型名称 */
+    private String educationName;
+    /** 项目id */
+    private Long projectId;
+    /** 项目名称 */
+    private String projectName;
+    /** 状态 1有效 0无效 */
+    private Integer status;
+    /** 类型 */
+    private Long type;
+    /** 收藏状态 1有效 0无效 */
+    private Integer collectStatus;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+}

+ 13 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/mapper/BsUserGoodsCollectionMapper.java

@@ -0,0 +1,13 @@
+package com.zhongzheng.modules.bs.goods.mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.bs.goods.domain.BsUserGoodsCollection;
+
+/**
+ * 用户商品收藏Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+public interface BsUserGoodsCollectionMapper extends BaseMapper<BsUserGoodsCollection> {
+
+}

+ 52 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/service/IBsUserGoodsCollectionService.java

@@ -0,0 +1,52 @@
+package com.zhongzheng.modules.bs.goods.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.bs.goods.bo.BsUserGoodsCollectionAddBo;
+import com.zhongzheng.modules.bs.goods.bo.BsUserGoodsCollectionEditBo;
+import com.zhongzheng.modules.bs.goods.bo.BsUserGoodsCollectionQueryBo;
+import com.zhongzheng.modules.bs.goods.domain.BsUserGoodsCollection;
+import com.zhongzheng.modules.bs.goods.vo.BsUserGoodsCollectionVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 用户商品收藏Service接口
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+public interface IBsUserGoodsCollectionService extends IService<BsUserGoodsCollection> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	BsUserGoodsCollectionVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<BsUserGoodsCollectionVo> queryList(BsUserGoodsCollectionQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入用户商品收藏
+	 * @param bo 用户商品收藏新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(BsUserGoodsCollectionAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改用户商品收藏
+	 * @param bo 用户商品收藏编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(BsUserGoodsCollectionEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 235 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/service/impl/BsUserGoodsCollectionServiceImpl.java

@@ -0,0 +1,235 @@
+package com.zhongzheng.modules.bs.goods.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.bs.goods.bo.BsUserGoodsCollectionAddBo;
+import com.zhongzheng.modules.bs.goods.bo.BsUserGoodsCollectionEditBo;
+import com.zhongzheng.modules.bs.goods.bo.BsUserGoodsCollectionQueryBo;
+import com.zhongzheng.modules.bs.goods.domain.BsUserGoodsCollection;
+import com.zhongzheng.modules.bs.goods.mapper.BsUserGoodsCollectionMapper;
+import com.zhongzheng.modules.bs.goods.service.IBsUserGoodsCollectionService;
+import com.zhongzheng.modules.bs.goods.vo.BsUserGoodsCollectionVo;
+import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
+import com.zhongzheng.modules.goods.service.IGoodsService;
+import com.zhongzheng.modules.goods.vo.CompanyGoodsVo;
+import com.zhongzheng.modules.goods.vo.GoodsVo;
+import com.zhongzheng.modules.order.bo.OrderBusinessConfigGoodsQueryBo;
+import com.zhongzheng.modules.order.bo.OrderBusinessConfigQueryBo;
+import com.zhongzheng.modules.order.service.IOrderBusinessConfigGoodsService;
+import com.zhongzheng.modules.order.service.IOrderBusinessConfigService;
+import com.zhongzheng.modules.order.vo.CompanyOrderBusinessConfigGoodsVo;
+import com.zhongzheng.modules.order.vo.OrderBusinessConfigVo;
+import net.bytebuddy.implementation.bytecode.Throw;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 用户商品收藏Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+@Service
+public class BsUserGoodsCollectionServiceImpl extends ServiceImpl<BsUserGoodsCollectionMapper, BsUserGoodsCollection> implements IBsUserGoodsCollectionService {
+    @Autowired
+    private IGoodsService iGoodsService;
+    @Autowired
+    private IOrderBusinessConfigGoodsService iOrderBusinessConfigGoodsService;
+    @Autowired
+    private IOrderBusinessConfigService iOrderBusinessConfigService;
+
+    @Override
+    public BsUserGoodsCollectionVo queryById(Long id) {
+        BsUserGoodsCollection db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, BsUserGoodsCollectionVo.class);
+    }
+
+    @Override
+    public List<BsUserGoodsCollectionVo> queryList(BsUserGoodsCollectionQueryBo bo) {
+        LambdaQueryWrapper<BsUserGoodsCollection> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getGoodsId() != null, BsUserGoodsCollection::getGoodsId, bo.getGoodsId());
+        lqw.eq(bo.getType() != null, BsUserGoodsCollection::getType, bo.getType());
+        lqw.eq(bo.getEducationType() != null, BsUserGoodsCollection::getEducationType, bo.getEducationType());
+        lqw.eq(bo.getEducationName() != null, BsUserGoodsCollection::getEducationName, bo.getEducationName());
+        lqw.eq(bo.getProjectId() != null, BsUserGoodsCollection::getProjectId, bo.getProjectId());
+        lqw.eq(bo.getProjectName() != null, BsUserGoodsCollection::getProjectName, bo.getProjectName());
+        lqw.eq(bo.getGoodsName() != null, BsUserGoodsCollection::getGoodsName, bo.getGoodsName());
+        lqw.eq(bo.getUserId() != null, BsUserGoodsCollection::getUserId, bo.getUserId());
+        lqw.eq(bo.getStatus() != null, BsUserGoodsCollection::getStatus, bo.getStatus());
+        lqw.eq(bo.getConfigId() != null, BsUserGoodsCollection::getConfigId, bo.getConfigId());
+        lqw.eq(bo.getCollectStatus() != null, BsUserGoodsCollection::getCollectStatus,1);
+        List<BsUserGoodsCollectionVo> bsUserGoodsCollectionVos = entity2Vo(this.list(lqw));
+        bsUserGoodsCollectionVos.forEach(item -> {
+            if (Validator.isNotEmpty(item.getConfigId())) {
+                OrderBusinessConfigGoodsQueryBo orderBusinessConfigGoodsQueryBo = new OrderBusinessConfigGoodsQueryBo();
+                orderBusinessConfigGoodsQueryBo.setConfigId(item.getConfigId());
+                List<CompanyOrderBusinessConfigGoodsVo> companyOrderBusinessConfigGoodsVos = iOrderBusinessConfigGoodsService.selectCompanyMergeList(orderBusinessConfigGoodsQueryBo);
+                if (Validator.isNotEmpty(companyOrderBusinessConfigGoodsVos)) {
+                    CompanyOrderBusinessConfigGoodsVo companyOrderBusinessConfigGoodsVo = companyOrderBusinessConfigGoodsVos.get(0);
+                    item.setMainImg(companyOrderBusinessConfigGoodsVo.getMainImg());
+                    String goodsIds = companyOrderBusinessConfigGoodsVo.getGoodsIds();
+                    List<String> goodIds = Arrays.stream(goodsIds.split(",")).distinct().collect(Collectors.toList());
+                    List<Long> collect = goodIds.stream().map(Long::parseLong).distinct().collect(Collectors.toList());
+                    GoodsQueryBo goodsQueryBo = new GoodsQueryBo();
+                    goodsQueryBo.setGoodsIds(collect);
+                    List<CompanyGoodsVo> companyGoodsVos = iGoodsService.selectBsGoodList(goodsQueryBo);
+                    if (Validator.isNotEmpty(companyGoodsVos)) {
+                        int size = companyGoodsVos.size();
+                        if (size > 2) {
+                            List<String> strings = new ArrayList<>();
+                            strings.add(companyGoodsVos.get(0).getGoodsName());
+                            strings.add(companyGoodsVos.get(1).getGoodsName());
+                            strings.add("等" + companyGoodsVos.size() + "个课程");
+                            item.setGoods(strings.toString().replace("[","").replace("]",""));
+                        }else {
+                            List<String> collect2 = companyGoodsVos.stream().map(s -> s.getGoodsName()).distinct().collect(Collectors.toList());
+                            item.setGoods(collect2.toString().replace("[","").replace("]",""));
+                        }
+                        List<String> subjectNames = companyGoodsVos.stream().map(s -> s.getSubjectNames()).distinct().collect(Collectors.toList());
+                        if (Validator.isNotEmpty(subjectNames) && subjectNames.size() > 2) {
+                            List<String> strings = new ArrayList<>();
+                            strings.add(subjectNames.get(0));
+                            strings.add(subjectNames.get(1));
+                            strings.add("等" + subjectNames.size() + "个科目");
+                            item.setSubjectName(strings.toString().replace("[","").replace("]",""));
+                        }else {
+                            item.setSubjectName(subjectNames.toString().replace("[","").replace("]",""));
+                        }
+                        List<Long> years = companyGoodsVos.stream().map(s -> s.getYear()).collect(Collectors.toList());
+                        List<String> yearList = years.stream().map(String::valueOf).collect(Collectors.toList());
+                        if (Validator.isNotEmpty(yearList)&&yearList.size()>2){
+                            List<String> strings = new ArrayList<>();
+                            strings.add(yearList.get(0));
+                            strings.add(yearList.get(1));
+                            strings.add("等" + yearList.size() + "个年份");
+                            item.setYear(strings.toString().replace("[","").replace("]",""));
+                        }else {
+                            item.setYear(yearList.toString().replace("[","").replace("]",""));
+                        }
+                        List<BigDecimal> prices = companyGoodsVos.stream().map(s -> s.getStandPrice()).collect(Collectors.toList());
+                        List<String> priecsList = prices.stream().map(String::valueOf).collect(Collectors.toList());
+                        if (Validator.isNotEmpty(priecsList)&&priecsList.size()>2){
+                            List<String> strings = new ArrayList<>();
+                            strings.add(priecsList.get(0));
+                            strings.add(priecsList.get(1));
+                            strings.add("等" + priecsList.size() + "个价格");
+                            item.setYear(strings.toString().replace("[","").replace("]",""));
+                        }else {
+                            item.setYear(priecsList.toString().replace("[","").replace("]",""));
+                        }
+                    }
+
+                }
+            }
+            if(Validator.isNotEmpty(item.getGoodsId())){
+                GoodsVo goodsVo = iGoodsService.selectDetail(item.getGoodsId());
+                item.setSubjectName(goodsVo.getSubjectNames());
+                item.setGoods(goodsVo.getGoodsName());
+                item.setYear(goodsVo.getYear().toString());
+                item.setPrice(goodsVo.getStandPrice().toString());
+            }
+        });
+        return bsUserGoodsCollectionVos;
+    }
+
+    /**
+     * 实体类转化成视图对象
+     *
+     * @param collection 实体类集合
+     * @return
+     */
+    private List<BsUserGoodsCollectionVo> entity2Vo(Collection<BsUserGoodsCollection> collection) {
+        List<BsUserGoodsCollectionVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, BsUserGoodsCollectionVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<BsUserGoodsCollection> page = (Page<BsUserGoodsCollection>) collection;
+            Page<BsUserGoodsCollectionVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page, pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(BsUserGoodsCollectionAddBo bo) {
+        BsUserGoodsCollection add = BeanUtil.toBean(bo, BsUserGoodsCollection.class);
+        validEntityBeforeSave(add);
+        if (Validator.isNotEmpty(bo.getConfigId())) {
+            OrderBusinessConfigQueryBo orderBusinessConfigQueryBo = new OrderBusinessConfigQueryBo();
+            orderBusinessConfigQueryBo.setId(bo.getConfigId());
+            OrderBusinessConfigVo detail = iOrderBusinessConfigService.getDetail(orderBusinessConfigQueryBo);
+            add.setType(10L);
+            add.setGoodsName(detail.getConfigName());
+            add.setEducationType(detail.getEducationType());
+            add.setEducationName(detail.getEducationName());
+            add.setProjectId(detail.getProjectId());
+            add.setProjectName(detail.getProjectName());
+
+        }
+        if (Validator.isNotEmpty(bo.getGoodsId())) {
+            GoodsQueryBo goodsQueryBo = new GoodsQueryBo();
+            goodsQueryBo.setGoodsId(bo.getGoodsId());
+            List<Integer> integers = new ArrayList<>();
+            integers.add(1);
+            goodsQueryBo.setStatus(integers);
+            List<CompanyGoodsVo> list = iGoodsService.selectBsGoodList(goodsQueryBo);
+            if (Validator.isNotEmpty(list)) {
+                CompanyGoodsVo goods = list.get(0);
+                add.setType(goods.getGoodsType().longValue());
+                add.setGoodsName(goods.getGoodsName());
+                add.setEducationType(goods.getEducationTypeId());
+                add.setEducationName(goods.getEducationName());
+                add.setProjectId(goods.getProjectId());
+                add.setProjectName(goods.getProjectName());
+            }
+        }
+        add.setUserId(bo.getUserId());
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(BsUserGoodsCollectionEditBo bo) {
+        BsUserGoodsCollection update = BeanUtil.toBean(bo, BsUserGoodsCollection.class);
+        validEntityBeforeSave(update);
+        BsUserGoodsCollectionVo bsUserGoodsCollectionVo = this.queryById(update.getId());
+        if (Validator.isNotEmpty(bsUserGoodsCollectionVo)&&bsUserGoodsCollectionVo.getCollectStatus()!=0){
+            update.setCollectStatus(0);
+            update.setUpdateTime(DateUtils.getNowTime());
+        }else {
+            throw new CustomException("当前收藏商品不存在");
+        }
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(BsUserGoodsCollection entity) {
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 58 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/goods/vo/BsUserGoodsCollectionVo.java

@@ -0,0 +1,58 @@
+package com.zhongzheng.modules.bs.goods.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 用户商品收藏视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2024-04-22
+ */
+@Data
+@ApiModel("用户商品收藏视图对象")
+public class BsUserGoodsCollectionVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 商品id */
+	@Excel(name = "商品id")
+	@ApiModelProperty("商品id")
+	private Long goodsId;
+	/** 商品id */
+	@Excel(name = "商品包配置id")
+	@ApiModelProperty("商品包配置id")
+	private Long configId;
+	/** 类型 */
+	@ApiModelProperty("类型")
+	private Long type;
+	/** 用户id */
+	@Excel(name = "用户id")
+	@ApiModelProperty("用户id")
+	private Long userId;
+	/** 状态 1有效 0无效 */
+	@Excel(name = "状态 1有效 0无效")
+	@ApiModelProperty("状态 1有效 0无效")
+	private Integer status;
+	/** 收藏状态 1有效 0无效 */
+	@Excel(name = "收藏状态 1有效 0无效")
+	@ApiModelProperty("收藏状态 1有效 0无效")
+	private Integer collectStatus;
+	private String mainImg;
+	private String goodsName;
+	private String educationName;
+	private String projectName;
+	private String subjectName;
+	private String goods;
+	private String year;
+	private String price;
+
+
+}

+ 4 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffAddBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffAddBo.java

@@ -1,16 +1,9 @@
-package com.zhongzheng.modules.staff.bo;
+package com.zhongzheng.modules.bs.staff.bo;
 
-import com.zhongzheng.modules.staff.domain.StaffBankInfo;
-import com.zhongzheng.modules.staff.domain.StaffContractArchives;
-import com.zhongzheng.modules.staff.domain.StaffEduBg;
-import com.zhongzheng.modules.staff.domain.StaffEmergencyContact;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
-import org.apache.catalina.LifecycleState;
 
-import java.util.Date;
 import java.util.List;
 
 
@@ -101,6 +94,9 @@ public class StaffAddBo {
     /** 身份证结束期限 */
     @ApiModelProperty("身份证结束期限")
     private Long endDate;
+    /** 身份证结束期限 */
+    @ApiModelProperty("身份证结束期限")
+    private int longFlag;
     /** 标签 */
     @ApiModelProperty("标签")
     private String label;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffBankInfoAddBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffBankInfoAddBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.staff.bo;
+package com.zhongzheng.modules.bs.staff.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffBankInfoEditBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffBankInfoEditBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.staff.bo;
+package com.zhongzheng.modules.bs.staff.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffBankInfoQueryBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffBankInfoQueryBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.staff.bo;
+package com.zhongzheng.modules.bs.staff.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateAddBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffCertificateAddBo.java

@@ -1,6 +1,5 @@
-package com.zhongzheng.modules.staff.bo;
+package com.zhongzheng.modules.bs.staff.bo;
 
-import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateEditBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffCertificateEditBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.staff.bo;
+package com.zhongzheng.modules.bs.staff.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateMajorInfo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffCertificateMajorInfo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.staff.bo;
+package com.zhongzheng.modules.bs.staff.bo;
 
 import com.zhongzheng.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/staff/bo/StaffCertificateQueryBo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/bs/staff/bo/StaffCertificateQueryBo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.staff.bo;
+package com.zhongzheng.modules.bs.staff.bo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно