tangbin 1 рік тому
батько
коміт
21be655ebc
100 змінених файлів з 1251 додано та 5163 видалено
  1. 1251 0
      wjp-admin/db/wjp_project40.sql
  2. 0 123
      wjp-admin/src/main/java/com/wjp/modules/demo/controller/ExcelDataController.java
  3. 0 112
      wjp-admin/src/main/java/com/wjp/modules/demo/controller/NewsController.java
  4. 0 101
      wjp-admin/src/main/java/com/wjp/modules/demo/controller/ProductController.java
  5. 0 15
      wjp-admin/src/main/java/com/wjp/modules/demo/dao/ExcelDataDao.java
  6. 0 28
      wjp-admin/src/main/java/com/wjp/modules/demo/dao/NewsDao.java
  7. 0 15
      wjp-admin/src/main/java/com/wjp/modules/demo/dao/ProductDao.java
  8. 0 19
      wjp-admin/src/main/java/com/wjp/modules/demo/dao/ProductParamsDao.java
  9. 0 38
      wjp-admin/src/main/java/com/wjp/modules/demo/dto/ExcelDataDTO.java
  10. 0 56
      wjp-admin/src/main/java/com/wjp/modules/demo/dto/NewsDTO.java
  11. 0 37
      wjp-admin/src/main/java/com/wjp/modules/demo/dto/ProductDTO.java
  12. 0 22
      wjp-admin/src/main/java/com/wjp/modules/demo/dto/ProductParamsDTO.java
  13. 0 54
      wjp-admin/src/main/java/com/wjp/modules/demo/entity/ExcelDataEntity.java
  14. 0 57
      wjp-admin/src/main/java/com/wjp/modules/demo/entity/NewsEntity.java
  15. 0 39
      wjp-admin/src/main/java/com/wjp/modules/demo/entity/ProductEntity.java
  16. 0 46
      wjp-admin/src/main/java/com/wjp/modules/demo/entity/ProductParamsEntity.java
  17. 0 33
      wjp-admin/src/main/java/com/wjp/modules/demo/excel/ExcelDataExcel.java
  18. 0 14
      wjp-admin/src/main/java/com/wjp/modules/demo/service/ExcelDataService.java
  19. 0 32
      wjp-admin/src/main/java/com/wjp/modules/demo/service/NewsService.java
  20. 0 21
      wjp-admin/src/main/java/com/wjp/modules/demo/service/ProductParamsService.java
  21. 0 14
      wjp-admin/src/main/java/com/wjp/modules/demo/service/ProductService.java
  22. 0 34
      wjp-admin/src/main/java/com/wjp/modules/demo/service/impl/ExcelDataServiceImpl.java
  23. 0 97
      wjp-admin/src/main/java/com/wjp/modules/demo/service/impl/NewsServiceImpl.java
  24. 0 59
      wjp-admin/src/main/java/com/wjp/modules/demo/service/impl/ProductParamsServiceImpl.java
  25. 0 75
      wjp-admin/src/main/java/com/wjp/modules/demo/service/impl/ProductServiceImpl.java
  26. 0 39
      wjp-admin/src/main/java/com/wjp/modules/devtools/controller/ProjectController.java
  27. 0 186
      wjp-admin/src/main/java/com/wjp/modules/devtools/utils/ProjectUtils.java
  28. 0 70
      wjp-admin/src/main/java/com/wjp/modules/message/controller/MailLogController.java
  29. 0 148
      wjp-admin/src/main/java/com/wjp/modules/message/controller/MailTemplateController.java
  30. 0 137
      wjp-admin/src/main/java/com/wjp/modules/message/controller/SmsController.java
  31. 0 56
      wjp-admin/src/main/java/com/wjp/modules/message/controller/SysSmsLogController.java
  32. 0 23
      wjp-admin/src/main/java/com/wjp/modules/message/dao/SysMailLogDao.java
  33. 0 23
      wjp-admin/src/main/java/com/wjp/modules/message/dao/SysMailTemplateDao.java
  34. 0 23
      wjp-admin/src/main/java/com/wjp/modules/message/dao/SysSmsDao.java
  35. 0 15
      wjp-admin/src/main/java/com/wjp/modules/message/dao/SysSmsLogDao.java
  36. 0 58
      wjp-admin/src/main/java/com/wjp/modules/message/dto/SysMailLogDTO.java
  37. 0 56
      wjp-admin/src/main/java/com/wjp/modules/message/dto/SysMailTemplateDTO.java
  38. 0 47
      wjp-admin/src/main/java/com/wjp/modules/message/dto/SysSmsDTO.java
  39. 0 55
      wjp-admin/src/main/java/com/wjp/modules/message/dto/SysSmsLogDTO.java
  40. 0 41
      wjp-admin/src/main/java/com/wjp/modules/message/email/EmailConfig.java
  41. 0 179
      wjp-admin/src/main/java/com/wjp/modules/message/email/EmailUtils.java
  42. 0 55
      wjp-admin/src/main/java/com/wjp/modules/message/entity/SysMailLogEntity.java
  43. 0 39
      wjp-admin/src/main/java/com/wjp/modules/message/entity/SysMailTemplateEntity.java
  44. 0 56
      wjp-admin/src/main/java/com/wjp/modules/message/entity/SysSmsEntity.java
  45. 0 64
      wjp-admin/src/main/java/com/wjp/modules/message/entity/SysSmsLogEntity.java
  46. 0 38
      wjp-admin/src/main/java/com/wjp/modules/message/service/SysMailLogService.java
  47. 0 30
      wjp-admin/src/main/java/com/wjp/modules/message/service/SysMailTemplateService.java
  48. 0 25
      wjp-admin/src/main/java/com/wjp/modules/message/service/SysSmsLogService.java
  49. 0 32
      wjp-admin/src/main/java/com/wjp/modules/message/service/SysSmsService.java
  50. 0 67
      wjp-admin/src/main/java/com/wjp/modules/message/service/impl/SysMailLogServiceImpl.java
  51. 0 57
      wjp-admin/src/main/java/com/wjp/modules/message/service/impl/SysMailTemplateServiceImpl.java
  52. 0 67
      wjp-admin/src/main/java/com/wjp/modules/message/service/impl/SysSmsLogServiceImpl.java
  53. 0 92
      wjp-admin/src/main/java/com/wjp/modules/message/service/impl/SysSmsServiceImpl.java
  54. 0 42
      wjp-admin/src/main/java/com/wjp/modules/message/sms/AbstractSmsService.java
  55. 0 110
      wjp-admin/src/main/java/com/wjp/modules/message/sms/AliyunSmsService.java
  56. 0 69
      wjp-admin/src/main/java/com/wjp/modules/message/sms/QcloudSmsService.java
  57. 0 70
      wjp-admin/src/main/java/com/wjp/modules/message/sms/QiniuSmsService.java
  58. 0 74
      wjp-admin/src/main/java/com/wjp/modules/message/sms/SmsConfig.java
  59. 0 44
      wjp-admin/src/main/java/com/wjp/modules/message/sms/SmsFactory.java
  60. 0 17
      wjp-admin/src/main/java/com/wjp/modules/mp/builder/AbstractBuilder.java
  61. 0 24
      wjp-admin/src/main/java/com/wjp/modules/mp/builder/ImageBuilder.java
  62. 0 22
      wjp-admin/src/main/java/com/wjp/modules/mp/builder/TextBuilder.java
  63. 0 106
      wjp-admin/src/main/java/com/wjp/modules/mp/config/MpConfig.java
  64. 0 101
      wjp-admin/src/main/java/com/wjp/modules/mp/controller/MpAccountController.java
  65. 0 74
      wjp-admin/src/main/java/com/wjp/modules/mp/controller/MpMaterialController.java
  66. 0 83
      wjp-admin/src/main/java/com/wjp/modules/mp/controller/MpMenuController.java
  67. 0 108
      wjp-admin/src/main/java/com/wjp/modules/mp/controller/MpPortalController.java
  68. 0 15
      wjp-admin/src/main/java/com/wjp/modules/mp/dao/MpAccountDao.java
  69. 0 15
      wjp-admin/src/main/java/com/wjp/modules/mp/dao/MpMenuDao.java
  70. 0 43
      wjp-admin/src/main/java/com/wjp/modules/mp/dto/MpAccountDTO.java
  71. 0 18
      wjp-admin/src/main/java/com/wjp/modules/mp/dto/MpMaterialDTO.java
  72. 0 32
      wjp-admin/src/main/java/com/wjp/modules/mp/dto/MpMenuDTO.java
  73. 0 52
      wjp-admin/src/main/java/com/wjp/modules/mp/entity/MpAccountEntity.java
  74. 0 40
      wjp-admin/src/main/java/com/wjp/modules/mp/entity/MpMenuEntity.java
  75. 0 12
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/AbstractHandler.java
  76. 0 25
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/KfSessionHandler.java
  77. 0 46
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/LocationHandler.java
  78. 0 25
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/LogHandler.java
  79. 0 35
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/MenuHandler.java
  80. 0 52
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/MsgHandler.java
  81. 0 24
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/NullHandler.java
  82. 0 26
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/ScanHandler.java
  83. 0 27
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/StoreCheckNotifyHandler.java
  84. 0 72
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/SubscribeHandler.java
  85. 0 29
      wjp-admin/src/main/java/com/wjp/modules/mp/handler/UnsubscribeHandler.java
  86. 0 14
      wjp-admin/src/main/java/com/wjp/modules/mp/service/MpAccountService.java
  87. 0 17
      wjp-admin/src/main/java/com/wjp/modules/mp/service/MpMenuService.java
  88. 0 35
      wjp-admin/src/main/java/com/wjp/modules/mp/service/impl/MpAccountServiceImpl.java
  89. 0 39
      wjp-admin/src/main/java/com/wjp/modules/mp/service/impl/MpMenuServiceImpl.java
  90. 0 39
      wjp-admin/src/main/java/com/wjp/modules/pay/Interceptor/AliPayInterceptor.java
  91. 0 22
      wjp-admin/src/main/java/com/wjp/modules/pay/config/AliPayProperties.java
  92. 0 27
      wjp-admin/src/main/java/com/wjp/modules/pay/controller/AbstractAliPayApiController.java
  93. 0 142
      wjp-admin/src/main/java/com/wjp/modules/pay/controller/AliPayController.java
  94. 0 55
      wjp-admin/src/main/java/com/wjp/modules/pay/controller/AlipayNotifyLogController.java
  95. 0 86
      wjp-admin/src/main/java/com/wjp/modules/pay/controller/OrderController.java
  96. 0 23
      wjp-admin/src/main/java/com/wjp/modules/pay/dao/AlipayNotifyLogDao.java
  97. 0 32
      wjp-admin/src/main/java/com/wjp/modules/pay/dao/OrderDao.java
  98. 0 55
      wjp-admin/src/main/java/com/wjp/modules/pay/dto/AlipayNotifyLogDTO.java
  99. 0 50
      wjp-admin/src/main/java/com/wjp/modules/pay/dto/OrderDTO.java
  100. 0 76
      wjp-admin/src/main/java/com/wjp/modules/pay/entity/AlipayNotifyLogEntity.java

Різницю між файлами не показано, бо вона завелика
+ 1251 - 0
wjp-admin/db/wjp_project40.sql


+ 0 - 123
wjp-admin/src/main/java/com/wjp/modules/demo/controller/ExcelDataController.java

@@ -1,123 +0,0 @@
-package com.wjp.modules.demo.controller;
-
-import com.alibaba.excel.EasyExcel;
-import com.github.xiaoymin.knife4j.annotations.Ignore;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.ExcelDataListener;
-import com.wjp.common.utils.ExcelUtils;
-import com.wjp.common.utils.Result;
-import com.wjp.common.validator.AssertUtils;
-import com.wjp.common.validator.ValidatorUtils;
-import com.wjp.common.validator.group.AddGroup;
-import com.wjp.common.validator.group.DefaultGroup;
-import com.wjp.common.validator.group.UpdateGroup;
-import com.wjp.modules.demo.dto.ExcelDataDTO;
-import com.wjp.modules.demo.excel.ExcelDataExcel;
-import com.wjp.modules.demo.service.ExcelDataService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.List;
-import java.util.Map;
-
-
-/**
- * Excel导入演示
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("demo/excel")
-@Tag(name = "Excel导入演示")
-public class ExcelDataController {
-    private final ExcelDataService excelDataService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
-    })
-    @RequiresPermissions("demo:excel:all")
-    public Result<PageData<ExcelDataDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<ExcelDataDTO> page = excelDataService.page(params);
-
-        return new Result<PageData<ExcelDataDTO>>().ok(page);
-    }
-
-    @GetMapping("{id}")
-    @Operation(summary = "信息")
-    @RequiresPermissions("demo:excel:all")
-    public Result<ExcelDataDTO> get(@PathVariable("id") Long id) {
-        ExcelDataDTO data = excelDataService.get(id);
-
-        return new Result<ExcelDataDTO>().ok(data);
-    }
-
-    @PostMapping
-    @Operation(summary = "保存")
-    @RequiresPermissions("demo:excel:all")
-    public Result save(@RequestBody ExcelDataDTO dto) {
-        //效验数据
-        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
-
-        excelDataService.save(dto);
-
-        return new Result();
-    }
-
-    @PutMapping
-    @Operation(summary = "修改")
-    @RequiresPermissions("demo:excel:all")
-    public Result update(@RequestBody ExcelDataDTO dto) {
-        //效验数据
-        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
-
-        excelDataService.update(dto);
-
-        return new Result();
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除")
-    @RequiresPermissions("demo:excel:all")
-    public Result delete(@RequestBody Long[] ids) {
-        //效验数据
-        AssertUtils.isArrayEmpty(ids, "id");
-
-        excelDataService.delete(ids);
-
-        return new Result();
-    }
-
-    @PostMapping("import")
-    @Operation(summary = "导入")
-    @RequiresPermissions("demo:excel:all")
-    public Result importExcel(@RequestParam("file") MultipartFile file) throws Exception {
-        //解析并保存到数据库
-        EasyExcel.read(file.getInputStream(), ExcelDataExcel.class, new ExcelDataListener<>(excelDataService)).sheet().doRead();
-
-        return new Result();
-    }
-
-    @GetMapping("export")
-    @Operation(summary = "导出")
-    @RequiresPermissions("demo:excel:all")
-    public void export(@Parameter(hidden = true) @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
-        List<ExcelDataDTO> list = excelDataService.list(params);
-
-        ExcelUtils.exportExcelToTarget(response, null, "Excel导入演示", list, ExcelDataExcel.class);
-    }
-
-}

+ 0 - 112
wjp-admin/src/main/java/com/wjp/modules/demo/controller/NewsController.java

@@ -1,112 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.demo.controller;
-
-import com.github.xiaoymin.knife4j.annotations.Ignore;
-import com.wjp.common.annotation.LogOperation;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import com.wjp.common.validator.AssertUtils;
-import com.wjp.common.validator.ValidatorUtils;
-import com.wjp.common.validator.group.AddGroup;
-import com.wjp.common.validator.group.DefaultGroup;
-import com.wjp.common.validator.group.UpdateGroup;
-import com.wjp.modules.demo.dto.NewsDTO;
-import com.wjp.modules.demo.service.NewsService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Arrays;
-import java.util.Map;
-
-/**
- * 新闻
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("demo/news")
-@Tag(name = "新闻管理")
-public class NewsController {
-    private final NewsService newsService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)"),
-            @Parameter(name = "title", description = "标题"),
-            @Parameter(name = "startDate", description = "开始时间"),
-            @Parameter(name = "endDate", description = "结束时间"),
-    })
-    @RequiresPermissions("demo:news:all")
-    public Result<PageData<NewsDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<NewsDTO> page = newsService.page(params);
-
-        return new Result<PageData<NewsDTO>>().ok(page);
-    }
-
-    @Operation(summary = "信息")
-    @GetMapping("{id}")
-    @RequiresPermissions("demo:news:all")
-    public Result<NewsDTO> info(@PathVariable("id") Long id) {
-        NewsDTO news = newsService.get(id);
-
-        return new Result<NewsDTO>().ok(news);
-    }
-
-    @PostMapping
-    @Operation(summary = "保存")
-    @LogOperation("保存")
-    @RequiresPermissions("demo:news:all")
-    public Result save(NewsDTO dto) {
-        //效验数据
-        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
-
-        newsService.save(dto);
-
-        return new Result();
-    }
-
-    @PutMapping
-    @Operation(summary = "修改")
-    @LogOperation("修改")
-    @RequiresPermissions("demo:news:all")
-    public Result update(NewsDTO dto) {
-        //效验数据
-        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
-
-        newsService.update(dto);
-
-        return new Result();
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除")
-    @LogOperation("删除")
-    @RequiresPermissions("demo:news:all")
-    public Result delete(@RequestBody Long[] ids) {
-        //效验数据
-        AssertUtils.isArrayEmpty(ids, "id");
-
-        newsService.deleteBatchIds(Arrays.asList(ids));
-
-        return new Result();
-    }
-
-}

+ 0 - 101
wjp-admin/src/main/java/com/wjp/modules/demo/controller/ProductController.java

@@ -1,101 +0,0 @@
-package com.wjp.modules.demo.controller;
-
-import com.github.xiaoymin.knife4j.annotations.Ignore;
-import com.wjp.common.annotation.LogOperation;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import com.wjp.common.validator.AssertUtils;
-import com.wjp.common.validator.ValidatorUtils;
-import com.wjp.common.validator.group.AddGroup;
-import com.wjp.common.validator.group.DefaultGroup;
-import com.wjp.common.validator.group.UpdateGroup;
-import com.wjp.modules.demo.dto.ProductDTO;
-import com.wjp.modules.demo.service.ProductService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-
-
-/**
- * 产品管理
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("demo/product")
-@Tag(name = "产品管理")
-public class ProductController {
-    private final ProductService productService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
-    })
-    @RequiresPermissions("demo:product:page")
-    public Result<PageData<ProductDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<ProductDTO> page = productService.page(params);
-
-        return new Result<PageData<ProductDTO>>().ok(page);
-    }
-
-    @GetMapping("{id}")
-    @Operation(summary = "信息")
-    @RequiresPermissions("demo:product:info")
-    public Result<ProductDTO> get(@PathVariable("id") Long id) {
-        ProductDTO data = productService.get(id);
-
-        return new Result<ProductDTO>().ok(data);
-    }
-
-    @PostMapping
-    @Operation(summary = "保存")
-    @LogOperation("保存")
-    @RequiresPermissions("demo:product:save")
-    public Result save(@RequestBody ProductDTO dto) {
-        //效验数据
-        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
-
-        productService.save(dto);
-
-        return new Result();
-    }
-
-    @PutMapping
-    @Operation(summary = "修改")
-    @LogOperation("修改")
-    @RequiresPermissions("demo:product:update")
-    public Result update(@RequestBody ProductDTO dto) {
-        //效验数据
-        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
-
-        productService.update(dto);
-
-        return new Result();
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除")
-    @LogOperation("删除")
-    @RequiresPermissions("demo:product:delete")
-    public Result delete(@RequestBody Long[] ids) {
-        //效验数据
-        AssertUtils.isArrayEmpty(ids, "id");
-
-        productService.delete(ids);
-
-        return new Result();
-    }
-
-}

+ 0 - 15
wjp-admin/src/main/java/com/wjp/modules/demo/dao/ExcelDataDao.java

@@ -1,15 +0,0 @@
-package com.wjp.modules.demo.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.demo.entity.ExcelDataEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
-* Excel导入演示
-*
-* @author Toby javatangbin@163.com
-*/
-@Mapper
-public interface ExcelDataDao extends BaseDao<ExcelDataEntity> {
-	
-}

