From 437044a890739efdc8537a7b3be3a3316acc1930 Mon Sep 17 00:00:00 2001 From: gxwebsoft Date: Fri, 3 Nov 2023 22:22:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=B7=A5=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=A8=A1=E5=9D=97=E5=8F=8A=E7=BB=86=E8=8A=82=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/controller/AdController.java | 9 - .../controller/ArticleCategoryController.java | 9 - .../controller/ArticleCommentController.java | 9 - .../cms/controller/ArticleController.java | 9 - .../cms/controller/ArticleLikeController.java | 9 - .../cms/controller/DocsController.java | 9 - .../java/com/gxwebsoft/cms/entity/Ad.java | 4 +- .../com/gxwebsoft/cms/entity/Article.java | 6 +- .../gxwebsoft/cms/entity/ArticleCategory.java | 6 +- .../gxwebsoft/cms/entity/ArticleComment.java | 6 +- .../com/gxwebsoft/cms/entity/ArticleLike.java | 4 +- .../java/com/gxwebsoft/cms/entity/Docs.java | 6 +- .../common/core/config/MybatisPlusConfig.java | 1 - .../core/constants/QRCodeConstants.java | 10 + .../common/core/constants/TaskConstants.java | 22 ++ .../security/JwtAuthenticationFilter.java | 1 + .../gxwebsoft/common/core/utils/BtUtil.java | 149 +++++++++++ .../common/core/utils/CommonUtil.java | 45 +++- .../common/core/utils/MyQrCodeUtil.java | 51 ++-- .../common/core/utils/SchedulingUtil.java | 20 -- .../gxwebsoft/common/core/web/BaseParam.java | 8 + .../system/controller/MainController.java | 65 +---- .../common/system/entity/AccessKey.java | 54 ---- .../common/system/entity/Tenant.java | 1 + .../gxwebsoft/common/system/entity/User.java | 1 + .../common/system/mapper/AccessKeyMapper.java | 37 --- .../system/mapper/xml/FileRecordMapper.xml | 3 - .../common/system/param/AccessKeyParam.java | 55 ---- .../system/service/AccessKeyService.java | 42 --- .../service/impl/AccessKeyServiceImpl.java | 47 ---- .../system/service/impl/UserServiceImpl.java | 10 +- .../oa/controller/AppController.java | 164 ++++++++++++ .../oa/controller/AppUserController.java | 117 +++++++++ .../oa/controller/AssetsController.java | 156 ++++++++++++ .../oa/controller/AssetsUserController.java | 114 +++++++++ .../controller/CompanyController.java | 61 ++--- .../oa/controller/TaskController.java | 207 +++++++++++++++ .../oa/controller/TaskCountController.java | 121 +++++++++ .../oa/controller/TaskRecordController.java | 133 ++++++++++ .../oa/controller/TaskUserController.java | 121 +++++++++ .../java/com/gxwebsoft/oa/entity/App.java | 240 ++++++++++++++++++ .../java/com/gxwebsoft/oa/entity/AppUser.java | 71 ++++++ .../java/com/gxwebsoft/oa/entity/Assets.java | 173 +++++++++++++ .../com/gxwebsoft/oa/entity/AssetsUser.java | 71 ++++++ .../{common/system => oa}/entity/Company.java | 117 +++++---- .../java/com/gxwebsoft/oa/entity/Task.java | 137 ++++++++++ .../com/gxwebsoft/oa/entity/TaskCount.java | 87 +++++++ .../com/gxwebsoft/oa/entity/TaskRecord.java | 85 +++++++ .../com/gxwebsoft/oa/entity/TaskUser.java | 50 ++++ .../com/gxwebsoft/oa/mapper/AppMapper.java | 37 +++ .../gxwebsoft/oa/mapper/AppUserMapper.java | 37 +++ .../com/gxwebsoft/oa/mapper/AssetsMapper.java | 37 +++ .../gxwebsoft/oa/mapper/AssetsUserMapper.java | 37 +++ .../system => oa}/mapper/CompanyMapper.java | 9 +- .../gxwebsoft/oa/mapper/TaskCountMapper.java | 39 +++ .../com/gxwebsoft/oa/mapper/TaskMapper.java | 44 ++++ .../gxwebsoft/oa/mapper/TaskRecordMapper.java | 37 +++ .../gxwebsoft/oa/mapper/TaskUserMapper.java | 37 +++ .../com/gxwebsoft/oa/mapper/xml/AppMapper.xml | 203 +++++++++++++++ .../gxwebsoft/oa/mapper/xml/AppUserMapper.xml | 44 ++++ .../gxwebsoft/oa/mapper/xml/AssetsMapper.xml | 142 +++++++++++ .../mapper/xml/AssetsUserMapper.xml} | 24 +- .../mapper/xml/CompanyMapper.xml | 85 +++++-- .../oa/mapper/xml/TaskCountMapper.xml | 59 +++++ .../gxwebsoft/oa/mapper/xml/TaskMapper.xml | 126 +++++++++ .../oa/mapper/xml/TaskRecordMapper.xml | 62 +++++ .../oa/mapper/xml/TaskUserMapper.xml | 44 ++++ .../java/com/gxwebsoft/oa/param/AppParam.java | 220 ++++++++++++++++ .../com/gxwebsoft/oa/param/AppUserParam.java | 66 +++++ .../com/gxwebsoft/oa/param/AssetsParam.java | 152 +++++++++++ .../gxwebsoft/oa/param/AssetsUserParam.java | 45 ++++ .../com/gxwebsoft/oa/param/CompanyParam.java | 183 +++++++++++++ .../gxwebsoft/oa/param/TaskCountParam.java | 63 +++++ .../com/gxwebsoft/oa/param/TaskParam.java | 123 +++++++++ .../gxwebsoft/oa/param/TaskRecordParam.java | 62 +++++ .../com/gxwebsoft/oa/param/TaskUserParam.java | 45 ++++ .../com/gxwebsoft/oa/service/AppService.java | 42 +++ .../gxwebsoft/oa/service/AppUserService.java | 42 +++ .../gxwebsoft/oa/service/AssetsService.java | 42 +++ .../oa/service/AssetsUserService.java | 42 +++ .../system => oa}/service/CompanyService.java | 10 +- .../oa/service/TaskCountService.java | 44 ++++ .../oa/service/TaskRecordService.java | 43 ++++ .../com/gxwebsoft/oa/service/TaskService.java | 54 ++++ .../gxwebsoft/oa/service/TaskUserService.java | 42 +++ .../oa/service/impl/AppServiceImpl.java | 47 ++++ .../oa/service/impl/AppUserServiceImpl.java | 47 ++++ .../oa/service/impl/AssetsServiceImpl.java | 47 ++++ .../service/impl/AssetsUserServiceImpl.java | 47 ++++ .../service/impl/CompanyServiceImpl.java | 22 +- .../oa/service/impl/TaskCountServiceImpl.java | 131 ++++++++++ .../service/impl/TaskRecordServiceImpl.java | 91 +++++++ .../oa/service/impl/TaskServiceImpl.java | 165 ++++++++++++ .../oa/service/impl/TaskUserServiceImpl.java | 47 ++++ src/main/resources/application.yml | 2 + .../gxwebsoft/generator/CodeGenerator.java | 167 ------------ .../{SysGenerator.java => OaGenerator.java} | 32 +-- .../generator/templates/controller.java.btl | 41 --- 98 files changed, 5463 insertions(+), 779 deletions(-) create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/QRCodeConstants.java create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/TaskConstants.java create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/BtUtil.java delete mode 100644 src/main/java/com/gxwebsoft/common/core/utils/SchedulingUtil.java delete mode 100644 src/main/java/com/gxwebsoft/common/system/entity/AccessKey.java delete mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/AccessKeyMapper.java delete mode 100644 src/main/java/com/gxwebsoft/common/system/param/AccessKeyParam.java delete mode 100644 src/main/java/com/gxwebsoft/common/system/service/AccessKeyService.java delete mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/AccessKeyServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/oa/controller/AppController.java create mode 100644 src/main/java/com/gxwebsoft/oa/controller/AppUserController.java create mode 100644 src/main/java/com/gxwebsoft/oa/controller/AssetsController.java create mode 100644 src/main/java/com/gxwebsoft/oa/controller/AssetsUserController.java rename src/main/java/com/gxwebsoft/{common/system => oa}/controller/CompanyController.java (60%) create mode 100644 src/main/java/com/gxwebsoft/oa/controller/TaskController.java create mode 100644 src/main/java/com/gxwebsoft/oa/controller/TaskCountController.java create mode 100644 src/main/java/com/gxwebsoft/oa/controller/TaskRecordController.java create mode 100644 src/main/java/com/gxwebsoft/oa/controller/TaskUserController.java create mode 100644 src/main/java/com/gxwebsoft/oa/entity/App.java create mode 100644 src/main/java/com/gxwebsoft/oa/entity/AppUser.java create mode 100644 src/main/java/com/gxwebsoft/oa/entity/Assets.java create mode 100644 src/main/java/com/gxwebsoft/oa/entity/AssetsUser.java rename src/main/java/com/gxwebsoft/{common/system => oa}/entity/Company.java (61%) create mode 100644 src/main/java/com/gxwebsoft/oa/entity/Task.java create mode 100644 src/main/java/com/gxwebsoft/oa/entity/TaskCount.java create mode 100644 src/main/java/com/gxwebsoft/oa/entity/TaskRecord.java create mode 100644 src/main/java/com/gxwebsoft/oa/entity/TaskUser.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/AppMapper.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/AppUserMapper.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/AssetsMapper.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/AssetsUserMapper.java rename src/main/java/com/gxwebsoft/{common/system => oa}/mapper/CompanyMapper.java (75%) create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/TaskCountMapper.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/TaskMapper.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/TaskRecordMapper.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/TaskUserMapper.java create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/xml/AppMapper.xml create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/xml/AppUserMapper.xml create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/xml/AssetsMapper.xml rename src/main/java/com/gxwebsoft/{common/system/mapper/xml/AccessKeyMapper.xml => oa/mapper/xml/AssetsUserMapper.xml} (55%) rename src/main/java/com/gxwebsoft/{common/system => oa}/mapper/xml/CompanyMapper.xml (59%) create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/xml/TaskCountMapper.xml create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/xml/TaskMapper.xml create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/xml/TaskRecordMapper.xml create mode 100644 src/main/java/com/gxwebsoft/oa/mapper/xml/TaskUserMapper.xml create mode 100644 src/main/java/com/gxwebsoft/oa/param/AppParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/param/AppUserParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/param/AssetsParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/param/AssetsUserParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/param/CompanyParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/param/TaskCountParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/param/TaskParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/param/TaskRecordParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/param/TaskUserParam.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/AppService.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/AppUserService.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/AssetsService.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/AssetsUserService.java rename src/main/java/com/gxwebsoft/{common/system => oa}/service/CompanyService.java (76%) create mode 100644 src/main/java/com/gxwebsoft/oa/service/TaskCountService.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/TaskRecordService.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/TaskService.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/TaskUserService.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/impl/AppServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/impl/AppUserServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/impl/AssetsServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/impl/AssetsUserServiceImpl.java rename src/main/java/com/gxwebsoft/{common/system => oa}/service/impl/CompanyServiceImpl.java (65%) create mode 100644 src/main/java/com/gxwebsoft/oa/service/impl/TaskCountServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/impl/TaskRecordServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/impl/TaskServiceImpl.java create mode 100644 src/main/java/com/gxwebsoft/oa/service/impl/TaskUserServiceImpl.java delete mode 100644 src/test/java/com/gxwebsoft/generator/CodeGenerator.java rename src/test/java/com/gxwebsoft/generator/{SysGenerator.java => OaGenerator.java} (91%) diff --git a/src/main/java/com/gxwebsoft/cms/controller/AdController.java b/src/main/java/com/gxwebsoft/cms/controller/AdController.java index 0d649f8..ce59be7 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/AdController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/AdController.java @@ -30,7 +30,6 @@ public class AdController extends BaseController { @Resource private AdService adService; - @PreAuthorize("hasAuthority('cms:ad:list')") @ApiOperation("分页查询广告位管理表") @GetMapping("/page") public ApiResult> page(AdParam param) { @@ -41,7 +40,6 @@ public class AdController extends BaseController { //return success(adService.pageRel(param)); } - @PreAuthorize("hasAuthority('cms:ad:list')") @ApiOperation("查询全部广告位管理表") @GetMapping() public ApiResult> list(AdParam param) { @@ -52,7 +50,6 @@ public class AdController extends BaseController { //return success(adService.listRel(param)); } - @PreAuthorize("hasAuthority('cms:ad:list')") @ApiOperation("根据id查询广告位管理表") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { @@ -61,7 +58,6 @@ public class AdController extends BaseController { //return success(adService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('cms:ad:save')") @ApiOperation("添加广告位管理表") @PostMapping() public ApiResult save(@RequestBody Ad ad) { @@ -76,7 +72,6 @@ public class AdController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:ad:update')") @ApiOperation("修改广告位管理表") @PutMapping() public ApiResult update(@RequestBody Ad ad) { @@ -86,7 +81,6 @@ public class AdController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:ad:remove')") @ApiOperation("删除广告位管理表") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { @@ -96,7 +90,6 @@ public class AdController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('cms:ad:save')") @ApiOperation("批量添加广告位管理表") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { @@ -106,7 +99,6 @@ public class AdController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:ad:update')") @ApiOperation("批量修改广告位管理表") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { @@ -116,7 +108,6 @@ public class AdController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:ad:remove')") @ApiOperation("批量删除广告位管理表") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { diff --git a/src/main/java/com/gxwebsoft/cms/controller/ArticleCategoryController.java b/src/main/java/com/gxwebsoft/cms/controller/ArticleCategoryController.java index 32f9f7a..879f25d 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/ArticleCategoryController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/ArticleCategoryController.java @@ -31,7 +31,6 @@ public class ArticleCategoryController extends BaseController { @Resource private ArticleCategoryService articleCategoryService; - @PreAuthorize("hasAuthority('cms:articleCategory:list')") @ApiOperation("分页查询文章分类表") @GetMapping("/page") public ApiResult> page(ArticleCategoryParam param) { @@ -42,7 +41,6 @@ public class ArticleCategoryController extends BaseController { //return success(articleCategoryService.pageRel(param)); } - @PreAuthorize("hasAuthority('cms:articleCategory:list')") @ApiOperation("查询全部文章分类表") @GetMapping() public ApiResult> list(ArticleCategoryParam param) { @@ -53,7 +51,6 @@ public class ArticleCategoryController extends BaseController { //return success(articleCategoryService.listRel(param)); } - @PreAuthorize("hasAuthority('cms:articleCategory:list')") @ApiOperation("根据id查询文章分类表") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { @@ -62,7 +59,6 @@ public class ArticleCategoryController extends BaseController { //return success(articleCategoryService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('cms:articleCategory:save')") @ApiOperation("添加文章分类表") @PostMapping() public ApiResult save(@RequestBody ArticleCategory articleCategory) { @@ -77,7 +73,6 @@ public class ArticleCategoryController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:articleCategory:update')") @ApiOperation("修改文章分类表") @PutMapping() public ApiResult update(@RequestBody ArticleCategory articleCategory) { @@ -87,7 +82,6 @@ public class ArticleCategoryController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:articleCategory:remove')") @ApiOperation("删除文章分类表") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { @@ -97,7 +91,6 @@ public class ArticleCategoryController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('cms:articleCategory:save')") @ApiOperation("批量添加文章分类表") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { @@ -107,7 +100,6 @@ public class ArticleCategoryController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:articleCategory:update')") @ApiOperation("批量修改文章分类表") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { @@ -117,7 +109,6 @@ public class ArticleCategoryController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:articleCategory:remove')") @ApiOperation("批量删除文章分类表") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { diff --git a/src/main/java/com/gxwebsoft/cms/controller/ArticleCommentController.java b/src/main/java/com/gxwebsoft/cms/controller/ArticleCommentController.java index 4eb0873..6aafdad 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/ArticleCommentController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/ArticleCommentController.java @@ -31,7 +31,6 @@ public class ArticleCommentController extends BaseController { @Resource private ArticleCommentService articleCommentService; - @PreAuthorize("hasAuthority('cms:articleComment:list')") @ApiOperation("分页查询文章评论表") @GetMapping("/page") public ApiResult> page(ArticleCommentParam param) { @@ -42,7 +41,6 @@ public class ArticleCommentController extends BaseController { //return success(articleCommentService.pageRel(param)); } - @PreAuthorize("hasAuthority('cms:articleComment:list')") @ApiOperation("查询全部文章评论表") @GetMapping() public ApiResult> list(ArticleCommentParam param) { @@ -53,7 +51,6 @@ public class ArticleCommentController extends BaseController { //return success(articleCommentService.listRel(param)); } - @PreAuthorize("hasAuthority('cms:articleComment:list')") @ApiOperation("根据id查询文章评论表") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { @@ -62,7 +59,6 @@ public class ArticleCommentController extends BaseController { //return success(articleCommentService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('cms:articleComment:save')") @ApiOperation("添加文章评论表") @PostMapping() public ApiResult save(@RequestBody ArticleComment articleComment) { @@ -77,7 +73,6 @@ public class ArticleCommentController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:articleComment:update')") @ApiOperation("修改文章评论表") @PutMapping() public ApiResult update(@RequestBody ArticleComment articleComment) { @@ -87,7 +82,6 @@ public class ArticleCommentController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:articleComment:remove')") @ApiOperation("删除文章评论表") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { @@ -97,7 +91,6 @@ public class ArticleCommentController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('cms:articleComment:save')") @ApiOperation("批量添加文章评论表") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { @@ -107,7 +100,6 @@ public class ArticleCommentController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:articleComment:update')") @ApiOperation("批量修改文章评论表") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { @@ -117,7 +109,6 @@ public class ArticleCommentController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:articleComment:remove')") @ApiOperation("批量删除文章评论表") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { diff --git a/src/main/java/com/gxwebsoft/cms/controller/ArticleController.java b/src/main/java/com/gxwebsoft/cms/controller/ArticleController.java index 8ab8543..783d104 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/ArticleController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/ArticleController.java @@ -31,7 +31,6 @@ public class ArticleController extends BaseController { @Resource private ArticleService articleService; - @PreAuthorize("hasAuthority('cms:article:list')") @ApiOperation("分页查询文章记录表") @GetMapping("/page") public ApiResult> page(ArticleParam param) { @@ -42,7 +41,6 @@ public class ArticleController extends BaseController { //return success(articleService.pageRel(param)); } - @PreAuthorize("hasAuthority('cms:article:list')") @ApiOperation("查询全部文章记录表") @GetMapping() public ApiResult> list(ArticleParam param) { @@ -53,7 +51,6 @@ public class ArticleController extends BaseController { //return success(articleService.listRel(param)); } - @PreAuthorize("hasAuthority('cms:article:list')") @ApiOperation("根据id查询文章记录表") @GetMapping("/{id}") public ApiResult
get(@PathVariable("id") Integer id) { @@ -62,7 +59,6 @@ public class ArticleController extends BaseController { //return success(articleService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('cms:article:save')") @ApiOperation("添加文章记录表") @PostMapping() public ApiResult save(@RequestBody Article article) { @@ -77,7 +73,6 @@ public class ArticleController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:article:update')") @ApiOperation("修改文章记录表") @PutMapping() public ApiResult update(@RequestBody Article article) { @@ -87,7 +82,6 @@ public class ArticleController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:article:remove')") @ApiOperation("删除文章记录表") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { @@ -97,7 +91,6 @@ public class ArticleController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('cms:article:save')") @ApiOperation("批量添加文章记录表") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List
list) { @@ -107,7 +100,6 @@ public class ArticleController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:article:update')") @ApiOperation("批量修改文章记录表") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam
batchParam) { @@ -117,7 +109,6 @@ public class ArticleController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:article:remove')") @ApiOperation("批量删除文章记录表") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { diff --git a/src/main/java/com/gxwebsoft/cms/controller/ArticleLikeController.java b/src/main/java/com/gxwebsoft/cms/controller/ArticleLikeController.java index c85c860..970f79b 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/ArticleLikeController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/ArticleLikeController.java @@ -31,7 +31,6 @@ public class ArticleLikeController extends BaseController { @Resource private ArticleLikeService articleLikeService; - @PreAuthorize("hasAuthority('cms:articleLike:list')") @ApiOperation("分页查询点赞文章") @GetMapping("/page") public ApiResult> page(ArticleLikeParam param) { @@ -42,7 +41,6 @@ public class ArticleLikeController extends BaseController { //return success(articleLikeService.pageRel(param)); } - @PreAuthorize("hasAuthority('cms:articleLike:list')") @ApiOperation("查询全部点赞文章") @GetMapping() public ApiResult> list(ArticleLikeParam param) { @@ -53,7 +51,6 @@ public class ArticleLikeController extends BaseController { //return success(articleLikeService.listRel(param)); } - @PreAuthorize("hasAuthority('cms:articleLike:list')") @ApiOperation("根据id查询点赞文章") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { @@ -62,7 +59,6 @@ public class ArticleLikeController extends BaseController { //return success(articleLikeService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('cms:articleLike:save')") @ApiOperation("添加点赞文章") @PostMapping() public ApiResult save(@RequestBody ArticleLike articleLike) { @@ -77,7 +73,6 @@ public class ArticleLikeController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:articleLike:update')") @ApiOperation("修改点赞文章") @PutMapping() public ApiResult update(@RequestBody ArticleLike articleLike) { @@ -87,7 +82,6 @@ public class ArticleLikeController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:articleLike:remove')") @ApiOperation("删除点赞文章") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { @@ -97,7 +91,6 @@ public class ArticleLikeController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('cms:articleLike:save')") @ApiOperation("批量添加点赞文章") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { @@ -107,7 +100,6 @@ public class ArticleLikeController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:articleLike:update')") @ApiOperation("批量修改点赞文章") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { @@ -117,7 +109,6 @@ public class ArticleLikeController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:articleLike:remove')") @ApiOperation("批量删除点赞文章") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { diff --git a/src/main/java/com/gxwebsoft/cms/controller/DocsController.java b/src/main/java/com/gxwebsoft/cms/controller/DocsController.java index 7d55884..1867182 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/DocsController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/DocsController.java @@ -31,7 +31,6 @@ public class DocsController extends BaseController { @Resource private DocsService docsService; - @PreAuthorize("hasAuthority('cms:docs:list')") @ApiOperation("分页查询文档管理记录表") @GetMapping("/page") public ApiResult> page(DocsParam param) { @@ -42,7 +41,6 @@ public class DocsController extends BaseController { //return success(docsService.pageRel(param)); } - @PreAuthorize("hasAuthority('cms:docs:list')") @ApiOperation("查询全部文档管理记录表") @GetMapping() public ApiResult> list(DocsParam param) { @@ -53,7 +51,6 @@ public class DocsController extends BaseController { //return success(docsService.listRel(param)); } - @PreAuthorize("hasAuthority('cms:docs:list')") @ApiOperation("根据id查询文档管理记录表") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { @@ -62,7 +59,6 @@ public class DocsController extends BaseController { //return success(docsService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('cms:docs:save')") @ApiOperation("添加文档管理记录表") @PostMapping() public ApiResult save(@RequestBody Docs docs) { @@ -77,7 +73,6 @@ public class DocsController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:docs:update')") @ApiOperation("修改文档管理记录表") @PutMapping() public ApiResult update(@RequestBody Docs docs) { @@ -87,7 +82,6 @@ public class DocsController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:docs:remove')") @ApiOperation("删除文档管理记录表") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { @@ -97,7 +91,6 @@ public class DocsController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('cms:docs:save')") @ApiOperation("批量添加文档管理记录表") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { @@ -107,7 +100,6 @@ public class DocsController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('cms:docs:update')") @ApiOperation("批量修改文档管理记录表") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { @@ -117,7 +109,6 @@ public class DocsController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('cms:docs:remove')") @ApiOperation("批量删除文档管理记录表") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { diff --git a/src/main/java/com/gxwebsoft/cms/entity/Ad.java b/src/main/java/com/gxwebsoft/cms/entity/Ad.java index 1716afd..4962509 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/Ad.java +++ b/src/main/java/com/gxwebsoft/cms/entity/Ad.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.io.Serializable; +import java.util.Date; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -55,6 +57,6 @@ public class Ad implements Serializable { private Integer tenantId; @ApiModelProperty(value = "注册时间") - private LocalDateTime createTime; + private Date createTime; } diff --git a/src/main/java/com/gxwebsoft/cms/entity/Article.java b/src/main/java/com/gxwebsoft/cms/entity/Article.java index 0ea6fce..95d34f8 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/Article.java +++ b/src/main/java/com/gxwebsoft/cms/entity/Article.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableLogic; import java.io.Serializable; +import java.util.Date; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -114,9 +116,9 @@ public class Article implements Serializable { private Integer tenantId; @ApiModelProperty(value = "注册时间") - private LocalDateTime createTime; + private Date createTime; @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; + private Date updateTime; } diff --git a/src/main/java/com/gxwebsoft/cms/entity/ArticleCategory.java b/src/main/java/com/gxwebsoft/cms/entity/ArticleCategory.java index 8cb7be1..61b41bf 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/ArticleCategory.java +++ b/src/main/java/com/gxwebsoft/cms/entity/ArticleCategory.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableLogic; import java.io.Serializable; +import java.util.Date; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -60,9 +62,9 @@ public class ArticleCategory implements Serializable { private Integer tenantId; @ApiModelProperty(value = "注册时间") - private LocalDateTime createTime; + private Date createTime; @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; + private Date updateTime; } diff --git a/src/main/java/com/gxwebsoft/cms/entity/ArticleComment.java b/src/main/java/com/gxwebsoft/cms/entity/ArticleComment.java index a124a12..12b9063 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/ArticleComment.java +++ b/src/main/java/com/gxwebsoft/cms/entity/ArticleComment.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableLogic; import java.io.Serializable; +import java.util.Date; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -69,9 +71,9 @@ public class ArticleComment implements Serializable { private Integer tenantId; @ApiModelProperty(value = "注册时间") - private LocalDateTime createTime; + private Date createTime; @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; + private Date updateTime; } diff --git a/src/main/java/com/gxwebsoft/cms/entity/ArticleLike.java b/src/main/java/com/gxwebsoft/cms/entity/ArticleLike.java index 0426b58..9bb4bf1 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/ArticleLike.java +++ b/src/main/java/com/gxwebsoft/cms/entity/ArticleLike.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.io.Serializable; +import java.util.Date; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -37,6 +39,6 @@ public class ArticleLike implements Serializable { private Integer tenantId; @ApiModelProperty(value = "注册时间") - private LocalDateTime createTime; + private Date createTime; } diff --git a/src/main/java/com/gxwebsoft/cms/entity/Docs.java b/src/main/java/com/gxwebsoft/cms/entity/Docs.java index d040d87..874e356 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/Docs.java +++ b/src/main/java/com/gxwebsoft/cms/entity/Docs.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableLogic; import java.io.Serializable; +import java.util.Date; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -63,9 +65,9 @@ public class Docs implements Serializable { private Integer tenantId; @ApiModelProperty(value = "注册时间") - private LocalDateTime createTime; + private Date createTime; @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; + private Date updateTime; } diff --git a/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java b/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java index f7dd6ce..1a0b79f 100644 --- a/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java +++ b/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java @@ -56,7 +56,6 @@ public class MybatisPlusConfig { "sys_tenant", "sys_dictionary", "sys_dictionary_data", - "oa_app", "apps_test_data" ).contains(tableName); } diff --git a/src/main/java/com/gxwebsoft/common/core/constants/QRCodeConstants.java b/src/main/java/com/gxwebsoft/common/core/constants/QRCodeConstants.java new file mode 100644 index 0000000..1b30868 --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/core/constants/QRCodeConstants.java @@ -0,0 +1,10 @@ +package com.gxwebsoft.common.core.constants; + +public class QRCodeConstants { + // 二维码类型 + public static final String USER_QRCODE = "user"; // 用户二维码 + public static final String TASK_QRCODE = "task"; // 工单二维码 + public static final String ARTICLE_QRCODE = "article"; // 文章二维码 + public static final String GOODS_QRCODE = "goods"; // 商品二维码 + public static final String DIY_QRCODE = "diy"; // 工单二维码 +} diff --git a/src/main/java/com/gxwebsoft/common/core/constants/TaskConstants.java b/src/main/java/com/gxwebsoft/common/core/constants/TaskConstants.java new file mode 100644 index 0000000..15bddf0 --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/core/constants/TaskConstants.java @@ -0,0 +1,22 @@ +package com.gxwebsoft.common.core.constants; + +public class TaskConstants { + // 工单进度 + public static final Integer TOBEARRANGED = 0; // 待安排 + public static final Integer PENDING = 1; // 待处理 + public static final Integer PROCESSING = 2; // 处理中 + public static final Integer TOBECONFIRMED = 3; // 待确认 + public static final Integer COMPLETED = 4; // 已完成 + public static final Integer CLOSED = 5; // 已关闭 + + // 工单状态 + public static final Integer TASK_STATUS_0 = 0; // 待处理 + public static final Integer TASK_STATUS_1 = 1; // 已完成 + + // 操作类型 + public static final String ACTION_1 = "派单"; + public static final String ACTION_2 = "已解决"; + public static final String ACTION_3 = "关单"; + public static final String ACTION_4 = "分享"; + public static final String ACTION_5 = "编辑"; +} diff --git a/src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java b/src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java index 0dc0fba..6c8c1c1 100644 --- a/src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java +++ b/src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java @@ -72,6 +72,7 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter { UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken( user, null, authorities); SecurityContextHolder.getContext().setAuthentication(authentication); + // token将要过期签发新token, 防止突然退出登录 // long expiration = (claims.getExpiration().getTime() - new Date().getTime()) / 1000 / 60; // if (expiration < configProperties.getTokenRefreshTime()) { diff --git a/src/main/java/com/gxwebsoft/common/core/utils/BtUtil.java b/src/main/java/com/gxwebsoft/common/core/utils/BtUtil.java new file mode 100644 index 0000000..53e1d3f --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/core/utils/BtUtil.java @@ -0,0 +1,149 @@ +package com.gxwebsoft.common.core.utils; + +import com.gxwebsoft.oa.entity.Assets; +import com.gxwebsoft.oa.service.AssetsService; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.math.BigInteger; +import java.net.URL; +import java.net.URLConnection; +import java.security.MessageDigest; +import java.util.Date; + +/** + * 宝塔工具类 + * @author 科技小王子 + * + */ +@Component +public class BtUtil { + public static Integer tenantId; + public static String server; + public static String token; + private static String timestamp; + @Resource + private AssetsService assetsService; + + // 实例化客户端 + public BtUtil client(Integer id) { + Assets assets = assetsService.getByIdRel(id); + try { + String btSign = assets.getBtSign(); + server = "http://".concat(assets.getCode()).concat(":9003"); + String url = "http://".concat(assets.getCode()) + ":9003/system?action=GetSystemTotal"; + timestamp = (new Date().getTime()+""); + String md5Sign = getMd5(btSign); + String temp = timestamp+md5Sign; + token = getMd5(temp); + + String json = "request_time="+timestamp+"&request_token="+token; + String responseText = sendPost(url,json); + System.out.println("responseText = " + responseText); + System.out.println(responseText); + } catch (Exception e) { + e.printStackTrace(); + } + return this; + } + + public String getSystemTotal(){ + String url = server.concat("/system?action=GetSystemTotal"); + String json = "request_time="+timestamp+"&request_token="+token; + String responseText = sendPost(url,json); + System.out.println("responseText = " + responseText); + return responseText; + } + + public String getDiskInfo(){ + String url = server.concat("/system?action=GetDiskInfo"); + String json = "request_time="+timestamp+"&request_token="+token; + return sendPost(url,json); + } + +// public void config() +// { +// try { +// System.out.println("tenantId = " + tenantId); +// String btSign = "XXXXXXXXXXXXXXXXXXXXXXXX"; +// String url = "http://XXX.XXX.XXX.XXX:8888/system?action=GetSystemTotal"; +// String timestamp = (new Date().getTime()+""); +// String md5Sign = getMd5(btSign); +// String temp = timestamp+md5Sign; +// String token = getMd5(temp); +// +// String json = "request_time="+timestamp+"&request_token="+token; +// String responseText = sendPost(url,json); +// System.out.println(responseText); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } + + public static String getMd5(String str) throws Exception + { + try { + // 生成一个MD5加密计算摘要 + MessageDigest md = MessageDigest.getInstance("MD5"); + // 计算md5函数 + md.update(str.getBytes()); + // digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符 + // BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值 + return new BigInteger(1, md.digest()).toString(16); + } catch (Exception e) { + throw new Exception("MD5加密出现错误,"+e.toString()); + } + } + + public static String sendPost(String url, String param) { + PrintWriter out = null; + BufferedReader in = null; + StringBuffer result = new StringBuffer(); + try { + URL realUrl = new URL(url); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "text/xml,text/javascript,text/html,application/json"); + conn.setRequestProperty("connection", "Keep-Alive"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result.append(line); + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!"+e); + e.printStackTrace(); + } + //使用finally块来关闭输出流、输入流 + finally{ + try{ + if(out!=null){ + out.close(); + } + if(in!=null){ + in.close(); + } + } + catch(IOException ex){ + ex.printStackTrace(); + } + } + return result.toString(); + } + +} diff --git a/src/main/java/com/gxwebsoft/common/core/utils/CommonUtil.java b/src/main/java/com/gxwebsoft/common/core/utils/CommonUtil.java index c11decb..3fb5008 100644 --- a/src/main/java/com/gxwebsoft/common/core/utils/CommonUtil.java +++ b/src/main/java/com/gxwebsoft/common/core/utils/CommonUtil.java @@ -6,18 +6,18 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import com.gxwebsoft.common.core.Constants; import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.system.entity.Dict; +import com.gxwebsoft.common.system.entity.Role; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.util.*; import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Function; +import java.util.stream.Collectors; /** * 常用工具方法 @@ -232,4 +232,41 @@ public class CommonUtil { } } + public static boolean hasRole(List array,String value){ + System.out.println("value = " + value); + if (value == null) { + return true; + } + if (array == null) { + return false; + } + if (!array.isEmpty()) { + final List collect = array.stream().map(Role::getRoleCode) + .collect(Collectors.toList()); + final boolean contains = collect.contains(value); + if (contains) { + return true; + } + } + return false; + } + + public static boolean hasRole(List array,List value){ + System.out.println("value = " + value); + if (value == null) { + return true; + } + if (array == null) { + return false; + } + if (!array.isEmpty()) { + final List collect = array.stream().map(Role::getRoleCode) + .collect(Collectors.toList()); + final boolean disjoint = Collections.disjoint(collect, value); + if (!disjoint) { + return true; + } + } + return false; + } } diff --git a/src/main/java/com/gxwebsoft/common/core/utils/MyQrCodeUtil.java b/src/main/java/com/gxwebsoft/common/core/utils/MyQrCodeUtil.java index 23fbbf0..420452c 100644 --- a/src/main/java/com/gxwebsoft/common/core/utils/MyQrCodeUtil.java +++ b/src/main/java/com/gxwebsoft/common/core/utils/MyQrCodeUtil.java @@ -5,10 +5,14 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.extra.qrcode.QrConfig; +import javax.annotation.Resource; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL; +import java.util.HashMap; + +import static com.gxwebsoft.common.core.constants.QRCodeConstants.*; /** * 常用工具方法 @@ -17,29 +21,47 @@ import java.net.URL; * @since 2017-06-10 10:10:22 */ public class MyQrCodeUtil { + private static final String logoUrl = "https://file.wsdns.cn/20230430/6fa31aca3b0d47af98a149cf2dd26a4f.jpeg"; /** - * 生成二维码 - * 用户ID + * 生成用户二维码 */ - public static String getCode(Integer loginUserId) throws IOException { - return createQrCode(loginUserId,loginUserId.toString()); + public static String getUserCode(Integer userId, String content) throws IOException { + return createQrCode(USER_QRCODE,userId,content); } /** - * 生成二维码 - * 支持自定义类型和内容 + * 生成工单二维码 */ - public String getCode(Integer loginUserId,String content) throws IOException { - return createQrCode(loginUserId,content); + public static String getTaskCode(Integer taskId, String content) throws IOException { + return createQrCode(TASK_QRCODE,taskId,content); + } + + /** + * 生成商品二维码 + */ + public static String getGoodsCode(Integer goodsId, String content) throws IOException { + return createQrCode(GOODS_QRCODE,goodsId,content); + } + + /** + * 生成自定义二维码 + */ + public static String getCodeMap(HashMap map) throws IOException { + return ""; } /** * 生成带水印的二维码 - * @return https://file.gxwebsoft.com/qrcode/870.jpg?v=1682925307569 + * @param type 类型 + * @param id 实体ID + * @param content 二维码内容 + * @return 二维码图片地址 */ - public static String createQrCode(Integer userId,String content) throws IOException { + public static String createQrCode(String type,Integer id, String content) throws IOException { + String filePath = "/www/wwwroot/file.ws/file/qrcode/".concat(type).concat("/"); + String qrcodeUrl = "https://file.gxwebsoft.com/qrcode/".concat(type).concat("/"); // 将URL转为BufferedImage BufferedImage bufferedImage = ImageIO.read(new URL(logoUrl)); // 生成二维码 @@ -49,13 +71,10 @@ public class MyQrCodeUtil { // 附带小logo config.setImg(bufferedImage); // 保存路径 -// String filePath = "/Users/gxwebsoft/Documents/uploads/" + "file/qrcode/" + userId + ".jpg"; - String filePath = "/www/wwwroot/file.ws/" + "file/qrcode/" + userId + ".jpg"; - String qrcodeUrl = "https://file.gxwebsoft.com/qrcode/" + userId + ".jpg" + "?v=" + DateUtil.current(); + filePath = filePath.concat(id + ".jpg"); + qrcodeUrl = qrcodeUrl.concat(id + ".jpg") + "?v=" + DateUtil.current(); + // 生成二维码 - System.out.println("config = " + config); - System.out.println("con = " + content); - System.out.println("filePath = " + filePath); QrCodeUtil.generate(content, config, FileUtil.file(filePath)); return qrcodeUrl; } diff --git a/src/main/java/com/gxwebsoft/common/core/utils/SchedulingUtil.java b/src/main/java/com/gxwebsoft/common/core/utils/SchedulingUtil.java deleted file mode 100644 index eb92a6c..0000000 --- a/src/main/java/com/gxwebsoft/common/core/utils/SchedulingUtil.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.gxwebsoft.common.core.utils; - -import javax.annotation.Resource; - -/** - * 自动执行计划 - * - * @author WebSoft - * @since 2018-12-14 08:38:19 - */ -public class SchedulingUtil { - -// @Scheduled(cron="*/5 * * * * *") -// public void reportCurrentTime() { -// System.out.println("定时任务开始 = " + new Date()); -// int count = orderService.count(new LambdaQueryWrapper().eq(Order::getPayStatus, 20)); -//// orderService.removeOrderByTimeOut(); -// System.out.println("count = " + count); -// } -} diff --git a/src/main/java/com/gxwebsoft/common/core/web/BaseParam.java b/src/main/java/com/gxwebsoft/common/core/web/BaseParam.java index 9bac416..4f27adc 100644 --- a/src/main/java/com/gxwebsoft/common/core/web/BaseParam.java +++ b/src/main/java/com/gxwebsoft/common/core/web/BaseParam.java @@ -55,6 +55,14 @@ public class BaseParam implements Serializable { @TableField(exist = false) private String keywords; + @ApiModelProperty("token") + @TableField(exist = false) + private String token; + + @ApiModelProperty("租户ID") + @TableField(exist = false) + private Integer tenantId; + /** * 获取集合中的第一条数据 * diff --git a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java index fe825b8..98a2648 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java @@ -29,6 +29,8 @@ import com.gxwebsoft.common.system.param.UpdatePasswordParam; import com.gxwebsoft.common.system.result.CaptchaResult; import com.gxwebsoft.common.system.result.LoginResult; import com.gxwebsoft.common.system.service.*; +import com.gxwebsoft.oa.entity.Company; +import com.gxwebsoft.oa.service.CompanyService; import com.wf.captcha.SpecCaptcha; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -68,8 +70,6 @@ public class MainController extends BaseController { @Resource private RedisUtil redisUtil; @Resource - private AccessKeyService accessKeyService; - @Resource private TenantService tenantService; @Resource private CompanyService companyService; @@ -85,46 +85,6 @@ public class MainController extends BaseController { return fail("不存在"); } - @ApiOperation("获取当前租户信息") - @GetMapping("/auth/tenant") - public ApiResult tenant() { - Integer tenantId = getTenantId(); - Tenant tenant = tenantService.getByIdRel(tenantId); - // 企业信息 - Company company = companyService.getByTenantIdRel(tenantId); - company.setBusinessEntity(null); - company.setPhone(null); - company.setCompanyCode(null); - tenant.setCompany(company); - // 网站菜单 - ArrayList list = new ArrayList<>(); - final Menu menu = new Menu(); - menu.setTitle("首页"); - menu.setPath("/"); - menu.setComponent("/index"); - menu.setParentId(0); - menu.setMenuType(0); - list.add(menu); - menu.setTitle("文档"); - menu.setPath("/docs?id=143"); - menu.setComponent("/content/docs/index"); - menu.setParentId(0); - menu.setMenuType(0); - list.add(menu); - tenant.setMenu(list); - // 查询游客用户 - User loginUser = userService.getByUsername("www", tenantId); - tenant.setLoginUser(loginUser); - // 设置过期时间 - Long tokenExpireTime = configProperties.getTokenExpireTime(); - // 签发token - String access_token = JwtUtil.buildToken(new JwtSubject("www", tenantId), - tokenExpireTime, configProperties.getTokenKey()); - tenant.setToken(access_token); - tenant.setUsername("www"); - return success(tenant); - } - @ApiOperation("获取登录用户信息") @GetMapping("/auth/user") public ApiResult userInfo() { @@ -275,27 +235,6 @@ public class MainController extends BaseController { } } - @ApiOperation("免密登录") - @GetMapping("/token/{userId}/{accessKey}") - public ApiResult getToken(@PathVariable("userId") Integer userId, @PathVariable("accessKey") String accessKey) { - // 免密登录 传指定的userId和AccessKey,请给指定的userId分配好角色和权限 - if (accessKeyService.count(new LambdaQueryWrapper().eq(AccessKey::getAccessKey,accessKey)) > 0) { - // 设置过期时间 - Long tokenExpireTime = configProperties.getTokenExpireTime(); - // 查询用户信息 - final User byId = userService.getById(userId); - // 登录账号|手机号码|邮箱登录 - User user = userService.getByUsername(byId.getUsername(), byId.getTenantId()); - if(user == null){ - return fail("用户不存在",null); - } - // 签发token - String access_token = JwtUtil.buildToken(new JwtSubject(user.getUsername(), user.getTenantId()), - tokenExpireTime, configProperties.getTokenKey()); - return success("登录成功", new LoginResult(access_token, user)); - } - return fail("请求失败: 40010",null); - } @ApiOperation("短信验证码登录") @PostMapping("/loginBySms") public ApiResult loginBySms(@RequestBody LoginParam param, HttpServletRequest request) { diff --git a/src/main/java/com/gxwebsoft/common/system/entity/AccessKey.java b/src/main/java/com/gxwebsoft/common/system/entity/AccessKey.java deleted file mode 100644 index 441873e..0000000 --- a/src/main/java/com/gxwebsoft/common/system/entity/AccessKey.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gxwebsoft.common.system.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableLogic; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serializable; -import java.util.Date; - -/** - * 访问凭证管理 - * - * @author 科技小王子 - * @since 2023-05-16 19:19:55 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "AccessKey对象", description = "访问凭证管理") -@TableName("sys_access_key") -public class AccessKey implements Serializable { - private static final long serialVersionUID = 1L; - - @ApiModelProperty(value = "字典项id") - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - @ApiModelProperty(value = "字典id") - private String accessKey; - - @ApiModelProperty(value = "字典项标识") - private String accessSecret; - - @ApiModelProperty(value = "排序号") - private Integer sortNumber; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "修改时间") - private Date updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/common/system/entity/Tenant.java b/src/main/java/com/gxwebsoft/common/system/entity/Tenant.java index 7f900c8..8a5cc1f 100644 --- a/src/main/java/com/gxwebsoft/common/system/entity/Tenant.java +++ b/src/main/java/com/gxwebsoft/common/system/entity/Tenant.java @@ -1,6 +1,7 @@ package com.gxwebsoft.common.system.entity; import com.baomidou.mybatisplus.annotation.*; +import com.gxwebsoft.oa.entity.Company; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/src/main/java/com/gxwebsoft/common/system/entity/User.java b/src/main/java/com/gxwebsoft/common/system/entity/User.java index 778904a..19b52a6 100644 --- a/src/main/java/com/gxwebsoft/common/system/entity/User.java +++ b/src/main/java/com/gxwebsoft/common/system/entity/User.java @@ -3,6 +3,7 @@ package com.gxwebsoft.common.system.entity; import cn.hutool.core.util.DesensitizedUtil; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; +import com.gxwebsoft.oa.entity.Company; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/AccessKeyMapper.java b/src/main/java/com/gxwebsoft/common/system/mapper/AccessKeyMapper.java deleted file mode 100644 index 658f773..0000000 --- a/src/main/java/com/gxwebsoft/common/system/mapper/AccessKeyMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.common.system.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.common.system.entity.AccessKey; -import com.gxwebsoft.common.system.param.AccessKeyParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 访问凭证管理Mapper - * - * @author 科技小王子 - * @since 2023-05-16 19:19:55 - */ -public interface AccessKeyMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") AccessKeyParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") AccessKeyParam param); - -} diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml b/src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml index 629a8d7..7e06b1f 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml +++ b/src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml @@ -52,9 +52,6 @@ AND a.content_type LIKE CONCAT('%', #{param.contentType}, '%') - - AND a.merchant_code LIKE CONCAT('%', #{param.merchantCode}, '%') - diff --git a/src/main/java/com/gxwebsoft/common/system/param/AccessKeyParam.java b/src/main/java/com/gxwebsoft/common/system/param/AccessKeyParam.java deleted file mode 100644 index 6d77044..0000000 --- a/src/main/java/com/gxwebsoft/common/system/param/AccessKeyParam.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gxwebsoft.common.system.param; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableLogic; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 查询参数 - * - * @author WebSoft - * @since 2021-08-29 20:35:09 - */ -@Data -@EqualsAndHashCode(callSuper = true) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(description = "角色查询参数") -public class AccessKeyParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @ApiModelProperty("id") - @QueryField(type = QueryType.EQ) - private Integer id; - - @ApiModelProperty("AccessKey") - private String accessKey; - - @ApiModelProperty("AccessSecret") - private String accessSecret; - - @ApiModelProperty("手机号码") - @TableField(exist = false) - private String phone; - - @ApiModelProperty("短信验证码") - @TableField(exist = false) - private String code; - - @ApiModelProperty("备注") - private String comments; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty("租户ID") - private Integer tenantId; - -} diff --git a/src/main/java/com/gxwebsoft/common/system/service/AccessKeyService.java b/src/main/java/com/gxwebsoft/common/system/service/AccessKeyService.java deleted file mode 100644 index 19946bc..0000000 --- a/src/main/java/com/gxwebsoft/common/system/service/AccessKeyService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.common.system.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.system.entity.AccessKey; -import com.gxwebsoft.common.system.param.AccessKeyParam; - -import java.util.List; - -/** - * 访问凭证管理Service - * - * @author 科技小王子 - * @since 2023-05-16 19:19:55 - */ -public interface AccessKeyService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(AccessKeyParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(AccessKeyParam param); - - /** - * 根据id查询 - * - * @param id 字典项id - * @return AccessKey - */ - AccessKey getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/AccessKeyServiceImpl.java b/src/main/java/com/gxwebsoft/common/system/service/impl/AccessKeyServiceImpl.java deleted file mode 100644 index 2f02e25..0000000 --- a/src/main/java/com/gxwebsoft/common/system/service/impl/AccessKeyServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.common.system.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.common.system.mapper.AccessKeyMapper; -import com.gxwebsoft.common.system.service.AccessKeyService; -import com.gxwebsoft.common.system.entity.AccessKey; -import com.gxwebsoft.common.system.param.AccessKeyParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 访问凭证管理Service实现 - * - * @author 科技小王子 - * @since 2023-05-16 19:19:55 - */ -@Service -public class AccessKeyServiceImpl extends ServiceImpl implements AccessKeyService { - - @Override - public PageResult pageRel(AccessKeyParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(AccessKeyParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - //page.setDefaultOrder("create_time desc"); - return page.sortRecords(list); - } - - @Override - public AccessKey getByIdRel(Integer id) { - AccessKeyParam param = new AccessKeyParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java b/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java index 22cd95f..8a98ea5 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java @@ -9,16 +9,16 @@ import com.gxwebsoft.common.core.exception.BusinessException; import com.gxwebsoft.common.core.utils.RedisUtil; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.system.entity.Company; import com.gxwebsoft.common.system.entity.Role; import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.common.system.entity.UserRole; import com.gxwebsoft.common.system.mapper.UserMapper; import com.gxwebsoft.common.system.param.UserParam; -import com.gxwebsoft.common.system.service.CompanyService; import com.gxwebsoft.common.system.service.RoleMenuService; import com.gxwebsoft.common.system.service.UserRoleService; import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.oa.entity.Company; +import com.gxwebsoft.oa.service.CompanyService; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -92,12 +92,6 @@ public class UserServiceImpl extends ServiceImpl implements Us map.put("fileUrl",object.getString("fileUrl") + "/"); user.setSystem(map); } - // 企业信息 - final Company company = companyService.getByTenantIdRel(user.getTenantId()); - if (company != null) { - user.setCompanyId(company.getCompanyId()); - user.setCompanyInfo(company); - } } return user; } diff --git a/src/main/java/com/gxwebsoft/oa/controller/AppController.java b/src/main/java/com/gxwebsoft/oa/controller/AppController.java new file mode 100644 index 0000000..776a103 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/AppController.java @@ -0,0 +1,164 @@ +package com.gxwebsoft.oa.controller; + +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.utils.RedisUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.entity.AppUser; +import com.gxwebsoft.oa.service.AppService; +import com.gxwebsoft.oa.entity.App; +import com.gxwebsoft.oa.param.AppParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.oa.service.AppUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 应用管理记录表控制器 + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +@Api(tags = "应用管理记录表管理") +@RestController +@RequestMapping("/api/oa/app") +public class AppController extends BaseController { + @Resource + private AppService appService; + @Resource + private AppUserService appUserService; + @Resource + private RedisUtil redisUtil; + + @ApiOperation("分页查询应用管理记录表") + @GetMapping("/page") + public ApiResult> page(AppParam param) { + final User loginUser = getLoginUser(); + final Integer userId = loginUser.getUserId(); + loginUser.getRoles().forEach(d -> { + if(!StrUtil.equals(d.getRoleCode(),"superAdmin") && !StrUtil.equals(d.getRoleCode(),"admin")){ + // 非管理员按项目成员权限显示 + final List list = appUserService.list(new LambdaQueryWrapper().eq(AppUser::getUserId, userId)); + final Set collect = list.stream().map(AppUser::getAppId).collect(Collectors.toSet()); + param.setAppIds(collect); + } + }); + // 使用关联查询 + return success(appService.pageRel(param)); + } + + @ApiOperation("查询全部应用管理记录表") + @GetMapping() + public ApiResult> list(AppParam param) { + // 使用关联查询 + return success(appService.listRel(param)); + } + + @ApiOperation("根据id查询应用管理记录表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(appService.getByIdRel(id)); + } + + @ApiOperation("添加应用管理记录表") + @PostMapping() + public ApiResult save(@RequestBody App app) { + // 记录当前登录用户id、租户id、商户编号 + User loginUser = getLoginUser(); + if (loginUser != null) { + app.setUserId(loginUser.getUserId()); + app.setTenantId(loginUser.getTenantId()); + } + if (appService.count(new LambdaQueryWrapper() + .eq(App::getAppCode, app.getAppCode())) > 0) { + return fail("应用标识已存在"); + } + if (appService.save(app)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改应用管理记录表") + @PutMapping() + public ApiResult update(@RequestBody App app) { + if (appService.updateById(app)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除应用管理记录表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (appService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加应用管理记录表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (appService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改应用管理记录表") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(appService, "app_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除应用管理记录表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (appService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("重置秘钥") + @PostMapping("/updateAppSecret") + public ApiResult updateAppSecret(@RequestBody App app) { + if (app.getAppId() == null) { + return fail("请勿重复操作"); + } + App result = appService.getByIdRel(app.getAppId()); + String appSecret = IdUtil.fastSimpleUUID(); + redisUtil.set("AppSecret:" + getTenantId(),appSecret); + result.setAppSecret(appSecret); + return success("重置成功",result); + } + + @ApiOperation("APP应用授权身份效验") + @GetMapping("/authentication/{appid}") + public ApiResult authentication(@PathVariable("appid") String appid) { + final App appInfo = appService.getById(appid); + if(appInfo == null){ + return fail("应用不存在:".concat(appid)); + } + return success("应用信息",appInfo); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/controller/AppUserController.java b/src/main/java/com/gxwebsoft/oa/controller/AppUserController.java new file mode 100644 index 0000000..9d068f6 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/AppUserController.java @@ -0,0 +1,117 @@ +package com.gxwebsoft.oa.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.service.AppUserService; +import com.gxwebsoft.oa.entity.AppUser; +import com.gxwebsoft.oa.param.AppUserParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 应用成员控制器 + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +@Api(tags = "应用成员管理") +@RestController +@RequestMapping("/api/oa/app-user") +public class AppUserController extends BaseController { + @Resource + private AppUserService appUserService; + + @ApiOperation("分页查询应用成员") + @GetMapping("/page") + public ApiResult> page(AppUserParam param) { + // 使用关联查询 + return success(appUserService.pageRel(param)); + } + + @ApiOperation("查询全部应用成员") + @GetMapping() + public ApiResult> list(AppUserParam param) { + // 使用关联查询 + if (param.getAppId() == null) { + return fail("AppId不存在",null); + } + return success(appUserService.listRel(param)); + } + + @ApiOperation("根据id查询应用成员") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(appUserService.getByIdRel(id)); + } + + @ApiOperation("添加应用成员") + @PostMapping() + public ApiResult save(@RequestBody AppUser appUser) { + if (appUserService.count(new LambdaQueryWrapper() + .eq(AppUser::getUserId, appUser.getUserId()).eq(AppUser::getAppId,appUser.getAppId())) > 0) { + return fail("该成员已存在"); + } + if (appUserService.save(appUser)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改应用成员") + @PutMapping() + public ApiResult update(@RequestBody AppUser appUser) { + if (appUserService.updateById(appUser)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除应用成员") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (appUserService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加应用成员") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (appUserService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改应用成员") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(appUserService, "app_user_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除应用成员") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (appUserService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/controller/AssetsController.java b/src/main/java/com/gxwebsoft/oa/controller/AssetsController.java new file mode 100644 index 0000000..6468edf --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/AssetsController.java @@ -0,0 +1,156 @@ +package com.gxwebsoft.oa.controller; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.utils.BtUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.entity.AssetsUser; +import com.gxwebsoft.oa.service.AssetsService; +import com.gxwebsoft.oa.entity.Assets; +import com.gxwebsoft.oa.param.AssetsParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.oa.service.AssetsUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 服务器资产记录表控制器 + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +@Api(tags = "服务器资产记录表管理") +@RestController +@RequestMapping("/api/oa/assets") +public class AssetsController extends BaseController { + @Resource + private AssetsService assetsService; + @Resource + private AssetsUserService assetsUserService; + @Resource + private BtUtil btUtil; + + @ApiOperation("分页查询服务器资产记录表") + @GetMapping("/page") + public ApiResult> page(AssetsParam param) { + final User loginUser = getLoginUser(); + final Integer userId = loginUser.getUserId(); + loginUser.getRoles().forEach(d -> { + if(!StrUtil.equals(d.getRoleCode(),"superAdmin") && !StrUtil.equals(d.getRoleCode(),"admin")){ + // 非管理员按项目成员权限显示 + param.setSceneType("NotAdministrator"); + final List list = assetsUserService.list(new LambdaQueryWrapper().eq(AssetsUser::getUserId, userId)); + final Set collect = list.stream().map(AssetsUser::getAssetsId).collect(Collectors.toSet()); + if(!CollectionUtils.isEmpty(collect)){ + param.setAssetsIds(collect); + } + } + }); + // 非管理员并且无分配资源 + if(param.getSceneType() != null && param.getSceneType().equals("NotAdministrator") && CollectionUtils.isEmpty(param.getAssetsIds())){ + final PageResult result = new PageResult<>(); + result.setList(new ArrayList<>()); + result.setCount(0L); + return success(result); + } + // 返回查询结果 + return success(assetsService.pageRel(param)); + } + + @ApiOperation("查询全部服务器资产记录表") + @GetMapping() + public ApiResult> list(AssetsParam param) { + // 使用关联查询 + return success(assetsService.listRel(param)); + } + + @ApiOperation("根据id查询服务器资产记录表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + final Assets assets = assetsService.getByIdRel(id); + final BtUtil client = btUtil.client(id); + final String systemTotal = client.getSystemTotal(); + final String diskInfo = client.getDiskInfo(); + assets.setSystemTotal(systemTotal); + assets.setDiskInfo(diskInfo); + // 使用关联查询 + return success(assets); + } + + @ApiOperation("添加服务器资产记录表") + @PostMapping() + public ApiResult save(@RequestBody Assets assets) { + // 记录当前登录用户id、租户id + User loginUser = getLoginUser(); + if (loginUser != null) { + assets.setUserId(loginUser.getUserId()); + } + if (assetsService.count(new LambdaQueryWrapper().eq(Assets::getCode,assets.getCode())) > 0) { + return fail("该IP地址已存在"); + } + if (assetsService.save(assets)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改服务器资产记录表") + @PutMapping() + public ApiResult update(@RequestBody Assets assets) { + if (assetsService.updateById(assets)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除服务器资产记录表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (assetsService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加服务器资产记录表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (assetsService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改服务器资产记录表") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(assetsService, "assets_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除服务器资产记录表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (assetsService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/controller/AssetsUserController.java b/src/main/java/com/gxwebsoft/oa/controller/AssetsUserController.java new file mode 100644 index 0000000..32b8e8e --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/AssetsUserController.java @@ -0,0 +1,114 @@ +package com.gxwebsoft.oa.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.service.AssetsUserService; +import com.gxwebsoft.oa.entity.AssetsUser; +import com.gxwebsoft.oa.param.AssetsUserParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 服务器成员管理控制器 + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +@Api(tags = "服务器成员管理管理") +@RestController +@RequestMapping("/api/oa/assets-user") +public class AssetsUserController extends BaseController { + @Resource + private AssetsUserService assetsUserService; + + @ApiOperation("分页查询服务器成员管理") + @GetMapping("/page") + public ApiResult> page(AssetsUserParam param) { + // 使用关联查询 + return success(assetsUserService.pageRel(param)); + } + + @ApiOperation("查询全部服务器成员管理") + @GetMapping() + public ApiResult> list(AssetsUserParam param) { + // 使用关联查询 + return success(assetsUserService.listRel(param)); + } + + @ApiOperation("根据id查询服务器成员管理") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(assetsUserService.getByIdRel(id)); + } + + @ApiOperation("添加服务器成员管理") + @PostMapping() + public ApiResult save(@RequestBody AssetsUser assetsUser) { + if (assetsUserService.count(new LambdaQueryWrapper() + .eq(AssetsUser::getUserId, assetsUser.getUserId()).eq(AssetsUser::getAssetsId,assetsUser.getAssetsId())) > 0) { + return fail("该成员已存在"); + } + if (assetsUserService.save(assetsUser)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改服务器成员管理") + @PutMapping() + public ApiResult update(@RequestBody AssetsUser assetsUser) { + if (assetsUserService.updateById(assetsUser)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除服务器成员管理") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (assetsUserService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加服务器成员管理") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (assetsUserService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改服务器成员管理") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(assetsUserService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除服务器成员管理") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (assetsUserService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/common/system/controller/CompanyController.java b/src/main/java/com/gxwebsoft/oa/controller/CompanyController.java similarity index 60% rename from src/main/java/com/gxwebsoft/common/system/controller/CompanyController.java rename to src/main/java/com/gxwebsoft/oa/controller/CompanyController.java index 48ba53e..a499cce 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/CompanyController.java +++ b/src/main/java/com/gxwebsoft/oa/controller/CompanyController.java @@ -1,20 +1,18 @@ -package com.gxwebsoft.common.system.controller; +package com.gxwebsoft.oa.controller; -import cn.hutool.core.collection.CollectionUtil; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.core.web.*; -import com.gxwebsoft.common.system.entity.Company; -import com.gxwebsoft.common.system.entity.Tenant; +import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.system.entity.User; -import com.gxwebsoft.common.system.param.CompanyParam; -import com.gxwebsoft.common.system.service.CompanyService; -import com.gxwebsoft.common.system.service.FileRecordService; -import com.gxwebsoft.common.system.service.TenantService; -import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.oa.service.CompanyService; +import com.gxwebsoft.oa.entity.Company; +import com.gxwebsoft.oa.param.CompanyParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -24,16 +22,15 @@ import java.util.List; * 企业信息控制器 * * @author 科技小王子 - * @since 2023-05-27 14:57:34 + * @since 2023-10-23 19:18:58 */ @Api(tags = "企业信息管理") @RestController -@RequestMapping("/api/system/company") +@RequestMapping("/api/oa/company") public class CompanyController extends BaseController { @Resource private CompanyService companyService; - @PreAuthorize("hasAuthority('sys:company:list')") @ApiOperation("分页查询企业信息") @GetMapping("/page") public ApiResult> page(CompanyParam param) { @@ -41,23 +38,24 @@ public class CompanyController extends BaseController { return success(companyService.pageRel(param)); } - @PreAuthorize("hasAuthority('sys:company:list')") @ApiOperation("查询全部企业信息") @GetMapping() public ApiResult> list(CompanyParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(companyService.list(page.getOrderWrapper())); // 使用关联查询 - return success(companyService.listRel(param)); + //return success(companyService.listRel(param)); } - @PreAuthorize("hasAuthority('sys:company:list')") @ApiOperation("根据id查询企业信息") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { + return success(companyService.getById(id)); // 使用关联查询 - return success(companyService.getByIdRel(id)); + //return success(companyService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('sys:company:profile')") @ApiOperation("添加企业信息") @PostMapping() public ApiResult save(@RequestBody Company company) { @@ -72,18 +70,15 @@ public class CompanyController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('sys:company:profile')") @ApiOperation("修改企业信息") @PutMapping() public ApiResult update(@RequestBody Company company) { - final int count = companyService.count(); - if (companyService.updateById(company)) { + if (companyService.updateById(company)) { return success("修改成功"); } - return fail("修改失败",count); + return fail("修改失败"); } - @PreAuthorize("hasAuthority('sys:company:remove')") @ApiOperation("删除企业信息") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { @@ -93,7 +88,6 @@ public class CompanyController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('sys:company:profile')") @ApiOperation("批量添加企业信息") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { @@ -103,7 +97,6 @@ public class CompanyController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('sys:company:update')") @ApiOperation("批量修改企业信息") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { @@ -113,7 +106,6 @@ public class CompanyController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('sys:company:remove')") @ApiOperation("批量删除企业信息") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { @@ -123,17 +115,4 @@ public class CompanyController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('sys:company:profile')") - @ApiOperation("根据id查询企业信息") - @GetMapping("/profile") - public ApiResult profile() { - final CompanyParam param = new CompanyParam(); - param.setTenantId(getTenantId()); - param.setAuthoritative(true); - final List list = companyService.listRel(param); - if(!CollectionUtils.isEmpty(list)){ - return success(list.get(0)); - } - return fail("企业不存在",null); - } } diff --git a/src/main/java/com/gxwebsoft/oa/controller/TaskController.java b/src/main/java/com/gxwebsoft/oa/controller/TaskController.java new file mode 100644 index 0000000..66a4db4 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/TaskController.java @@ -0,0 +1,207 @@ +package com.gxwebsoft.oa.controller; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.security.JwtUtil; +import com.gxwebsoft.common.core.utils.CommonUtil; +import com.gxwebsoft.common.core.utils.JSONUtil; +import com.gxwebsoft.common.core.utils.MyQrCodeUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.Role; +import com.gxwebsoft.oa.entity.TaskCount; +import com.gxwebsoft.oa.entity.TaskRecord; +import com.gxwebsoft.oa.service.TaskCountService; +import com.gxwebsoft.oa.service.TaskRecordService; +import com.gxwebsoft.oa.service.TaskService; +import com.gxwebsoft.oa.entity.Task; +import com.gxwebsoft.oa.param.TaskParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.core.annotation.OperationLog; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import static com.gxwebsoft.common.core.constants.TaskConstants.*; + +/** + * 任务记录表控制器 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Api(tags = "任务记录表管理") +@RestController +@RequestMapping("/api/oa/task") +public class TaskController extends BaseController { + @Resource + private TaskService taskService; + @Resource + private TaskCountService taskCountService; + + @ApiOperation("分页查询任务记录表") + @GetMapping("/page") + public ApiResult> page(TaskParam param) { + // 使用关联查询 + param.setLoginUser(getLoginUser()); + return success(taskService.pageRel(param)); + } + + @ApiOperation("查询全部任务记录表") + @GetMapping() + public ApiResult> list(TaskParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(taskService.list(page.getOrderWrapper())); + // 使用关联查询 + //return success(taskService.listRel(param)); + } + + @ApiOperation("根据id查询任务记录表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(taskService.getByIdRel(id)); + } + + @ApiOperation("添加任务记录表") + @Transactional(rollbackFor = {Exception.class}) + @PostMapping() + public ApiResult save(@RequestBody Task task) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + task.setUserId(loginUser.getUserId()); + Role role = loginUser.getRoles().get(0); + task.setRoleId(role.getRoleId()); + task.setRoleCode(role.getRoleCode()); + task.setOrganizationId(loginUser.getOrganizationId()); + } + if (taskService.saveByRel(task)) { + return success("添加成功", task); + } + return fail("添加失败"); + } + + @ApiOperation("修改任务记录表") + @PutMapping() + public ApiResult update(@RequestBody Task task) { + task.setLoginUserId(getLoginUserId()); + if (taskService.updateById(task)) { + taskService.updateCount(task); + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除任务记录表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (taskService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加任务记录表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (taskService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改任务记录表") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(taskService, "task_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除任务记录表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (taskService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("统计信息") + @GetMapping("/count") + public ApiResult count(TaskParam param) { + User loginUser = getLoginUser(); + ArrayList countNum = taskService.getCountNum(loginUser, param); + return success("操作成功", countNum); + } + + @ApiOperation("生成工单二维码") + @GetMapping("/taskQRCode") + public ApiResult taskQRCode(TaskParam param, HttpServletRequest request) throws IOException { + String url = "https://modules.gxwebsoft.com/oa/task/detail?id=".concat(param.getTaskId().toString()); + final String qrCode = MyQrCodeUtil.getTaskCode(param.getTaskId(),url); + return success("操作成功", qrCode); + } + + @ApiOperation("生成邀请加入二维码") + @GetMapping("/taskJoinQRCode") + public ApiResult taskJoinQRCode(TaskParam param, HttpServletRequest request) throws IOException { + User loginUser = getLoginUser(); + String access_token = JwtUtil.getAccessToken(request); + String url = "https://modules.gxwebsoft.com/passport/register?type=join&dealerId=".concat(loginUser.getUserId().toString())+"&token=".concat(access_token); + final String qrCode = MyQrCodeUtil.getUserCode(loginUser.getUserId(),url); + return success("操作成功", qrCode); + } + + @Scheduled(cron="*/2 * * * * *") + public void updateProgressTask() { + System.out.println("定时任务开始 = " + DateUtil.now()); + TaskParam taskParam = new TaskParam(); + taskParam.setProgress(TOBECONFIRMED); + taskParam.setLimit(10L); + final PageResult result = taskService.pageRelAll(taskParam); + if(result.getCount() == 0){ + return; + } + final List list = result.getList(); + if (!CollectionUtils.isEmpty(list)) { + list.forEach(d -> { + try { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date newDate = DateUtil.offset(d.getUpdateTime(), DateField.MINUTE, 1); + Date date1 = df.parse(newDate.toString()); + Date date2 = df.parse(DateUtil.now()); + if(date2.after(date1)){ + d.setProgress(COMPLETED); + d.setStatus(TASK_STATUS_1); + taskService.updateByIdAll(d); + System.out.println("已解决的工单半个小时未确认则自动确认 = " + d.getTaskId()); + } + } catch (Exception e) { + e.printStackTrace(); + } + }); + } + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/controller/TaskCountController.java b/src/main/java/com/gxwebsoft/oa/controller/TaskCountController.java new file mode 100644 index 0000000..9d98480 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/TaskCountController.java @@ -0,0 +1,121 @@ +package com.gxwebsoft.oa.controller; + +import com.gxwebsoft.common.core.security.JwtUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.entity.Task; +import com.gxwebsoft.oa.service.TaskCountService; +import com.gxwebsoft.oa.entity.TaskCount; +import com.gxwebsoft.oa.param.TaskCountParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.oa.service.TaskService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * 数据统计控制器 + * + * @author 科技小王子 + * @since 2023-10-30 14:25:30 + */ +@Api(tags = "数据统计管理") +@RestController +@RequestMapping("/api/oa/task-count") +public class TaskCountController extends BaseController { + @Resource + private TaskCountService taskCountService; + + @ApiOperation("分页查询数据统计") + @GetMapping("/page") + public ApiResult> page(TaskCountParam param, HttpServletRequest request) { + param.setToken(JwtUtil.getAccessToken(request)); + param.setTenantId(getTenantId()); + return success(taskCountService.pageRel(param)); + } + + @ApiOperation("查询全部数据统计") + @GetMapping() + public ApiResult> list(TaskCountParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(taskCountService.list(page.getOrderWrapper())); + // 使用关联查询 + //return success(taskCountService.listRel(param)); + } + + @ApiOperation("根据id查询数据统计") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(taskCountService.getById(id)); + // 使用关联查询 + //return success(taskCountService.getByIdRel(id)); + } + + @ApiOperation("添加数据统计") + @PostMapping() + public ApiResult save(@RequestBody TaskCount taskCount) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + taskCount.setUserId(loginUser.getUserId()); + } + if (taskCountService.save(taskCount)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改数据统计") + @PutMapping() + public ApiResult update(@RequestBody TaskCount taskCount) { + if (taskCountService.updateById(taskCount)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除数据统计") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (taskCountService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加数据统计") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (taskCountService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改数据统计") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(taskCountService, "task_count_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除数据统计") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (taskCountService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/controller/TaskRecordController.java b/src/main/java/com/gxwebsoft/oa/controller/TaskRecordController.java new file mode 100644 index 0000000..92cd741 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/TaskRecordController.java @@ -0,0 +1,133 @@ +package com.gxwebsoft.oa.controller; + +import com.gxwebsoft.common.core.config.ConfigProperties; +import com.gxwebsoft.common.core.security.JwtUtil; +import com.gxwebsoft.common.core.utils.CommonUtil; +import com.gxwebsoft.common.core.web.*; +import com.gxwebsoft.common.system.entity.Role; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.entity.Task; +import com.gxwebsoft.oa.entity.TaskRecord; +import com.gxwebsoft.oa.param.TaskRecordParam; +import com.gxwebsoft.oa.service.TaskRecordService; +import com.gxwebsoft.oa.service.TaskService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.List; + +import static com.gxwebsoft.common.core.constants.TaskConstants.PENDING; +import static com.gxwebsoft.common.core.constants.TaskConstants.PROCESSING; + +/** + * 工单回复记录表控制器 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Api(tags = "工单回复记录表管理") +@RestController +@RequestMapping("/api/oa/task-record") +public class TaskRecordController extends BaseController { + @Resource + private TaskRecordService taskRecordService; + @Resource + private TaskService taskService; + + @ApiOperation("分页查询工单回复记录表") + @GetMapping("/page") + public ApiResult> page(TaskRecordParam param, HttpServletRequest request) { + param.setToken(JwtUtil.getAccessToken(request)); + param.setTenantId(getTenantId()); + return success(taskRecordService.pageRel(param)); + } + + @ApiOperation("查询全部工单回复记录表") + @GetMapping() + public ApiResult> list(TaskRecordParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(taskRecordService.list(page.getOrderWrapper())); + // 使用关联查询 + //return success(taskRecordService.listRel(param)); + } + + @ApiOperation("根据id查询工单回复记录表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(taskRecordService.getById(id)); + // 使用关联查询 + //return success(taskRecordService.getByIdRel(id)); + } + + @ApiOperation("添加工单回复记录表") + @PostMapping() + public ApiResult save(@RequestBody TaskRecord taskRecord) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + taskRecord.setUserId(loginUser.getUserId()); + // 技术人员更新工单状态 + Task task = taskService.getById(taskRecord.getTaskId()); + if (CommonUtil.hasRole(loginUser.getRoles(),"staff") && task.getProgress().equals(PENDING)) { + task.setProgress(PROCESSING); + task.setUpdateTime(new Date()); + taskService.updateById(task); + } + } + if (taskRecordService.save(taskRecord)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改工单回复记录表") + @PutMapping() + public ApiResult update(@RequestBody TaskRecord taskRecord) { + if (taskRecordService.updateById(taskRecord)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除工单回复记录表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (taskRecordService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加工单回复记录表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (taskRecordService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改工单回复记录表") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(taskRecordService, "task_record_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除工单回复记录表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (taskRecordService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/controller/TaskUserController.java b/src/main/java/com/gxwebsoft/oa/controller/TaskUserController.java new file mode 100644 index 0000000..321e9b7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/controller/TaskUserController.java @@ -0,0 +1,121 @@ +package com.gxwebsoft.oa.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.service.TaskUserService; +import com.gxwebsoft.oa.entity.TaskUser; +import com.gxwebsoft.oa.param.TaskUserParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 工单成员控制器 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Api(tags = "工单成员管理") +@RestController +@RequestMapping("/api/oa/task-user") +public class TaskUserController extends BaseController { + @Resource + private TaskUserService taskUserService; + + @ApiOperation("分页查询工单成员") + @GetMapping("/page") + public ApiResult> page(TaskUserParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(taskUserService.page(page, page.getWrapper())); + // 使用关联查询 + //return success(taskUserService.pageRel(param)); + } + + @ApiOperation("查询全部工单成员") + @GetMapping() + public ApiResult> list(TaskUserParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(taskUserService.list(page.getOrderWrapper())); + // 使用关联查询 + //return success(taskUserService.listRel(param)); + } + + @ApiOperation("根据id查询工单成员") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(taskUserService.getById(id)); + // 使用关联查询 + //return success(taskUserService.getByIdRel(id)); + } + + @ApiOperation("添加工单成员") + @PostMapping() + public ApiResult save(@RequestBody TaskUser taskUser) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + taskUser.setUserId(loginUser.getUserId()); + } + if (taskUserService.save(taskUser)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改工单成员") + @PutMapping() + public ApiResult update(@RequestBody TaskUser taskUser) { + if (taskUserService.updateById(taskUser)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除工单成员") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (taskUserService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加工单成员") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (taskUserService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改工单成员") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(taskUserService, "task_user_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除工单成员") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (taskUserService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/entity/App.java b/src/main/java/com/gxwebsoft/oa/entity/App.java new file mode 100644 index 0000000..ba3be90 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/App.java @@ -0,0 +1,240 @@ +package com.gxwebsoft.oa.entity; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 应用管理记录表 + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "App对象", description = "应用管理记录表") +@TableName("oa_app") +public class App implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "应用ID") + @TableId(value = "app_id", type = IdType.AUTO) + private Integer appId; + + @ApiModelProperty(value = "应用名称") + private String appName; + + @ApiModelProperty(value = "应用标识") + private String appCode; + + @ApiModelProperty(value = "上级id, 0是顶级") + private Integer parentId; + + @ApiModelProperty(value = "应用类型") + private String appType; + + @ApiModelProperty(value = "应用类型") + private String appTypeMultiple; + + @ApiModelProperty(value = "类型, 0菜单, 1按钮") + private Integer menuType; + + @ApiModelProperty(value = "企业ID") + private Integer companyId; + + @ApiModelProperty(value = "企业名称") + private String companyName; + + @ApiModelProperty(value = "应用图标") + private String appIcon; + + @ApiModelProperty(value = "二维码") + private String appQrcode; + + @ApiModelProperty(value = "链接地址") + private String appUrl; + + @ApiModelProperty(value = "后台管理地址") + private String adminUrl; + + @ApiModelProperty(value = "下载地址") + private String downUrl; + + @ApiModelProperty(value = "链接地址") + private String serverUrl; + + @ApiModelProperty(value = "文件服务器") + private String fileUrl; + + @ApiModelProperty(value = "回调地址") + private String callbackUrl; + + @ApiModelProperty(value = "腾讯文档地址") + private String docsUrl; + + @ApiModelProperty(value = "代码仓库地址") + private String gitUrl; + + @ApiModelProperty(value = "原型图地址") + private String prototypeUrl; + + @ApiModelProperty(value = "IP白名单") + private String ipAddress; + + @ApiModelProperty(value = "应用截图") + private String images; + + @ApiModelProperty(value = "应用包名") + private String packageName; + + @ApiModelProperty(value = "下载次数") + private Integer clicks; + + @ApiModelProperty(value = "安装次数") + private Integer installs; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "应用介绍") + private String content; + + @ApiModelProperty(value = "项目需求") + private String requirement; + + @ApiModelProperty(value = "开发者(个人或公司)") + private String developer; + + @ApiModelProperty(value = "项目负责人") + private String director; + + @ApiModelProperty(value = "项目经理") + private String projectDirector; + + @ApiModelProperty(value = "业务员") + private String salesman; + + @ApiModelProperty(value = "软件定价") + private BigDecimal price; + + @ApiModelProperty(value = "划线价格") + private BigDecimal linePrice; + + @ApiModelProperty(value = "评分") + private String score; + + @ApiModelProperty(value = "星级") + private String star; + + @ApiModelProperty(value = "菜单路由地址") + private String path; + + @ApiModelProperty(value = "菜单组件地址, 目录可为空") + private String component; + + @ApiModelProperty(value = "权限标识") + private String authority; + + @ApiModelProperty(value = "打开位置") + private String target; + + @ApiModelProperty(value = "是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)") + private Integer hide; + + @ApiModelProperty(value = "禁止搜索,1禁止 0 允许") + private Integer search; + + @ApiModelProperty(value = "菜单侧栏选中的path") + private String active; + + @ApiModelProperty(value = "其它路由元信息") + private String meta; + + @ApiModelProperty(value = "版本,0正式版 1体验版 2开发版") + private String edition; + + @ApiModelProperty(value = "版本号") + private String version; + + @ApiModelProperty(value = "是否已安装") + private Integer isUse; + + @ApiModelProperty(value = "附近1") + private String file1; + + @ApiModelProperty(value = "附件2") + private String file2; + + @ApiModelProperty(value = "附件3") + private String file3; + + @ApiModelProperty(value = "应用状态") + private String appStatus; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "机构id") + private Integer organizationId; + + @ApiModelProperty(value = "租户编号") + private String tenantCode; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + + @ApiModelProperty(value = "应用秘钥") + @TableField(exist = false) + private String appSecret; + + @ApiModelProperty(value = "成员管理") + @TableField(exist = false) + private List users; + + @ApiModelProperty(value = "主体名称") + @TableField(exist = false) + private String tenantName; + + @ApiModelProperty(value = "开发者名称") + @TableField(exist = false) + private String realName; + + @ApiModelProperty(value = "开发者名称") + @TableField(exist = false) + private String nickname; + + @ApiModelProperty(value = "开发者头像") + @TableField(exist = false) + private String avatar; + + @ApiModelProperty(value = "公司简称") + @TableField(exist = false) + private String shortName; + +} diff --git a/src/main/java/com/gxwebsoft/oa/entity/AppUser.java b/src/main/java/com/gxwebsoft/oa/entity/AppUser.java new file mode 100644 index 0000000..86541e7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/AppUser.java @@ -0,0 +1,71 @@ +package com.gxwebsoft.oa.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 应用成员 + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "AppUser对象", description = "应用成员") +@TableName("oa_app_user") +public class AppUser implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @TableId(value = "app_user_id", type = IdType.AUTO) + private Integer appUserId; + + @ApiModelProperty(value = "角色,10体验成员 20开发者成员 30管理员 ") + private Integer role; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "应用ID") + private Integer appId; + + @ApiModelProperty(value = "状态, 0正常, 1待确认") + private Integer status; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + + @ApiModelProperty(value = "昵称") + @TableField(exist = false) + private String nickname; + + @ApiModelProperty(value = "用户名") + @TableField(exist = false) + private String username; + + @ApiModelProperty(value = "手机号码") + @TableField(exist = false) + private String phone; + + @ApiModelProperty(value = "邮箱") + @TableField(exist = false) + private String email; + + @ApiModelProperty(value = "头像") + @TableField(exist = false) + private String avatar; + +} diff --git a/src/main/java/com/gxwebsoft/oa/entity/Assets.java b/src/main/java/com/gxwebsoft/oa/entity/Assets.java new file mode 100644 index 0000000..62a12eb --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/Assets.java @@ -0,0 +1,173 @@ +package com.gxwebsoft.oa.entity; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 服务器资产记录表 + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "Assets对象", description = "服务器资产记录表") +@TableName("oa_assets") +public class Assets implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "资产ID") + @TableId(value = "assets_id", type = IdType.AUTO) + private Integer assetsId; + + @ApiModelProperty(value = "资产名称") + private String name; + + @ApiModelProperty(value = "资产标识") + private String code; + + @ApiModelProperty(value = "资产类型") + private String type; + + @ApiModelProperty(value = "服务器厂商") + private String brand; + + @ApiModelProperty(value = "服务器配置") + private String configuration; + + @ApiModelProperty(value = "初始账号") + private String account; + + @ApiModelProperty(value = "初始密码") + private String password; + + @ApiModelProperty(value = "(阿里云/腾讯云)登录账号") + private String brandAccount; + + @ApiModelProperty(value = "(阿里云/腾讯云)登录密码") + private String brandPassword; + + @ApiModelProperty(value = "宝塔面板") + private String panel; + + @ApiModelProperty(value = "宝塔面板账号") + private String panelAccount; + + @ApiModelProperty(value = "宝塔面板密码") + private String panelPassword; + + @ApiModelProperty(value = "财务信息-合同金额") + private BigDecimal financeAmount; + + @ApiModelProperty(value = "购买年限") + private Integer financeYears; + + @ApiModelProperty(value = "续费金额") + private BigDecimal financeRenew; + + @ApiModelProperty(value = "客户名称") + private String financeCustomerName; + + @ApiModelProperty(value = "客户联系人") + private String financeCustomerContact; + + @ApiModelProperty(value = "客户联系电话") + private String financeCustomerPhone; + + @ApiModelProperty(value = "客户ID") + private Integer customerId; + + @ApiModelProperty(value = "客户名称") + private String customerName; + + @ApiModelProperty(value = "开放端口") + private String openPort; + + @ApiModelProperty(value = "详情内容") + private String content; + + @ApiModelProperty(value = "购买时间") + private Date startTime; + + @ApiModelProperty(value = "到期时间") + private Date endTime; + + @ApiModelProperty(value = "置顶状态") + private String isTop; + + @ApiModelProperty(value = "可见性(public,private,protected)") + private String visibility; + + @ApiModelProperty(value = "宝塔接口秘钥") + private String btSign; + + @ApiModelProperty(value = "文章排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "描述") + private String comments; + + @ApiModelProperty(value = "客户ID") + private Integer companyId; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "机构id") + private Integer organizationId; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private String status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + + @ApiModelProperty(value = "昵称") + @TableField(exist = false) + private String nickname; + + @ApiModelProperty(value = "开发者头像") + @TableField(exist = false) + private String avatar; + + @ApiModelProperty(value = "企业名称") + @TableField(exist = false) + private String companyName; + + @ApiModelProperty(value = "系统基础统计") + @TableField(exist = false) + private Object systemTotal; + + @ApiModelProperty(value = "磁盘分区信息") + @TableField(exist = false) + private Object diskInfo; + + @ApiModelProperty(value = "实时状态信息(CPU、内存、网络、负载)") + @TableField(exist = false) + private Object netWork; + + @ApiModelProperty(value = "网站列表") + @TableField(exist = false) + private Object sites; + +} diff --git a/src/main/java/com/gxwebsoft/oa/entity/AssetsUser.java b/src/main/java/com/gxwebsoft/oa/entity/AssetsUser.java new file mode 100644 index 0000000..37b05cb --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/AssetsUser.java @@ -0,0 +1,71 @@ +package com.gxwebsoft.oa.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 服务器成员管理 + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "AssetsUser对象", description = "服务器成员管理") +@TableName("oa_assets_user") +public class AssetsUser implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "角色,10体验成员 20开发者成员 30管理员 ") + private Integer role; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "应用ID") + private Integer assetsId; + + @ApiModelProperty(value = "状态, 0正常, 1待确认") + private Integer status; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + + @ApiModelProperty(value = "昵称") + @TableField(exist = false) + private String nickname; + + @ApiModelProperty(value = "用户名") + @TableField(exist = false) + private String username; + + @ApiModelProperty(value = "手机号码") + @TableField(exist = false) + private String phone; + + @ApiModelProperty(value = "邮箱") + @TableField(exist = false) + private String email; + + @ApiModelProperty(value = "头像") + @TableField(exist = false) + private String avatar; + +} diff --git a/src/main/java/com/gxwebsoft/common/system/entity/Company.java b/src/main/java/com/gxwebsoft/oa/entity/Company.java similarity index 61% rename from src/main/java/com/gxwebsoft/common/system/entity/Company.java rename to src/main/java/com/gxwebsoft/oa/entity/Company.java index 6cd888e..83caa50 100644 --- a/src/main/java/com/gxwebsoft/common/system/entity/Company.java +++ b/src/main/java/com/gxwebsoft/oa/entity/Company.java @@ -1,25 +1,27 @@ -package com.gxwebsoft.common.system.entity; +package com.gxwebsoft.oa.entity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.models.auth.In; import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; -import java.util.Date; - /** * 企业信息 * * @author 科技小王子 - * @since 2023-05-27 14:57:34 + * @since 2023-10-23 19:18:58 */ @Data @EqualsAndHashCode(callSuper = false) @ApiModel(value = "Company对象", description = "企业信息") -@TableName("sys_company") +@TableName("oa_company") public class Company implements Serializable { private static final long serialVersionUID = 1L; @@ -36,48 +38,48 @@ public class Company implements Serializable { @ApiModelProperty(value = "企业标识") private String companyCode; - @ApiModelProperty(value = "企业类型") + @ApiModelProperty(value = "类型 10企业 20政府单位") private String companyType; - @ApiModelProperty(value = "企业类型 多选") + @ApiModelProperty(value = "企业类型多选") private String companyTypeMultiple; @ApiModelProperty(value = "应用标识") private String companyLogo; - @ApiModelProperty(value = "企业域名") + @ApiModelProperty(value = "应用类型") + private String appType; + + @ApiModelProperty(value = "绑定域名") private String domain; @ApiModelProperty(value = "联系电话") private String phone; - @ApiModelProperty(value = "企业法人") - private String businessEntity; + @ApiModelProperty(value = "邮箱") + private String email; @ApiModelProperty(value = "发票抬头") @TableField("Invoice_header") private String invoiceHeader; + @ApiModelProperty(value = "企业法人") + private String businessEntity; + @ApiModelProperty(value = "服务开始时间") - private Date startTime; + private LocalDateTime startTime; @ApiModelProperty(value = "服务到期时间") - private Date expirationTime; + private LocalDateTime expirationTime; @ApiModelProperty(value = "应用版本 10体验版 20授权版 30旗舰版") private Integer version; - @ApiModelProperty(value = "企业成员(当前)") - private Integer users; - - @ApiModelProperty(value = "成员数量(上限)") + @ApiModelProperty(value = "成员数量(人数上限)") private Integer members; - @ApiModelProperty(value = "存储空间") - private Long storage; - - @ApiModelProperty(value = "存储空间(上限)") - private Long storageMax; + @ApiModelProperty(value = "成员数量(当前)") + private Integer users; @ApiModelProperty(value = "行业类型(父级)") private String industryParent; @@ -88,6 +90,12 @@ public class Company implements Serializable { @ApiModelProperty(value = "部门数量") private Integer departments; + @ApiModelProperty(value = "存储空间") + private Long storage; + + @ApiModelProperty(value = "存储空间(上限)") + private Long storageMax; + @ApiModelProperty(value = "所在国家") private String country; @@ -115,44 +123,59 @@ public class Company implements Serializable { @ApiModelProperty(value = "是否实名认证") private Integer authentication; + @ApiModelProperty(value = "企业默认主体") + private Integer authoritative; + + @ApiModelProperty(value = "request合法域名") + private String requestUrl; + + @ApiModelProperty(value = "socket合法域名") + private String socketUrl; + + @ApiModelProperty(value = "主控端域名") + private String serverUrl; + + @ApiModelProperty(value = "业务域名") + private String modulesUrl; + + @ApiModelProperty(value = "是否推荐") + private Integer recommend; + + @ApiModelProperty(value = "点赞数量") + private Integer likes; + + @ApiModelProperty(value = "点击数量") + private Integer clicks; + + @ApiModelProperty(value = "购买数量") + private Integer buys; + + @ApiModelProperty(value = "是否含税, 0不含, 1含") + private Integer isTax; + + @ApiModelProperty(value = "当前克隆的租户ID") + private Integer planId; + @ApiModelProperty(value = "状态") private Integer status; - @ApiModelProperty(value = "排序") + @ApiModelProperty(value = "排序号") private Integer sortNumber; @ApiModelProperty(value = "用户ID") private Integer userId; - @ApiModelProperty(value = "是否含税") - private Boolean isTax; - @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic private Integer deleted; - @ApiModelProperty(value = "创建时间") - private Date createTime; - - @ApiModelProperty(value = "修改时间") - private Date updateTime; - - @ApiModelProperty(value = "是否默认企业主体") - private Boolean authoritative; - @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "租户名称") - @TableField(exist = false) - private String tenantName; + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; - @ApiModelProperty(value = "租户编号") - @TableField(exist = false) - private String tenantCode; - - @ApiModelProperty(value = "昵称") - @TableField(exist = false) - private String nickname; + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; } diff --git a/src/main/java/com/gxwebsoft/oa/entity/Task.java b/src/main/java/com/gxwebsoft/oa/entity/Task.java new file mode 100644 index 0000000..75d2127 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/Task.java @@ -0,0 +1,137 @@ +package com.gxwebsoft.oa.entity; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 任务记录表 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "Task对象", description = "任务记录表") +@TableName("oa_task") +public class Task implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "工单ID") + @TableId(value = "task_id", type = IdType.AUTO) + private Integer taskId; + + @ApiModelProperty(value = "工单名称") + private String name; + + @ApiModelProperty(value = "工单类型") + private String taskType; + + @ApiModelProperty(value = "任务内容") + private String content; + + @ApiModelProperty(value = "工单附件") + private String files; + + @ApiModelProperty(value = "工单发起人") + private Integer promoter; + + @ApiModelProperty(value = "受理人") + private Integer commander; + + @ApiModelProperty(value = "工单状态, 0未开始 1已指派 ") + private Integer progress; + + @ApiModelProperty(value = "优先级") + private String priority; + + @ApiModelProperty(value = "品质要求") + private String quality; + + @ApiModelProperty(value = "时限(天)") + private Integer day; + + @ApiModelProperty(value = "手机号") + private String phone; + + @ApiModelProperty(value = "开始时间") + private Date startTime; + + @ApiModelProperty(value = "结束时间") + private Date endTime; + + @ApiModelProperty(value = "项目ID") + private Integer appId; + + @ApiModelProperty(value = "机构id") + private Integer organizationId; + + @ApiModelProperty(value = "项目ID") + private Integer projectId; + + @ApiModelProperty(value = "客户ID") + private Integer customerId; + + @ApiModelProperty(value = "资产ID") + private Integer assetsId; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "是否已查阅") + private Integer isRead; + + @ApiModelProperty(value = "最后回复人") + private Integer lastReadUser; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0待处理, 1已完成") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + + @ApiModelProperty(value = "项目信息") + @TableField(exist = false) + private String appName; + + @ApiModelProperty(value = "角色ID") + @TableField(exist = false) + private Integer roleId; + + @ApiModelProperty(value = "角色标识") + @TableField(exist = false) + private String roleCode; + + @ApiModelProperty(value = "操作类型") + @TableField(exist = false) + private String action; + + @ApiModelProperty(value = "当前登录用户ID") + @TableField(exist = false) + private Integer loginUserId; + +} diff --git a/src/main/java/com/gxwebsoft/oa/entity/TaskCount.java b/src/main/java/com/gxwebsoft/oa/entity/TaskCount.java new file mode 100644 index 0000000..e2ab342 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/TaskCount.java @@ -0,0 +1,87 @@ +package com.gxwebsoft.oa.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 数据统计 + * + * @author 科技小王子 + * @since 2023-10-30 14:25:30 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "TaskCount对象", description = "数据统计") +@TableName("oa_task_count") +public class TaskCount implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @TableId(value = "task_count_id", type = IdType.AUTO) + private Integer taskCountId; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "待处理数") + private Integer pending; + + @ApiModelProperty(value = "闲置可抢的工单") + private Integer unused; + + @ApiModelProperty(value = "已完成数") + private Integer completed; + + @ApiModelProperty(value = "今天处理数") + private Integer today; + + @ApiModelProperty(value = "本月处理数") + private Integer month; + + @ApiModelProperty(value = "今年处理数") + private Integer year; + + @ApiModelProperty(value = "总工单数") + private Integer total; + + @ApiModelProperty(value = "部门ID") + private Integer organizationId; + + @ApiModelProperty(value = "角色ID") + private Integer roleId; + + @ApiModelProperty(value = "角色标识") + private String roleCode; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + @ApiModelProperty(value = "昵称") + @TableField(exist = false) + private String nickname; + + @ApiModelProperty(value = "头像") + @TableField(exist = false) + private String avatar; + + @ApiModelProperty(value = "手机号码") + @TableField(exist = false) + private String phone; + +} diff --git a/src/main/java/com/gxwebsoft/oa/entity/TaskRecord.java b/src/main/java/com/gxwebsoft/oa/entity/TaskRecord.java new file mode 100644 index 0000000..192aa3a --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/TaskRecord.java @@ -0,0 +1,85 @@ +package com.gxwebsoft.oa.entity; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 工单回复记录表 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "TaskRecord对象", description = "工单回复记录表") +@TableName("oa_task_record") +public class TaskRecord implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "回复ID") + @TableId(value = "task_record_id", type = IdType.AUTO) + private Integer taskRecordId; + + @ApiModelProperty(value = "上级id, 0是顶级") + private Integer parentId; + + @ApiModelProperty(value = "工单ID") + private Integer taskId; + + @ApiModelProperty(value = "任务内容") + private String content; + + @ApiModelProperty(value = "工单附件") + private String files; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0待处理, 1已完成") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + + @ApiModelProperty(value = "发布者") + @TableField(exist = false) + private String nickname; + + @ApiModelProperty(value = "发布者头像") + @TableField(exist = false) + private String avatar; + + @ApiModelProperty(value = "所在城市") + @TableField(exist = false) + private String city; + + @ApiModelProperty(value = "回复者") + @TableField(exist = false) + private User user; + +} diff --git a/src/main/java/com/gxwebsoft/oa/entity/TaskUser.java b/src/main/java/com/gxwebsoft/oa/entity/TaskUser.java new file mode 100644 index 0000000..f84ee28 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/entity/TaskUser.java @@ -0,0 +1,50 @@ +package com.gxwebsoft.oa.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 工单成员 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "TaskUser对象", description = "工单成员") +@TableName("oa_task_user") +public class TaskUser implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @TableId(value = "task_user_id", type = IdType.AUTO) + private Integer taskUserId; + + @ApiModelProperty(value = "角色,10体验成员 20开发者成员 30管理员 ") + private Integer role; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "工单ID") + private Integer taskId; + + @ApiModelProperty(value = "状态, 0待处理, 1已完成") + private Integer status; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "加入时间") + private Date createTime; + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/AppMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/AppMapper.java new file mode 100644 index 0000000..df11357 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/AppMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.oa.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.oa.entity.App; +import com.gxwebsoft.oa.param.AppParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 应用管理记录表Mapper + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +public interface AppMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") AppParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") AppParam param); + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/AppUserMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/AppUserMapper.java new file mode 100644 index 0000000..a3dda45 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/AppUserMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.oa.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.oa.entity.AppUser; +import com.gxwebsoft.oa.param.AppUserParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 应用成员Mapper + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +public interface AppUserMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") AppUserParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") AppUserParam param); + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/AssetsMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/AssetsMapper.java new file mode 100644 index 0000000..3abc4e7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/AssetsMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.oa.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.oa.entity.Assets; +import com.gxwebsoft.oa.param.AssetsParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 服务器资产记录表Mapper + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +public interface AssetsMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") AssetsParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") AssetsParam param); + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/AssetsUserMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/AssetsUserMapper.java new file mode 100644 index 0000000..d3b87cf --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/AssetsUserMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.oa.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.oa.entity.AssetsUser; +import com.gxwebsoft.oa.param.AssetsUserParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 服务器成员管理Mapper + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +public interface AssetsUserMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") AssetsUserParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") AssetsUserParam param); + +} diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/CompanyMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/CompanyMapper.java similarity index 75% rename from src/main/java/com/gxwebsoft/common/system/mapper/CompanyMapper.java rename to src/main/java/com/gxwebsoft/oa/mapper/CompanyMapper.java index 2c0fbb8..659f600 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/CompanyMapper.java +++ b/src/main/java/com/gxwebsoft/oa/mapper/CompanyMapper.java @@ -1,10 +1,9 @@ -package com.gxwebsoft.common.system.mapper; +package com.gxwebsoft.oa.mapper; -import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.common.system.entity.Company; -import com.gxwebsoft.common.system.param.CompanyParam; +import com.gxwebsoft.oa.entity.Company; +import com.gxwebsoft.oa.param.CompanyParam; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -13,7 +12,7 @@ import java.util.List; * 企业信息Mapper * * @author 科技小王子 - * @since 2023-05-27 14:57:34 + * @since 2023-10-23 19:18:58 */ public interface CompanyMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/oa/mapper/TaskCountMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/TaskCountMapper.java new file mode 100644 index 0000000..b6e6faf --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/TaskCountMapper.java @@ -0,0 +1,39 @@ +package com.gxwebsoft.oa.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.oa.entity.TaskCount; +import com.gxwebsoft.oa.param.TaskCountParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 数据统计Mapper + * + * @author 科技小王子 + * @since 2023-10-30 14:25:30 + */ +public interface TaskCountMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") TaskCountParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") TaskCountParam param); + + + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/TaskMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/TaskMapper.java new file mode 100644 index 0000000..cd35b71 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/TaskMapper.java @@ -0,0 +1,44 @@ +package com.gxwebsoft.oa.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.oa.entity.Task; +import com.gxwebsoft.oa.param.TaskParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 任务记录表Mapper + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +public interface TaskMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") TaskParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") TaskParam param); + + @InterceptorIgnore(tenantLine = "true") + List selectPageRelAll(PageParam page, TaskParam param); + + @InterceptorIgnore(tenantLine = "true") + void updateByTaskId(@Param("param") Task task); +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/TaskRecordMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/TaskRecordMapper.java new file mode 100644 index 0000000..b6ccf6d --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/TaskRecordMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.oa.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.oa.entity.TaskRecord; +import com.gxwebsoft.oa.param.TaskRecordParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 工单回复记录表Mapper + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +public interface TaskRecordMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") TaskRecordParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") TaskRecordParam param); + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/TaskUserMapper.java b/src/main/java/com/gxwebsoft/oa/mapper/TaskUserMapper.java new file mode 100644 index 0000000..c3f791b --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/TaskUserMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.oa.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.oa.entity.TaskUser; +import com.gxwebsoft.oa.param.TaskUserParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 工单成员Mapper + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +public interface TaskUserMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") TaskUserParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") TaskUserParam param); + +} diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/AppMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/AppMapper.xml new file mode 100644 index 0000000..d67bfd3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/AppMapper.xml @@ -0,0 +1,203 @@ + + + + + + + SELECT a.* + FROM oa_app a + + + AND a.app_id = #{param.appId} + + + AND a.app_name LIKE CONCAT('%', #{param.appName}, '%') + + + AND a.app_code LIKE CONCAT('%', #{param.appCode}, '%') + + + AND a.parent_id = #{param.parentId} + + + AND a.app_type LIKE CONCAT('%', #{param.appType}, '%') + + + AND a.app_type_multiple LIKE CONCAT('%', #{param.appTypeMultiple}, '%') + + + AND a.menu_type = #{param.menuType} + + + AND a.company_id = #{param.companyId} + + + AND a.company_name LIKE CONCAT('%', #{param.companyName}, '%') + + + AND a.app_icon LIKE CONCAT('%', #{param.appIcon}, '%') + + + AND a.app_qrcode LIKE CONCAT('%', #{param.appQrcode}, '%') + + + AND a.app_url LIKE CONCAT('%', #{param.appUrl}, '%') + + + AND a.admin_url LIKE CONCAT('%', #{param.adminUrl}, '%') + + + AND a.down_url LIKE CONCAT('%', #{param.downUrl}, '%') + + + AND a.server_url LIKE CONCAT('%', #{param.serverUrl}, '%') + + + AND a.file_url LIKE CONCAT('%', #{param.fileUrl}, '%') + + + AND a.callback_url LIKE CONCAT('%', #{param.callbackUrl}, '%') + + + AND a.docs_url LIKE CONCAT('%', #{param.docsUrl}, '%') + + + AND a.git_url LIKE CONCAT('%', #{param.gitUrl}, '%') + + + AND a.prototype_url LIKE CONCAT('%', #{param.prototypeUrl}, '%') + + + AND a.ip_address LIKE CONCAT('%', #{param.ipAddress}, '%') + + + AND a.images LIKE CONCAT('%', #{param.images}, '%') + + + AND a.package_name LIKE CONCAT('%', #{param.packageName}, '%') + + + AND a.clicks = #{param.clicks} + + + AND a.installs = #{param.installs} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.content LIKE CONCAT('%', #{param.content}, '%') + + + AND a.requirement LIKE CONCAT('%', #{param.requirement}, '%') + + + AND a.developer LIKE CONCAT('%', #{param.developer}, '%') + + + AND a.director LIKE CONCAT('%', #{param.director}, '%') + + + AND a.project_director LIKE CONCAT('%', #{param.projectDirector}, '%') + + + AND a.salesman LIKE CONCAT('%', #{param.salesman}, '%') + + + AND a.price = #{param.price} + + + AND a.line_price = #{param.linePrice} + + + AND a.score LIKE CONCAT('%', #{param.score}, '%') + + + AND a.star LIKE CONCAT('%', #{param.star}, '%') + + + AND a.path LIKE CONCAT('%', #{param.path}, '%') + + + AND a.component LIKE CONCAT('%', #{param.component}, '%') + + + AND a.authority LIKE CONCAT('%', #{param.authority}, '%') + + + AND a.target LIKE CONCAT('%', #{param.target}, '%') + + + AND a.hide = #{param.hide} + + + AND a.search = #{param.search} + + + AND a.active LIKE CONCAT('%', #{param.active}, '%') + + + AND a.meta LIKE CONCAT('%', #{param.meta}, '%') + + + AND a.edition LIKE CONCAT('%', #{param.edition}, '%') + + + AND a.version LIKE CONCAT('%', #{param.version}, '%') + + + AND a.is_use = #{param.isUse} + + + AND a.file1 LIKE CONCAT('%', #{param.file1}, '%') + + + AND a.file2 LIKE CONCAT('%', #{param.file2}, '%') + + + AND a.file3 LIKE CONCAT('%', #{param.file3}, '%') + + + AND a.app_status LIKE CONCAT('%', #{param.appStatus}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.user_id = #{param.userId} + + + AND a.organization_id = #{param.organizationId} + + + AND a.tenant_code LIKE CONCAT('%', #{param.tenantCode}, '%') + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/AppUserMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/AppUserMapper.xml new file mode 100644 index 0000000..28260e4 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/AppUserMapper.xml @@ -0,0 +1,44 @@ + + + + + + + SELECT a.* + FROM oa_app_user a + + + AND a.app_user_id = #{param.appUserId} + + + AND a.role = #{param.role} + + + AND a.user_id = #{param.userId} + + + AND a.app_id = #{param.appId} + + + AND a.status = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/AssetsMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/AssetsMapper.xml new file mode 100644 index 0000000..bae784d --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/AssetsMapper.xml @@ -0,0 +1,142 @@ + + + + + + + SELECT a.* + FROM oa_assets a + + + AND a.assets_id = #{param.assetsId} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.type LIKE CONCAT('%', #{param.type}, '%') + + + AND a.brand LIKE CONCAT('%', #{param.brand}, '%') + + + AND a.configuration LIKE CONCAT('%', #{param.configuration}, '%') + + + AND a.account LIKE CONCAT('%', #{param.account}, '%') + + + AND a.password LIKE CONCAT('%', #{param.password}, '%') + + + AND a.brand_account LIKE CONCAT('%', #{param.brandAccount}, '%') + + + AND a.brand_password LIKE CONCAT('%', #{param.brandPassword}, '%') + + + AND a.panel LIKE CONCAT('%', #{param.panel}, '%') + + + AND a.panel_account LIKE CONCAT('%', #{param.panelAccount}, '%') + + + AND a.panel_password LIKE CONCAT('%', #{param.panelPassword}, '%') + + + AND a.finance_amount = #{param.financeAmount} + + + AND a.finance_years = #{param.financeYears} + + + AND a.finance_renew = #{param.financeRenew} + + + AND a.finance_customer_name LIKE CONCAT('%', #{param.financeCustomerName}, '%') + + + AND a.finance_customer_contact LIKE CONCAT('%', #{param.financeCustomerContact}, '%') + + + AND a.finance_customer_phone LIKE CONCAT('%', #{param.financeCustomerPhone}, '%') + + + AND a.customer_id = #{param.customerId} + + + AND a.customer_name LIKE CONCAT('%', #{param.customerName}, '%') + + + AND a.open_port LIKE CONCAT('%', #{param.openPort}, '%') + + + AND a.content LIKE CONCAT('%', #{param.content}, '%') + + + AND a.start_time LIKE CONCAT('%', #{param.startTime}, '%') + + + AND a.end_time LIKE CONCAT('%', #{param.endTime}, '%') + + + AND a.is_top LIKE CONCAT('%', #{param.isTop}, '%') + + + AND a.visibility LIKE CONCAT('%', #{param.visibility}, '%') + + + AND a.bt_sign LIKE CONCAT('%', #{param.btSign}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.company_id = #{param.companyId} + + + AND a.user_id = #{param.userId} + + + AND a.organization_id = #{param.organizationId} + + + AND a.status LIKE CONCAT('%', #{param.status}, '%') + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.code LIKE CONCAT('%', #{param.keywords}, '%') + OR a.name LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/AccessKeyMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/AssetsUserMapper.xml similarity index 55% rename from src/main/java/com/gxwebsoft/common/system/mapper/xml/AccessKeyMapper.xml rename to src/main/java/com/gxwebsoft/oa/mapper/xml/AssetsUserMapper.xml index 9e870d7..c9c2463 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/AccessKeyMapper.xml +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/AssetsUserMapper.xml @@ -1,26 +1,26 @@ - + SELECT a.* - FROM sys_access_key a + FROM oa_assets_user a AND a.id = #{param.id} - - AND a.accessKey LIKE CONCAT('%', #{param.accessKey}, '%') + + AND a.role = #{param.role} - - AND a.accessSecret LIKE CONCAT('%', #{param.accessSecret}, '%') + + AND a.user_id = #{param.userId} - - AND a.deleted = #{param.deleted} + + AND a.assets_id = #{param.assetsId} - - AND a.deleted = 0 + + AND a.status = #{param.status} AND a.create_time >= #{param.createTimeStart} @@ -32,12 +32,12 @@ - - diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/CompanyMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/CompanyMapper.xml similarity index 59% rename from src/main/java/com/gxwebsoft/common/system/mapper/xml/CompanyMapper.xml rename to src/main/java/com/gxwebsoft/oa/mapper/xml/CompanyMapper.xml index 546fe14..5555982 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/CompanyMapper.xml +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/CompanyMapper.xml @@ -1,12 +1,11 @@ - + - SELECT a.*,b.tenant_id,b.tenant_name,b.tenant_code - FROM sys_company a - LEFT JOIN sys_tenant b ON a.tenant_id = b.tenant_id + SELECT a.* + FROM oa_company a AND a.company_id = #{param.companyId} @@ -17,21 +16,36 @@ AND a.company_name LIKE CONCAT('%', #{param.companyName}, '%') + + AND a.company_code LIKE CONCAT('%', #{param.companyCode}, '%') + - AND a.company_type = #{param.companyType} + AND a.company_type LIKE CONCAT('%', #{param.companyType}, '%') + + + AND a.company_type_multiple LIKE CONCAT('%', #{param.companyTypeMultiple}, '%') AND a.company_logo LIKE CONCAT('%', #{param.companyLogo}, '%') + + AND a.app_type LIKE CONCAT('%', #{param.appType}, '%') + AND a.domain LIKE CONCAT('%', #{param.domain}, '%') AND a.phone LIKE CONCAT('%', #{param.phone}, '%') + + AND a.email LIKE CONCAT('%', #{param.email}, '%') + AND a.Invoice_header LIKE CONCAT('%', #{param.invoiceHeader}, '%') + + AND a.business_entity LIKE CONCAT('%', #{param.businessEntity}, '%') + AND a.start_time LIKE CONCAT('%', #{param.startTime}, '%') @@ -44,6 +58,9 @@ AND a.members = #{param.members} + + AND a.users = #{param.users} + AND a.industry_parent LIKE CONCAT('%', #{param.industryParent}, '%') @@ -53,6 +70,12 @@ AND a.departments = #{param.departments} + + AND a.storage LIKE CONCAT('%', #{param.storage}, '%') + + + AND a.storage_max LIKE CONCAT('%', #{param.storageMax}, '%') + AND a.country LIKE CONCAT('%', #{param.country}, '%') @@ -80,9 +103,45 @@ AND a.authentication = #{param.authentication} + + AND a.authoritative = #{param.authoritative} + + + AND a.request_url LIKE CONCAT('%', #{param.requestUrl}, '%') + + + AND a.socket_url LIKE CONCAT('%', #{param.socketUrl}, '%') + + + AND a.server_url LIKE CONCAT('%', #{param.serverUrl}, '%') + + + AND a.modules_url LIKE CONCAT('%', #{param.modulesUrl}, '%') + + + AND a.recommend = #{param.recommend} + + + AND a.likes = #{param.likes} + + + AND a.clicks = #{param.clicks} + + + AND a.buys = #{param.buys} + + + AND a.is_tax = #{param.isTax} + + + AND a.plan_id = #{param.planId} + AND a.status = #{param.status} + + AND a.sort_number = #{param.sortNumber} + AND a.user_id = #{param.userId} @@ -98,26 +157,22 @@ AND a.create_time <= #{param.createTimeEnd} - - AND a.authoritative = #{param.authoritative} - - AND (a.company_name LIKE CONCAT('%', #{param.keywords}, '%') - OR a.short_name LIKE CONCAT('%', #{param.keywords}, '%') - OR a.tenant_id = #{param.keywords} - OR a.domain LIKE CONCAT('%', #{param.keywords}, '%') - ) + AND ( + a.short_name LIKE CONCAT('%', #{param.keywords}, '%') + OR a.company_name = #{param.keywords} + ) - - diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskCountMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskCountMapper.xml new file mode 100644 index 0000000..e5ad8f9 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskCountMapper.xml @@ -0,0 +1,59 @@ + + + + + + + SELECT a.* + FROM oa_task_count a + + + AND a.task_count_id = #{param.taskCountId} + + + AND a.user_id = #{param.userId} + + + AND a.pending = #{param.pending} + + + AND a.completed = #{param.completed} + + + AND a.today = #{param.today} + + + AND a.month = #{param.month} + + + AND a.year = #{param.year} + + + AND a.total = #{param.total} + + + AND a.role_id = #{param.roleId} + + + AND a.organization_id = #{param.organizationId} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskMapper.xml new file mode 100644 index 0000000..ab0769c --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskMapper.xml @@ -0,0 +1,126 @@ + + + + + + + SELECT a.*,b.app_name + FROM oa_task a + LEFT JOIN oa_app b ON a.app_id = b.app_id + + + AND a.task_id = #{param.taskId} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.task_type LIKE CONCAT('%', #{param.taskType}, '%') + + + AND a.content LIKE CONCAT('%', #{param.content}, '%') + + + AND a.files LIKE CONCAT('%', #{param.files}, '%') + + + AND a.promoter = #{param.promoter} + + + AND (a.commander = #{param.commander} OR a.user_id = #{param.commander} OR a.promoter = #{param.commander}) + + + AND a.progress = #{param.progress} + + + AND a.priority LIKE CONCAT('%', #{param.priority}, '%') + + + AND a.quality LIKE CONCAT('%', #{param.quality}, '%') + + + AND a.day = #{param.day} + + + AND a.phone LIKE CONCAT('%', #{param.phone}, '%') + + + AND a.start_time LIKE CONCAT('%', #{param.startTime}, '%') + + + AND a.end_time LIKE CONCAT('%', #{param.endTime}, '%') + + + AND a.app_id = #{param.appId} + + + AND a.organization_id = #{param.organizationId} + + + AND a.project_id = #{param.projectId} + + + AND a.customer_id = #{param.customerId} + + + AND a.assets_id = #{param.assetsId} + + + AND a.user_id = #{param.userId} + + + AND a.is_read = #{param.isRead} + + + AND a.last_read_user = #{param.lastReadUser} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.content LIKE CONCAT('%', #{param.keywords}, '%') + OR a.task_id = #{param.keywords} + ) + + + + + + + + + + + + + + + UPDATE oa_task SET progress = #{param.progress} WHERE task_id = #{param.taskId} + + + + diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskRecordMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskRecordMapper.xml new file mode 100644 index 0000000..f0d5c15 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskRecordMapper.xml @@ -0,0 +1,62 @@ + + + + + + + SELECT a.* + FROM oa_task_record a + + + AND a.task_record_id = #{param.taskRecordId} + + + AND a.parent_id = #{param.parentId} + + + AND a.task_id = #{param.taskId} + + + AND a.content LIKE CONCAT('%', #{param.content}, '%') + + + AND a.files LIKE CONCAT('%', #{param.files}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskUserMapper.xml b/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskUserMapper.xml new file mode 100644 index 0000000..dbf8c7d --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/mapper/xml/TaskUserMapper.xml @@ -0,0 +1,44 @@ + + + + + + + SELECT a.* + FROM oa_task_user a + + + AND a.task_user_id = #{param.taskUserId} + + + AND a.role = #{param.role} + + + AND a.user_id = #{param.userId} + + + AND a.task_id = #{param.taskId} + + + AND a.status = #{param.status} + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/oa/param/AppParam.java b/src/main/java/com/gxwebsoft/oa/param/AppParam.java new file mode 100644 index 0000000..47e05c5 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/AppParam.java @@ -0,0 +1,220 @@ +package com.gxwebsoft.oa.param; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Set; + +/** + * 应用管理记录表查询参数 + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "AppParam对象", description = "应用管理记录表查询参数") +public class AppParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "应用ID") + @QueryField(type = QueryType.EQ) + private Integer appId; + + @ApiModelProperty(value = "应用名称") + private String appName; + + @ApiModelProperty(value = "应用标识") + private String appCode; + + @ApiModelProperty(value = "上级id, 0是顶级") + @QueryField(type = QueryType.EQ) + private Integer parentId; + + @ApiModelProperty(value = "应用类型") + private String appType; + + @ApiModelProperty(value = "应用类型") + private String appTypeMultiple; + + @ApiModelProperty(value = "类型, 0菜单, 1按钮") + @QueryField(type = QueryType.EQ) + private Integer menuType; + + @ApiModelProperty(value = "企业ID") + @QueryField(type = QueryType.EQ) + private Integer companyId; + + @ApiModelProperty(value = "企业名称") + private String companyName; + + @ApiModelProperty(value = "应用图标") + private String appIcon; + + @ApiModelProperty(value = "二维码") + private String appQrcode; + + @ApiModelProperty(value = "链接地址") + private String appUrl; + + @ApiModelProperty(value = "后台管理地址") + private String adminUrl; + + @ApiModelProperty(value = "下载地址") + private String downUrl; + + @ApiModelProperty(value = "链接地址") + private String serverUrl; + + @ApiModelProperty(value = "文件服务器") + private String fileUrl; + + @ApiModelProperty(value = "回调地址") + private String callbackUrl; + + @ApiModelProperty(value = "腾讯文档地址") + private String docsUrl; + + @ApiModelProperty(value = "代码仓库地址") + private String gitUrl; + + @ApiModelProperty(value = "原型图地址") + private String prototypeUrl; + + @ApiModelProperty(value = "IP白名单") + private String ipAddress; + + @ApiModelProperty(value = "应用截图") + private String images; + + @ApiModelProperty(value = "应用包名") + private String packageName; + + @ApiModelProperty(value = "下载次数") + @QueryField(type = QueryType.EQ) + private Integer clicks; + + @ApiModelProperty(value = "安装次数") + @QueryField(type = QueryType.EQ) + private Integer installs; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "应用介绍") + private String content; + + @ApiModelProperty(value = "项目需求") + private String requirement; + + @ApiModelProperty(value = "开发者(个人或公司)") + private String developer; + + @ApiModelProperty(value = "项目负责人") + private String director; + + @ApiModelProperty(value = "项目经理") + private String projectDirector; + + @ApiModelProperty(value = "业务员") + private String salesman; + + @ApiModelProperty(value = "软件定价") + @QueryField(type = QueryType.EQ) + private BigDecimal price; + + @ApiModelProperty(value = "划线价格") + @QueryField(type = QueryType.EQ) + private BigDecimal linePrice; + + @ApiModelProperty(value = "评分") + private String score; + + @ApiModelProperty(value = "星级") + private String star; + + @ApiModelProperty(value = "菜单路由地址") + private String path; + + @ApiModelProperty(value = "菜单组件地址, 目录可为空") + private String component; + + @ApiModelProperty(value = "权限标识") + private String authority; + + @ApiModelProperty(value = "打开位置") + private String target; + + @ApiModelProperty(value = "是否隐藏, 0否, 1是(仅注册路由不显示在左侧菜单)") + @QueryField(type = QueryType.EQ) + private Integer hide; + + @ApiModelProperty(value = "禁止搜索,1禁止 0 允许") + @QueryField(type = QueryType.EQ) + private Integer search; + + @ApiModelProperty(value = "菜单侧栏选中的path") + private String active; + + @ApiModelProperty(value = "其它路由元信息") + private String meta; + + @ApiModelProperty(value = "版本,0正式版 1体验版 2开发版") + private String edition; + + @ApiModelProperty(value = "版本号") + private String version; + + @ApiModelProperty(value = "是否已安装") + @QueryField(type = QueryType.EQ) + private Integer isUse; + + @ApiModelProperty(value = "附近1") + private String file1; + + @ApiModelProperty(value = "附件2") + private String file2; + + @ApiModelProperty(value = "附件3") + private String file3; + + @ApiModelProperty(value = "应用状态") + private String appStatus; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "机构id") + @QueryField(type = QueryType.EQ) + private Integer organizationId; + + @ApiModelProperty(value = "租户编号") + private String tenantCode; + + @ApiModelProperty(value = "按APPID集搜索") + @TableField(exist = false) + private Set appIds; + +} diff --git a/src/main/java/com/gxwebsoft/oa/param/AppUserParam.java b/src/main/java/com/gxwebsoft/oa/param/AppUserParam.java new file mode 100644 index 0000000..5b8bbde --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/AppUserParam.java @@ -0,0 +1,66 @@ +package com.gxwebsoft.oa.param; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 应用成员查询参数 + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "AppUserParam对象", description = "应用成员查询参数") +public class AppUserParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer appUserId; + + @ApiModelProperty(value = "角色,10体验成员 20开发者成员 30管理员 ") + @QueryField(type = QueryType.EQ) + private Integer role; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "应用ID") + @QueryField(type = QueryType.EQ) + private Integer appId; + + @ApiModelProperty(value = "状态, 0正常, 1待确认") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "昵称") + @TableField(exist = false) + private String nickname; + + @ApiModelProperty(value = "用户名") + @TableField(exist = false) + private String username; + + @ApiModelProperty(value = "手机号码") + @TableField(exist = false) + private String phone; + + @ApiModelProperty(value = "邮箱") + @TableField(exist = false) + private String email; + + @ApiModelProperty(value = "头像") + @TableField(exist = false) + private String avatar; + +} diff --git a/src/main/java/com/gxwebsoft/oa/param/AssetsParam.java b/src/main/java/com/gxwebsoft/oa/param/AssetsParam.java new file mode 100644 index 0000000..751939c --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/AssetsParam.java @@ -0,0 +1,152 @@ +package com.gxwebsoft.oa.param; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; +import java.util.Set; + +/** + * 服务器资产记录表查询参数 + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "AssetsParam对象", description = "服务器资产记录表查询参数") +public class AssetsParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "资产ID") + @QueryField(type = QueryType.EQ) + private Integer assetsId; + + @ApiModelProperty(value = "资产名称") + private String name; + + @ApiModelProperty(value = "资产标识") + private String code; + + @ApiModelProperty(value = "资产类型") + private String type; + + @ApiModelProperty(value = "服务器厂商") + private String brand; + + @ApiModelProperty(value = "服务器配置") + private String configuration; + + @ApiModelProperty(value = "初始账号") + private String account; + + @ApiModelProperty(value = "初始密码") + private String password; + + @ApiModelProperty(value = "(阿里云/腾讯云)登录账号") + private String brandAccount; + + @ApiModelProperty(value = "(阿里云/腾讯云)登录密码") + private String brandPassword; + + @ApiModelProperty(value = "宝塔面板") + private String panel; + + @ApiModelProperty(value = "宝塔面板账号") + private String panelAccount; + + @ApiModelProperty(value = "宝塔面板密码") + private String panelPassword; + + @ApiModelProperty(value = "财务信息-合同金额") + @QueryField(type = QueryType.EQ) + private BigDecimal financeAmount; + + @ApiModelProperty(value = "购买年限") + @QueryField(type = QueryType.EQ) + private Integer financeYears; + + @ApiModelProperty(value = "续费金额") + @QueryField(type = QueryType.EQ) + private BigDecimal financeRenew; + + @ApiModelProperty(value = "客户名称") + private String financeCustomerName; + + @ApiModelProperty(value = "客户联系人") + private String financeCustomerContact; + + @ApiModelProperty(value = "客户联系电话") + private String financeCustomerPhone; + + @ApiModelProperty(value = "客户ID") + @QueryField(type = QueryType.EQ) + private Integer customerId; + + @ApiModelProperty(value = "客户名称") + private String customerName; + + @ApiModelProperty(value = "开放端口") + private String openPort; + + @ApiModelProperty(value = "详情内容") + private String content; + + @ApiModelProperty(value = "购买时间") + private String startTime; + + @ApiModelProperty(value = "到期时间") + private String endTime; + + @ApiModelProperty(value = "置顶状态") + private String isTop; + + @ApiModelProperty(value = "可见性(public,private,protected)") + private String visibility; + + @ApiModelProperty(value = "宝塔接口秘钥") + private String btSign; + + @ApiModelProperty(value = "文章排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "描述") + private String comments; + + @ApiModelProperty(value = "客户ID") + @QueryField(type = QueryType.EQ) + private Integer companyId; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "机构id") + @QueryField(type = QueryType.EQ) + private Integer organizationId; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private String status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @ApiModelProperty(value = "企业名称") + @TableField(exist = false) + private String companyName; + + @ApiModelProperty(value = "按ID集搜索") + @TableField(exist = false) + private Set assetsIds; + +} diff --git a/src/main/java/com/gxwebsoft/oa/param/AssetsUserParam.java b/src/main/java/com/gxwebsoft/oa/param/AssetsUserParam.java new file mode 100644 index 0000000..912c28d --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/AssetsUserParam.java @@ -0,0 +1,45 @@ +package com.gxwebsoft.oa.param; + +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 服务器成员管理查询参数 + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "AssetsUserParam对象", description = "服务器成员管理查询参数") +public class AssetsUserParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "角色,10体验成员 20开发者成员 30管理员 ") + @QueryField(type = QueryType.EQ) + private Integer role; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "应用ID") + @QueryField(type = QueryType.EQ) + private Integer assetsId; + + @ApiModelProperty(value = "状态, 0正常, 1待确认") + @QueryField(type = QueryType.EQ) + private Integer status; + +} diff --git a/src/main/java/com/gxwebsoft/oa/param/CompanyParam.java b/src/main/java/com/gxwebsoft/oa/param/CompanyParam.java new file mode 100644 index 0000000..2ef9e15 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/CompanyParam.java @@ -0,0 +1,183 @@ +package com.gxwebsoft.oa.param; + +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 企业信息查询参数 + * + * @author 科技小王子 + * @since 2023-10-23 19:18:58 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "CompanyParam对象", description = "企业信息查询参数") +public class CompanyParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "企业id") + @QueryField(type = QueryType.EQ) + private Integer companyId; + + @ApiModelProperty(value = "企业简称") + private String shortName; + + @ApiModelProperty(value = "企业全称") + private String companyName; + + @ApiModelProperty(value = "企业标识") + private String companyCode; + + @ApiModelProperty(value = "类型 10企业 20政府单位") + private String companyType; + + @ApiModelProperty(value = "企业类型多选") + private String companyTypeMultiple; + + @ApiModelProperty(value = "应用标识") + private String companyLogo; + + @ApiModelProperty(value = "应用类型") + private String appType; + + @ApiModelProperty(value = "绑定域名") + private String domain; + + @ApiModelProperty(value = "联系电话") + private String phone; + + @ApiModelProperty(value = "邮箱") + private String email; + + @ApiModelProperty(value = "发票抬头") + private String invoiceHeader; + + @ApiModelProperty(value = "企业法人") + private String businessEntity; + + @ApiModelProperty(value = "服务开始时间") + private String startTime; + + @ApiModelProperty(value = "服务到期时间") + private String expirationTime; + + @ApiModelProperty(value = "应用版本 10体验版 20授权版 30旗舰版") + @QueryField(type = QueryType.EQ) + private Integer version; + + @ApiModelProperty(value = "成员数量(人数上限)") + @QueryField(type = QueryType.EQ) + private Integer members; + + @ApiModelProperty(value = "成员数量(当前)") + @QueryField(type = QueryType.EQ) + private Integer users; + + @ApiModelProperty(value = "行业类型(父级)") + private String industryParent; + + @ApiModelProperty(value = "行业类型(子级)") + private String industryChild; + + @ApiModelProperty(value = "部门数量") + @QueryField(type = QueryType.EQ) + private Integer departments; + + @ApiModelProperty(value = "存储空间") + private Long storage; + + @ApiModelProperty(value = "存储空间(上限)") + private Long storageMax; + + @ApiModelProperty(value = "所在国家") + private String country; + + @ApiModelProperty(value = "所在省份") + private String province; + + @ApiModelProperty(value = "所在城市") + private String city; + + @ApiModelProperty(value = "所在辖区") + private String region; + + @ApiModelProperty(value = "街道地址") + private String address; + + @ApiModelProperty(value = "经度") + private String longitude; + + @ApiModelProperty(value = "纬度") + private String latitude; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "是否实名认证") + @QueryField(type = QueryType.EQ) + private Integer authentication; + + @ApiModelProperty(value = "企业默认主体") + @QueryField(type = QueryType.EQ) + private Integer authoritative; + + @ApiModelProperty(value = "request合法域名") + private String requestUrl; + + @ApiModelProperty(value = "socket合法域名") + private String socketUrl; + + @ApiModelProperty(value = "主控端域名") + private String serverUrl; + + @ApiModelProperty(value = "业务域名") + private String modulesUrl; + + @ApiModelProperty(value = "是否推荐") + @QueryField(type = QueryType.EQ) + private Integer recommend; + + @ApiModelProperty(value = "点赞数量") + @QueryField(type = QueryType.EQ) + private Integer likes; + + @ApiModelProperty(value = "点击数量") + @QueryField(type = QueryType.EQ) + private Integer clicks; + + @ApiModelProperty(value = "购买数量") + @QueryField(type = QueryType.EQ) + private Integer buys; + + @ApiModelProperty(value = "是否含税, 0不含, 1含") + @QueryField(type = QueryType.EQ) + private Integer isTax; + + @ApiModelProperty(value = "当前克隆的租户ID") + @QueryField(type = QueryType.EQ) + private Integer planId; + + @ApiModelProperty(value = "状态") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "排序号") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/gxwebsoft/oa/param/TaskCountParam.java b/src/main/java/com/gxwebsoft/oa/param/TaskCountParam.java new file mode 100644 index 0000000..53a9523 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/TaskCountParam.java @@ -0,0 +1,63 @@ +package com.gxwebsoft.oa.param; + +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 数据统计查询参数 + * + * @author 科技小王子 + * @since 2023-10-30 14:25:30 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "TaskCountParam对象", description = "数据统计查询参数") +public class TaskCountParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer taskCountId; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "待处理数") + @QueryField(type = QueryType.EQ) + private Integer pending; + + @ApiModelProperty(value = "已完成数") + @QueryField(type = QueryType.EQ) + private Integer completed; + + @ApiModelProperty(value = "今天处理数") + @QueryField(type = QueryType.EQ) + private Integer today; + + @ApiModelProperty(value = "本月处理数") + @QueryField(type = QueryType.EQ) + private Integer month; + + @ApiModelProperty(value = "今年处理数") + @QueryField(type = QueryType.EQ) + private Integer year; + + @ApiModelProperty(value = "总工单数") + @QueryField(type = QueryType.EQ) + private Integer total; + + @ApiModelProperty(value = "部门ID") + private Integer organizationId; + + @ApiModelProperty(value = "角色ID") + private Integer roleId; + +} diff --git a/src/main/java/com/gxwebsoft/oa/param/TaskParam.java b/src/main/java/com/gxwebsoft/oa/param/TaskParam.java new file mode 100644 index 0000000..e59df1b --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/TaskParam.java @@ -0,0 +1,123 @@ +package com.gxwebsoft.oa.param; + +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 任务记录表查询参数 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "TaskParam对象", description = "任务记录表查询参数") +public class TaskParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "工单ID") + @QueryField(type = QueryType.EQ) + private Integer taskId; + + @ApiModelProperty(value = "工单名称") + private String name; + + @ApiModelProperty(value = "工单类型") + private String taskType; + + @ApiModelProperty(value = "任务内容") + private String content; + + @ApiModelProperty(value = "工单附件") + private String files; + + @ApiModelProperty(value = "工单发起人") + @QueryField(type = QueryType.EQ) + private Integer promoter; + + @ApiModelProperty(value = "受理人") + @QueryField(type = QueryType.EQ) + private Integer commander; + + @ApiModelProperty(value = "工单状态, 0未开始 1已指派 ") + @QueryField(type = QueryType.EQ) + private Integer progress; + + @ApiModelProperty(value = "优先级") + private String priority; + + @ApiModelProperty(value = "品质要求") + private String quality; + + @ApiModelProperty(value = "时限(天)") + @QueryField(type = QueryType.EQ) + private Integer day; + + @ApiModelProperty(value = "手机号") + private String phone; + + @ApiModelProperty(value = "开始时间") + private String startTime; + + @ApiModelProperty(value = "结束时间") + private String endTime; + + @ApiModelProperty(value = "项目ID") + @QueryField(type = QueryType.EQ) + private Integer appId; + + @ApiModelProperty(value = "机构id") + @QueryField(type = QueryType.EQ) + private Integer organizationId; + + @ApiModelProperty(value = "项目ID") + @QueryField(type = QueryType.EQ) + private Integer projectId; + + @ApiModelProperty(value = "客户ID") + @QueryField(type = QueryType.EQ) + private Integer customerId; + + @ApiModelProperty(value = "资产ID") + @QueryField(type = QueryType.EQ) + private Integer assetsId; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "是否已查阅") + @QueryField(type = QueryType.EQ) + private Integer isRead; + + @ApiModelProperty(value = "最后回复人") + @QueryField(type = QueryType.EQ) + private Integer lastReadUser; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0待处理, 1已完成") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @ApiModelProperty(value = "当前登录用户") + private User loginUser; + +} diff --git a/src/main/java/com/gxwebsoft/oa/param/TaskRecordParam.java b/src/main/java/com/gxwebsoft/oa/param/TaskRecordParam.java new file mode 100644 index 0000000..32fabd9 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/TaskRecordParam.java @@ -0,0 +1,62 @@ +package com.gxwebsoft.oa.param; + +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 工单回复记录表查询参数 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "TaskRecordParam对象", description = "工单回复记录表查询参数") +public class TaskRecordParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "回复ID") + @QueryField(type = QueryType.EQ) + private Integer taskRecordId; + + @ApiModelProperty(value = "上级id, 0是顶级") + @QueryField(type = QueryType.EQ) + private Integer parentId; + + @ApiModelProperty(value = "工单ID") + @QueryField(type = QueryType.EQ) + private Integer taskId; + + @ApiModelProperty(value = "任务内容") + private String content; + + @ApiModelProperty(value = "工单附件") + private String files; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0待处理, 1已完成") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/gxwebsoft/oa/param/TaskUserParam.java b/src/main/java/com/gxwebsoft/oa/param/TaskUserParam.java new file mode 100644 index 0000000..d3917bb --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/param/TaskUserParam.java @@ -0,0 +1,45 @@ +package com.gxwebsoft.oa.param; + +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 工单成员查询参数 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "TaskUserParam对象", description = "工单成员查询参数") +public class TaskUserParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "自增ID") + @QueryField(type = QueryType.EQ) + private Integer taskUserId; + + @ApiModelProperty(value = "角色,10体验成员 20开发者成员 30管理员 ") + @QueryField(type = QueryType.EQ) + private Integer role; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "工单ID") + @QueryField(type = QueryType.EQ) + private Integer taskId; + + @ApiModelProperty(value = "状态, 0待处理, 1已完成") + @QueryField(type = QueryType.EQ) + private Integer status; + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/AppService.java b/src/main/java/com/gxwebsoft/oa/service/AppService.java new file mode 100644 index 0000000..14cab2f --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/AppService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.oa.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.oa.entity.App; +import com.gxwebsoft.oa.param.AppParam; + +import java.util.List; + +/** + * 应用管理记录表Service + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +public interface AppService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(AppParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(AppParam param); + + /** + * 根据id查询 + * + * @param appId 应用ID + * @return App + */ + App getByIdRel(Integer appId); + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/AppUserService.java b/src/main/java/com/gxwebsoft/oa/service/AppUserService.java new file mode 100644 index 0000000..8524874 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/AppUserService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.oa.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.oa.entity.AppUser; +import com.gxwebsoft.oa.param.AppUserParam; + +import java.util.List; + +/** + * 应用成员Service + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +public interface AppUserService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(AppUserParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(AppUserParam param); + + /** + * 根据id查询 + * + * @param appUserId 自增ID + * @return AppUser + */ + AppUser getByIdRel(Integer appUserId); + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/AssetsService.java b/src/main/java/com/gxwebsoft/oa/service/AssetsService.java new file mode 100644 index 0000000..415f826 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/AssetsService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.oa.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.oa.entity.Assets; +import com.gxwebsoft.oa.param.AssetsParam; + +import java.util.List; + +/** + * 服务器资产记录表Service + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +public interface AssetsService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(AssetsParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(AssetsParam param); + + /** + * 根据id查询 + * + * @param assetsId 资产ID + * @return Assets + */ + Assets getByIdRel(Integer assetsId); + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/AssetsUserService.java b/src/main/java/com/gxwebsoft/oa/service/AssetsUserService.java new file mode 100644 index 0000000..e158981 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/AssetsUserService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.oa.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.oa.entity.AssetsUser; +import com.gxwebsoft.oa.param.AssetsUserParam; + +import java.util.List; + +/** + * 服务器成员管理Service + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +public interface AssetsUserService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(AssetsUserParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(AssetsUserParam param); + + /** + * 根据id查询 + * + * @param id 自增ID + * @return AssetsUser + */ + AssetsUser getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/common/system/service/CompanyService.java b/src/main/java/com/gxwebsoft/oa/service/CompanyService.java similarity index 76% rename from src/main/java/com/gxwebsoft/common/system/service/CompanyService.java rename to src/main/java/com/gxwebsoft/oa/service/CompanyService.java index 023e8af..0f07c8c 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/CompanyService.java +++ b/src/main/java/com/gxwebsoft/oa/service/CompanyService.java @@ -1,9 +1,9 @@ -package com.gxwebsoft.common.system.service; +package com.gxwebsoft.oa.service; import com.baomidou.mybatisplus.extension.service.IService; import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.system.entity.Company; -import com.gxwebsoft.common.system.param.CompanyParam; +import com.gxwebsoft.oa.entity.Company; +import com.gxwebsoft.oa.param.CompanyParam; import java.util.List; @@ -11,7 +11,7 @@ import java.util.List; * 企业信息Service * * @author 科技小王子 - * @since 2023-05-27 14:57:34 + * @since 2023-10-23 19:18:58 */ public interface CompanyService extends IService { @@ -39,6 +39,4 @@ public interface CompanyService extends IService { */ Company getByIdRel(Integer companyId); - Company getByTenantIdRel(Integer tenantId); - } diff --git a/src/main/java/com/gxwebsoft/oa/service/TaskCountService.java b/src/main/java/com/gxwebsoft/oa/service/TaskCountService.java new file mode 100644 index 0000000..2972cc9 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/TaskCountService.java @@ -0,0 +1,44 @@ +package com.gxwebsoft.oa.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.oa.entity.Task; +import com.gxwebsoft.oa.entity.TaskCount; +import com.gxwebsoft.oa.param.TaskCountParam; + +import java.util.List; + +/** + * 数据统计Service + * + * @author 科技小王子 + * @since 2023-10-30 14:25:30 + */ +public interface TaskCountService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(TaskCountParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(TaskCountParam param); + + /** + * 根据id查询 + * + * @param taskCountId 自增ID + * @return TaskCount + */ + TaskCount getByIdRel(Integer taskCountId); + + TaskCount getByUserId(Integer userId); +} diff --git a/src/main/java/com/gxwebsoft/oa/service/TaskRecordService.java b/src/main/java/com/gxwebsoft/oa/service/TaskRecordService.java new file mode 100644 index 0000000..3e28b2b --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/TaskRecordService.java @@ -0,0 +1,43 @@ +package com.gxwebsoft.oa.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.oa.entity.TaskRecord; +import com.gxwebsoft.oa.param.TaskRecordParam; + +import java.util.List; + +/** + * 工单回复记录表Service + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +public interface TaskRecordService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(TaskRecordParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(TaskRecordParam param); + + /** + * 根据id查询 + * + * @param taskRecordId 回复ID + * @return TaskRecord + */ + TaskRecord getByIdRel(Integer taskRecordId); + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/TaskService.java b/src/main/java/com/gxwebsoft/oa/service/TaskService.java new file mode 100644 index 0000000..b988bae --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/TaskService.java @@ -0,0 +1,54 @@ +package com.gxwebsoft.oa.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.entity.Task; +import com.gxwebsoft.oa.param.TaskParam; + +import java.util.ArrayList; +import java.util.List; + +/** + * 任务记录表Service + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +public interface TaskService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(TaskParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(TaskParam param); + + /** + * 根据id查询 + * + * @param taskId 工单ID + * @return Task + */ + Task getByIdRel(Integer taskId); + + ArrayList getCountNum(User loginUser, TaskParam param); + + boolean saveByRel(Task task); + + void updateCount(Task task); + + PageResult pageRelAll(TaskParam taskParam); + + void updateByIdAll(Task task); +} diff --git a/src/main/java/com/gxwebsoft/oa/service/TaskUserService.java b/src/main/java/com/gxwebsoft/oa/service/TaskUserService.java new file mode 100644 index 0000000..67343ed --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/TaskUserService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.oa.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.oa.entity.TaskUser; +import com.gxwebsoft.oa.param.TaskUserParam; + +import java.util.List; + +/** + * 工单成员Service + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +public interface TaskUserService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(TaskUserParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(TaskUserParam param); + + /** + * 根据id查询 + * + * @param taskUserId 自增ID + * @return TaskUser + */ + TaskUser getByIdRel(Integer taskUserId); + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/AppServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/AppServiceImpl.java new file mode 100644 index 0000000..77a9e3e --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/AppServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.oa.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.oa.mapper.AppMapper; +import com.gxwebsoft.oa.service.AppService; +import com.gxwebsoft.oa.entity.App; +import com.gxwebsoft.oa.param.AppParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 应用管理记录表Service实现 + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +@Service +public class AppServiceImpl extends ServiceImpl implements AppService { + + @Override + public PageResult pageRel(AppParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(AppParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public App getByIdRel(Integer appId) { + AppParam param = new AppParam(); + param.setAppId(appId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/AppUserServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/AppUserServiceImpl.java new file mode 100644 index 0000000..0dc244d --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/AppUserServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.oa.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.oa.mapper.AppUserMapper; +import com.gxwebsoft.oa.service.AppUserService; +import com.gxwebsoft.oa.entity.AppUser; +import com.gxwebsoft.oa.param.AppUserParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 应用成员Service实现 + * + * @author 科技小王子 + * @since 2023-10-26 22:06:23 + */ +@Service +public class AppUserServiceImpl extends ServiceImpl implements AppUserService { + + @Override + public PageResult pageRel(AppUserParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(AppUserParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public AppUser getByIdRel(Integer appUserId) { + AppUserParam param = new AppUserParam(); + param.setAppUserId(appUserId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/AssetsServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/AssetsServiceImpl.java new file mode 100644 index 0000000..293a327 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/AssetsServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.oa.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.oa.mapper.AssetsMapper; +import com.gxwebsoft.oa.service.AssetsService; +import com.gxwebsoft.oa.entity.Assets; +import com.gxwebsoft.oa.param.AssetsParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 服务器资产记录表Service实现 + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +@Service +public class AssetsServiceImpl extends ServiceImpl implements AssetsService { + + @Override + public PageResult pageRel(AssetsParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(AssetsParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public Assets getByIdRel(Integer assetsId) { + AssetsParam param = new AssetsParam(); + param.setAssetsId(assetsId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/AssetsUserServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/AssetsUserServiceImpl.java new file mode 100644 index 0000000..c0498bb --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/AssetsUserServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.oa.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.oa.mapper.AssetsUserMapper; +import com.gxwebsoft.oa.service.AssetsUserService; +import com.gxwebsoft.oa.entity.AssetsUser; +import com.gxwebsoft.oa.param.AssetsUserParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 服务器成员管理Service实现 + * + * @author 科技小王子 + * @since 2023-10-26 21:08:27 + */ +@Service +public class AssetsUserServiceImpl extends ServiceImpl implements AssetsUserService { + + @Override + public PageResult pageRel(AssetsUserParam param) { + PageParam page = new PageParam<>(param); + //page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(AssetsUserParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public AssetsUser getByIdRel(Integer id) { + AssetsUserParam param = new AssetsUserParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/CompanyServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/CompanyServiceImpl.java similarity index 65% rename from src/main/java/com/gxwebsoft/common/system/service/impl/CompanyServiceImpl.java rename to src/main/java/com/gxwebsoft/oa/service/impl/CompanyServiceImpl.java index 4ed419d..3ea1c0e 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/impl/CompanyServiceImpl.java +++ b/src/main/java/com/gxwebsoft/oa/service/impl/CompanyServiceImpl.java @@ -1,12 +1,12 @@ -package com.gxwebsoft.common.system.service.impl; +package com.gxwebsoft.oa.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.oa.mapper.CompanyMapper; +import com.gxwebsoft.oa.service.CompanyService; +import com.gxwebsoft.oa.entity.Company; +import com.gxwebsoft.oa.param.CompanyParam; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.system.entity.Company; -import com.gxwebsoft.common.system.mapper.CompanyMapper; -import com.gxwebsoft.common.system.param.CompanyParam; -import com.gxwebsoft.common.system.service.CompanyService; import org.springframework.stereotype.Service; import java.util.List; @@ -15,7 +15,7 @@ import java.util.List; * 企业信息Service实现 * * @author 科技小王子 - * @since 2023-05-27 14:57:34 + * @since 2023-10-23 19:18:58 */ @Service public class CompanyServiceImpl extends ServiceImpl implements CompanyService { @@ -33,7 +33,7 @@ public class CompanyServiceImpl extends ServiceImpl impl List list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time desc"); + //page.setDefaultOrder("create_time desc"); return page.sortRecords(list); } @@ -44,12 +44,4 @@ public class CompanyServiceImpl extends ServiceImpl impl return param.getOne(baseMapper.selectListRel(param)); } - @Override - public Company getByTenantIdRel(Integer tenantId) { - CompanyParam param = new CompanyParam(); -// final Company one = param.getOne(baseMapper.selectListRel(param)); - param.setAuthoritative(true); - return param.getOne(baseMapper.selectListRel(param)); - } - } diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/TaskCountServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/TaskCountServiceImpl.java new file mode 100644 index 0000000..6ecde51 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/TaskCountServiceImpl.java @@ -0,0 +1,131 @@ +package com.gxwebsoft.oa.service.impl; + +import cn.hutool.core.net.url.UrlBuilder; +import cn.hutool.core.net.url.UrlQuery; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.entity.Task; +import com.gxwebsoft.oa.entity.TaskRecord; +import com.gxwebsoft.oa.mapper.TaskCountMapper; +import com.gxwebsoft.oa.service.TaskCountService; +import com.gxwebsoft.oa.entity.TaskCount; +import com.gxwebsoft.oa.param.TaskCountParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.oa.service.TaskService; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 数据统计Service实现 + * + * @author 科技小王子 + * @since 2023-10-30 14:25:30 + */ +@Service +public class TaskCountServiceImpl extends ServiceImpl implements TaskCountService { + @Override + public PageResult pageRel(TaskCountParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("month desc"); + List list = baseMapper.selectPageRel(page, param); + final PageResult result = new PageResult<>(list, page.getTotal()); + // 请求主服务器获取用户信息 + final List taskCountList = result.getList(); + final Set userIds = taskCountList.stream().map(TaskCount::getUserId).collect(Collectors.toSet()); + HashMap map = new HashMap<>(); + map.put("userIds", userIds); + if (!userIds.isEmpty()) { + // 链式构建GET请求 + final String build = UrlBuilder.of("https://server.gxwebsoft.com/api/system/user/page").setQuery(new UrlQuery(map)).build(); + String response = HttpRequest.get(build) + .header("Authorization", param.getToken()) + .header("Tenantid", param.getTenantId().toString()) + .body(JSONObject.toJSONString(map))//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + + final ApiResult> userResult = JSONObject.parseObject(response, new TypeReference>>() { + }); + final Map> collect = userResult.getData().getList().stream().collect(Collectors.groupingBy(User::getUserId)); + if (!CollectionUtils.isEmpty(collect)) { + taskCountList.forEach(item -> { + final List users = collect.get(item.getUserId()); + if(!CollectionUtils.isEmpty(users)) { + final User user = users.get(0); + item.setNickname(user.getNickname()); + item.setAvatar(user.getAvatar()); + item.setPhone(user.getPhone()); + } + }); + } + result.setList(taskCountList); + } + return result; + } + + @Override + public List listRel(TaskCountParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public TaskCount getByIdRel(Integer taskCountId) { + TaskCountParam param = new TaskCountParam(); + param.setTaskCountId(taskCountId); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public TaskCount getByUserId(Integer userId) { + TaskCountParam param = new TaskCountParam(); + param.setUserId(userId); + return param.getOne(baseMapper.selectListRel(param)); + } + + /** + * 每日清零 + */ +// @Scheduled(cron="0 0 0 * * ?") +// public void todayTask() { +// System.out.println("每日清零任务 = "); +// update(new LambdaUpdateWrapper().set(TaskCount::getToday, 0)); +// } + + /** + * 本月清零 + */ +// @Scheduled(cron="0 0 1 * * ?") +// public void monthTask() { +// update(new LambdaUpdateWrapper().set(TaskCount::getMonth, 0)); +// } + + /** + * 每年清零 + */ +// @Scheduled(cron = "0 0 0 1 * ?") +// public void yearTask(){ +// update(new LambdaUpdateWrapper().set(TaskCount::getYear, 0)); +// } + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/TaskRecordServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/TaskRecordServiceImpl.java new file mode 100644 index 0000000..3c85e26 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/TaskRecordServiceImpl.java @@ -0,0 +1,91 @@ +package com.gxwebsoft.oa.service.impl; + +import cn.hutool.core.net.url.UrlBuilder; +import cn.hutool.core.net.url.UrlQuery; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.core.security.JwtUtil; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.oa.mapper.TaskRecordMapper; +import com.gxwebsoft.oa.service.TaskRecordService; +import com.gxwebsoft.oa.entity.TaskRecord; +import com.gxwebsoft.oa.param.TaskRecordParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 工单回复记录表Service实现 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Service +public class TaskRecordServiceImpl extends ServiceImpl implements TaskRecordService { + + @Override + public PageResult pageRel(TaskRecordParam param) { + PageParam page = new PageParam<>(param); + //page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + final PageResult result = new PageResult<>(list, page.getTotal()); + + // 请求主服务器获取用户信息 + final List taskRecordList = result.getList(); + final Set userIds = taskRecordList.stream().map(TaskRecord::getUserId).collect(Collectors.toSet()); + HashMap map = new HashMap<>(); + map.put("userIds", userIds); + + // 链式构建GET请求 + final String build = UrlBuilder.of("https://server.gxwebsoft.com/api/system/user/page").setQuery(new UrlQuery(map)).build(); + String response = HttpRequest.get(build) + .header("Authorization", param.getToken()) + .header("Tenantid", param.getTenantId().toString()) + .body(JSONObject.toJSONString(map))//表单内容 + .timeout(20000)//超时,毫秒 + .execute().body(); + + final ApiResult> userResult = JSONObject.parseObject(response, new TypeReference>>() { + }); + final Map> collect = userResult.getData().getList().stream().collect(Collectors.groupingBy(User::getUserId)); + taskRecordList.forEach(item -> { + final List users = collect.get(item.getUserId()); + if(!CollectionUtils.isEmpty(users)) { + final User user = users.get(0); + item.setNickname(user.getNickname()); + item.setAvatar(user.getAvatar()); + item.setCity(user.getCity()); + item.setUser(user); + } + }); + result.setList(taskRecordList); + return result; + } + + @Override + public List listRel(TaskRecordParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public TaskRecord getByIdRel(Integer taskRecordId) { + TaskRecordParam param = new TaskRecordParam(); + param.setTaskRecordId(taskRecordId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/TaskServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/TaskServiceImpl.java new file mode 100644 index 0000000..3252ec7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/TaskServiceImpl.java @@ -0,0 +1,165 @@ +package com.gxwebsoft.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.core.utils.JSONUtil; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.system.param.CompanyParam; +import com.gxwebsoft.oa.entity.Company; +import com.gxwebsoft.oa.entity.TaskCount; +import com.gxwebsoft.oa.entity.TaskRecord; +import com.gxwebsoft.oa.mapper.TaskMapper; +import com.gxwebsoft.oa.service.TaskCountService; +import com.gxwebsoft.oa.service.TaskRecordService; +import com.gxwebsoft.oa.service.TaskService; +import com.gxwebsoft.oa.entity.Task; +import com.gxwebsoft.oa.param.TaskParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +import static com.gxwebsoft.common.core.constants.TaskConstants.*; + +/** + * 任务记录表Service实现 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Service +public class TaskServiceImpl extends ServiceImpl implements TaskService { + @Resource + private TaskRecordService taskRecordService; + @Resource + private TaskCountService taskCountService; + + @Override + public PageResult pageRel(TaskParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(TaskParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public Task getByIdRel(Integer taskId) { + TaskParam param = new TaskParam(); + param.setTaskId(taskId); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public ArrayList getCountNum(User loginUser, TaskParam param) { + Integer type = loginUser.getType(); + final Integer userId = param.getUserId(); +// if (param.getUserId() != null) { +// this.userId = param.getUserId(); +// }else { +// this.userId = loginUser.getUserId(); +// } + + AtomicInteger count1 = new AtomicInteger(count(new LambdaQueryWrapper().eq(Task::getStatus, 0))); + AtomicInteger count2 = new AtomicInteger(count(new LambdaQueryWrapper().eq(Task::getStatus, 1))); + // 非管理员仅可浏览和自己相关的工单 + loginUser.getRoles().forEach(d -> { + + if (type.equals(6)) { + count1.set(count(new LambdaQueryWrapper().eq(Task::getStatus, 0).eq(Task::getCommander, userId))); + count2.set(count(new LambdaQueryWrapper().eq(Task::getStatus, 1).eq(Task::getCommander, userId))); + } + if (type.equals(10)) { + count1.set(count(new LambdaQueryWrapper().eq(Task::getStatus, 0).eq(Task::getPromoter, userId))); + count2.set(count(new LambdaQueryWrapper().eq(Task::getStatus, 1).eq(Task::getPromoter, userId))); + } + }); + JSONObject json1 = new JSONObject(); + json1.put("tab", "待处理"); + json1.put("key", "0"); + json1.put("count", count1); + JSONObject json2 = new JSONObject(); + json2.put("tab", "已完成"); + json2.put("key", "1"); + json2.put("count", count2); + ArrayList objects = new ArrayList<>(); + objects.add(json1); + objects.add(json2); + return objects; + } + + /** + * 提交工单记录 + */ + @Override + public boolean saveByRel(Task task) { + // 保存工单 + save(task); + // 添加第一条记录 + TaskRecord taskRecord = BeanUtil.copyProperties(task, TaskRecord.class); + taskRecord.setCreateTime(new Date()); + taskRecord.setUpdateTime(new Date()); + taskRecordService.save(taskRecord); + // 添加统计记录表 + if (taskCountService.count(new LambdaQueryWrapper().eq(TaskCount::getUserId, task.getUserId())) == 0) { + final TaskCount taskCount = new TaskCount(); + taskCount.setUserId(task.getUserId()); + taskCount.setRoleId(task.getRoleId()); + taskCount.setRoleCode(task.getRoleCode()); + taskCount.setOrganizationId(task.getOrganizationId()); + taskCountService.save(taskCount); + } + // 更新统计表 + TaskCount taskCount = taskCountService.getByUserId(task.getUserId()); + taskCount.setPending(taskCount.getPending() + 1); + taskCountService.updateById(taskCount); + return true; + } + + @Async + @Override + public void updateCount(Task task) { + // 统计项目发起人 + TaskCount user = taskCountService.getByUserId(task.getLoginUserId()); + user.setPending(count(new LambdaQueryWrapper().eq(Task::getStatus, 0).eq(Task::getUserId,task.getLoginUserId()))); + taskCountService.updateById(user); + // 统计项目受理人 + TaskCount commander = taskCountService.getByUserId(task.getCommander()); + commander.setPending(count(new LambdaQueryWrapper().eq(Task::getStatus,0).eq(Task::getCommander,task.getCommander()))); + taskCountService.updateById(commander); + } + + @Override + public PageResult pageRelAll(TaskParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRelAll(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public void updateByIdAll(Task task) { + baseMapper.updateByTaskId(task); + } +} diff --git a/src/main/java/com/gxwebsoft/oa/service/impl/TaskUserServiceImpl.java b/src/main/java/com/gxwebsoft/oa/service/impl/TaskUserServiceImpl.java new file mode 100644 index 0000000..0246fa1 --- /dev/null +++ b/src/main/java/com/gxwebsoft/oa/service/impl/TaskUserServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.oa.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.oa.mapper.TaskUserMapper; +import com.gxwebsoft.oa.service.TaskUserService; +import com.gxwebsoft.oa.entity.TaskUser; +import com.gxwebsoft.oa.param.TaskUserParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 工单成员Service实现 + * + * @author 科技小王子 + * @since 2023-10-23 18:53:01 + */ +@Service +public class TaskUserServiceImpl extends ServiceImpl implements TaskUserService { + + @Override + public PageResult pageRel(TaskUserParam param) { + PageParam page = new PageParam<>(param); + //page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(TaskUserParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public TaskUser getByIdRel(Integer taskUserId) { + TaskUserParam param = new TaskUserParam(); + param.setTaskUserId(taskUserId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index cfd940c..14d2781 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -87,7 +87,9 @@ config: swagger-title: 网宿软件 API文档 swagger-version: 1.0 token-key: WLgNsWJ8rPjRtnjzX/Gx2RGS80Kwnm/ZeLbvIL+NrBs= + # 主服务器 server-url: https://server.gxwebsoft.com/api + # 文件服务器 file-server: https://file.wsdns.cn upload-path: /Users/gxwebsoft/Documents/uploads/ local-upload-path: /Users/gxwebsoft/Documents/uploads/ diff --git a/src/test/java/com/gxwebsoft/generator/CodeGenerator.java b/src/test/java/com/gxwebsoft/generator/CodeGenerator.java deleted file mode 100644 index c3cc75a..0000000 --- a/src/test/java/com/gxwebsoft/generator/CodeGenerator.java +++ /dev/null @@ -1,167 +0,0 @@ -package com.gxwebsoft.generator; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.generator.AutoGenerator; -import com.baomidou.mybatisplus.generator.InjectionConfig; -import com.baomidou.mybatisplus.generator.config.*; -import com.baomidou.mybatisplus.generator.config.po.TableInfo; -import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; -import com.gxwebsoft.generator.engine.BeetlTemplateEnginePlus; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 代码生成工具 - * - * @author WebSoft - * @since 2021-09-05 00:31:14 - */ -public class CodeGenerator { - // 输出位置 - private static final String OUTPUT_LOCATION = System.getProperty("user.dir"); - //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 - // 输出目录 - private static final String OUTPUT_DIR = "/src/main/java"; - // 作者名称 - private static final String AUTHOR = "WebSoft"; - // 是否在xml中添加二级缓存配置 - private static final boolean ENABLE_CACHE = false; - // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://localhost:3306/websoft-api?useUnicode=true&useSSL=false&characterEncoding=utf8"; - private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "root"; - private static final String DB_PASSWORD = "123456"; - // 包名 - private static final String PACKAGE_NAME = "com.gxwebsoft"; - // 模块名 - private static final String MODULE_NAME = "test"; - // 需要生成的表 - private static final String[] TABLE_NAMES = new String[]{ - "sys_user", - "sys_role" - }; - // 需要去除的表前缀 - private static final String[] TABLE_PREFIX = new String[]{ - "sys_", - "tb_" - }; - // 不需要作为查询参数的字段 - private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{ - "tenant_id", - "create_time", - "update_time" - }; - // 查询参数使用String的类型 - private static final String[] PARAM_TO_STRING_TYPE = new String[]{ - "Date", - "LocalDate", - "LocalTime", - "LocalDateTime" - }; - // 查询参数使用EQ的类型 - private static final String[] PARAM_EQ_TYPE = new String[]{ - "Integer", - "Boolean", - "BigDecimal" - }; - // 是否添加权限注解 - private static final boolean AUTH_ANNOTATION = true; - // 是否添加日志注解 - private static final boolean LOG_ANNOTATION = true; - // controller的mapping前缀 - private static final String CONTROLLER_MAPPING_PREFIX = "/api"; - // 模板所在位置 - private static final String TEMPLATES_DIR = "/src/test/java/com/gxwebsoft/generator/templates"; - - public static void main(String[] args) { - // 代码生成器 - AutoGenerator mpg = new AutoGenerator(); - - // 全局配置 - GlobalConfig gc = new GlobalConfig(); - gc.setOutputDir(OUTPUT_LOCATION + OUTPUT_DIR); - gc.setAuthor(AUTHOR); - gc.setOpen(false); - gc.setFileOverride(true); - gc.setEnableCache(ENABLE_CACHE); - gc.setSwagger2(true); - gc.setIdType(IdType.AUTO); - gc.setServiceName("%sService"); - mpg.setGlobalConfig(gc); - - // 数据源配置 - DataSourceConfig dsc = new DataSourceConfig(); - dsc.setUrl(DB_URL); - // dsc.setSchemaName("public"); - dsc.setDriverName(DB_DRIVER); - dsc.setUsername(DB_USERNAME); - dsc.setPassword(DB_PASSWORD); - mpg.setDataSource(dsc); - - // 包配置 - PackageConfig pc = new PackageConfig(); - pc.setModuleName(MODULE_NAME); - pc.setParent(PACKAGE_NAME); - mpg.setPackageInfo(pc); - - // 策略配置 - StrategyConfig strategy = new StrategyConfig(); - strategy.setNaming(NamingStrategy.underline_to_camel); - strategy.setColumnNaming(NamingStrategy.underline_to_camel); - strategy.setInclude(TABLE_NAMES); - strategy.setTablePrefix(TABLE_PREFIX); - strategy.setSuperControllerClass(PACKAGE_NAME + ".common.core.web.BaseController"); - strategy.setEntityLombokModel(true); - strategy.setRestControllerStyle(true); - strategy.setControllerMappingHyphenStyle(true); - strategy.setLogicDeleteFieldName("deleted"); - mpg.setStrategy(strategy); - - // 模板配置 - TemplateConfig templateConfig = new TemplateConfig(); - templateConfig.setController(TEMPLATES_DIR + "/controller.java"); - templateConfig.setEntity(TEMPLATES_DIR + "/entity.java"); - templateConfig.setMapper(TEMPLATES_DIR + "/mapper.java"); - templateConfig.setXml(TEMPLATES_DIR + "/mapper.xml"); - templateConfig.setService(TEMPLATES_DIR + "/service.java"); - templateConfig.setServiceImpl(TEMPLATES_DIR + "/serviceImpl.java"); - mpg.setTemplate(templateConfig); - mpg.setTemplateEngine(new BeetlTemplateEnginePlus()); - - // 自定义模板配置 - InjectionConfig cfg = new InjectionConfig() { - @Override - public void initMap() { - Map map = new HashMap<>(); - map.put("packageName", PACKAGE_NAME); - map.put("paramExcludeFields", PARAM_EXCLUDE_FIELDS); - map.put("paramToStringType", PARAM_TO_STRING_TYPE); - map.put("paramEqType", PARAM_EQ_TYPE); - map.put("authAnnotation", AUTH_ANNOTATION); - map.put("logAnnotation", LOG_ANNOTATION); - map.put("controllerMappingPrefix", CONTROLLER_MAPPING_PREFIX); - this.setMap(map); - } - }; - String templatePath = TEMPLATES_DIR + "/param.java.btl"; - List focList = new ArrayList<>(); - focList.add(new FileOutConfig(templatePath) { - @Override - public String outputFile(TableInfo tableInfo) { - return OUTPUT_LOCATION + OUTPUT_DIR + "/" - + PACKAGE_NAME.replace(".", "/") - + "/" + pc.getModuleName() + "/param/" - + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; - } - }); - cfg.setFileOutConfigList(focList); - mpg.setCfg(cfg); - - mpg.execute(); - } - -} diff --git a/src/test/java/com/gxwebsoft/generator/SysGenerator.java b/src/test/java/com/gxwebsoft/generator/OaGenerator.java similarity index 91% rename from src/test/java/com/gxwebsoft/generator/SysGenerator.java rename to src/test/java/com/gxwebsoft/generator/OaGenerator.java index d1c2ed2..33a5082 100644 --- a/src/test/java/com/gxwebsoft/generator/SysGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/OaGenerator.java @@ -20,7 +20,7 @@ import java.util.Map; * @author WebSoft * @since 2021-09-05 00:31:14 */ -public class SysGenerator { +public class OaGenerator { // 输出位置 private static final String OUTPUT_LOCATION = System.getProperty("user.dir"); //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 @@ -31,30 +31,30 @@ public class SysGenerator { // 是否在xml中添加二级缓存配置 private static final boolean ENABLE_CACHE = false; // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://47.119.165.234:3308/com_gxwebsoft_oa?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; + private static final String DB_URL = "jdbc:mysql://47.119.165.234:3308/modules?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "com_gxwebsoft_oa"; - private static final String DB_PASSWORD = "EZfW2R4YiWfbLHLw"; + private static final String DB_USERNAME = "modules"; + private static final String DB_PASSWORD = "FYJGx7s8yt7K8xDH"; // 包名 private static final String PACKAGE_NAME = "com.gxwebsoft"; // 模块名 - private static final String MODULE_NAME = "common.system"; + private static final String MODULE_NAME = "oa"; // 需要生成的表 private static final String[] TABLE_NAMES = new String[]{ - -// "sys_user", - "sys_tenant", -// "sys_setting" -// "sys_access_key" -// "sys_company", -// "sys_industry" -// "sys_plug", -// "sys_company" - +// "oa_task", +// "oa_task_record", +// "oa_task_user", + "oa_task_count", +// "oa_company", +// "oa_assets", +// "oa_assets_user", +// "oa_app", +// "oa_app_url", +// "oa_app_user" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ - "sys_", + "oa_", "tb_" }; // 不需要作为查询参数的字段 diff --git a/src/test/java/com/gxwebsoft/generator/templates/controller.java.btl b/src/test/java/com/gxwebsoft/generator/templates/controller.java.btl index ce27b8f..bdea0f5 100644 --- a/src/test/java/com/gxwebsoft/generator/templates/controller.java.btl +++ b/src/test/java/com/gxwebsoft/generator/templates/controller.java.btl @@ -63,11 +63,6 @@ public class ${table.controllerName} { * 分页查询${table.comment!} */ <% } %> - <% if(cfg.authAnnotation) { %> - @PreAuthorize("hasAuthority('${authPre}:list')") - <% } %> - <% if(cfg.logAnnotation) { %> - <% } %> <% if(swagger2) { %> @ApiOperation("分页查询${table.comment!}") <% } %> @@ -88,11 +83,6 @@ public class ${table.controllerName} { * 查询全部${table.comment!} */ <% } %> - <% if(cfg.authAnnotation) { %> - @PreAuthorize("hasAuthority('${authPre}:list')") - <% } %> - <% if(cfg.logAnnotation) { %> - <% } %> <% if(swagger2) { %> @ApiOperation("查询全部${table.comment!}") <% } %> @@ -113,7 +103,6 @@ public class ${table.controllerName} { * 根据id查询${table.comment!} */ <% } %> - @PreAuthorize("hasAuthority('${authPre}:list')") @ApiOperation("根据id查询${table.comment!}") @GetMapping("/{id}") public ApiResult<${entity}> get(@PathVariable("id") Integer id) { @@ -127,11 +116,6 @@ public class ${table.controllerName} { * 添加${table.comment!} */ <% } %> - <% if(cfg.authAnnotation) { %> - @PreAuthorize("hasAuthority('${authPre}:save')") - <% } %> - <% if(cfg.logAnnotation) { %> - <% } %> <% if(swagger2) { %> @ApiOperation("添加${table.comment!}") <% } %> @@ -156,11 +140,6 @@ public class ${table.controllerName} { * 修改${table.comment!} */ <% } %> - <% if(cfg.authAnnotation) { %> - @PreAuthorize("hasAuthority('${authPre}:update')") - <% } %> - <% if(cfg.logAnnotation) { %> - <% } %> <% if(swagger2) { %> @ApiOperation("修改${table.comment!}") <% } %> @@ -180,11 +159,6 @@ public class ${table.controllerName} { * 删除${table.comment!} */ <% } %> - <% if(cfg.authAnnotation) { %> - @PreAuthorize("hasAuthority('${authPre}:remove')") - <% } %> - <% if(cfg.logAnnotation) { %> - <% } %> <% if(swagger2) { %> @ApiOperation("删除${table.comment!}") <% } %> @@ -204,11 +178,6 @@ public class ${table.controllerName} { * 批量添加${table.comment!} */ <% } %> - <% if(cfg.authAnnotation) { %> - @PreAuthorize("hasAuthority('${authPre}:save')") - <% } %> - <% if(cfg.logAnnotation) { %> - <% } %> <% if(swagger2) { %> @ApiOperation("批量添加${table.comment!}") <% } %> @@ -228,11 +197,6 @@ public class ${table.controllerName} { * 批量修改${table.comment!} */ <% } %> - <% if(cfg.authAnnotation) { %> - @PreAuthorize("hasAuthority('${authPre}:update')") - <% } %> - <% if(cfg.logAnnotation) { %> - <% } %> <% if(swagger2) { %> @ApiOperation("批量修改${table.comment!}") <% } %> @@ -252,11 +216,6 @@ public class ${table.controllerName} { * 批量删除${table.comment!} */ <% } %> - <% if(cfg.authAnnotation) { %> - @PreAuthorize("hasAuthority('${authPre}:remove')") - <% } %> - <% if(cfg.logAnnotation) { %> - <% } %> <% if(swagger2) { %> @ApiOperation("批量删除${table.comment!}") <% } %>