+ 0 - 28
wjp-admin/src/main/java/com/wjp/modules/demo/dao/NewsDao.java

@@ -1,28 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.demo.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.demo.entity.NewsEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * 新闻
- *
- * @author Toby javatangbin@163.com
- */
-@Mapper
-public interface NewsDao extends BaseDao<NewsEntity> {
-
-    List<NewsEntity> getList(Map<String, Object> params);
-	
-}

+ 0 - 15
wjp-admin/src/main/java/com/wjp/modules/demo/dao/ProductDao.java

@@ -1,15 +0,0 @@
-package com.wjp.modules.demo.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.demo.entity.ProductEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 产品管理
- *
- * @author Toby javatangbin@163.com
- */
-@Mapper
-public interface ProductDao extends BaseDao<ProductEntity> {
-	
-}

+ 0 - 19
wjp-admin/src/main/java/com/wjp/modules/demo/dao/ProductParamsDao.java

@@ -1,19 +0,0 @@
-package com.wjp.modules.demo.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.demo.entity.ProductParamsEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 产品参数管理
- *
- * @author Toby javatangbin@163.com
- */
-@Mapper
-public interface ProductParamsDao extends BaseDao<ProductParamsEntity> {
-
-    /**
-     * 根据产品id,删除产品参数
-     */
-    void deleteByProductIds(Long[] productIds);
-}

+ 0 - 38
wjp-admin/src/main/java/com/wjp/modules/demo/dto/ExcelDataDTO.java

@@ -1,38 +0,0 @@
-package com.wjp.modules.demo.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.wjp.common.utils.DateUtils;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * Excel导入演示
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "Excel导入演示")
-public class ExcelDataDTO implements Serializable {
-    @Schema(description = "id")
-    private Long id;
-    @Schema(description = "学生姓名")
-    private String realName;
-    @Schema(description = "身份证")
-    private String userIdentity;
-    @Schema(description = "家庭地址")
-    private String address;
-    @Schema(description = "入学日期")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date joinDate;
-    @Schema(description = "班级名称")
-    private String className;
-    @Schema(description = "创建者")
-    private Long creator;
-    @Schema(description = "创建时间")
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-
-}

+ 0 - 56
wjp-admin/src/main/java/com/wjp/modules/demo/dto/NewsDTO.java

@@ -1,56 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.demo.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.wjp.common.utils.DateUtils;
-import com.wjp.common.validator.group.AddGroup;
-import com.wjp.common.validator.group.DefaultGroup;
-import com.wjp.common.validator.group.UpdateGroup;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Null;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 新闻管理
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "新闻管理")
-public class NewsDTO implements Serializable {
-    @Schema(description = "id")
-    @Null(message = "{id.null}", groups = AddGroup.class)
-    @NotNull(message = "{id.require}", groups = UpdateGroup.class)
-    private Long id;
-
-    @Schema(description = "标题")
-    @NotBlank(message = "{news.title.require}", groups = DefaultGroup.class)
-    private String title;
-
-    @Schema(description = "内容")
-    @NotBlank(message = "{news.content.require}", groups = DefaultGroup.class)
-    private String content;
-
-    @Schema(description = "发布时间")
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date pubDate;
-
-    @Schema(description = "创建时间")
-    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-
-}

+ 0 - 37
wjp-admin/src/main/java/com/wjp/modules/demo/dto/ProductDTO.java

@@ -1,37 +0,0 @@
-package com.wjp.modules.demo.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.wjp.common.utils.DateUtils;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.util.List;
-
-
-/**
- * 产品管理
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "产品管理")
-public class ProductDTO implements Serializable {
-    @Schema(description = "id")
-    private Long id;
-
-    @Schema(description = "产品名称")
-    private String name;
-
-    @Schema(description = "产品介绍")
-    private String content;
-
-    @Schema(description = "创建时间")
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-
-    @Schema(description = "产品参数列表")
-    private List<ProductParamsDTO> subList;
-
-}

+ 0 - 22
wjp-admin/src/main/java/com/wjp/modules/demo/dto/ProductParamsDTO.java

@@ -1,22 +0,0 @@
-package com.wjp.modules.demo.dto;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-
-
-/**
- * 产品参数管理
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "产品参数管理")
-public class ProductParamsDTO implements Serializable {
-    @Schema(description = "参数名")
-    private String paramName;
-
-    @Schema(description = "参数值")
-    private String paramValue;
-}

+ 0 - 54
wjp-admin/src/main/java/com/wjp/modules/demo/entity/ExcelDataEntity.java

@@ -1,54 +0,0 @@
-package com.wjp.modules.demo.entity;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * Excel导入演示
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@TableName("tb_excel_data")
-public class ExcelDataEntity {
-    /**
-     * id
-     */
-    @TableId
-    private Long id;
-    /**
-     * 学生姓名
-     */
-    private String realName;
-    /**
-     * 身份证
-     */
-    private String userIdentity;
-    /**
-     * 家庭地址
-     */
-    private String address;
-    /**
-     * 入学日期
-     */
-    private Date joinDate;
-    /**
-     * 班级名称
-     */
-    private String className;
-    /**
-     * 创建者
-     */
-    @TableField(fill = FieldFill.INSERT)
-    private Long creator;
-    /**
-     * 创建时间
-     */
-    @TableField(fill = FieldFill.INSERT)
-    private Date createDate;
-}

+ 0 - 57
wjp-admin/src/main/java/com/wjp/modules/demo/entity/NewsEntity.java

@@ -1,57 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.demo.entity;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.wjp.common.entity.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.Date;
-
-/**
- * 新闻
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("tb_news")
-public class NewsEntity extends BaseEntity {
-    
-    /**
-     * 标题
-     */
-    private String title;
-    /**
-     * 内容
-     */
-    private String content;
-    /**
-     * 发布时间
-     */
-    private Date pubDate;
-    /**
-     * 创建者dept_id
-     */
-    @TableField(fill = FieldFill.INSERT)
-    private Long deptId;
-    /**
-     * 更新者
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Long updater;
-    /**
-     * 更新时间
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Date updateDate;
-}

+ 0 - 39
wjp-admin/src/main/java/com/wjp/modules/demo/entity/ProductEntity.java

@@ -1,39 +0,0 @@
-package com.wjp.modules.demo.entity;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.wjp.common.entity.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.Date;
-
-/**
- * 产品管理
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("tb_product")
-public class ProductEntity extends BaseEntity {
-    /**
-     * 产品名称
-     */
-    private String name;
-    /**
-     * 产品介绍
-     */
-    private String content;
-    /**
-     * 更新者
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Long updater;
-    /**
-     * 更新时间
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Date updateDate;
-}

+ 0 - 46
wjp-admin/src/main/java/com/wjp/modules/demo/entity/ProductParamsEntity.java

@@ -1,46 +0,0 @@
-package com.wjp.modules.demo.entity;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.wjp.common.entity.BaseEntity;
-import com.wjp.common.utils.DateUtils;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.Date;
-
-/**
- * 产品参数管理
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("tb_product_params")
-public class ProductParamsEntity extends BaseEntity {
-    /**
-     * 参数名
-     */
-    private String paramName;
-    /**
-     * 参数值
-     */
-    private String paramValue;
-    /**
-     * 产品ID
-     */
-    private Long productId;
-    /**
-     * 更新者
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Long updater;
-    /**
-     * 更新时间
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date updateDate;
-}

+ 0 - 33
wjp-admin/src/main/java/com/wjp/modules/demo/excel/ExcelDataExcel.java

@@ -1,33 +0,0 @@
-package com.wjp.modules.demo.excel;
-
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.alibaba.excel.annotation.format.DateTimeFormat;
-import com.alibaba.excel.annotation.write.style.ColumnWidth;
-import com.alibaba.excel.annotation.write.style.ContentRowHeight;
-import com.alibaba.excel.annotation.write.style.HeadRowHeight;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * Excel导入演示
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@ContentRowHeight(20)
-@HeadRowHeight(20)
-@ColumnWidth(25)
-public class ExcelDataExcel {
-    @ExcelProperty(value = "学生姓名", index = 0)
-    private String realName;
-    @ExcelProperty(value = "身份证", index = 1)
-    private String userIdentity;
-    @ExcelProperty(value = "家庭地址", index = 2)
-    private String address;
-    @ExcelProperty(value = "入学日期", index = 3)
-    @DateTimeFormat("yyyy-MM-dd")
-    private Date joinDate;
-    @ExcelProperty(value = "班级名称", index = 4)
-    private String className;
-}

+ 0 - 14
wjp-admin/src/main/java/com/wjp/modules/demo/service/ExcelDataService.java

@@ -1,14 +0,0 @@
-package com.wjp.modules.demo.service;
-
-import com.wjp.common.service.CrudService;
-import com.wjp.modules.demo.dto.ExcelDataDTO;
-import com.wjp.modules.demo.entity.ExcelDataEntity;
-
-/**
- * Excel导入演示
- *
- * @author Toby javatangbin@163.com
- */
-public interface ExcelDataService extends CrudService<ExcelDataEntity, ExcelDataDTO> {
-
-}

+ 0 - 32
wjp-admin/src/main/java/com/wjp/modules/demo/service/NewsService.java

@@ -1,32 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.demo.service;
-
-import com.wjp.common.page.PageData;
-import com.wjp.common.service.BaseService;
-import com.wjp.modules.demo.dto.NewsDTO;
-import com.wjp.modules.demo.entity.NewsEntity;
-
-import java.util.Map;
-
-/**
- * 新闻
- *
- * @author Toby javatangbin@163.com
- */
-public interface NewsService extends BaseService<NewsEntity> {
-
-    PageData<NewsDTO> page(Map<String, Object> params);
-
-    NewsDTO get(Long id);
-
-    void save(NewsDTO dto);
-
-    void update(NewsDTO dto);
-}

+ 0 - 21
wjp-admin/src/main/java/com/wjp/modules/demo/service/ProductParamsService.java

@@ -1,21 +0,0 @@
-package com.wjp.modules.demo.service;
-
-import com.wjp.common.service.BaseService;
-import com.wjp.modules.demo.dto.ProductParamsDTO;
-import com.wjp.modules.demo.entity.ProductParamsEntity;
-
-import java.util.List;
-
-/**
- * 产品参数管理
- *
- * @author Toby javatangbin@163.com
- */
-public interface ProductParamsService extends BaseService<ProductParamsEntity> {
-
-    void saveOrUpdate(Long productId, List<ProductParamsDTO> list);
-
-    void deleteByProductIds(Long[] productIds);
-
-    List<ProductParamsDTO> getList(Long productId);
-}

+ 0 - 14
wjp-admin/src/main/java/com/wjp/modules/demo/service/ProductService.java

@@ -1,14 +0,0 @@
-package com.wjp.modules.demo.service;
-
-import com.wjp.common.service.CrudService;
-import com.wjp.modules.demo.dto.ProductDTO;
-import com.wjp.modules.demo.entity.ProductEntity;
-
-/**
- * 产品管理
- *
- * @author Toby javatangbin@163.com
- */
-public interface ProductService extends CrudService<ProductEntity, ProductDTO> {
-
-}

+ 0 - 34
wjp-admin/src/main/java/com/wjp/modules/demo/service/impl/ExcelDataServiceImpl.java

@@ -1,34 +0,0 @@
-package com.wjp.modules.demo.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.wjp.common.service.impl.CrudServiceImpl;
-import com.wjp.modules.demo.dao.ExcelDataDao;
-import com.wjp.modules.demo.dto.ExcelDataDTO;
-import com.wjp.modules.demo.entity.ExcelDataEntity;
-import com.wjp.modules.demo.service.ExcelDataService;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-
-/**
- * Excel导入演示
- *
- * @author Toby javatangbin@163.com
- */
-@Service
-public class ExcelDataServiceImpl extends CrudServiceImpl<ExcelDataDao, ExcelDataEntity, ExcelDataDTO> implements ExcelDataService {
-
-    @Override
-    public QueryWrapper<ExcelDataEntity> getWrapper(Map<String, Object> params){
-        QueryWrapper<ExcelDataEntity> wrapper = new QueryWrapper<>();
-
-        String realName = (String)params.get("realName");
-        wrapper.like(StringUtils.isNotBlank(realName), "real_name", realName);
-
-        String userIdentity = (String)params.get("userIdentity");
-        wrapper.like(StringUtils.isNotBlank(userIdentity), "user_identity", userIdentity);
-
-        return wrapper;
-    }
-}

+ 0 - 97
wjp-admin/src/main/java/com/wjp/modules/demo/service/impl/NewsServiceImpl.java

@@ -1,97 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.demo.service.impl;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.wjp.common.annotation.DataFilter;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.service.impl.BaseServiceImpl;
-import com.wjp.common.utils.ConvertUtils;
-import com.wjp.modules.demo.dao.NewsDao;
-import com.wjp.modules.demo.dto.NewsDTO;
-import com.wjp.modules.demo.entity.NewsEntity;
-import com.wjp.modules.demo.service.NewsService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Map;
-
-
-@Service
-public class NewsServiceImpl extends BaseServiceImpl<NewsDao, NewsEntity> implements NewsService {
-
-    /**
-     * mybatis数据权限演示
-     */
-    @Override
-    @DataFilter
-    public PageData<NewsDTO> page(Map<String, Object> params) {
-        paramsToLike(params, "title");
-
-        //分页
-        IPage<NewsEntity> page = getPage(params, Constant.CREATE_DATE, false);
-
-        //查询
-        List<NewsEntity> list = baseDao.getList(params);
-
-        return getPageData(list, page.getTotal(), NewsDTO.class);
-    }
-
-//    /**
-//     * mybatis-plus数据权限演示
-//     */
-//    @Override
-//    @DataFilter
-//    public PageData<NewsDTO> page(Map<String, Object> params) {
-//        IPage<NewsEntity> page = baseDao.selectPage(
-//            getPage(params, Constant.CREATE_DATE, false),
-//            getWrapper(params)
-//        );
-//        return getPageData(page, NewsDTO.class);
-//    }
-//
-//    private QueryWrapper<NewsEntity> getWrapper(Map<String, Object> params){
-//        String title = (String)params.get("title");
-//        String startDate = (String)params.get("startDate");
-//        String endDate = (String)params.get("endDate");
-//
-//        QueryWrapper<NewsEntity> wrapper = new QueryWrapper<>();
-//        wrapper.like(StringUtils.isNotBlank(title), "title", title);
-//        wrapper.ge(StringUtils.isNotBlank(startDate),"pub_date", startDate);
-//        wrapper.le(StringUtils.isNotBlank(endDate),"pub_date", endDate);
-//
-//        //数据过滤
-//        wrapper.apply(params.get(Constant.SQL_FILTER) != null, params.get(Constant.SQL_FILTER).toString());
-//
-//        return wrapper;
-//    }
-
-    @Override
-    public NewsDTO get(Long id) {
-        NewsEntity entity = baseDao.selectById(id);
-
-        return ConvertUtils.sourceToTarget(entity, NewsDTO.class);
-    }
-
-    @Override
-    public void save(NewsDTO dto) {
-        NewsEntity entity = ConvertUtils.sourceToTarget(dto, NewsEntity.class);
-
-        insert(entity);
-    }
-
-    @Override
-    public void update(NewsDTO dto) {
-        NewsEntity entity = ConvertUtils.sourceToTarget(dto, NewsEntity.class);
-
-        updateById(entity);
-    }
-
-}

+ 0 - 59
wjp-admin/src/main/java/com/wjp/modules/demo/service/impl/ProductParamsServiceImpl.java

@@ -1,59 +0,0 @@
-package com.wjp.modules.demo.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.wjp.common.service.impl.BaseServiceImpl;
-import com.wjp.common.utils.ConvertUtils;
-import com.wjp.modules.demo.dao.ProductParamsDao;
-import com.wjp.modules.demo.dto.ProductParamsDTO;
-import com.wjp.modules.demo.entity.ProductParamsEntity;
-import com.wjp.modules.demo.service.ProductParamsService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 产品参数管理
- *
- * @author Toby javatangbin@163.com
- */
-@Service
-public class ProductParamsServiceImpl extends BaseServiceImpl<ProductParamsDao, ProductParamsEntity> implements ProductParamsService {
-
-    @Override
-    public void saveOrUpdate(Long productId, List<ProductParamsDTO> list) {
-        //先删除子表数据
-        deleteByProductIds(new Long[]{productId});
-
-        if(CollUtil.isEmpty(list)){
-            return ;
-        }
-
-        //保存子表数据
-        for(ProductParamsDTO dto : list){
-            ProductParamsEntity entity = new ProductParamsEntity();
-            entity.setProductId(productId);
-            entity.setParamName(dto.getParamName());
-            entity.setParamValue(dto.getParamValue());
-
-            //保存
-            insert(entity);
-        }
-    }
-
-    @Override
-    public void deleteByProductIds(Long[] productIds) {
-        baseDao.deleteByProductIds(productIds);
-    }
-
-    @Override
-    public List<ProductParamsDTO> getList(Long productId) {
-        // 查询子表数据列表
-        QueryWrapper<ProductParamsEntity> query = new QueryWrapper<>();
-        query.eq("product_id", productId);
-        List<ProductParamsEntity> list = baseDao.selectList(query);
-
-        return ConvertUtils.sourceToTarget(list, ProductParamsDTO.class);
-    }
-
-}

+ 0 - 75
wjp-admin/src/main/java/com/wjp/modules/demo/service/impl/ProductServiceImpl.java

@@ -1,75 +0,0 @@
-package com.wjp.modules.demo.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.wjp.common.service.impl.CrudServiceImpl;
-import com.wjp.modules.demo.dao.ProductDao;
-import com.wjp.modules.demo.dto.ProductDTO;
-import com.wjp.modules.demo.dto.ProductParamsDTO;
-import com.wjp.modules.demo.entity.ProductEntity;
-import com.wjp.modules.demo.service.ProductParamsService;
-import com.wjp.modules.demo.service.ProductService;
-import lombok.AllArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * 产品管理
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@Service
-public class ProductServiceImpl extends CrudServiceImpl<ProductDao, ProductEntity, ProductDTO> implements ProductService {
-    private final ProductParamsService productParamsService;
-
-    @Override
-    public QueryWrapper<ProductEntity> getWrapper(Map<String, Object> params) {
-        String id = (String) params.get("id");
-
-        QueryWrapper<ProductEntity> wrapper = new QueryWrapper<>();
-        wrapper.eq(StringUtils.isNotBlank(id), "id", id);
-        return wrapper;
-    }
-
-    @Override
-    public ProductDTO get(Long id) {
-        ProductDTO dto = super.get(id);
-
-        // 获取子表数据
-        List<ProductParamsDTO> subList = productParamsService.getList(id);
-        dto.setSubList(subList);
-
-        return dto;
-    }
-
-    @Override
-    @Transactional
-    public void save(ProductDTO dto) {
-        super.save(dto);
-
-        // 保存子表数据
-        productParamsService.saveOrUpdate(dto.getId(), dto.getSubList());
-    }
-
-    @Override
-    @Transactional
-    public void update(ProductDTO dto) {
-        super.update(dto);
-
-        // 更新子表数据
-        productParamsService.saveOrUpdate(dto.getId(), dto.getSubList());
-    }
-
-    @Override
-    @Transactional
-    public void delete(Long[] ids) {
-        super.delete(ids);
-
-        // 删除子表数据
-        productParamsService.deleteByProductIds(ids);
-    }
-}

+ 0 - 39
wjp-admin/src/main/java/com/wjp/modules/devtools/controller/ProjectController.java

@@ -1,39 +0,0 @@
-/**
- * Copyright (c) 2020 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.devtools.controller;
-
-import cn.hutool.core.io.IoUtil;
-import com.wjp.modules.devtools.entity.ProjectEntity;
-import com.wjp.modules.devtools.utils.ProjectUtils;
-import jakarta.servlet.http.HttpServletResponse;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-
-/**
- * 项目名修改
- *
- * @author Toby javatangbin@163.com
- */
-@RestController
-@RequestMapping("devtools/project")
-public class ProjectController {
-
-    @GetMapping
-    public void project(ProjectEntity project, HttpServletResponse response) throws Exception {
-        byte[] data = ProjectUtils.download(project);
-
-        response.setHeader("Content-Disposition", "attachment; filename=\"" + project.getNewProjectName() + ".zip\"");
-        response.addHeader("Content-Length", "" + data.length);
-        response.setContentType("application/octet-stream; charset=UTF-8");
-
-        IoUtil.write(response.getOutputStream(), false, data);
-    }
-}

+ 0 - 186
wjp-admin/src/main/java/com/wjp/modules/devtools/utils/ProjectUtils.java

@@ -1,186 +0,0 @@
-package com.wjp.modules.devtools.utils;
-
-import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.io.file.FileNameUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.core.util.ZipUtil;
-import com.wjp.modules.devtools.entity.ProjectEntity;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 项目名修改 工具类
- *
- * @author Toby javatangbin@163.com
- */
-public class ProjectUtils {
-    /**
-     * 需要修改的文件后缀
-     */
-    public final static String MODIFY_SUFFIX = "java,xml,yml,factories,md,txt";
-    /**
-     * 排除的文件
-     */
-    public final static String EXCLUSIONS = ".git,.idea,target,logs";
-    /**
-     * 分隔符
-     */
-    public final static String SPLIT = ",";
-    /**
-     * 项目包名
-     */
-    public final static String PACKAGE_NAME = "com.wjp";
-    /**
-     * 项目标识
-     */
-    public final static String PROJECT_CODE = "wjp";
-
-    /**
-     * 拷贝目录文件
-     *
-     * @param srcRoot    原文件
-     * @param destRoot   目标文件
-     * @param exclusions 排除文件
-     * @param replaceMap 替换规则
-     */
-    public static void copyDirectory(File srcRoot, File destRoot, List<String> exclusions, Map<String, String> replaceMap) throws IOException {
-        String destPath = destRoot.getPath().replaceAll("\\\\", "/");
-        destRoot = new File(replaceData(destPath, replaceMap));
-
-        // 获取排除后的源文件
-        File[] srcFiles = CollectionUtil.isEmpty(exclusions) ?
-                srcRoot.listFiles() : srcRoot.listFiles(file -> !exclusions.contains(file.getName()));
-
-        if (srcFiles == null) {
-            throw new IOException("没有需要拷贝的文件 " + srcRoot);
-        }
-
-        for (File srcFile : srcFiles) {
-            String fileName = srcFile.getName();
-            if (srcFile.isFile()) {
-                fileName = replaceData(fileName, replaceMap);
-            }
-            File destFile = new File(destRoot, fileName);
-            if (srcFile.isDirectory()) {
-                copyDirectory(srcFile, destFile, exclusions, replaceMap);
-            } else {
-                FileUtil.copyFile(srcFile, destFile);
-            }
-        }
-    }
-
-    /**
-     * 内容格式化
-     *
-     * @param rootFile   文件根目录
-     * @param suffixList 需要格式化的文件后缀
-     * @param replaceMap 替换规则
-     */
-    public static void contentFormat(File rootFile, List<String> suffixList, Map<String, String> replaceMap) {
-        List<File> destList = FileUtil.loopFiles(rootFile, file -> suffixList.contains(FileNameUtil.getSuffix(file)));
-
-        for (File dest : destList) {
-            List<String> lines = FileUtil.readUtf8Lines(dest);
-            List<String> newList = new ArrayList<>();
-
-            for (String line : lines) {
-                newList.add(replaceData(line, replaceMap));
-            }
-
-            FileUtil.writeUtf8Lines(newList, dest);
-        }
-    }
-
-    /**
-     * 生成临时路径
-     */
-    public static String getTmpDirPath(String... names) {
-        StringBuilder tmpPath = new StringBuilder(FileUtil.getTmpDirPath());
-        tmpPath.append("generator");
-        tmpPath.append(File.separator);
-        tmpPath.append(System.currentTimeMillis());
-
-        for (String name : names) {
-            tmpPath.append(File.separator).append(name);
-        }
-
-        return tmpPath.toString();
-    }
-
-    /**
-     * 替换数据
-     *
-     * @param str 待替换的字符串
-     * @param map 替换的kv集合
-     * @return 返回替换后的数据
-     */
-    private static String replaceData(String str, Map<String, String> map) {
-        for (String key : map.keySet()) {
-            str = str.replaceAll(key, map.get(key));
-        }
-        return str;
-    }
-
-    public static byte[] download(ProjectEntity project) throws IOException {
-        // 原项目根路径
-        File srcRoot = new File(project.getProjectPath());
-
-        // 临时项目根路径
-        File destRoot = new File(ProjectUtils.getTmpDirPath(project.getNewProjectName()));
-
-        // 排除的文件
-        List<String> exclusions = StrUtil.split(EXCLUSIONS, ProjectUtils.SPLIT);
-
-        // 获取替换规则
-        Map<String, String> replaceMap = getReplaceMap(project);
-
-        // 拷贝项目到新路径,并替换路径和文件名
-        ProjectUtils.copyDirectory(srcRoot, destRoot, exclusions, replaceMap);
-
-        // 需要替换的文件后缀
-        List<String> suffixList = StrUtil.split(MODIFY_SUFFIX, ProjectUtils.SPLIT);
-
-        // 替换文件内容数据
-        ProjectUtils.contentFormat(destRoot, suffixList, replaceMap);
-
-        // 生成zip文件
-        File zipFile = ZipUtil.zip(destRoot);
-
-        byte[] data = FileUtil.readBytes(zipFile);
-
-        // 清空文件
-        FileUtil.clean(destRoot.getParentFile().getParentFile());
-
-        return data;
-    }
-
-    /**
-     * 获取替换规则
-     */
-    private static Map<String, String> getReplaceMap(ProjectEntity project) {
-        Map<String, String> map = new LinkedHashMap<>();
-
-        // 项目路径替换
-        String srcPath = "src/main/java/" + PACKAGE_NAME.replaceAll("\\.", "/");
-        String destPath = "src/main/java/" + project.getNewProjectPackage().replaceAll("\\.", "/");
-        map.put(srcPath, destPath);
-
-        // 项目包名替换
-        map.put(PACKAGE_NAME, project.getNewProjectPackage());
-
-        // 项目名称替换
-        map.put(project.getProjectName(), project.getNewProjectName());
-
-        // 项目标识替换
-        map.put(PROJECT_CODE, project.getNewProjectCode());
-        map.put(StrUtil.upperFirst(PROJECT_CODE), StrUtil.upperFirst(project.getNewProjectCode()));
-
-        return map;
-    }
-}

+ 0 - 70
wjp-admin/src/main/java/com/wjp/modules/message/controller/MailLogController.java

@@ -1,70 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.controller;
-
-import com.github.xiaoymin.knife4j.annotations.Ignore;
-import com.wjp.common.annotation.LogOperation;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import com.wjp.modules.message.dto.SysMailLogDTO;
-import com.wjp.modules.message.service.SysMailLogService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Arrays;
-import java.util.Map;
-
-
-/**
- * 邮件发送记录
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("sys/maillog")
-@Tag(name = "邮件发送记录")
-public class MailLogController {
-    private final SysMailLogService sysMailLogService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)"),
-            @Parameter(name = "templateId", description = "templateId"),
-            @Parameter(name = "mailTo", description = "mailTo"),
-            @Parameter(name = "status", description = "status")
-    })
-    @RequiresPermissions("sys:mail:log")
-    public Result<PageData<SysMailLogDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<SysMailLogDTO> page = sysMailLogService.page(params);
-
-        return new Result<PageData<SysMailLogDTO>>().ok(page);
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除")
-    @LogOperation("删除")
-    @RequiresPermissions("sys:mail:log")
-    public Result delete(@RequestBody Long[] ids) {
-        sysMailLogService.deleteBatchIds(Arrays.asList(ids));
-
-        return new Result();
-    }
-
-}

+ 0 - 148
wjp-admin/src/main/java/com/wjp/modules/message/controller/MailTemplateController.java

@@ -1,148 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.controller;
-
-import com.github.xiaoymin.knife4j.annotations.Ignore;
-import com.google.gson.Gson;
-import com.wjp.common.annotation.LogOperation;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import com.wjp.common.validator.ValidatorUtils;
-import com.wjp.common.validator.group.AddGroup;
-import com.wjp.common.validator.group.DefaultGroup;
-import com.wjp.common.validator.group.UpdateGroup;
-import com.wjp.modules.message.dto.SysMailTemplateDTO;
-import com.wjp.modules.message.email.EmailConfig;
-import com.wjp.modules.message.service.SysMailTemplateService;
-import com.wjp.modules.sys.service.SysParamsService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Arrays;
-import java.util.Map;
-
-
-/**
- * 邮件模板
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("sys/mailtemplate")
-@Tag(name = "邮件模板")
-public class MailTemplateController {
-    private final SysMailTemplateService sysMailTemplateService;
-    private final SysParamsService sysParamsService;
-
-    private final static String KEY = Constant.MAIL_CONFIG_KEY;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)"),
-            @Parameter(name = "name", description = "name")
-    })
-    @RequiresPermissions("sys:mail:all")
-    public Result<PageData<SysMailTemplateDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<SysMailTemplateDTO> page = sysMailTemplateService.page(params);
-
-        return new Result<PageData<SysMailTemplateDTO>>().ok(page);
-    }
-
-    @GetMapping("/config")
-    @Operation(summary = "获取配置信息")
-    @RequiresPermissions("sys:mail:all")
-    public Result<EmailConfig> config() {
-        EmailConfig config = sysParamsService.getValueObject(KEY, EmailConfig.class);
-
-        return new Result<EmailConfig>().ok(config);
-    }
-
-    @PostMapping("/saveConfig")
-    @Operation(summary = "保存配置信息")
-    @LogOperation("保存配置信息")
-    @RequiresPermissions("sys:mail:all")
-    public Result saveConfig(@RequestBody EmailConfig config) {
-        //校验数据
-        ValidatorUtils.validateEntity(config);
-
-        sysParamsService.updateValueByCode(KEY, new Gson().toJson(config));
-
-        return new Result();
-    }
-
-    @GetMapping("{id}")
-    @Operation(summary = "信息")
-    @RequiresPermissions("sys:mail:all")
-    public Result<SysMailTemplateDTO> info(@PathVariable("id") Long id) {
-        SysMailTemplateDTO sysMailTemplate = sysMailTemplateService.get(id);
-
-        return new Result<SysMailTemplateDTO>().ok(sysMailTemplate);
-    }
-
-    @PostMapping
-    @Operation(summary = "保存")
-    @LogOperation("保存")
-    @RequiresPermissions("sys:mail:all")
-    public Result save(SysMailTemplateDTO dto) {
-        //校验类型
-        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
-
-        sysMailTemplateService.save(dto);
-
-        return new Result();
-    }
-
-    @PutMapping
-    @Operation(summary = "修改")
-    @LogOperation("修改")
-    @RequiresPermissions("sys:mail:all")
-    public Result update(SysMailTemplateDTO dto) {
-        //校验类型
-        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
-
-        sysMailTemplateService.update(dto);
-
-        return new Result();
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除")
-    @LogOperation("删除")
-    @RequiresPermissions("sys:mail:all")
-    public Result delete(@RequestBody Long[] ids) {
-        sysMailTemplateService.deleteBatchIds(Arrays.asList(ids));
-
-        return new Result();
-    }
-
-    @PostMapping("/send")
-    @Operation(summary = "发送邮件")
-    @LogOperation("发送邮件")
-    @RequiresPermissions("sys:mail:all")
-    public Result send(Long id, String mailTo, String mailCc, String params) throws Exception {
-        boolean flag = sysMailTemplateService.sendMail(id, mailTo, mailCc, params);
-        if (flag) {
-            return new Result();
-        }
-
-        return new Result().error("邮件发送失败");
-    }
-
-}

+ 0 - 137
wjp-admin/src/main/java/com/wjp/modules/message/controller/SmsController.java

@@ -1,137 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.controller;
-
-import com.wjp.common.annotation.LogOperation;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import com.wjp.common.validator.ValidatorUtils;
-import com.wjp.common.validator.group.AliyunGroup;
-import com.wjp.common.validator.group.QcloudGroup;
-import com.wjp.common.validator.group.QiniuGroup;
-import com.wjp.modules.message.dto.SysSmsDTO;
-import com.wjp.modules.message.service.SysSmsService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Arrays;
-import java.util.Map;
-
-/**
- * 短信服务
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("sys/sms")
-@Tag(name = "短信服务")
-public class SmsController {
-    private final SysSmsService sysSmsService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
-    })
-    @RequiresPermissions("sys:sms:all")
-    public Result<PageData<SysSmsDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<SysSmsDTO> page = sysSmsService.page(params);
-
-        return new Result<PageData<SysSmsDTO>>().ok(page);
-    }
-
-    @PostMapping
-    @Operation(summary = "保存")
-    @LogOperation("保存")
-    @RequiresPermissions("sys:sms:all")
-    public Result save(@RequestBody SysSmsDTO dto) {
-        //校验数据
-        if (dto.getPlatform() == Constant.SmsService.ALIYUN.getValue()) {
-            //校验阿里云数据
-            ValidatorUtils.validateEntity(dto.getConfig(), AliyunGroup.class);
-        } else if (dto.getPlatform() == Constant.SmsService.QCLOUD.getValue()) {
-            //校验腾讯云数据
-            ValidatorUtils.validateEntity(dto.getConfig(), QcloudGroup.class);
-        } else if (dto.getPlatform() == Constant.SmsService.QINIU.getValue()) {
-            //校验七牛数据
-            ValidatorUtils.validateEntity(dto.getConfig(), QiniuGroup.class);
-        }
-
-        sysSmsService.save(dto);
-
-        return new Result();
-    }
-
-    @PutMapping
-    @Operation(summary = "修改")
-    @LogOperation("修改")
-    @RequiresPermissions("sys:sms:all")
-    public Result update(@RequestBody SysSmsDTO dto) {
-        //校验数据
-        if (dto.getPlatform() == Constant.SmsService.ALIYUN.getValue()) {
-            //校验阿里云数据
-            ValidatorUtils.validateEntity(dto.getConfig(), AliyunGroup.class);
-        } else if (dto.getPlatform() == Constant.SmsService.QCLOUD.getValue()) {
-            //校验腾讯云数据
-            ValidatorUtils.validateEntity(dto.getConfig(), QcloudGroup.class);
-        } else if (dto.getPlatform() == Constant.SmsService.QINIU.getValue()) {
-            //校验七牛数据
-            ValidatorUtils.validateEntity(dto.getConfig(), QiniuGroup.class);
-        }
-
-        sysSmsService.update(dto);
-
-        return new Result();
-    }
-
-    @GetMapping("{id}")
-    @Operation(summary = "信息")
-    @RequiresPermissions("sys:sms:all")
-    public Result<SysSmsDTO> info(@PathVariable("id") Long id) {
-        SysSmsDTO sms = sysSmsService.get(id);
-
-        return new Result<SysSmsDTO>().ok(sms);
-    }
-
-    @PostMapping("send")
-    @Operation(summary = "发送短信")
-    @LogOperation("发送短信")
-    @Parameters({
-            @Parameter(name = "smsCode", description = "短信编码", required = true),
-            @Parameter(name = "mobile", description = "手机好号", required = true),
-            @Parameter(name = "params", description = "参数", required = true)
-    })
-    @RequiresPermissions("sys:sms:all")
-    public Result send(String smsCode, String mobile, String params) {
-        sysSmsService.send(smsCode, mobile, params);
-
-        return new Result();
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除")
-    @LogOperation("删除")
-    @RequiresPermissions("sys:sms:all")
-    public Result delete(@RequestBody Long[] ids) {
-        sysSmsService.deleteBatchIds(Arrays.asList(ids));
-
-        return new Result();
-    }
-
-}

+ 0 - 56
wjp-admin/src/main/java/com/wjp/modules/message/controller/SysSmsLogController.java

@@ -1,56 +0,0 @@
-package com.wjp.modules.message.controller;
-
-import com.wjp.common.annotation.LogOperation;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import com.wjp.modules.message.dto.SysSmsLogDTO;
-import com.wjp.modules.message.service.SysSmsLogService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Arrays;
-import java.util.Map;
-
-/**
- * 短信日志
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("sys/smslog")
-@Tag(name = "短信日志")
-public class SysSmsLogController {
-    private final SysSmsLogService sysSmsLogService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
-    })
-    @RequiresPermissions("sys:smslog:all")
-    public Result<PageData<SysSmsLogDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<SysSmsLogDTO> page = sysSmsLogService.page(params);
-
-        return new Result<PageData<SysSmsLogDTO>>().ok(page);
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除")
-    @LogOperation("删除")
-    @RequiresPermissions("sys:smslog:all")
-    public Result delete(@RequestBody Long[] ids) {
-        sysSmsLogService.deleteBatchIds(Arrays.asList(ids));
-
-        return new Result();
-    }
-}

+ 0 - 23
wjp-admin/src/main/java/com/wjp/modules/message/dao/SysMailLogDao.java

@@ -1,23 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.message.entity.SysMailLogEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 邮件发送记录
- * 
- * @author Toby javatangbin@163.com
- */
-@Mapper
-public interface SysMailLogDao extends BaseDao<SysMailLogEntity> {
-	
-}

+ 0 - 23
wjp-admin/src/main/java/com/wjp/modules/message/dao/SysMailTemplateDao.java

@@ -1,23 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.message.entity.SysMailTemplateEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 邮件模板
- * 
- * @author Toby javatangbin@163.com
- */
-@Mapper
-public interface SysMailTemplateDao extends BaseDao<SysMailTemplateEntity> {
-	
-}

+ 0 - 23
wjp-admin/src/main/java/com/wjp/modules/message/dao/SysSmsDao.java

@@ -1,23 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.message.entity.SysSmsEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 短信
- * 
- * @author Toby javatangbin@163.com
- */
-@Mapper
-public interface SysSmsDao extends BaseDao<SysSmsEntity> {
-	
-}

+ 0 - 15
wjp-admin/src/main/java/com/wjp/modules/message/dao/SysSmsLogDao.java

@@ -1,15 +0,0 @@
-package com.wjp.modules.message.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.message.entity.SysSmsLogEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 短信日志
- *
- * @author Toby javatangbin@163.com
- */
-@Mapper
-public interface SysSmsLogDao extends BaseDao<SysSmsLogEntity> {
-	
-}

+ 0 - 58
wjp-admin/src/main/java/com/wjp/modules/message/dto/SysMailLogDTO.java

@@ -1,58 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.wjp.common.utils.DateUtils;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 邮件发送记录
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "邮件发送记录")
-public class SysMailLogDTO implements Serializable {
-
-    @Schema(description = "id")
-    private Long id;
-
-    @Schema(description = "邮件模板ID")
-    private Long templateId;
-
-    @Schema(description = "发送者")
-    private String mailFrom;
-
-    @Schema(description = "收件人")
-    private String mailTo;
-
-    @Schema(description = "抄送者")
-    private String mailCc;
-
-    @Schema(description = "邮件主题")
-    private String subject;
-
-    @Schema(description = "邮件正文")
-    private String content;
-
-    @Schema(description = "发送状态  0:失败  1:成功")
-    private Integer status;
-
-    @Schema(description = "创建时间")
-    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-
-}

+ 0 - 56
wjp-admin/src/main/java/com/wjp/modules/message/dto/SysMailTemplateDTO.java

@@ -1,56 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.wjp.common.utils.DateUtils;
-import com.wjp.common.validator.group.AddGroup;
-import com.wjp.common.validator.group.DefaultGroup;
-import com.wjp.common.validator.group.UpdateGroup;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Null;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 邮件模板
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "邮件模板")
-public class SysMailTemplateDTO implements Serializable {
-    @Schema(description = "id")
-    @Null(message = "{id.null}", groups = AddGroup.class)
-    @NotNull(message = "{id.require}", groups = UpdateGroup.class)
-    private Long id;
-
-    @Schema(description = "模板名称")
-    @NotBlank(message = "{mail.name.require}", groups = DefaultGroup.class)
-    private String name;
-
-    @Schema(description = "邮件主题")
-    @NotBlank(message = "{mail.subject.require}", groups = DefaultGroup.class)
-    private String subject;
-
-    @Schema(description = "邮件正文")
-    @NotBlank(message = "{mail.content.require}", groups = DefaultGroup.class)
-    private String content;
-
-    @Schema(description = "创建时间")
-    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-
-}

+ 0 - 47
wjp-admin/src/main/java/com/wjp/modules/message/dto/SysSmsDTO.java

@@ -1,47 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.wjp.common.utils.DateUtils;
-import com.wjp.modules.message.sms.SmsConfig;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 短信
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "短信")
-public class SysSmsDTO implements Serializable {
-    @Schema(description = "id")
-    private Long id;
-
-    @Schema(description = "短信编码")
-    private String smsCode;
-
-    @Schema(description = "平台类型")
-    private Integer platform;
-
-    @Schema(description = "备注")
-    private String remark;
-
-    @Schema(description = "短信配置")
-    private SmsConfig config;
-
-    @Schema(description = "创建时间")
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-
-}

+ 0 - 55
wjp-admin/src/main/java/com/wjp/modules/message/dto/SysSmsLogDTO.java

@@ -1,55 +0,0 @@
-package com.wjp.modules.message.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.wjp.common.utils.DateUtils;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-
-/**
- * 短信日志
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "短信日志")
-public class SysSmsLogDTO implements Serializable {
-    @Schema(description = "id")
-    private Long id;
-
-    @Schema(description = "短信编码")
-    private String smsCode;
-
-    @Schema(description = "平台类型")
-    private Integer platform;
-
-    @Schema(description = "手机号")
-    private String mobile;
-
-    @Schema(description = "参数1")
-    private String params1;
-
-    @Schema(description = "参数2")
-    private String params2;
-
-    @Schema(description = "参数3")
-    private String params3;
-
-    @Schema(description = "参数4")
-    private String params4;
-
-    @Schema(description = "发送状态  0:失败  1:成功")
-    private Integer status;
-
-    @Schema(description = "创建者")
-    private Long creator;
-
-    @Schema(description = "创建时间")
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-
-
-}

+ 0 - 41
wjp-admin/src/main/java/com/wjp/modules/message/email/EmailConfig.java

@@ -1,41 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.email;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * 邮件配置信息
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "邮件配置信息")
-public class EmailConfig implements Serializable {
-    @Schema(description = "SMTP")
-    @NotBlank(message = "{email.smtp.require}")
-    private String smtp;
-
-    @Schema(description = "端口号")
-    @NotNull(message = "{email.port.require}")
-    private Integer port;
-
-    @Schema(description = "邮箱账号")
-    @NotBlank(message = "{email.username.require}")
-    private String username;
-
-    @Schema(description = "邮箱密码")
-    @NotBlank(message = "{email.password.require}")
-    private String password;
-}

+ 0 - 179
wjp-admin/src/main/java/com/wjp/modules/message/email/EmailUtils.java

@@ -1,179 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.email;
-
-import cn.hutool.core.map.MapUtil;
-import freemarker.template.Template;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.exception.ErrorCode;
-import com.wjp.common.exception.MyException;
-import com.wjp.modules.message.dao.SysMailTemplateDao;
-import com.wjp.modules.message.entity.SysMailTemplateEntity;
-import com.wjp.modules.message.service.SysMailLogService;
-import com.wjp.modules.sys.service.SysParamsService;
-import jakarta.mail.internet.MimeMessage;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.IOUtils;
-import org.springframework.mail.javamail.JavaMailSenderImpl;
-import org.springframework.mail.javamail.MimeMessageHelper;
-import org.springframework.stereotype.Component;
-
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.Map;
-import java.util.Properties;
-
-/**
- * 邮件工具类
- *
- * @author Toby javatangbin@163.com
- */
-@Slf4j
-@AllArgsConstructor
-@Component
-public class EmailUtils {
-    private final SysParamsService sysParamsService;
-    private final SysMailTemplateDao sysMailTemplateDao;
-    private final SysMailLogService sysMailLogService;
-
-    private final static String KEY = Constant.MAIL_CONFIG_KEY;
-
-    private JavaMailSenderImpl createMailSender(EmailConfig config) {
-        JavaMailSenderImpl sender = new JavaMailSenderImpl();
-        sender.setHost(config.getSmtp());
-        sender.setPort(config.getPort());
-        sender.setUsername(config.getUsername());
-        sender.setPassword(config.getPassword());
-        sender.setDefaultEncoding("Utf-8");
-        Properties p = new Properties();
-        p.setProperty("mail.smtp.timeout", "10000");
-        p.setProperty("mail.smtp.auth", "false");
-        sender.setJavaMailProperties(p);
-        return sender;
-    }
-
-    /**
-     * 发送邮件
-     *
-     * @param templateId 模板ID
-     * @param to         收件人
-     * @param cc         抄送
-     * @param params     模板参数
-     * @return true:成功   false:失败
-     */
-    public boolean sendMail(Long templateId, String[] to, String[] cc, Map<String, Object> params) throws Exception {
-        SysMailTemplateEntity template = sysMailTemplateDao.selectById(templateId);
-        if (template == null) {
-            throw new MyException(ErrorCode.MAIL_TEMPLATE_NOT_EXISTS);
-        }
-
-        EmailConfig config = sysParamsService.getValueObject(KEY, EmailConfig.class);
-        JavaMailSenderImpl mailSender = createMailSender(config);
-        MimeMessage mimeMessage = mailSender.createMimeMessage();
-
-        //设置utf-8编码
-        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
-        messageHelper.setFrom(config.getUsername());
-
-        //收件人
-        messageHelper.setTo(to);
-        //抄送
-        if (cc != null && cc.length > 0) {
-            messageHelper.setCc(cc);
-        }
-        //主题
-        messageHelper.setSubject(template.getSubject());
-
-        //邮件正文
-        String content = getFreemarkerContent(template.getContent(), params);
-        messageHelper.setText(content, true);
-
-        int status = Constant.SUCCESS;
-        //发送邮件
-        try {
-            mailSender.send(mimeMessage);
-        } catch (Exception e) {
-            status = Constant.FAIL;
-            log.error("send error", e);
-        }
-
-        sysMailLogService.save(templateId, config.getUsername(), to, cc, template.getSubject(), content, status);
-
-        return status == Constant.SUCCESS;
-    }
-
-    /**
-     * 获取Freemarker渲染后的内容
-     *
-     * @param content 模板内容
-     * @param params  参数
-     */
-    private String getFreemarkerContent(String content, Map<String, Object> params) throws Exception {
-        if (MapUtil.isEmpty(params)) {
-            return content;
-        }
-
-        //模板
-        StringReader reader = new StringReader(content);
-        Template template = new Template("mail", reader, null, "utf-8");
-
-        //渲染模板
-        StringWriter sw = new StringWriter();
-        template.process(params, sw);
-
-        content = sw.toString();
-        IOUtils.closeQuietly(sw);
-
-        return content;
-    }
-
-    /**
-     * 发送邮件
-     *
-     * @param to      收件人
-     * @param cc      抄送
-     * @param subject 主题
-     * @param content 邮件正文
-     * @return true:成功   false:失败
-     */
-    public boolean sendMail(String[] to, String[] cc, String subject, String content) throws Exception {
-        EmailConfig config = sysParamsService.getValueObject(KEY, EmailConfig.class);
-        JavaMailSenderImpl mailSender = createMailSender(config);
-        MimeMessage mimeMessage = mailSender.createMimeMessage();
-        //设置utf-8编码
-        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
-        messageHelper.setFrom(config.getUsername());
-
-        //收件人
-        messageHelper.setTo(to);
-        //抄送
-        if (cc != null && cc.length > 0) {
-            messageHelper.setCc(cc);
-        }
-        //主题
-        messageHelper.setSubject(subject);
-        //邮件正文
-        messageHelper.setText(content, true);
-
-        int status = Constant.SUCCESS;
-        //发送邮件
-        try {
-            mailSender.send(mimeMessage);
-        } catch (Exception e) {
-            status = Constant.FAIL;
-            log.error("send error", e);
-        }
-
-        sysMailLogService.save(null, config.getUsername(), to, cc, subject, content, status);
-
-        return status == Constant.SUCCESS;
-    }
-
-}

+ 0 - 55
wjp-admin/src/main/java/com/wjp/modules/message/entity/SysMailLogEntity.java

@@ -1,55 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.entity;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.wjp.common.entity.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 邮件发送记录
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("sys_mail_log")
-public class SysMailLogEntity extends BaseEntity {
-
-    /**
-     * 邮件模板ID
-     */
-    private Long templateId;
-    /**
-     * 发送者
-     */
-    private String mailFrom;
-    /**
-     * 收件人
-     */
-    private String mailTo;
-    /**
-     * 抄送者
-     */
-    private String mailCc;
-    /**
-     * 邮件主题
-     */
-    private String subject;
-    /**
-     * 邮件正文
-     */
-    private String content;
-    /**
-     * 发送状态  0:失败  1:成功
-     */
-    private Integer status;
-
-}

+ 0 - 39
wjp-admin/src/main/java/com/wjp/modules/message/entity/SysMailTemplateEntity.java

@@ -1,39 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.entity;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.wjp.common.entity.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 邮件模板
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("sys_mail_template")
-public class SysMailTemplateEntity extends BaseEntity {
-    
-    /**
-     * 模板名称
-     */
-    private String name;
-    /**
-     * 邮件主题
-     */
-    private String subject;
-    /**
-     * 邮件正文
-     */
-    private String content;
-
-}

+ 0 - 56
wjp-admin/src/main/java/com/wjp/modules/message/entity/SysSmsEntity.java

@@ -1,56 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.entity;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.wjp.common.entity.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.Date;
-
-/**
- * 短信
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("sys_sms")
-public class SysSmsEntity extends BaseEntity {
-    
-    /**
-     * 短信编码
-     */
-    private String smsCode;
-    /**
-     * 平台类型
-     */
-    private Integer platform;
-    /**
-     * 短信配置
-     */
-    private String smsConfig;
-    /**
-     * 备注
-     */
-    private String remark;
-    /**
-     * 更新者
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Long updater;
-    /**
-     * 更新时间
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Date updateDate;
-}

+ 0 - 64
wjp-admin/src/main/java/com/wjp/modules/message/entity/SysSmsLogEntity.java

@@ -1,64 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.entity;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.wjp.common.entity.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-/**
- * 短信日志
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("sys_sms_log")
-public class SysSmsLogEntity extends BaseEntity {
-
-    /**
-     * 短信编码
-     */
-    private String smsCode;
-    /**
-     * 平台类型
-     */
-    private Integer platform;
-    /**
-     * 手机号
-     */
-    private String mobile;
-    /**
-     * 参数1
-     */
-    @TableField("params_1")
-    private String params1;
-    /**
-     * 参数2
-     */
-    @TableField("params_2")
-    private String params2;
-    /**
-     * 参数3
-     */
-    @TableField("params_3")
-    private String params3;
-    /**
-     * 参数4
-     */
-    @TableField("params_4")
-    private String params4;
-    /**
-     * 发送状态  0:失败   1:成功
-     */
-    private Integer status;
-
-}

+ 0 - 38
wjp-admin/src/main/java/com/wjp/modules/message/service/SysMailLogService.java

@@ -1,38 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.service;
-
-import com.wjp.common.page.PageData;
-import com.wjp.common.service.BaseService;
-import com.wjp.modules.message.dto.SysMailLogDTO;
-import com.wjp.modules.message.entity.SysMailLogEntity;
-
-import java.util.Map;
-
-/**
- * 邮件发送记录
- *
- * @author Toby javatangbin@163.com
- */
-public interface SysMailLogService extends BaseService<SysMailLogEntity> {
-
-    PageData<SysMailLogDTO> page(Map<String, Object> params);
-
-    /**
-     * 保存邮件发送记录
-     * @param templateId  模板ID
-     * @param from        发送者
-     * @param to          收件人
-     * @param cc          抄送
-     * @param subject     主题
-     * @param content     邮件正文
-     * @param status      状态
-     */
-    void save(Long templateId, String from, String[] to, String[] cc, String subject, String content, Integer status);
-}

+ 0 - 30
wjp-admin/src/main/java/com/wjp/modules/message/service/SysMailTemplateService.java

@@ -1,30 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.service;
-
-import com.wjp.common.service.CrudService;
-import com.wjp.modules.message.dto.SysMailTemplateDTO;
-import com.wjp.modules.message.entity.SysMailTemplateEntity;
-
-/**
- * 邮件模板
- *
- * @author Toby javatangbin@163.com
- */
-public interface SysMailTemplateService extends CrudService<SysMailTemplateEntity, SysMailTemplateDTO> {
-
-    /**
-     * 发送邮件
-     * @param id           邮件模板ID
-     * @param mailTo       收件人
-     * @param mailCc       抄送
-     * @param params       模板参数
-     */
-    boolean sendMail(Long id, String mailTo, String mailCc, String params) throws Exception;
-}

+ 0 - 25
wjp-admin/src/main/java/com/wjp/modules/message/service/SysSmsLogService.java

@@ -1,25 +0,0 @@
-package com.wjp.modules.message.service;
-
-import com.wjp.common.service.CrudService;
-import com.wjp.modules.message.dto.SysSmsLogDTO;
-import com.wjp.modules.message.entity.SysSmsLogEntity;
-
-import java.util.LinkedHashMap;
-
-/**
- * 短信日志
- *
- * @author Toby javatangbin@163.com
- */
-public interface SysSmsLogService extends CrudService<SysSmsLogEntity, SysSmsLogDTO> {
-
-    /**
-     * 保存短信发送记录
-     * @param smsCode   短信编码
-     * @param platform  平台
-     * @param mobile    手机号
-     * @param params    短信参数
-     * @param status    发送状态
-     */
-    void save(String smsCode, Integer platform, String mobile, LinkedHashMap<String, String> params, Integer status);
-}

+ 0 - 32
wjp-admin/src/main/java/com/wjp/modules/message/service/SysSmsService.java

@@ -1,32 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.service;
-
-import com.wjp.common.service.CrudService;
-import com.wjp.modules.message.dto.SysSmsDTO;
-import com.wjp.modules.message.entity.SysSmsEntity;
-
-/**
- * 短信
- *
- * @author Toby javatangbin@163.com
- */
-public interface SysSmsService extends CrudService<SysSmsEntity, SysSmsDTO> {
-
-    /**
-     * 发送短信
-     * @param smsCode   短信编码
-     * @param mobile   手机号
-     * @param params   短信参数
-     */
-    void send(String smsCode, String mobile, String params);
-
-    SysSmsEntity getBySmsCode(String smsCode);
-
-}

+ 0 - 67
wjp-admin/src/main/java/com/wjp/modules/message/service/impl/SysMailLogServiceImpl.java

@@ -1,67 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.service.impl.BaseServiceImpl;
-import com.wjp.common.utils.JsonUtils;
-import com.wjp.modules.message.dao.SysMailLogDao;
-import com.wjp.modules.message.dto.SysMailLogDTO;
-import com.wjp.modules.message.entity.SysMailLogEntity;
-import com.wjp.modules.message.service.SysMailLogService;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-
-
-@Service
-public class SysMailLogServiceImpl extends BaseServiceImpl<SysMailLogDao, SysMailLogEntity> implements SysMailLogService {
-
-    @Override
-    public PageData<SysMailLogDTO> page(Map<String, Object> params) {
-        IPage<SysMailLogEntity> page = baseDao.selectPage(
-            getPage(params, Constant.CREATE_DATE, false),
-            getWrapper(params)
-        );
-        return getPageData(page, SysMailLogDTO.class);
-    }
-
-    private QueryWrapper<SysMailLogEntity> getWrapper(Map<String, Object> params){
-        String templateId = (String)params.get("templateId");
-        String mailTo = (String)params.get("mailTo");
-        String status = (String)params.get("status");
-
-        QueryWrapper<SysMailLogEntity> wrapper = new QueryWrapper<>();
-        wrapper.eq(StringUtils.isNotBlank(templateId),"template_id", templateId);
-        wrapper.like(StringUtils.isNotBlank(mailTo), "mail_to", mailTo);
-        wrapper.eq(StringUtils.isNotBlank(status),"status", status);
-
-        return wrapper;
-    }
-
-    @Override
-    public void save(Long templateId, String from, String[] to, String[] cc, String subject, String content, Integer status) {
-        SysMailLogEntity log = new SysMailLogEntity();
-        log.setTemplateId(templateId);
-        log.setMailFrom(from);
-        log.setMailTo(JsonUtils.toJsonString(to));
-        if(cc != null){
-            log.setMailCc(JsonUtils.toJsonString(cc));
-        }
-        log.setSubject(subject);
-        log.setContent(content);
-        log.setStatus(status);
-        this.insert(log);
-    }
-
-}

+ 0 - 57
wjp-admin/src/main/java/com/wjp/modules/message/service/impl/SysMailTemplateServiceImpl.java

@@ -1,57 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.wjp.common.exception.ErrorCode;
-import com.wjp.common.exception.MyException;
-import com.wjp.common.service.impl.CrudServiceImpl;
-import com.wjp.common.utils.JsonUtils;
-import com.wjp.modules.message.dao.SysMailTemplateDao;
-import com.wjp.modules.message.dto.SysMailTemplateDTO;
-import com.wjp.modules.message.email.EmailUtils;
-import com.wjp.modules.message.entity.SysMailTemplateEntity;
-import com.wjp.modules.message.service.SysMailTemplateService;
-import lombok.AllArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-
-@AllArgsConstructor
-@Service
-public class SysMailTemplateServiceImpl extends CrudServiceImpl<SysMailTemplateDao, SysMailTemplateEntity, SysMailTemplateDTO> implements SysMailTemplateService {
-    private final EmailUtils emailUtils;
-
-    @Override
-    public QueryWrapper<SysMailTemplateEntity> getWrapper(Map<String, Object> params) {
-        String name = (String) params.get("name");
-
-        QueryWrapper<SysMailTemplateEntity> wrapper = new QueryWrapper<>();
-        wrapper.like(StringUtils.isNotBlank(name), "name", name);
-
-        return wrapper;
-    }
-
-    @Override
-    public boolean sendMail(Long id, String mailTo, String mailCc, String params) throws Exception {
-        Map<String, Object> map = null;
-        try {
-            if (StringUtils.isNotEmpty(params)) {
-                map = JsonUtils.parseObject(params, Map.class);
-            }
-        } catch (Exception e) {
-            throw new MyException(ErrorCode.JSON_FORMAT_ERROR);
-        }
-        String[] to = new String[]{mailTo};
-        String[] cc = StringUtils.isBlank(mailCc) ? null : new String[]{mailCc};
-
-        return emailUtils.sendMail(id, to, cc, map);
-    }
-}

+ 0 - 67
wjp-admin/src/main/java/com/wjp/modules/message/service/impl/SysSmsLogServiceImpl.java

@@ -1,67 +0,0 @@
-package com.wjp.modules.message.service.impl;
-
-import cn.hutool.core.map.MapUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.wjp.common.service.impl.CrudServiceImpl;
-import com.wjp.modules.message.dao.SysSmsLogDao;
-import com.wjp.modules.message.dto.SysSmsLogDTO;
-import com.wjp.modules.message.entity.SysSmsLogEntity;
-import com.wjp.modules.message.service.SysSmsLogService;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * 短信日志
- *
- * @author Toby javatangbin@163.com
- */
-@Service
-public class SysSmsLogServiceImpl extends CrudServiceImpl<SysSmsLogDao, SysSmsLogEntity, SysSmsLogDTO> implements SysSmsLogService {
-
-    @Override
-    public QueryWrapper<SysSmsLogEntity> getWrapper(Map<String, Object> params){
-        String smsCode = (String)params.get("smsCode");
-        String mobile = (String)params.get("mobile");
-        String status = (String)params.get("status");
-
-        QueryWrapper<SysSmsLogEntity> wrapper = new QueryWrapper<>();
-        wrapper.eq(StringUtils.isNotBlank(smsCode), "sms_code", smsCode);
-        wrapper.like(StringUtils.isNotBlank(mobile), "mobile", mobile);
-        wrapper.eq(StringUtils.isNotBlank(status), "status", status);
-
-        return wrapper;
-    }
-
-    @Override
-    public void save(String smsCode, Integer platform, String mobile, LinkedHashMap<String, String> params, Integer status) {
-
-        SysSmsLogEntity smsLog = new SysSmsLogEntity();
-        smsLog.setSmsCode(smsCode);
-        smsLog.setPlatform(platform);
-        smsLog.setMobile(mobile);
-
-        //设置短信参数
-        if(MapUtil.isNotEmpty(params)){
-            int index = 1;
-            for(String value : params.values()){
-                if(index == 1){
-                    smsLog.setParams1(value);
-                }else if(index == 2){
-                    smsLog.setParams2(value);
-                }else if(index == 3){
-                    smsLog.setParams3(value);
-                }else if(index == 4){
-                    smsLog.setParams4(value);
-                }
-                index++;
-            }
-        }
-
-        smsLog.setStatus(status);
-
-        baseDao.insert(smsLog);
-    }
-}

+ 0 - 92
wjp-admin/src/main/java/com/wjp/modules/message/service/impl/SysSmsServiceImpl.java

@@ -1,92 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-package com.wjp.modules.message.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.wjp.common.exception.ErrorCode;
-import com.wjp.common.exception.MyException;
-import com.wjp.common.service.impl.CrudServiceImpl;
-import com.wjp.common.utils.ConvertUtils;
-import com.wjp.common.utils.JsonUtils;
-import com.wjp.modules.message.dao.SysSmsDao;
-import com.wjp.modules.message.dto.SysSmsDTO;
-import com.wjp.modules.message.entity.SysSmsEntity;
-import com.wjp.modules.message.service.SysSmsService;
-import com.wjp.modules.message.sms.AbstractSmsService;
-import com.wjp.modules.message.sms.SmsConfig;
-import com.wjp.modules.message.sms.SmsFactory;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-@Service
-public class SysSmsServiceImpl extends CrudServiceImpl<SysSmsDao, SysSmsEntity, SysSmsDTO> implements SysSmsService {
-
-    @Override
-    public QueryWrapper<SysSmsEntity> getWrapper(Map<String, Object> params){
-        String platform = (String)params.get("platform");
-
-        QueryWrapper<SysSmsEntity> wrapper = new QueryWrapper<>();
-        wrapper.eq(StringUtils.isNotBlank(platform), "platform", platform);
-
-        return wrapper;
-    }
-
-    @Override
-    public SysSmsDTO get(Long id) {
-        SysSmsEntity entity = baseDao.selectById(id);
-
-        SysSmsDTO dto = ConvertUtils.sourceToTarget(entity, SysSmsDTO.class);
-        dto.setConfig(JsonUtils.parseObject(entity.getSmsConfig(), SmsConfig.class));
-
-        return dto;
-    }
-
-    @Override
-    public void send(String smsCode, String mobile, String params) {
-        LinkedHashMap<String, String> map;
-        try {
-            map = JsonUtils.parseObject(params, LinkedHashMap.class);
-        }catch (Exception e){
-            throw new MyException(ErrorCode.JSON_FORMAT_ERROR);
-        }
-
-        //短信服务
-        AbstractSmsService service = SmsFactory.build(smsCode);
-        if(service == null){
-            throw new MyException(ErrorCode.SMS_CONFIG);
-        }
-
-        //发送短信
-        service.sendSms(smsCode, mobile, map);
-    }
-
-    @Override
-    public SysSmsEntity getBySmsCode(String smsCode) {
-        QueryWrapper<SysSmsEntity> query = new QueryWrapper<>();
-        query.eq("sms_code", smsCode);
-
-        return baseDao.selectOne(query);
-    }
-
-    @Override
-    public void save(SysSmsDTO dto) {
-        SysSmsEntity entity = ConvertUtils.sourceToTarget(dto, SysSmsEntity.class);
-        entity.setSmsConfig(JsonUtils.toJsonString(dto.getConfig()));
-        baseDao.insert(entity);
-    }
-
-    @Override
-    public void update(SysSmsDTO dto) {
-        SysSmsEntity entity = ConvertUtils.sourceToTarget(dto, SysSmsEntity.class);
-        entity.setSmsConfig(JsonUtils.toJsonString(dto.getConfig()));
-        baseDao.updateById(entity);
-    }
-}

+ 0 - 42
wjp-admin/src/main/java/com/wjp/modules/message/sms/AbstractSmsService.java

@@ -1,42 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.sms;
-
-import java.util.LinkedHashMap;
-
-/**
- * 短信
- *
- * @author Toby javatangbin@163.com
- */
-public abstract class AbstractSmsService {
-    /**
-     * 短信配置信息
-     */
-    SmsConfig config;
-
-    /**
-     * 发送短信
-     * @param smsCode   短信编码
-     * @param mobile 手机号
-     * @param params 参数
-     */
-    public abstract void sendSms(String smsCode, String mobile, LinkedHashMap<String, String> params);
-
-    /**
-     *
-     * 发送短信
-     * @param smsCode   短信编码
-     * @param mobile 手机号
-     * @param params 参数
-     * @param signName  短信签名
-     * @param template 短信模板
-     */
-    public abstract void sendSms(String smsCode, String mobile, LinkedHashMap<String, String> params, String signName, String template);
-}

+ 0 - 110
wjp-admin/src/main/java/com/wjp/modules/message/sms/AliyunSmsService.java

@@ -1,110 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.sms;
-
-import cn.hutool.core.map.MapUtil;
-import com.aliyuncs.DefaultAcsClient;
-import com.aliyuncs.IAcsClient;
-import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
-import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
-import com.aliyuncs.exceptions.ClientException;
-import com.aliyuncs.http.MethodType;
-import com.aliyuncs.profile.DefaultProfile;
-import com.aliyuncs.profile.IClientProfile;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.exception.ErrorCode;
-import com.wjp.common.exception.MyException;
-import com.wjp.common.utils.JsonUtils;
-import com.wjp.common.utils.SpringContextUtils;
-import com.wjp.modules.message.service.SysSmsLogService;
-
-import java.util.LinkedHashMap;
-
-/**
- * 阿里云短信服务
- *
- * @author Toby javatangbin@163.com
- */
-public class AliyunSmsService extends AbstractSmsService {
-    /**
-     * 短信API产品名称(短信产品名固定,无需修改)
-     */
-    private final String PRODUCT = "Dysmsapi";
-    /**
-     * 短信API产品域名(接口地址固定,无需修改)
-     */
-    private final String DOMAIN = "dysmsapi.aliyuncs.com";
-
-    private IClientProfile profile;
-
-
-    public AliyunSmsService(SmsConfig config){
-        this.config = config;
-
-        //初始化
-        init();
-    }
-
-    private void init(){
-        try {
-            //初始化acsClient,暂不支持region化
-            profile = DefaultProfile.getProfile("cn-hangzhou", config.getAliyunAccessKeyId(), config.getAliyunAccessKeySecret());
-            DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", PRODUCT, DOMAIN);
-        } catch (ClientException e) {
-            e.printStackTrace();
-        }
-    }
-
-    @Override
-    public void sendSms(String smsCode, String mobile, LinkedHashMap<String, String> params) {
-        this.sendSms(smsCode, mobile, params, config.getAliyunSignName(), config.getAliyunTemplateCode());
-    }
-
-    @Override
-    public void sendSms(String smsCode, String mobile, LinkedHashMap<String, String> params, String signName, String template) {
-        System.setProperty("sun.net.client.defaultConnectTimeout", "30000");
-        System.setProperty("sun.net.client.defaultReadTimeout", "30000");
-
-        //组装请求对象
-        SendSmsRequest request = new SendSmsRequest();
-        request.setMethod(MethodType.POST);
-        //待发送手机号,支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
-        //发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如"0085200000000"
-        request.setPhoneNumbers(mobile);
-        //短信签名-可在短信控制台中找到
-        request.setSignName(signName);
-        //短信模板-可在短信控制台中找到
-        request.setTemplateCode(template);
-        //参数
-        if(MapUtil.isNotEmpty(params)){
-            request.setTemplateParam(JsonUtils.toJsonString(params));
-        }
-
-        SendSmsResponse response;
-        try {
-            IAcsClient acsClient = new DefaultAcsClient(profile);
-            response = acsClient.getAcsResponse(request);
-        } catch (ClientException e) {
-            throw new MyException(ErrorCode.SEND_SMS_ERROR, e, "");
-        }
-
-        int status = Constant.SUCCESS;
-        if(!Constant.OK.equalsIgnoreCase(response.getCode())){
-            status = Constant.FAIL;
-        }
-
-        //保存短信记录
-        SysSmsLogService sysSmsLogService = SpringContextUtils.getBean(SysSmsLogService.class);
-        sysSmsLogService.save(smsCode, Constant.SmsService.ALIYUN.getValue(), mobile, params, status);
-
-        if(status == Constant.FAIL){
-            throw new MyException(ErrorCode.SEND_SMS_ERROR, response.getMessage());
-        }
-    }
-}

+ 0 - 69
wjp-admin/src/main/java/com/wjp/modules/message/sms/QcloudSmsService.java

@@ -1,69 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.sms;
-
-import cn.hutool.core.map.MapUtil;
-import com.github.qcloudsms.SmsSingleSender;
-import com.github.qcloudsms.SmsSingleSenderResult;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.exception.ErrorCode;
-import com.wjp.common.exception.MyException;
-import com.wjp.common.utils.SpringContextUtils;
-import com.wjp.modules.message.service.SysSmsLogService;
-
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-
-/**
- * 腾讯云短信服务
- *
- * @author Toby javatangbin@163.com
- */
-public class QcloudSmsService extends AbstractSmsService {
-    public QcloudSmsService(SmsConfig config){
-        this.config = config;
-    }
-
-    @Override
-    public void sendSms(String smsCode, String mobile, LinkedHashMap<String, String> params) {
-        this.sendSms(smsCode, mobile, params, config.getQcloudSignName(), config.getQcloudTemplateId());
-    }
-
-    @Override
-    public void sendSms(String smsCode, String mobile, LinkedHashMap<String, String> params, String signName, String template) {
-        SmsSingleSender sender = new SmsSingleSender(config.getQcloudAppId(), config.getQcloudAppKey());
-
-        //短信参数
-        ArrayList<String> paramsList = new ArrayList<>();
-        if(MapUtil.isNotEmpty(params)){
-            for(String value : params.values()){
-                paramsList.add(value);
-            }
-        }
-        SmsSingleSenderResult result;
-        try {
-            result = sender.sendWithParam("86", mobile, Integer.parseInt(template), paramsList, signName, null, null);
-        } catch (Exception e) {
-            throw new MyException(ErrorCode.SEND_SMS_ERROR, e, "");
-        }
-
-        int status = Constant.SUCCESS;
-        if(result.result != 0){
-            status = Constant.FAIL;
-        }
-
-        //保存短信记录
-        SysSmsLogService sysSmsLogService = SpringContextUtils.getBean(SysSmsLogService.class);
-        sysSmsLogService.save(smsCode, Constant.SmsService.QCLOUD.getValue(), mobile, params, status);
-
-        if(status == Constant.FAIL){
-            throw new MyException(ErrorCode.SEND_SMS_ERROR, result.errMsg);
-        }
-    }
-}

+ 0 - 70
wjp-admin/src/main/java/com/wjp/modules/message/sms/QiniuSmsService.java

@@ -1,70 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.sms;
-
-import com.qiniu.http.Response;
-import com.qiniu.sms.SmsManager;
-import com.qiniu.util.Auth;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.exception.ErrorCode;
-import com.wjp.common.exception.MyException;
-import com.wjp.common.utils.SpringContextUtils;
-import com.wjp.modules.message.service.SysSmsLogService;
-
-import java.util.LinkedHashMap;
-
-/**
- * 七牛短信服务
- *
- * @author Toby javatangbin@163.com
- */
-public class QiniuSmsService extends AbstractSmsService {
-    private SmsManager smsManager;
-
-    public QiniuSmsService(SmsConfig config){
-        this.config = config;
-
-        //初始化
-        init();
-    }
-
-
-    private void init(){
-        Auth auth = Auth.create(config.getQiniuAccessKey(), config.getQiniuSecretKey());
-        smsManager = new SmsManager(auth);
-    }
-
-    @Override
-    public void sendSms(String smsCode, String mobile, LinkedHashMap<String, String> params) {
-        this.sendSms(smsCode, mobile, params, null, config.getQiniuTemplateId());
-    }
-
-    @Override
-    public void sendSms(String smsCode, String mobile, LinkedHashMap<String, String> params, String signName, String template) {
-        Response response;
-        try {
-            response = smsManager.sendSingleMessage(template, mobile, params);
-        } catch (Exception e) {
-            throw new MyException(ErrorCode.SEND_SMS_ERROR, e, "");
-        }
-
-        int status = Constant.SUCCESS;
-        if(!response.isOK()){
-            status = Constant.FAIL;
-        }
-
-        //保存短信记录
-        SysSmsLogService sysSmsLogService = SpringContextUtils.getBean(SysSmsLogService.class);
-        sysSmsLogService.save(smsCode, Constant.SmsService.QCLOUD.getValue(), mobile, params, status);
-
-        if(status == Constant.FAIL){
-            throw new MyException(ErrorCode.SEND_SMS_ERROR, response.error);
-        }
-    }
-}

+ 0 - 74
wjp-admin/src/main/java/com/wjp/modules/message/sms/SmsConfig.java

@@ -1,74 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.sms;
-
-import com.wjp.common.validator.group.AliyunGroup;
-import com.wjp.common.validator.group.QcloudGroup;
-import com.wjp.common.validator.group.QiniuGroup;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * 短信配置信息
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "短信配置信息")
-public class SmsConfig implements Serializable {
-
-
-    @Schema(description = "阿里云AccessKeyId")
-    @NotBlank(message = "{aliyun.accesskeyid.require}", groups = AliyunGroup.class)
-    private String aliyunAccessKeyId;
-
-    @Schema(description = "阿里云AccessKeySecret")
-    @NotBlank(message = "{aliyun.accesskeysecret.require}", groups = AliyunGroup.class)
-    private String aliyunAccessKeySecret;
-
-    @Schema(description = "阿里云短信签名")
-    @NotBlank(message = "{aliyun.signname.require}", groups = AliyunGroup.class)
-    private String aliyunSignName;
-
-    @Schema(description = "阿里云短信模板")
-    @NotBlank(message = "{aliyun.templatecode.require}", groups = AliyunGroup.class)
-    private String aliyunTemplateCode;
-
-    @Schema(description = "腾讯云AppId")
-    @NotNull(message = "{qcloud.appid.require}", groups = QcloudGroup.class)
-    private Integer qcloudAppId;
-
-    @Schema(description = "腾讯云AppKey")
-    @NotBlank(message = "{qcloud.appkey.require}", groups = QcloudGroup.class)
-    private String qcloudAppKey;
-
-    @Schema(description = "腾讯云短信签名")
-    @NotBlank(message = "{qcloud.signname.require}", groups = QcloudGroup.class)
-    private String qcloudSignName;
-
-    @Schema(description = "腾讯云短信模板ID")
-    @NotBlank(message = "{qcloud.templateid.require}", groups = QcloudGroup.class)
-    private String qcloudTemplateId;
-
-    @Schema(description = "七牛accesskey")
-    @NotNull(message = "{qiniu.accesskey.require}", groups = QiniuGroup.class)
-    private String qiniuAccessKey;
-
-    @Schema(description = "七牛SecretKey")
-    @NotBlank(message = "{qiniu.secretkey.require}", groups = QiniuGroup.class)
-    private String qiniuSecretKey;
-
-    @Schema(description = "七牛短信模板ID")
-    @NotBlank(message = "{qiniu.templateId.require}", groups = QiniuGroup.class)
-    private String qiniuTemplateId;
-}

+ 0 - 44
wjp-admin/src/main/java/com/wjp/modules/message/sms/SmsFactory.java

@@ -1,44 +0,0 @@
-/**
- * Copyright (c) 2018 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.message.sms;
-
-import com.wjp.common.constant.Constant;
-import com.wjp.common.utils.JsonUtils;
-import com.wjp.common.utils.SpringContextUtils;
-import com.wjp.modules.message.entity.SysSmsEntity;
-import com.wjp.modules.message.service.SysSmsService;
-
-/**
- * 短信Factory
- *
- * @author Toby javatangbin@163.com
- */
-public class SmsFactory {
-    private static SysSmsService sysSmsService;
-
-    static {
-        SmsFactory.sysSmsService = SpringContextUtils.getBean(SysSmsService.class);
-    }
-
-    public static AbstractSmsService build(String smsCode){
-        //获取短信配置信息
-        SysSmsEntity smsEntity = sysSmsService.getBySmsCode(smsCode);
-        SmsConfig config = JsonUtils.parseObject(smsEntity.getSmsConfig(), SmsConfig.class);
-
-        if(smsEntity.getPlatform() == Constant.SmsService.ALIYUN.getValue()){
-            return new AliyunSmsService(config);
-        }else if(smsEntity.getPlatform() == Constant.SmsService.QCLOUD.getValue()){
-            return new QcloudSmsService(config);
-        }else if(smsEntity.getPlatform() == Constant.SmsService.QINIU.getValue()){
-            return new QiniuSmsService(config);
-        }
-
-        return null;
-    }
-}

+ 0 - 17
wjp-admin/src/main/java/com/wjp/modules/mp/builder/AbstractBuilder.java

@@ -1,17 +0,0 @@
-package com.wjp.modules.mp.builder;
-
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Binary Wang(https://github.com/binarywang)
- */
-public abstract class AbstractBuilder {
-    protected final Logger logger = LoggerFactory.getLogger(getClass());
-
-    public abstract WxMpXmlOutMessage build(String content,
-                                            WxMpXmlMessage wxMessage, WxMpService service);
-}

+ 0 - 24
wjp-admin/src/main/java/com/wjp/modules/mp/builder/ImageBuilder.java

@@ -1,24 +0,0 @@
-package com.wjp.modules.mp.builder;
-
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutImageMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-
-/**
- * @author Binary Wang(https://github.com/binarywang)
- */
-public class ImageBuilder extends AbstractBuilder {
-
-    @Override
-    public WxMpXmlOutMessage build(String content, WxMpXmlMessage wxMessage,
-                                   WxMpService service) {
-
-        WxMpXmlOutImageMessage m = WxMpXmlOutMessage.IMAGE().mediaId(content)
-            .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
-            .build();
-
-        return m;
-    }
-
-}

+ 0 - 22
wjp-admin/src/main/java/com/wjp/modules/mp/builder/TextBuilder.java

@@ -1,22 +0,0 @@
-package com.wjp.modules.mp.builder;
-
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutTextMessage;
-
-/**
- * @author Binary Wang(https://github.com/binarywang)
- */
-public class TextBuilder extends AbstractBuilder {
-
-    @Override
-    public WxMpXmlOutMessage build(String content, WxMpXmlMessage wxMessage,
-                                   WxMpService service) {
-        WxMpXmlOutTextMessage m = WxMpXmlOutMessage.TEXT().content(content)
-            .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
-            .build();
-        return m;
-    }
-
-}

+ 0 - 106
wjp-admin/src/main/java/com/wjp/modules/mp/config/MpConfig.java

@@ -1,106 +0,0 @@
-package com.wjp.modules.mp.config;
-
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.wjp.modules.mp.dao.MpAccountDao;
-import com.wjp.modules.mp.entity.MpAccountEntity;
-import com.wjp.modules.mp.handler.*;
-import lombok.AllArgsConstructor;
-import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.mp.api.WxMpMessageRouter;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
-import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-import static me.chanjar.weixin.common.api.WxConsts.EventType.SUBSCRIBE;
-import static me.chanjar.weixin.common.api.WxConsts.EventType.UNSUBSCRIBE;
-import static me.chanjar.weixin.common.api.WxConsts.XmlMsgType.EVENT;
-import static me.chanjar.weixin.mp.constant.WxMpEventConstants.CustomerService.*;
-import static me.chanjar.weixin.mp.constant.WxMpEventConstants.POI_CHECK_NOTIFY;
-
-@AllArgsConstructor
-@Configuration
-public class MpConfig {
-    private final MpAccountDao mpAccountDao;
-    private final LogHandler logHandler;
-    private final NullHandler nullHandler;
-    private final KfSessionHandler kfSessionHandler;
-    private final StoreCheckNotifyHandler storeCheckNotifyHandler;
-    private final LocationHandler locationHandler;
-    private final MenuHandler menuHandler;
-    private final MsgHandler msgHandler;
-    private final UnsubscribeHandler unsubscribeHandler;
-    private final SubscribeHandler subscribeHandler;
-    private final ScanHandler scanHandler;
-
-    @Bean
-    public WxMpService wxMpService() {
-        WxMpService service = new WxMpServiceImpl();
-
-        List<MpAccountEntity> mpList = mpAccountDao.selectList(Wrappers.emptyWrapper());
-        if(mpList.size() == 0){
-            return service;
-        }
-
-        service.setMultiConfigStorages(mpList
-            .stream().map(mp -> {
-                WxMpDefaultConfigImpl configStorage = new WxMpDefaultConfigImpl();
-                configStorage.setAppId(mp.getAppId());
-                configStorage.setSecret(mp.getAppSecret());
-                configStorage.setToken(mp.getToken());
-                configStorage.setAesKey(mp.getAesKey());
-                return configStorage;
-            }).collect(Collectors.toMap(WxMpDefaultConfigImpl::getAppId, a -> a, (o, n) -> o)));
-        return service;
-    }
-
-    @Bean
-    public WxMpMessageRouter messageRouter(WxMpService wxMpService) {
-        final WxMpMessageRouter newRouter = new WxMpMessageRouter(wxMpService);
-
-        // 记录所有事件的日志 (异步执行)
-        newRouter.rule().handler(this.logHandler).next();
-
-        // 接收客服会话管理事件
-        newRouter.rule().async(false).msgType(EVENT).event(KF_CREATE_SESSION)
-                .handler(this.kfSessionHandler).end();
-        newRouter.rule().async(false).msgType(EVENT).event(KF_CLOSE_SESSION)
-                .handler(this.kfSessionHandler).end();
-        newRouter.rule().async(false).msgType(EVENT).event(KF_SWITCH_SESSION)
-                .handler(this.kfSessionHandler).end();
-
-        // 门店审核事件
-        newRouter.rule().async(false).msgType(EVENT).event(POI_CHECK_NOTIFY).handler(this.storeCheckNotifyHandler).end();
-
-        // 自定义菜单事件
-        newRouter.rule().async(false).msgType(EVENT).event(WxConsts.EventType.CLICK).handler(this.menuHandler).end();
-
-        // 点击菜单连接事件
-        newRouter.rule().async(false).msgType(EVENT).event(WxConsts.EventType.VIEW).handler(this.nullHandler).end();
-
-        // 关注事件
-        newRouter.rule().async(false).msgType(EVENT).event(SUBSCRIBE).handler(this.subscribeHandler).end();
-
-        // 取消关注事件
-        newRouter.rule().async(false).msgType(EVENT).event(UNSUBSCRIBE).handler(this.unsubscribeHandler).end();
-
-        // 上报地理位置事件
-        newRouter.rule().async(false).msgType(EVENT).event(WxConsts.EventType.LOCATION).handler(this.locationHandler).end();
-
-        // 接收地理位置消息
-        newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.LOCATION).handler(this.locationHandler).end();
-
-        // 扫码事件
-        newRouter.rule().async(false).msgType(EVENT).event(WxConsts.EventType.SCAN).handler(this.scanHandler).end();
-
-        // 默认
-        newRouter.rule().async(false).handler(this.msgHandler).end();
-
-        return newRouter;
-    }
-
-}

+ 0 - 101
wjp-admin/src/main/java/com/wjp/modules/mp/controller/MpAccountController.java

@@ -1,101 +0,0 @@
-package com.wjp.modules.mp.controller;
-
-import com.github.xiaoymin.knife4j.annotations.Ignore;
-import com.wjp.common.annotation.LogOperation;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import com.wjp.common.validator.AssertUtils;
-import com.wjp.common.validator.ValidatorUtils;
-import com.wjp.common.validator.group.AddGroup;
-import com.wjp.common.validator.group.DefaultGroup;
-import com.wjp.common.validator.group.UpdateGroup;
-import com.wjp.modules.mp.dto.MpAccountDTO;
-import com.wjp.modules.mp.service.MpAccountService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-
-
-/**
- * 公众号账号管理
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("mp/account")
-@Tag(name = "公众号账号管理")
-public class MpAccountController {
-    private final MpAccountService mpAccountService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
-    })
-    @RequiresPermissions("mp:account:all")
-    public Result<PageData<MpAccountDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<MpAccountDTO> page = mpAccountService.page(params);
-
-        return new Result<PageData<MpAccountDTO>>().ok(page);
-    }
-
-    @GetMapping("{id}")
-    @Operation(summary = "信息")
-    @RequiresPermissions("mp:account:all")
-    public Result<MpAccountDTO> get(@PathVariable("id") Long id) {
-        MpAccountDTO data = mpAccountService.get(id);
-
-        return new Result<MpAccountDTO>().ok(data);
-    }
-
-    @PostMapping
-    @Operation(summary = "保存")
-    @LogOperation("保存")
-    @RequiresPermissions("mp:account:all")
-    public Result save(@RequestBody MpAccountDTO dto) {
-        //效验数据
-        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
-
-        mpAccountService.save(dto);
-
-        return new Result();
-    }
-
-    @PutMapping
-    @Operation(summary = "修改")
-    @LogOperation("修改")
-    @RequiresPermissions("mp:account:all")
-    public Result update(@RequestBody MpAccountDTO dto) {
-        //效验数据
-        ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
-
-        mpAccountService.update(dto);
-
-        return new Result();
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除")
-    @LogOperation("删除")
-    @RequiresPermissions("mp:account:all")
-    public Result delete(@RequestBody Long[] ids) {
-        //效验数据
-        AssertUtils.isArrayEmpty(ids, "id");
-
-        mpAccountService.delete(ids);
-
-        return new Result();
-    }
-
-}

+ 0 - 74
wjp-admin/src/main/java/com/wjp/modules/mp/controller/MpMaterialController.java

@@ -1,74 +0,0 @@
-package com.wjp.modules.mp.controller;
-
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import me.chanjar.weixin.common.api.WxConsts;
-import me.chanjar.weixin.mp.api.WxMpMaterialService;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.material.WxMpMaterialFileBatchGetResult;
-import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
-import me.chanjar.weixin.mp.bean.material.WxMpMaterialNewsBatchGetResult;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * 公众号素材管理
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("mp/material")
-@Tag(name = "公众号素材管理")
-public class MpMaterialController {
-    private final WxMpService wxService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
-    })
-    public Result page(String appId, String type, int offset, int limit) throws Exception {
-        if (!this.wxService.switchover(appId)) {
-            throw new IllegalArgumentException(String.format("未找到对应appId=[%s]的配置,请核实!", appId));
-        }
-
-        //素材服务
-        WxMpMaterialService materialService = wxService.getMaterialService();
-
-        if (WxConsts.MaterialType.NEWS.equals(type)) {
-            WxMpMaterialNewsBatchGetResult result = materialService.materialNewsBatchGet(offset, limit);
-
-            return new Result<>().ok(new PageData<>(result.getItems(), result.getTotalCount()));
-        } else {
-            WxMpMaterialFileBatchGetResult result = materialService.materialFileBatchGet(type, offset, limit);
-
-            return new Result<>().ok(new PageData<>(result.getItems(), result.getTotalCount()));
-        }
-
-    }
-
-    @GetMapping("get")
-    @Operation(summary = "获取永久素材")
-    public Result get(String appId, String mediaId) throws Exception {
-        if (!this.wxService.switchover(appId)) {
-            throw new IllegalArgumentException(String.format("未找到对应appId=[%s]的配置,请核实!", appId));
-        }
-
-
-        //获取永久素材
-        WxMpMaterialNews data = wxService.getMaterialService().materialNewsInfo(mediaId);
-
-        return new Result().ok(data);
-    }
-}

+ 0 - 83
wjp-admin/src/main/java/com/wjp/modules/mp/controller/MpMenuController.java

@@ -1,83 +0,0 @@
-package com.wjp.modules.mp.controller;
-
-import com.wjp.common.utils.Result;
-import com.wjp.modules.mp.dto.MpMenuDTO;
-import com.wjp.modules.mp.service.MpMenuService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.mp.api.WxMpService;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * 公众号自定义菜单
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("mp/menu/{appId}")
-@Tag(name = "公众号自定义菜单")
-public class MpMenuController {
-    private final MpMenuService mpMenuService;
-    private final WxMpService wxService;
-
-    @GetMapping
-    @Operation(summary = "信息")
-    @RequiresPermissions("mp:menu:all")
-    public Result<MpMenuDTO> get(@PathVariable("appId") String appId) {
-        MpMenuDTO data = mpMenuService.getByAppId(appId);
-
-        return new Result<MpMenuDTO>().ok(data);
-    }
-
-    @PostMapping
-    @Operation(summary = "发布到微信")
-    @RequiresPermissions("mp:menu:all")
-    public Result push(@PathVariable("appId") String appId, @RequestBody MpMenuDTO dto) {
-        MpMenuDTO data = mpMenuService.getByAppId(appId);
-        if (data == null) {
-            mpMenuService.save(dto);
-        } else {
-            dto.setId(data.getId());
-            mpMenuService.update(dto);
-        }
-
-        if (!this.wxService.switchover(appId)) {
-            throw new IllegalArgumentException(String.format("未找到对应appId=[%s]的配置,请核实!", appId));
-        }
-
-        //发布到微信
-        try {
-            wxService.getMenuService().menuCreate(data.getMenu());
-        } catch (WxErrorException e) {
-            return new Result().error(e.getMessage());
-        }
-
-        return new Result();
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除微信菜单")
-    @RequiresPermissions("mp:menu:all")
-    public Result delete(@PathVariable("appId") String appId) {
-        if (!this.wxService.switchover(appId)) {
-            throw new IllegalArgumentException(String.format("未找到对应appId=[%s]的配置,请核实!", appId));
-        }
-
-        //删除微信菜单
-        try {
-            wxService.getMenuService().menuDelete();
-        } catch (WxErrorException e) {
-            return new Result().error(e.getMessage());
-        }
-
-        //删除系统菜单
-        mpMenuService.deleteByAppId(appId);
-
-        return new Result();
-    }
-
-}

+ 0 - 108
wjp-admin/src/main/java/com/wjp/modules/mp/controller/MpPortalController.java

@@ -1,108 +0,0 @@
-package com.wjp.modules.mp.controller;
-
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.mp.api.WxMpMessageRouter;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * 微信认证、回调处理
- */
-@Slf4j
-@AllArgsConstructor
-@RestController
-@RequestMapping("/mp/portal/{appId}")
-public class MpPortalController {
-    private final WxMpService wxService;
-    private final WxMpMessageRouter messageRouter;
-
-    /**
-     * 服务端Token验证
-     */
-    @GetMapping(produces = "text/plain;charset=utf-8")
-    public String authGet(@PathVariable String appId,
-        @RequestParam(name = "signature", required = false) String signature,
-        @RequestParam(name = "timestamp", required = false) String timestamp,
-        @RequestParam(name = "nonce", required = false) String nonce,
-        @RequestParam(name = "echostr", required = false) String echostr) {
-
-        log.info("\n接收到来自微信服务器的认证消息:[{}, {}, {}, {}, {}]", appId, signature, timestamp, nonce, echostr);
-        if (StringUtils.isAnyBlank(appId, signature, timestamp, nonce, echostr)) {
-            throw new IllegalArgumentException("请求参数非法,请核实!");
-        }
-
-        if (!this.wxService.switchover(appId)) {
-            throw new IllegalArgumentException(String.format("未找到对应appId=[%s]的配置,请核实!", appId));
-        }
-
-        if (wxService.checkSignature(timestamp, nonce, signature)) {
-            return echostr;
-        }
-
-        return "非法请求";
-    }
-
-    /**
-     * 处理微信回调事件
-     */
-    @PostMapping(produces = "application/xml; charset=UTF-8")
-    public String post(@PathVariable String appId, @RequestBody String requestBody,
-       @RequestParam("signature") String signature, @RequestParam("timestamp") String timestamp,
-       @RequestParam("nonce") String nonce, @RequestParam("openid") String openid,
-       @RequestParam(name = "encrypt_type", required = false) String encType,
-       @RequestParam(name = "msg_signature", required = false) String msgSignature) {
-
-        log.info("\n接收微信请求:[openid=[{}], [signature=[{}], encType=[{}], msgSignature=[{}],"
-                + " timestamp=[{}], nonce=[{}], requestBody=[\n{}\n] ",
-            openid, signature, encType, msgSignature, timestamp, nonce, requestBody);
-
-        if (!this.wxService.switchover(appId)) {
-            throw new IllegalArgumentException(String.format("未找到对应appId=[%s]的配置,请核实!", appId));
-        }
-
-        if (!wxService.checkSignature(timestamp, nonce, signature)) {
-            throw new IllegalArgumentException("非法请求,可能属于伪造的请求!");
-        }
-
-        String out = null;
-        if (encType == null) {
-            // 明文传输的消息
-            WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(requestBody);
-            WxMpXmlOutMessage outMessage = this.route(inMessage);
-            if (outMessage == null) {
-                return "";
-            }
-
-            out = outMessage.toXml();
-        } else if ("aes".equalsIgnoreCase(encType)) {
-            // aes加密的消息
-            WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(requestBody, wxService.getWxMpConfigStorage(),
-                timestamp, nonce, msgSignature);
-            log.debug("\n消息解密后内容为:\n{} ", inMessage.toString());
-            WxMpXmlOutMessage outMessage = this.route(inMessage);
-            if (outMessage == null) {
-                return "";
-            }
-
-            out = outMessage.toEncryptedXml(wxService.getWxMpConfigStorage());
-        }
-
-        log.debug("\n组装回复信息:{}", out);
-        return out;
-    }
-
-    private WxMpXmlOutMessage route(WxMpXmlMessage message) {
-        try {
-            return this.messageRouter.route(message);
-        } catch (Exception e) {
-            log.error("路由消息时出现异常!", e);
-        }
-
-        return null;
-    }
-
-}

+ 0 - 15
wjp-admin/src/main/java/com/wjp/modules/mp/dao/MpAccountDao.java

@@ -1,15 +0,0 @@
-package com.wjp.modules.mp.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.mp.entity.MpAccountEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
-* 公众号账号管理
-*
-* @author Toby javatangbin@163.com
-*/
-@Mapper
-public interface MpAccountDao extends BaseDao<MpAccountEntity> {
-	
-}

+ 0 - 15
wjp-admin/src/main/java/com/wjp/modules/mp/dao/MpMenuDao.java

@@ -1,15 +0,0 @@
-package com.wjp.modules.mp.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.mp.entity.MpMenuEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
-* 公众号自定义菜单
-*
-* @author Toby javatangbin@163.com
-*/
-@Mapper
-public interface MpMenuDao extends BaseDao<MpMenuEntity> {
-	
-}

+ 0 - 43
wjp-admin/src/main/java/com/wjp/modules/mp/dto/MpAccountDTO.java

@@ -1,43 +0,0 @@
-package com.wjp.modules.mp.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.wjp.common.utils.DateUtils;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 公众号账号管理
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "公众号账号管理")
-public class MpAccountDTO implements Serializable {
-    @Schema(description = "id")
-    private Long id;
-
-    @Schema(description = "名称")
-    private String name;
-
-    @Schema(description = "AppID")
-    private String appId;
-
-    @Schema(description = "AppSecret")
-    private String appSecret;
-
-    @Schema(description = "Token")
-    private String token;
-
-    @Schema(description = "EncodingAESKey")
-    private String aesKey;
-
-    @Schema(description = "创建者")
-    private Long creator;
-
-    @Schema(description = "创建时间")
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-}

+ 0 - 18
wjp-admin/src/main/java/com/wjp/modules/mp/dto/MpMaterialDTO.java

@@ -1,18 +0,0 @@
-package com.wjp.modules.mp.dto;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * 公众号素材
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "公众号素材")
-public class MpMaterialDTO implements Serializable {
-    private String mediaId;
-    
-}

+ 0 - 32
wjp-admin/src/main/java/com/wjp/modules/mp/dto/MpMenuDTO.java

@@ -1,32 +0,0 @@
-package com.wjp.modules.mp.dto;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 公众号自定义菜单
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "公众号自定义菜单")
-public class MpMenuDTO implements Serializable {
-    @Schema(description = "id")
-    private Long id;
-    @Schema(description = "菜单json数据")
-    private String menu;
-    @Schema(description = "AppID")
-    private String appId;
-    @Schema(description = "创建者")
-    private Long creator;
-    @Schema(description = "创建时间")
-    private Date createDate;
-    @Schema(description = "更新者")
-    private Long updater;
-    @Schema(description = "更新时间")
-    private Date updateDate;
-
-}

+ 0 - 52
wjp-admin/src/main/java/com/wjp/modules/mp/entity/MpAccountEntity.java

@@ -1,52 +0,0 @@
-package com.wjp.modules.mp.entity;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.wjp.common.entity.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.Date;
-
-/**
- * 公众号账号管理
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("mp_account")
-public class MpAccountEntity extends BaseEntity {
-
-    /**
-     * 名称
-     */
-    private String name;
-    /**
-     * AppID
-     */
-    private String appId;
-    /**
-     * AppSecret
-     */
-    private String appSecret;
-    /**
-     * Token
-     */
-    private String token;
-    /**
-     * EncodingAESKey
-     */
-    private String aesKey;
-    /**
-     * 更新者
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Long updater;
-    /**
-     * 更新时间
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Date updateDate;
-}

+ 0 - 40
wjp-admin/src/main/java/com/wjp/modules/mp/entity/MpMenuEntity.java

@@ -1,40 +0,0 @@
-package com.wjp.modules.mp.entity;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.wjp.common.entity.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.util.Date;
-
-/**
- * 公众号自定义菜单
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@TableName("mp_menu")
-public class MpMenuEntity extends BaseEntity {
-
-    /**
-     * 菜单json数据
-     */
-    private String menu;
-    /**
-     * AppID
-     */
-    private String appId;
-    /**
-     * 更新者
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Long updater;
-    /**
-     * 更新时间
-     */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private Date updateDate;
-}

+ 0 - 12
wjp-admin/src/main/java/com/wjp/modules/mp/handler/AbstractHandler.java

@@ -1,12 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import me.chanjar.weixin.mp.api.WxMpMessageHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author Binary Wang(https://github.com/binarywang)
- */
-public abstract class AbstractHandler implements WxMpMessageHandler {
-    protected Logger logger = LoggerFactory.getLogger(getClass());
-}

+ 0 - 25
wjp-admin/src/main/java/com/wjp/modules/mp/handler/KfSessionHandler.java

@@ -1,25 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class KfSessionHandler extends AbstractHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
-                                    Map<String, Object> context, WxMpService wxMpService,
-                                    WxSessionManager sessionManager) {
-        //TODO 对会话做处理
-        return null;
-    }
-
-}

+ 0 - 46
wjp-admin/src/main/java/com/wjp/modules/mp/handler/LocationHandler.java

@@ -1,46 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import com.wjp.modules.mp.builder.TextBuilder;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-import static me.chanjar.weixin.common.api.WxConsts.XmlMsgType;
-
-/**
- * 地理位置消息
- *
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class LocationHandler extends AbstractHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
-                                    Map<String, Object> context, WxMpService wxMpService,
-                                    WxSessionManager sessionManager) {
-        if (wxMessage.getMsgType().equals(XmlMsgType.LOCATION)) {
-            //TODO 接收处理用户发送的地理位置消息
-            try {
-                String content = "感谢反馈,您的的地理位置已收到!";
-                return new TextBuilder().build(content, wxMessage, null);
-            } catch (Exception e) {
-                this.logger.error("位置消息接收处理失败", e);
-                return null;
-            }
-        }
-
-        //上报地理位置事件
-        this.logger.info("上报地理位置,纬度 : {},经度 : {},精度 : {}",
-            wxMessage.getLatitude(), wxMessage.getLongitude(), String.valueOf(wxMessage.getPrecision()));
-
-        //TODO  可以将用户地理位置信息保存到本地数据库,以便以后使用
-
-        return null;
-    }
-
-}

+ 0 - 25
wjp-admin/src/main/java/com/wjp/modules/mp/handler/LogHandler.java

@@ -1,25 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import cn.hutool.json.JSONUtil;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class LogHandler extends AbstractHandler {
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
-                                    Map<String, Object> context, WxMpService wxMpService,
-                                    WxSessionManager sessionManager) {
-        this.logger.info("\n接收到请求消息,内容:{}", JSONUtil.toJsonStr(wxMessage));
-        return null;
-    }
-
-}

+ 0 - 35
wjp-admin/src/main/java/com/wjp/modules/mp/handler/MenuHandler.java

@@ -1,35 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-import static me.chanjar.weixin.common.api.WxConsts.EventType;
-
-/**
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class MenuHandler extends AbstractHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
-                                    Map<String, Object> context, WxMpService weixinService,
-                                    WxSessionManager sessionManager) {
-        String msg = String.format("type:%s, event:%s, key:%s",
-            wxMessage.getMsgType(), wxMessage.getEvent(),
-            wxMessage.getEventKey());
-        if (EventType.VIEW.equals(wxMessage.getEvent())) {
-            return null;
-        }
-
-        return WxMpXmlOutMessage.TEXT().content(msg)
-            .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())
-            .build();
-    }
-
-}

+ 0 - 52
wjp-admin/src/main/java/com/wjp/modules/mp/handler/MsgHandler.java

@@ -1,52 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import cn.hutool.json.JSONUtil;
-import com.wjp.modules.mp.builder.TextBuilder;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-import static me.chanjar.weixin.common.api.WxConsts.XmlMsgType;
-
-/**
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class MsgHandler extends AbstractHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
-                                    Map<String, Object> context, WxMpService weixinService,
-                                    WxSessionManager sessionManager) {
-
-        if (!wxMessage.getMsgType().equals(XmlMsgType.EVENT)) {
-            //TODO 可以选择将消息保存到本地
-        }
-
-        //当用户输入关键词如“你好”,“客服”等,并且有客服在线时,把消息转发给在线客服
-        try {
-            if (StringUtils.startsWithAny(wxMessage.getContent(), "你好", "客服")
-                && weixinService.getKefuService().kfOnlineList()
-                .getKfOnlineList().size() > 0) {
-                return WxMpXmlOutMessage.TRANSFER_CUSTOMER_SERVICE()
-                    .fromUser(wxMessage.getToUser())
-                    .toUser(wxMessage.getFromUser()).build();
-            }
-        } catch (WxErrorException e) {
-            e.printStackTrace();
-        }
-
-        //TODO 组装回复消息
-        String content = "收到信息内容:" + JSONUtil.toJsonStr(wxMessage);
-
-        return new TextBuilder().build(content, wxMessage, weixinService);
-
-    }
-
-}

+ 0 - 24
wjp-admin/src/main/java/com/wjp/modules/mp/handler/NullHandler.java

@@ -1,24 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class NullHandler extends AbstractHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
-                                    Map<String, Object> context, WxMpService wxMpService,
-                                    WxSessionManager sessionManager) {
-        return null;
-    }
-
-}

+ 0 - 26
wjp-admin/src/main/java/com/wjp/modules/mp/handler/ScanHandler.java

@@ -1,26 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 扫码事件
- *
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class ScanHandler extends AbstractHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMpXmlMessage, Map<String, Object> map,
-                                    WxMpService wxMpService, WxSessionManager wxSessionManager) throws WxErrorException {
-        // 扫码事件处理
-        return null;
-    }
-}

+ 0 - 27
wjp-admin/src/main/java/com/wjp/modules/mp/handler/StoreCheckNotifyHandler.java

@@ -1,27 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 门店审核事件处理
- *
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class StoreCheckNotifyHandler extends AbstractHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
-                                    Map<String, Object> context, WxMpService wxMpService,
-                                    WxSessionManager sessionManager) {
-        // TODO 处理门店审核事件
-        return null;
-    }
-
-}

+ 0 - 72
wjp-admin/src/main/java/com/wjp/modules/mp/handler/SubscribeHandler.java

@@ -1,72 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import com.wjp.modules.mp.builder.TextBuilder;
-import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import me.chanjar.weixin.mp.bean.result.WxMpUser;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 关注事件
- *
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class SubscribeHandler extends AbstractHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
-                                    Map<String, Object> context, WxMpService weixinService,
-                                    WxSessionManager sessionManager) throws WxErrorException {
-
-        this.logger.info("新关注用户 OPENID: " + wxMessage.getFromUser());
-
-        // 获取微信用户基本信息
-        try {
-            WxMpUser userWxInfo = weixinService.getUserService()
-                .userInfo(wxMessage.getFromUser(), null);
-            if (userWxInfo != null) {
-                // TODO 可以添加关注用户到本地数据库
-            }
-        } catch (WxErrorException e) {
-            if (e.getError().getErrorCode() == 48001) {
-                this.logger.info("该公众号没有获取用户信息权限!");
-            }
-        }
-
-
-        WxMpXmlOutMessage responseResult = null;
-        try {
-            responseResult = this.handleSpecial(wxMessage);
-        } catch (Exception e) {
-            this.logger.error(e.getMessage(), e);
-        }
-
-        if (responseResult != null) {
-            return responseResult;
-        }
-
-        try {
-            return new TextBuilder().build("感谢关注", wxMessage, weixinService);
-        } catch (Exception e) {
-            this.logger.error(e.getMessage(), e);
-        }
-
-        return null;
-    }
-
-    /**
-     * 处理特殊请求,比如如果是扫码进来的,可以做相应处理
-     */
-    private WxMpXmlOutMessage handleSpecial(WxMpXmlMessage wxMessage)
-        throws Exception {
-        //TODO
-        return null;
-    }
-
-}

+ 0 - 29
wjp-admin/src/main/java/com/wjp/modules/mp/handler/UnsubscribeHandler.java

@@ -1,29 +0,0 @@
-package com.wjp.modules.mp.handler;
-
-import me.chanjar.weixin.common.session.WxSessionManager;
-import me.chanjar.weixin.mp.api.WxMpService;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
-import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * 取消关注事件
- *
- * @author Binary Wang(https://github.com/binarywang)
- */
-@Component
-public class UnsubscribeHandler extends AbstractHandler {
-
-    @Override
-    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
-                                    Map<String, Object> context, WxMpService wxMpService,
-                                    WxSessionManager sessionManager) {
-        String openId = wxMessage.getFromUser();
-        this.logger.info("取消关注用户 OPENID: " + openId);
-        // TODO 可以更新本地数据库为取消关注状态
-        return null;
-    }
-
-}

+ 0 - 14
wjp-admin/src/main/java/com/wjp/modules/mp/service/MpAccountService.java

@@ -1,14 +0,0 @@
-package com.wjp.modules.mp.service;
-
-import com.wjp.common.service.CrudService;
-import com.wjp.modules.mp.dto.MpAccountDTO;
-import com.wjp.modules.mp.entity.MpAccountEntity;
-
-/**
- * 公众号账号管理
- *
- * @author Toby javatangbin@163.com
- */
-public interface MpAccountService extends CrudService<MpAccountEntity, MpAccountDTO> {
-
-}

+ 0 - 17
wjp-admin/src/main/java/com/wjp/modules/mp/service/MpMenuService.java

@@ -1,17 +0,0 @@
-package com.wjp.modules.mp.service;
-
-import com.wjp.common.service.CrudService;
-import com.wjp.modules.mp.dto.MpMenuDTO;
-import com.wjp.modules.mp.entity.MpMenuEntity;
-
-/**
- * 公众号自定义菜单
- *
- * @author Toby javatangbin@163.com
- */
-public interface MpMenuService extends CrudService<MpMenuEntity, MpMenuDTO> {
-
-    MpMenuDTO getByAppId(String appId);
-
-    void deleteByAppId(String appId);
-}

+ 0 - 35
wjp-admin/src/main/java/com/wjp/modules/mp/service/impl/MpAccountServiceImpl.java

@@ -1,35 +0,0 @@
-package com.wjp.modules.mp.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.wjp.common.service.impl.CrudServiceImpl;
-import com.wjp.modules.mp.dao.MpAccountDao;
-import com.wjp.modules.mp.dto.MpAccountDTO;
-import com.wjp.modules.mp.entity.MpAccountEntity;
-import com.wjp.modules.mp.service.MpAccountService;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-
-/**
- * 公众号账号管理
- *
- * @author Toby javatangbin@163.com
- */
-@Service
-public class MpAccountServiceImpl extends CrudServiceImpl<MpAccountDao, MpAccountEntity, MpAccountDTO> implements MpAccountService {
-
-    @Override
-    public QueryWrapper<MpAccountEntity> getWrapper(Map<String, Object> params){
-        QueryWrapper<MpAccountEntity> wrapper = new QueryWrapper<>();
-
-        String name = (String)params.get("name");
-        wrapper.like(StringUtils.isNotBlank(name), "name", name);
-
-        String appId = (String)params.get("appId");
-        wrapper.like(StringUtils.isNotBlank(appId), "app_id", appId);
-
-        return wrapper;
-    }
-
-}

+ 0 - 39
wjp-admin/src/main/java/com/wjp/modules/mp/service/impl/MpMenuServiceImpl.java

@@ -1,39 +0,0 @@
-package com.wjp.modules.mp.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.wjp.common.service.impl.CrudServiceImpl;
-import com.wjp.common.utils.ConvertUtils;
-import com.wjp.modules.mp.dao.MpMenuDao;
-import com.wjp.modules.mp.dto.MpMenuDTO;
-import com.wjp.modules.mp.entity.MpMenuEntity;
-import com.wjp.modules.mp.service.MpMenuService;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-
-/**
- * 公众号自定义菜单
- *
- * @author Toby javatangbin@163.com
- */
-@Service
-public class MpMenuServiceImpl extends CrudServiceImpl<MpMenuDao, MpMenuEntity, MpMenuDTO> implements MpMenuService {
-
-    @Override
-    public QueryWrapper<MpMenuEntity> getWrapper(Map<String, Object> params){
-        QueryWrapper<MpMenuEntity> wrapper = new QueryWrapper<>();
-
-        return wrapper;
-    }
-
-    @Override
-    public MpMenuDTO getByAppId(String appId) {
-        MpMenuEntity entity = baseDao.selectOne(new QueryWrapper<MpMenuEntity>().eq("app_id", appId));
-        return ConvertUtils.sourceToTarget(entity, MpMenuDTO.class);
-    }
-
-    @Override
-    public void deleteByAppId(String appId) {
-        baseDao.delete(new QueryWrapper<MpMenuEntity>().eq("app_id", appId));
-    }
-}

+ 0 - 39
wjp-admin/src/main/java/com/wjp/modules/pay/Interceptor/AliPayInterceptor.java

@@ -1,39 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.pay.Interceptor;
-
-import com.alipay.api.AlipayApiException;
-import com.ijpay.alipay.AliPayApiConfigKit;
-import com.wjp.modules.pay.controller.AbstractAliPayApiController;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import org.springframework.web.method.HandlerMethod;
-import org.springframework.web.servlet.HandlerInterceptor;
-
-/**
- * 支付宝支付拦截器,需要在WebMvcConfig.class配置拦截路径[/pay/alipay/**]4
- *
- * @author Toby javatangbin@163.com
- */
-public class AliPayInterceptor implements HandlerInterceptor {
-
-    @Override
-    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) throws AlipayApiException {
-        if (HandlerMethod.class.equals(handler.getClass())) {
-            HandlerMethod method = (HandlerMethod) handler;
-            Object controller = method.getBean();
-            if (!(controller instanceof AbstractAliPayApiController)) {
-                throw new RuntimeException("控制器需要继承 AbstractAliPayApiController");
-            }
-            AliPayApiConfigKit.setThreadLocalAliPayApiConfig(((AbstractAliPayApiController) controller).getApiConfig());
-            return true;
-        }
-        return false;
-    }
-}

+ 0 - 22
wjp-admin/src/main/java/com/wjp/modules/pay/config/AliPayProperties.java

@@ -1,22 +0,0 @@
-package com.wjp.modules.pay.config;
-
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.stereotype.Component;
-
-@Data
-@Component
-@PropertySource("classpath:/alipay.properties")
-@ConfigurationProperties(prefix = "alipay")
-public class AliPayProperties {
-    private String appId;
-    private String privateKey;
-    private String publicKey;
-    private String appCertPath;
-    private String aliPayCertPath;
-    private String aliPayRootCertPath;
-    private String serverUrl;
-    private String returnUrl;
-    private String notifyUrl;
-}

+ 0 - 27
wjp-admin/src/main/java/com/wjp/modules/pay/controller/AbstractAliPayApiController.java

@@ -1,27 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.pay.controller;
-
-import com.alipay.api.AlipayApiException;
-import com.ijpay.alipay.AliPayApiConfig;
-
-/**
- * 涉及支付宝接口调用的Controller,需要继承 AbstractAliPayApiController
- *
- * @author Toby javatangbin@163.com
- */
-public abstract class AbstractAliPayApiController {
-    /**
-     * 获取支付宝配置
-     *
-     * @return {@link AliPayApiConfig} 支付宝配置
-     * @throws AlipayApiException 支付宝 Api 异常
-     */
-    public abstract AliPayApiConfig getApiConfig() throws AlipayApiException;
-}

+ 0 - 142
wjp-admin/src/main/java/com/wjp/modules/pay/controller/AliPayController.java

@@ -1,142 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-package com.wjp.modules.pay.controller;
-
-import com.alipay.api.AlipayApiException;
-import com.alipay.api.domain.AlipayTradePagePayModel;
-import com.alipay.api.internal.util.AlipaySignature;
-import com.ijpay.alipay.AliPayApi;
-import com.ijpay.alipay.AliPayApiConfig;
-import com.ijpay.alipay.AliPayApiConfigKit;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.exception.MyException;
-import com.wjp.modules.pay.config.AliPayProperties;
-import com.wjp.modules.pay.dto.AlipayNotifyLogDTO;
-import com.wjp.modules.pay.entity.OrderEntity;
-import com.wjp.modules.pay.service.AlipayNotifyLogService;
-import com.wjp.modules.pay.service.OrderService;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.math.BigDecimal;
-import java.util.Map;
-
-/**
- * 支付宝支付
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("pay/alipay")
-public class AliPayController extends AbstractAliPayApiController {
-    private final AliPayProperties properties;
-    private final OrderService orderService;
-    private final AlipayNotifyLogService alipayNotifyLogService;
-
-    @Override
-    public AliPayApiConfig getApiConfig() throws AlipayApiException {
-        AliPayApiConfig aliPayApiConfig;
-        try {
-            aliPayApiConfig = AliPayApiConfigKit.getApiConfig(properties.getAppId());
-        } catch (Exception e) {
-            aliPayApiConfig = AliPayApiConfig.builder()
-                    .setAppId(properties.getAppId())
-                    .setAliPayPublicKey(properties.getPublicKey())
-                    .setAppCertPath(properties.getAppCertPath())
-                    .setAliPayCertPath(properties.getAliPayCertPath())
-                    .setAliPayRootCertPath(properties.getAliPayRootCertPath())
-                    .setCharset("UTF-8")
-                    .setPrivateKey(properties.getPrivateKey())
-                    .setServiceUrl(properties.getServerUrl())
-                    .setSignType("RSA2")
-                    // 普通公钥方式
-                    //.build();
-                    // 证书模式
-                    .buildByCert();
-        }
-        return aliPayApiConfig;
-    }
-
-    /**
-     * Web支付
-     */
-    @RequestMapping(value = "/webPay")
-    public void webPay(HttpServletResponse response, Long orderId) throws Exception {
-        OrderEntity order = orderService.getByOrderId(orderId);
-        if (order == null) {
-            throw new MyException("订单不存在");
-        }
-
-        if (order.getStatus() != Constant.OrderStatus.WAITING.getValue()) {
-            throw new MyException("订单已失效");
-        }
-
-        AlipayTradePagePayModel model = new AlipayTradePagePayModel();
-        model.setOutTradeNo(order.getOrderId() + "");
-        //固定值
-        model.setProductCode("FAST_INSTANT_TRADE_PAY");
-        model.setTotalAmount(order.getPayAmount().toString());
-        model.setSubject(order.getProductName());
-        //公用回传参数,没有则无需设置
-        //model.setPassbackParams("passback_params");
-
-        AliPayApi.tradePage(response, model, properties.getNotifyUrl(), properties.getReturnUrl());
-    }
-
-
-    /**
-     * 支付宝异步通知接口
-     */
-    @PostMapping("notify_url")
-    public String notifyUrl(HttpServletRequest request) throws Exception {
-        //支付宝异步通知内容
-        Map<String, String> params = AliPayApi.toMap(request);
-
-        //秘钥模式
-        //boolean verifyResult = AlipaySignature.rsaCheckV1(params, properties.getPublicKey(), "UTF-8", "RSA2");
-        //证书模式
-        boolean verifyResult = AlipaySignature.rsaCertCheckV1(params, properties.getAliPayCertPath(), "UTF-8", "RSA2");
-
-        //验签失败
-        if (!verifyResult) {
-            return "failure";
-        }
-
-        //保存异步通知记录
-        AlipayNotifyLogDTO alipayNotifyLog = new AlipayNotifyLogDTO();
-        alipayNotifyLog.setNotifyId(params.get("notify_id"));
-        alipayNotifyLog.setBuyerId(params.get("buyer_id"));
-        alipayNotifyLog.setSellerId(params.get("seller_id"));
-        alipayNotifyLog.setTradeNo(params.get("trade_no"));
-        alipayNotifyLog.setOutTradeNo(Long.parseLong(params.get("out_trade_no")));
-        alipayNotifyLog.setTotalAmount(new BigDecimal(params.get("total_amount")));
-        alipayNotifyLog.setBuyerPayAmount(new BigDecimal(params.get("buyer_pay_amount")));
-        alipayNotifyLog.setReceiptAmount(new BigDecimal(params.get("receipt_amount")));
-        alipayNotifyLog.setInvoiceAmount(new BigDecimal(params.get("invoice_amount")));
-        alipayNotifyLog.setTradeStatus(params.get("trade_status"));
-        alipayNotifyLogService.save(alipayNotifyLog);
-
-        //查询订单信息
-        OrderEntity order = orderService.getByOrderId(alipayNotifyLog.getOutTradeNo());
-        //重复通知,不再处理
-        if (order.getStatus() == Constant.OrderStatus.FINISH.getValue()) {
-            return "success";
-        }
-
-        //处理业务逻辑
-        orderService.paySuccess(order);
-
-        return "success";
-    }
-
-}

+ 0 - 55
wjp-admin/src/main/java/com/wjp/modules/pay/controller/AlipayNotifyLogController.java

@@ -1,55 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.pay.controller;
-
-import com.github.xiaoymin.knife4j.annotations.Ignore;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import com.wjp.modules.pay.dto.AlipayNotifyLogDTO;
-import com.wjp.modules.pay.service.AlipayNotifyLogService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Map;
-
-
-/**
- * 支付宝回调日志
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("pay/alipayNotifyLog")
-public class AlipayNotifyLogController {
-    private final AlipayNotifyLogService alipayNotifyLogService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
-    })
-    @RequiresPermissions("pay:alipayNotifyLog:all")
-    public Result<PageData<AlipayNotifyLogDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<AlipayNotifyLogDTO> page = alipayNotifyLogService.page(params);
-
-        return new Result<PageData<AlipayNotifyLogDTO>>().ok(page);
-    }
-}

+ 0 - 86
wjp-admin/src/main/java/com/wjp/modules/pay/controller/OrderController.java

@@ -1,86 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.pay.controller;
-
-import com.github.xiaoymin.knife4j.annotations.Ignore;
-import com.wjp.common.annotation.LogOperation;
-import com.wjp.common.constant.Constant;
-import com.wjp.common.page.PageData;
-import com.wjp.common.utils.Result;
-import com.wjp.common.validator.AssertUtils;
-import com.wjp.common.validator.ValidatorUtils;
-import com.wjp.common.validator.group.AddGroup;
-import com.wjp.common.validator.group.DefaultGroup;
-import com.wjp.modules.pay.dto.OrderDTO;
-import com.wjp.modules.pay.service.OrderService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-
-
-/**
- * 订单
- *
- * @author Toby javatangbin@163.com
- */
-@AllArgsConstructor
-@RestController
-@RequestMapping("pay/order")
-@Tag(name = "订单")
-public class OrderController {
-    private final OrderService orderService;
-
-    @GetMapping("page")
-    @Operation(summary = "分页")
-    @Parameters({
-            @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true),
-            @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true),
-            @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"),
-            @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
-    })
-    @RequiresPermissions("pay:order:all")
-    public Result<PageData<OrderDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
-        PageData<OrderDTO> page = orderService.page(params);
-
-        return new Result<PageData<OrderDTO>>().ok(page);
-    }
-
-    @PostMapping
-    @Operation(summary = "保存")
-    @LogOperation("保存")
-    @RequiresPermissions("pay:order:all")
-    public Result save(@RequestBody OrderDTO dto) {
-        //效验数据
-        ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
-
-        orderService.save(dto);
-
-        return new Result();
-    }
-
-    @DeleteMapping
-    @Operation(summary = "删除")
-    @LogOperation("删除")
-    @RequiresPermissions("pay:order:all")
-    public Result delete(@RequestBody Long[] ids) {
-        //效验数据
-        AssertUtils.isArrayEmpty(ids, "id");
-
-        orderService.delete(ids);
-
-        return new Result();
-    }
-
-}

+ 0 - 23
wjp-admin/src/main/java/com/wjp/modules/pay/dao/AlipayNotifyLogDao.java

@@ -1,23 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.pay.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.pay.entity.AlipayNotifyLogEntity;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
-* 支付宝回调日志
-*
-* @author Toby javatangbin@163.com
-*/
-@Mapper
-public interface AlipayNotifyLogDao extends BaseDao<AlipayNotifyLogEntity> {
-	
-}

+ 0 - 32
wjp-admin/src/main/java/com/wjp/modules/pay/dao/OrderDao.java

@@ -1,32 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- *
- * https://www.scjydz.com
- *
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.pay.dao;
-
-import com.wjp.common.dao.BaseDao;
-import com.wjp.modules.pay.entity.OrderEntity;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
-
-/**
-* 订单
-*
-* @author Toby javatangbin@163.com
-*/
-@Mapper
-public interface OrderDao extends BaseDao<OrderEntity> {
-
-    /**
-     * 支付成功
-     */
-    int paySuccess(@Param("orderId") Long orderId, @Param("status") Integer status, @Param("payAt") Date payAt);
-
-    OrderEntity getByOrderId(Long orderId);
-}

+ 0 - 55
wjp-admin/src/main/java/com/wjp/modules/pay/dto/AlipayNotifyLogDTO.java

@@ -1,55 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.pay.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.wjp.common.utils.DateUtils;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 支付宝回调日志
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "支付宝回调日志")
-public class AlipayNotifyLogDTO implements Serializable {
-
-
-    private Long id;
-    @Schema(description = "订单号")
-    private Long outTradeNo;
-    @Schema(description = "订单金额")
-    private BigDecimal totalAmount;
-    @Schema(description = "付款金额")
-    private BigDecimal buyerPayAmount;
-    @Schema(description = "实收金额")
-    private BigDecimal receiptAmount;
-    @Schema(description = "开票金额")
-    private BigDecimal invoiceAmount;
-    @Schema(description = "通知校验ID")
-    private String notifyId;
-    @Schema(description = "买家支付宝用户号")
-    private String buyerId;
-    @Schema(description = "卖家支付宝用户号")
-    private String sellerId;
-    @Schema(description = "支付宝交易号")
-    private String tradeNo;
-    @Schema(description = "交易状态")
-    private String tradeStatus;
-    @Schema(description = "创建时间")
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-
-}

+ 0 - 50
wjp-admin/src/main/java/com/wjp/modules/pay/dto/OrderDTO.java

@@ -1,50 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.pay.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.wjp.common.utils.DateUtils;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 订单
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@Schema(description = "订单")
-public class OrderDTO implements Serializable {
-
-
-    private Long id;
-    @Schema(description = "订单ID")
-    private Long orderId;
-    @Schema(description = "产品ID")
-    private Long productId;
-    @Schema(description = "产品名称")
-    private String productName;
-    @Schema(description = "支付金额")
-    private BigDecimal payAmount;
-    @Schema(description = "订单状态")
-    private Integer status;
-    @Schema(description = "购买者ID")
-    private Long userId;
-    @Schema(description = "支付时间")
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date payAt;
-    @Schema(description = "下单时间")
-    @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN)
-    private Date createDate;
-
-}

+ 0 - 76
wjp-admin/src/main/java/com/wjp/modules/pay/entity/AlipayNotifyLogEntity.java

@@ -1,76 +0,0 @@
-/**
- * Copyright (c) 2021 Toby All rights reserved.
- * <p>
- * https://www.scjydz.com
- * <p>
- * 版权所有,侵权必究!
- */
-
-package com.wjp.modules.pay.entity;
-
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 支付宝回调日志
- *
- * @author Toby javatangbin@163.com
- */
-@Data
-@TableName("tb_alipay_notify_log")
-public class AlipayNotifyLogEntity implements Serializable {
-    @TableId
-    private Long id;
-    /**
-     * 订单号
-     */
-    private Long outTradeNo;
-    /**
-     * 订单金额
-     */
-    private BigDecimal totalAmount;
-    /**
-     * 付款金额
-     */
-    private BigDecimal buyerPayAmount;
-    /**
-     * 实收金额
-     */
-    private BigDecimal receiptAmount;
-    /**
-     * 开票金额
-     */
-    private BigDecimal invoiceAmount;
-    /**
-     * 通知校验ID
-     */
-    private String notifyId;
-    /**
-     * 买家支付宝用户号
-     */
-    private String buyerId;
-    /**
-     * 卖家支付宝用户号
-     */
-    private String sellerId;
-    /**
-     * 支付宝交易号
-     */
-    private String tradeNo;
-    /**
-     * 交易状态
-     */
-    private String tradeStatus;
-    /**
-     * 创建时间
-     */
-    @TableField(fill = FieldFill.INSERT)
-    private Date createDate;
-}

Деякі файли не було показано, через те що забагато файлів було змінено