diff --git a/mvnw b/mvnw old mode 100644 new mode 100755 diff --git a/pom.xml b/pom.xml index 18470f3..0458eee 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.gxwebsoft - com-gxwebsoft-server + yaoxiaoer-java 1.5.2 com-gxwebsoft-api @@ -21,6 +21,7 @@ 1.8 UTF-8 UTF-8 + 2.13.5 @@ -256,13 +257,12 @@ com.google.code.gson gson - 2.8.0 + 2.10.1 - com.vaadin.external.google - android-json - 0.0.20131108.vaadin1 - compile + org.json + json + 20170516 @@ -275,7 +275,63 @@ com.github.wechatpay-apiv3 wechatpay-java - 0.2.12 + 0.2.17 + + + com.alibaba.nls + nls-sdk-tts + 2.2.19 + + + javax.xml.bind + jaxb-api + 2.3.0 + + + com.sun.xml.bind + jaxb-impl + 2.3.0 + + + com.sun.xml.bind + jaxb-core + 2.3.0 + + + javax.activation + activation + 1.1.1 + + + com.aliyun + aliyun-java-sdk-core + 3.7.1 + + + com.alibaba + dashscope-sdk-java + + + org.slf4j + slf4j-simple + + + 2.22.5 + + + com.aliyun.oss + aliyun-sdk-oss + 3.18.4 + + + com.aliyun + sts20150401 + 1.1.6 + + + com.aliyun + ocr_api20210707 + 3.1.2 diff --git a/src/main/java/com/gxwebsoft/cms/controller/ArticleCollectController.java b/src/main/java/com/gxwebsoft/cms/controller/ArticleCollectController.java new file mode 100644 index 0000000..c2ac511 --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/controller/ArticleCollectController.java @@ -0,0 +1,121 @@ +package com.gxwebsoft.cms.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.cms.service.ArticleCollectService; +import com.gxwebsoft.cms.entity.ArticleCollect; +import com.gxwebsoft.cms.param.ArticleCollectParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 控制器 + * + * @author LX + * @since 2025-11-23 14:05:18 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/cms/article-collect") +public class ArticleCollectController extends BaseController { + @Resource + private ArticleCollectService articleCollectService; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(ArticleCollectParam param) { + // 使用关联查询 + return success(articleCollectService.pageRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(ArticleCollectParam param) { + // 使用关联查询 + param.setUserId(getLoginUserId()); + return success(articleCollectService.listRel(param)); + } + + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(articleCollectService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody ArticleCollect articleCollect) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + articleCollect.setUserId(loginUser.getUserId()); + } + ArticleCollect check = articleCollectService.check(getLoginUserId(), articleCollect.getArticleId()); + if (check == null) { + if (articleCollectService.save(articleCollect)) { + return success("添加成功"); + } + }else { + articleCollectService.removeById(check.getId()); + return success("取消成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody ArticleCollect articleCollect) { + if (articleCollectService.updateById(articleCollect)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (articleCollectService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (articleCollectService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(articleCollectService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (articleCollectService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawFeedbackController.java b/src/main/java/com/gxwebsoft/cms/controller/ArticleCommentController.java similarity index 57% rename from src/main/java/com/gxwebsoft/law/controller/LawFeedbackController.java rename to src/main/java/com/gxwebsoft/cms/controller/ArticleCommentController.java index 4b79316..29d2ed5 100644 --- a/src/main/java/com/gxwebsoft/law/controller/LawFeedbackController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/ArticleCommentController.java @@ -1,9 +1,9 @@ -package com.gxwebsoft.law.controller; +package com.gxwebsoft.cms.controller; import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawFeedbackService; -import com.gxwebsoft.law.entity.LawFeedback; -import com.gxwebsoft.law.param.LawFeedbackParam; +import com.gxwebsoft.cms.service.ArticleCommentService; +import com.gxwebsoft.cms.entity.ArticleComment; +import com.gxwebsoft.cms.param.ArticleCommentParam; import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageParam; @@ -22,50 +22,46 @@ import java.util.List; * 控制器 * * @author LX - * @since 2025-05-06 10:27:16 + * @since 2025-12-02 16:56:51 */ @Api(tags = "管理") @RestController -@RequestMapping("/api/law/law-feedback") -public class LawFeedbackController extends BaseController { +@RequestMapping("/api/cms/article-comment") +public class ArticleCommentController extends BaseController { @Resource - private LawFeedbackService lawFeedbackService; + private ArticleCommentService articleCommentService; @ApiOperation("分页查询") @GetMapping("/page") - public ApiResult> page(LawFeedbackParam param) { + public ApiResult> page(ArticleCommentParam param) { // 使用关联查询 - return success(lawFeedbackService.pageRel(param)); + return success(articleCommentService.pageRel(param)); } @ApiOperation("查询全部") @GetMapping() - public ApiResult> list(LawFeedbackParam param) { - User loginUser = getLoginUser(); - if (loginUser != null) { - param.setUserId(loginUser.getUserId()); - } + public ApiResult> list(ArticleCommentParam param) { // 使用关联查询 - return success(lawFeedbackService.listRel(param)); + return success(articleCommentService.listRel(param)); } - @PreAuthorize("hasAuthority('law:lawFeedback:list')") + @PreAuthorize("hasAuthority('cms:articleComment:list')") @ApiOperation("根据id查询") @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { + public ApiResult get(@PathVariable("id") Integer id) { // 使用关联查询 - return success(lawFeedbackService.getByIdRel(id)); + return success(articleCommentService.getByIdRel(id)); } @ApiOperation("添加") @PostMapping() - public ApiResult save(@RequestBody LawFeedback lawFeedback) { + public ApiResult save(@RequestBody ArticleComment articleComment) { // 记录当前登录用户id User loginUser = getLoginUser(); if (loginUser != null) { - lawFeedback.setUserId(loginUser.getUserId()); + articleComment.setUserId(loginUser.getUserId()); } - if (lawFeedbackService.save(lawFeedback)) { + if (articleCommentService.save(articleComment)) { return success("添加成功"); } return fail("添加失败"); @@ -73,8 +69,8 @@ public class LawFeedbackController extends BaseController { @ApiOperation("修改") @PutMapping() - public ApiResult update(@RequestBody LawFeedback lawFeedback) { - if (lawFeedbackService.updateById(lawFeedback)) { + public ApiResult update(@RequestBody ArticleComment articleComment) { + if (articleCommentService.updateById(articleComment)) { return success("修改成功"); } return fail("修改失败"); @@ -83,7 +79,7 @@ public class LawFeedbackController extends BaseController { @ApiOperation("删除") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { - if (lawFeedbackService.removeById(id)) { + if (articleCommentService.removeById(id)) { return success("删除成功"); } return fail("删除失败"); @@ -91,8 +87,8 @@ public class LawFeedbackController extends BaseController { @ApiOperation("批量添加") @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawFeedbackService.saveBatch(list)) { + public ApiResult saveBatch(@RequestBody List list) { + if (articleCommentService.saveBatch(list)) { return success("添加成功"); } return fail("添加失败"); @@ -100,8 +96,8 @@ public class LawFeedbackController extends BaseController { @ApiOperation("批量修改") @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawFeedbackService, "id")) { + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(articleCommentService, "id")) { return success("修改成功"); } return fail("修改失败"); @@ -110,7 +106,7 @@ public class LawFeedbackController extends BaseController { @ApiOperation("批量删除") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { - if (lawFeedbackService.removeByIds(ids)) { + if (articleCommentService.removeByIds(ids)) { return success("删除成功"); } return fail("删除失败"); diff --git a/src/main/java/com/gxwebsoft/cms/controller/ArticleController.java b/src/main/java/com/gxwebsoft/cms/controller/ArticleController.java index 6d127c7..5675ecf 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/ArticleController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/ArticleController.java @@ -2,7 +2,9 @@ package com.gxwebsoft.cms.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.gxwebsoft.cms.entity.ArticleCategory; +import com.gxwebsoft.cms.entity.ArticleCollect; import com.gxwebsoft.cms.service.ArticleCategoryService; +import com.gxwebsoft.cms.service.ArticleCollectService; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.cms.service.ArticleService; import com.gxwebsoft.cms.entity.Article; @@ -35,6 +37,8 @@ public class ArticleController extends BaseController { @Resource private ArticleService articleService; @Resource + private ArticleCollectService articleCollectService; + @Resource private ArticleCategoryService articleCategoryService; @ApiOperation("根据id查询文章记录表") @@ -45,7 +49,6 @@ public class ArticleController extends BaseController { } - @PreAuthorize("hasAuthority('cms:article:list')") @OperationLog @ApiOperation("分页查询文章记录表") @GetMapping("/page") @@ -74,11 +77,13 @@ public class ArticleController extends BaseController { if (!categoryIds.isEmpty()) { queryWrapper.in(Article::getCategoryId, categoryIds); } + if (param.getTitle() != null) { + queryWrapper.like(Article::getTitle, param.getTitle()); + } List
articleList = articleService.list(queryWrapper); return success(articleList); } - @PreAuthorize("hasAuthority('cms:article:list')") @OperationLog @ApiOperation("根据id查询文章记录表") @GetMapping("/{id}") @@ -89,6 +94,13 @@ public class ArticleController extends BaseController { article.setArticleId(id); article.setVirtualViews(article.getVirtualViews() + 1); articleService.saveOrUpdate(article); + ArticleCategory category = articleCategoryService.getByIdRel(article.getCategoryId()); + if (category != null) article.setCategory(category.getTitle()); + article.setHasCollect(false); + if (getLoginUser() != null) { + ArticleCollect articleCollect = articleCollectService.check(getLoginUserId(), id); + article.setHasCollect(articleCollect != null); + } return success(article); } diff --git a/src/main/java/com/gxwebsoft/cms/entity/Article.java b/src/main/java/com/gxwebsoft/cms/entity/Article.java index 58ccd04..54b9c8f 100644 --- a/src/main/java/com/gxwebsoft/cms/entity/Article.java +++ b/src/main/java/com/gxwebsoft/cms/entity/Article.java @@ -37,6 +37,9 @@ public class Article implements Serializable { @ApiModelProperty(value = "文章分类ID") private Integer categoryId; + @TableField(exist = false) + private String category; + @ApiModelProperty(value = "封面图") private String image; @@ -88,4 +91,6 @@ public class Article implements Serializable { @TableField(exist = false) private String userAvatar; + @TableField(exist = false) + private Boolean hasCollect; } diff --git a/src/main/java/com/gxwebsoft/shop/entity/GoodsPhoneModel.java b/src/main/java/com/gxwebsoft/cms/entity/ArticleCollect.java similarity index 62% rename from src/main/java/com/gxwebsoft/shop/entity/GoodsPhoneModel.java rename to src/main/java/com/gxwebsoft/cms/entity/ArticleCollect.java index d14aff6..4cbe2b8 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/GoodsPhoneModel.java +++ b/src/main/java/com/gxwebsoft/cms/entity/ArticleCollect.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.shop.entity; +package com.gxwebsoft.cms.entity; import com.baomidou.mybatisplus.annotation.*; @@ -10,26 +10,26 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 商品匹配机型 + * * - * @author 科技小王子 - * @since 2024-03-12 01:30:55 + * @author LX + * @since 2025-11-23 14:05:18 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "GoodsPhoneModel对象", description = "商品匹配机型") -@TableName("shop_goods_phone_model") -public class GoodsPhoneModel implements Serializable { +@ApiModel(value = "ArticleCollect对象", description = "") +@TableName("cms_article_collect") +public class ArticleCollect implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private Integer goodsId; + private Integer articleId; - private Integer modelId; + private Integer userId; - @ApiModelProperty(value = "状态, 0上架, 1下架") + @ApiModelProperty(value = "状态, 0正常, 1冻结") private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @@ -46,9 +46,5 @@ public class GoodsPhoneModel implements Serializable { private LocalDateTime updateTime; @TableField(exist = false) - private String phoneModelName; - - @TableField(exist = false) - private String phoneModelCode; - + private Article article; } diff --git a/src/main/java/com/gxwebsoft/law/entity/LawOrgPeople.java b/src/main/java/com/gxwebsoft/cms/entity/ArticleComment.java similarity index 64% rename from src/main/java/com/gxwebsoft/law/entity/LawOrgPeople.java rename to src/main/java/com/gxwebsoft/cms/entity/ArticleComment.java index f027bfd..80f918c 100644 --- a/src/main/java/com/gxwebsoft/law/entity/LawOrgPeople.java +++ b/src/main/java/com/gxwebsoft/cms/entity/ArticleComment.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.entity; +package com.gxwebsoft.cms.entity; import com.baomidou.mybatisplus.annotation.*; @@ -13,32 +13,27 @@ import lombok.EqualsAndHashCode; * * * @author LX - * @since 2025-04-14 01:31:54 + * @since 2025-12-02 16:56:51 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawOrgPeople对象", description = "") -@TableName("law_org_people") -public class LawOrgPeople implements Serializable { +@ApiModel(value = "ArticleComment对象", description = "") +@TableName("cms_article_comment") +public class ArticleComment implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private Integer orgId; - - private String name; - - private String phone; - - private String position; - - private String type; - - private String positionType; + private Integer articleId; private Integer userId; + private String content; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; + @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic private Integer deleted; @@ -46,12 +41,12 @@ public class LawOrgPeople implements Serializable { @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "创建时间") + @ApiModelProperty(value = "注册时间") private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") private LocalDateTime updateTime; @TableField(exist = false) - private LawOrg lawOrg; + private Article article; } diff --git a/src/main/java/com/gxwebsoft/cms/mapper/ArticleCollectMapper.java b/src/main/java/com/gxwebsoft/cms/mapper/ArticleCollectMapper.java new file mode 100644 index 0000000..495d489 --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/mapper/ArticleCollectMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.cms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.cms.entity.ArticleCollect; +import com.gxwebsoft.cms.param.ArticleCollectParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2025-11-23 14:05:18 + */ +public interface ArticleCollectMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") ArticleCollectParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") ArticleCollectParam param); + +} diff --git a/src/main/java/com/gxwebsoft/cms/mapper/ArticleCommentMapper.java b/src/main/java/com/gxwebsoft/cms/mapper/ArticleCommentMapper.java new file mode 100644 index 0000000..1362a4b --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/mapper/ArticleCommentMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.cms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.cms.entity.ArticleComment; +import com.gxwebsoft.cms.param.ArticleCommentParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2025-12-02 16:56:51 + */ +public interface ArticleCommentMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") ArticleCommentParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") ArticleCommentParam param); + +} diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalCalContentMapper.xml b/src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleCollectMapper.xml similarity index 72% rename from src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalCalContentMapper.xml rename to src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleCollectMapper.xml index e9a9b40..36cb9e4 100644 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalCalContentMapper.xml +++ b/src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleCollectMapper.xml @@ -1,24 +1,24 @@ - + SELECT a.* - FROM law_legal_cal_content a + FROM cms_article_collect a AND a.id = #{param.id} - - AND a.group_id = #{param.groupId} - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') + + AND a.article_id = #{param.articleId} AND a.user_id = #{param.userId} + + AND a.status = #{param.status} + AND a.deleted = #{param.deleted} @@ -39,12 +39,12 @@ - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalDocContentMapper.xml b/src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleCommentMapper.xml similarity index 74% rename from src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalDocContentMapper.xml rename to src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleCommentMapper.xml index c55b9d9..9bdaff1 100644 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalDocContentMapper.xml +++ b/src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleCommentMapper.xml @@ -1,23 +1,26 @@ - + SELECT a.* - FROM law_legal_doc_content a + FROM cms_article_comment a AND a.id = #{param.id} - - AND a.group_id = #{param.groupId} + + AND a.article_id = #{param.articleId} + + + AND a.user_id = #{param.userId} AND a.content LIKE CONCAT('%', #{param.content}, '%') - - AND a.user_id = #{param.userId} + + AND a.status = #{param.status} AND a.deleted = #{param.deleted} @@ -39,12 +42,12 @@ - - diff --git a/src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleMapper.xml b/src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleMapper.xml index 15b46fd..06b9e32 100644 --- a/src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleMapper.xml +++ b/src/main/java/com/gxwebsoft/cms/mapper/xml/ArticleMapper.xml @@ -72,7 +72,7 @@ AND b.nickname LIKE CONCAT('%', #{param.nickname}, '%') - ORDER BY a.create_time DESC + ORDER BY a.sort_number ASC, a.create_time DESC diff --git a/src/main/java/com/gxwebsoft/law/param/LawOrgPeopleParam.java b/src/main/java/com/gxwebsoft/cms/param/ArticleCollectParam.java similarity index 71% rename from src/main/java/com/gxwebsoft/law/param/LawOrgPeopleParam.java rename to src/main/java/com/gxwebsoft/cms/param/ArticleCollectParam.java index e715619..7d3dd09 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawOrgPeopleParam.java +++ b/src/main/java/com/gxwebsoft/cms/param/ArticleCollectParam.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.cms.param; import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; @@ -14,32 +14,28 @@ import lombok.EqualsAndHashCode; * 查询参数 * * @author LX - * @since 2025-04-14 01:31:54 + * @since 2025-11-23 14:05:18 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawOrgPeopleParam对象", description = "查询参数") -public class LawOrgPeopleParam extends BaseParam { +@ApiModel(value = "ArticleCollectParam对象", description = "查询参数") +public class ArticleCollectParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; @QueryField(type = QueryType.EQ) - private Integer orgId; - - private String name; - - private String phone; - - private String position; - - private String type; + private Integer articleId; @QueryField(type = QueryType.EQ) private Integer userId; + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) private Integer deleted; diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalCalContentParam.java b/src/main/java/com/gxwebsoft/cms/param/ArticleCommentParam.java similarity index 70% rename from src/main/java/com/gxwebsoft/law/param/LawLegalCalContentParam.java rename to src/main/java/com/gxwebsoft/cms/param/ArticleCommentParam.java index 8433c39..801b4ff 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalCalContentParam.java +++ b/src/main/java/com/gxwebsoft/cms/param/ArticleCommentParam.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.cms.param; import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; @@ -11,29 +11,33 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 用户填写法律计算器内容查询参数 + * 查询参数 * * @author LX - * @since 2025-04-17 19:23:47 + * @since 2025-12-02 16:56:51 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalCalContentParam对象", description = "用户填写法律计算器内容查询参数") -public class LawLegalCalContentParam extends BaseParam { +@ApiModel(value = "ArticleCommentParam对象", description = "查询参数") +public class ArticleCommentParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; @QueryField(type = QueryType.EQ) - private Integer groupId; - - private String content; + private Integer articleId; @QueryField(type = QueryType.EQ) private Integer userId; + private String content; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) private Integer deleted; diff --git a/src/main/java/com/gxwebsoft/cms/service/ArticleCollectService.java b/src/main/java/com/gxwebsoft/cms/service/ArticleCollectService.java new file mode 100644 index 0000000..c3fdba4 --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/service/ArticleCollectService.java @@ -0,0 +1,43 @@ +package com.gxwebsoft.cms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.cms.entity.ArticleCollect; +import com.gxwebsoft.cms.param.ArticleCollectParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2025-11-23 14:05:18 + */ +public interface ArticleCollectService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ArticleCollectParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ArticleCollectParam param); + + /** + * 根据id查询 + * + * @param id + * @return ArticleCollect + */ + ArticleCollect getByIdRel(Integer id); + + ArticleCollect check(Integer userId, Integer id); +} diff --git a/src/main/java/com/gxwebsoft/cms/service/ArticleCommentService.java b/src/main/java/com/gxwebsoft/cms/service/ArticleCommentService.java new file mode 100644 index 0000000..3b5023a --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/service/ArticleCommentService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.cms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.cms.entity.ArticleComment; +import com.gxwebsoft.cms.param.ArticleCommentParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2025-12-02 16:56:51 + */ +public interface ArticleCommentService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(ArticleCommentParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(ArticleCommentParam param); + + /** + * 根据id查询 + * + * @param id + * @return ArticleComment + */ + ArticleComment getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/cms/service/impl/ArticleCollectServiceImpl.java b/src/main/java/com/gxwebsoft/cms/service/impl/ArticleCollectServiceImpl.java new file mode 100644 index 0000000..b424de2 --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/service/impl/ArticleCollectServiceImpl.java @@ -0,0 +1,65 @@ +package com.gxwebsoft.cms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.cms.mapper.ArticleCollectMapper; +import com.gxwebsoft.cms.service.ArticleCollectService; +import com.gxwebsoft.cms.entity.ArticleCollect; +import com.gxwebsoft.cms.param.ArticleCollectParam; +import com.gxwebsoft.cms.service.ArticleService; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2025-11-23 14:05:18 + */ +@Service +public class ArticleCollectServiceImpl extends ServiceImpl implements ArticleCollectService { + @Resource + private ArticleService articleService; + + @Override + public PageResult pageRel(ArticleCollectParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(ArticleCollectParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + for (ArticleCollect item : list) { + item.setArticle(articleService.getByIdRel(item.getArticleId())); + } + return page.sortRecords(list); + } + + @Override + public ArticleCollect getByIdRel(Integer id) { + ArticleCollectParam param = new ArticleCollectParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public ArticleCollect check(Integer userId, Integer id) { + return getOne( + new LambdaQueryWrapper() + .eq(ArticleCollect::getUserId, userId) + .eq(ArticleCollect::getArticleId, id) + .last("limit 1") + ); + } + +} diff --git a/src/main/java/com/gxwebsoft/cms/service/impl/ArticleCommentServiceImpl.java b/src/main/java/com/gxwebsoft/cms/service/impl/ArticleCommentServiceImpl.java new file mode 100644 index 0000000..ab0acce --- /dev/null +++ b/src/main/java/com/gxwebsoft/cms/service/impl/ArticleCommentServiceImpl.java @@ -0,0 +1,53 @@ +package com.gxwebsoft.cms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.cms.mapper.ArticleCommentMapper; +import com.gxwebsoft.cms.service.ArticleCommentService; +import com.gxwebsoft.cms.entity.ArticleComment; +import com.gxwebsoft.cms.param.ArticleCommentParam; +import com.gxwebsoft.cms.service.ArticleService; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2025-12-02 16:56:51 + */ +@Service +public class ArticleCommentServiceImpl extends ServiceImpl implements ArticleCommentService { + @Resource + private ArticleService articleService; + @Override + public PageResult pageRel(ArticleCommentParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(ArticleCommentParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + for (ArticleComment item : list) { + item.setArticle(articleService.getById(item.getArticleId())); + } + return page.sortRecords(list); + } + + @Override + public ArticleComment getByIdRel(Integer id) { + ArticleCommentParam param = new ArticleCommentParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/cms/service/impl/ArticleServiceImpl.java b/src/main/java/com/gxwebsoft/cms/service/impl/ArticleServiceImpl.java index 8bb8b98..618a6d7 100644 --- a/src/main/java/com/gxwebsoft/cms/service/impl/ArticleServiceImpl.java +++ b/src/main/java/com/gxwebsoft/cms/service/impl/ArticleServiceImpl.java @@ -23,7 +23,7 @@ public class ArticleServiceImpl extends ServiceImpl impl @Override public PageResult
pageRel(ArticleParam param) { PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); +// page.setDefaultOrder("sort_number asc, create_time desc"); List
list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } @@ -33,7 +33,7 @@ public class ArticleServiceImpl extends ServiceImpl impl List
list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); +// page.setDefaultOrder("sort_number asc, create_time desc"); return page.sortRecords(list); } diff --git a/src/main/java/com/gxwebsoft/common/core/config/ConfigProperties.java b/src/main/java/com/gxwebsoft/common/core/config/ConfigProperties.java index 29b2096..d162a7b 100644 --- a/src/main/java/com/gxwebsoft/common/core/config/ConfigProperties.java +++ b/src/main/java/com/gxwebsoft/common/core/config/ConfigProperties.java @@ -84,4 +84,13 @@ public class ConfigProperties { // 网关地址 private String serverUrl; + /** + * 阿里云存储 OSS + * Endpoint + */ + private String endpoint; + private String accessKeyId; + private String accessKeySecret; + private String bucketName; + private String bucketDomain; } diff --git a/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java b/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java index d02e6f3..6b6cc97 100644 --- a/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java +++ b/src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java @@ -1,21 +1,9 @@ package com.gxwebsoft.common.core.config; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; -import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; -import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; -import com.gxwebsoft.common.system.entity.User; -import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.LongValue; -import net.sf.jsqlparser.expression.NullValue; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; - -import javax.servlet.http.HttpServletRequest; -import java.util.Arrays; /** * MybatisPlus配置 @@ -23,58 +11,15 @@ import java.util.Arrays; * @author WebSoft * @since 2018-02-22 11:29:28 */ -//@Configuration +@Configuration public class MybatisPlusConfig { -// @Bean - public MybatisPlusInterceptor mybatisPlusInterceptor(HttpServletRequest request) { + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); - // 多租户插件配置 - TenantLineHandler tenantLineHandler = new TenantLineHandler() { - @Override - public Expression getTenantId() { - System.out.println(getLoginUserTenantId()); - return getLoginUserTenantId(); - } - - @Override - public boolean ignoreTable(String tableName) { - return Arrays.asList( - "sys_tenant", - "sys_dictionary", - "sys_dictionary_data" - ).contains(tableName); - } - }; - TenantLineInnerInterceptor tenantLineInnerInterceptor = new TenantLineInnerInterceptor(tenantLineHandler); - interceptor.addInnerInterceptor(tenantLineInnerInterceptor); - - // 分页插件配置 - PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); - interceptor.addInnerInterceptor(paginationInnerInterceptor); -// + interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); return interceptor; } - /** - * 获取当前登录用户的租户id - * - * @return Integer - */ - public Expression getLoginUserTenantId() { - try { - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - if (authentication != null) { - Object object = authentication.getPrincipal(); - if (object instanceof User) { - return new LongValue(((User) object).getTenantId()); - } - } - } catch (Exception e) { - System.out.println(e.getMessage()); - } - return new NullValue(); - } - } diff --git a/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java b/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java index 8b8c38e..9895131 100644 --- a/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java +++ b/src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java @@ -39,6 +39,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .permitAll() .antMatchers( "/api/login", + "/api/system/user/loginByPhoneForTest", + "/api/wx-login/loginByMpWxPhone", "/api/register", "/druid/**", "/swagger-ui.html", @@ -56,6 +58,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { "/api/shop/payment/mp-alipay/getPhoneNumber", "/api/shop/test/**", "/api/shop/wx-login/**", + "/api/shop/getOpenId", + "/api/shop/getOpenId/**", "/api/apps/hualala/**", "/api/apps/hualala-cart/**", "/api/apps/test-data/**", @@ -63,17 +67,35 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { "/api/system/user/login-by-phone", "/api/shop/wx-pay/notify", "/api/shop/wx-pay/refund-notify", + "/api/shop/goods", + "/api/shop/goods/**", + "/api/shop/goods-category", + "/api/shop/goods-category/**", "/WW_verify_QMv7HoblYU6z63bb.txt", "/WW_verify_10DxpA6fAgnSRayT.txt", "/api/system/dict-data/by-code-name", - "/api/chat/message", - "/api/chat/messageStop", "/api/sys/sys-swiper", - "/api/law/law-org/**", - "/api/law/law-org-people/**", "/api/system/dict-data/list-by-dict", "/api/cms/article-category", - "/api/file/upload" + "/api/cms/article", + "/api/file/upload", + "/api/sys/sys-area", + "/api/yxe/yxe-task-cate", + "/api/yxe/yxe-task-cate/**", + "/api/yxe/yxe-task", + "/api/yxe/yxe-task/**", + "/api/sys/sys-area/**", + "/api/common/area", + "/api/common/area/**", + "/api/yxe/ai", + "/api/oss/**", + "/api/yxe/baidu", + "/api/yxe/baidu/**", + "/api/transport/maintenance-record/**", + "/api/transport/maintenance-plan/**", + "/api/shop/merchant", + "/api/yxe/yxe-product/group", + "/api/yxe/yxe-user-task/fixChain" ) .permitAll() .anyRequest() diff --git a/src/main/java/com/gxwebsoft/common/core/utils/ExcelExportUtil.java b/src/main/java/com/gxwebsoft/common/core/utils/ExcelExportUtil.java new file mode 100644 index 0000000..2945b11 --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/core/utils/ExcelExportUtil.java @@ -0,0 +1,91 @@ +package com.gxwebsoft.common.core.utils; + +import cn.hutool.core.util.StrUtil; +import com.gxwebsoft.common.core.config.ConfigProperties; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.common.system.service.FileRecordService; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +@Component +public class ExcelExportUtil { + + private static final String EXCEL_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + + @Resource + private ConfigProperties configProperties; + + @Resource + private FileRecordService fileRecordService; + + public XSSFWorkbook createWorkbook(String sheetName, String... headers) { + XSSFWorkbook workbook = new XSSFWorkbook(); + Sheet sheet = workbook.createSheet(sheetName); + writeRow(sheet, 0, (Object[]) headers); + return workbook; + } + + public void writeRow(Sheet sheet, int rowIndex, Object... values) { + Row row = sheet.createRow(rowIndex); + for (int i = 0; i < values.length; i++) { + Cell cell = row.createCell(i); + setCellValue(cell, values[i]); + } + } + + public void autoSizeColumns(Sheet sheet, int columnCount) { + for (int i = 0; i < columnCount; i++) { + sheet.autoSizeColumn(i); + int width = sheet.getColumnWidth(i); + sheet.setColumnWidth(i, Math.min(width + 1024, 12000)); + } + } + + public FileRecord saveWorkbook(Workbook workbook, String filePrefix, Integer createUserId) throws IOException { + String safeServerUrl = StrUtil.removeSuffix(StrUtil.blankToDefault(configProperties.getServerUrl(), ""), "/"); + String fileName = filePrefix + System.currentTimeMillis() + ".xlsx"; + String relativePath = "excel/" + fileName; + File targetFile = new File(configProperties.getUploadPath() + "file/", relativePath); + File parent = targetFile.getParentFile(); + if (parent != null && !parent.exists() && !parent.mkdirs()) { + throw new IOException("创建导出目录失败: " + parent.getAbsolutePath()); + } + + try (Workbook currentWorkbook = workbook; FileOutputStream outputStream = new FileOutputStream(targetFile)) { + currentWorkbook.write(outputStream); + outputStream.flush(); + } + + FileRecord fileRecord = new FileRecord(); + fileRecord.setCreateUserId(createUserId); + fileRecord.setName(fileName); + fileRecord.setPath(relativePath); + fileRecord.setLength(targetFile.length()); + fileRecord.setContentType(EXCEL_CONTENT_TYPE); + fileRecord.setUrl(safeServerUrl + "/file/" + relativePath); + fileRecord.setDownloadUrl(safeServerUrl + "/file/download/" + relativePath); + fileRecordService.save(fileRecord); + return fileRecord; + } + + private void setCellValue(Cell cell, Object value) { + if (value == null) { + cell.setCellValue(""); + return; + } + if (value instanceof Number) { + cell.setCellValue(String.valueOf(value)); + return; + } + cell.setCellValue(String.valueOf(value)); + } +} diff --git a/src/main/java/com/gxwebsoft/common/core/utils/SchedulingUtil.java b/src/main/java/com/gxwebsoft/common/core/utils/SchedulingUtil.java index afc62d6..69df68e 100644 --- a/src/main/java/com/gxwebsoft/common/core/utils/SchedulingUtil.java +++ b/src/main/java/com/gxwebsoft/common/core/utils/SchedulingUtil.java @@ -1,8 +1,17 @@ package com.gxwebsoft.common.core.utils; +import cn.hutool.core.date.LocalDateTimeUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.system.service.UserService; import com.gxwebsoft.shop.service.OrderService; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.Date; /** * 自动执行计划 @@ -10,15 +19,20 @@ import javax.annotation.Resource; * @author WebSoft * @since 2018-12-14 08:38:19 */ +@Component public class SchedulingUtil { - @Resource - private OrderService orderService; + @Resource + private UserService userService; -// @Scheduled(cron="*/5 * * * * *") -// public void reportCurrentTime() { -// System.out.println("定时任务开始 = " + new Date()); -// int count = orderService.count(new LambdaQueryWrapper().eq(Order::getPayStatus, 20)); -//// orderService.removeOrderByTimeOut(); -// System.out.println("count = " + count); -// } + @Scheduled(cron = "*/1 * * * * *") + public void reportCurrentTime() { + // 0点执行 + if (LocalDateTimeUtil.format(LocalDateTime.now(), "HH:mm:ss").equals("15:13:00")) { + System.out.println("定时任务开始 = " + new Date()); + userService.update( + new LambdaUpdateWrapper() + .set(User::getSendCoin, 0) + ); + } + } } diff --git a/src/main/java/com/gxwebsoft/common/core/web/BaseController.java b/src/main/java/com/gxwebsoft/common/core/web/BaseController.java index 30faf2f..b449b7b 100644 --- a/src/main/java/com/gxwebsoft/common/core/web/BaseController.java +++ b/src/main/java/com/gxwebsoft/common/core/web/BaseController.java @@ -89,7 +89,7 @@ public class BaseController { // if(StrUtil.isNotBlank(request.getHeader("tenantId"))){ // return Integer.valueOf(request.getHeader("tenantId")); // } - return 10049; + return 10325; } /** @@ -220,9 +220,6 @@ public class BaseController { * * @return merchantCode */ - public Merchant getMerchant() { - return merchantService.getMerchantByCode(getMerchantCode()); - } public String getAppId() { // 兼容小写 diff --git a/src/main/java/com/gxwebsoft/common/core/web/BaseParam.java b/src/main/java/com/gxwebsoft/common/core/web/BaseParam.java index 0ecb6b6..6f9ac48 100644 --- a/src/main/java/com/gxwebsoft/common/core/web/BaseParam.java +++ b/src/main/java/com/gxwebsoft/common/core/web/BaseParam.java @@ -10,6 +10,7 @@ import lombok.Data; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; +import java.lang.reflect.Field; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -64,4 +65,25 @@ public class BaseParam implements Serializable { return CommonUtil.listGetOne(records); } + public void normalizeStringFields() { + Class currentClass = this.getClass(); + while (currentClass != null && currentClass != Object.class) { + Field[] fields = currentClass.getDeclaredFields(); + for (Field field : fields) { + if (!String.class.equals(field.getType())) { + continue; + } + field.setAccessible(true); + try { + String value = (String) field.get(this); + if (StrUtil.isBlank(value)) { + field.set(this, null); + } + } catch (IllegalAccessException ignored) { + } + } + currentClass = currentClass.getSuperclass(); + } + } + } diff --git a/src/main/java/com/gxwebsoft/common/system/controller/AliOssController.java b/src/main/java/com/gxwebsoft/common/system/controller/AliOssController.java new file mode 100644 index 0000000..443422b --- /dev/null +++ b/src/main/java/com/gxwebsoft/common/system/controller/AliOssController.java @@ -0,0 +1,297 @@ +package com.gxwebsoft.common.system.controller; + +import cn.hutool.core.date.LocalDateTimeUtil; +import com.alibaba.fastjson2.JSONObject; +import com.aliyun.ocr_api20210707.Client; +import com.aliyun.ocr_api20210707.models.RecognizeShoppingReceiptRequest; +import com.aliyun.ocr_api20210707.models.RecognizeShoppingReceiptResponse; +import com.aliyun.oss.*; +import com.aliyun.oss.common.auth.*; +import com.aliyun.oss.common.utils.BinaryUtil; +import com.aliyun.oss.model.*; +import com.aliyun.sts20150401.models.AssumeRoleResponse; +import com.aliyun.sts20150401.models.AssumeRoleResponseBody; +import com.aliyun.tea.TeaException; +import com.aliyun.teautil.models.RuntimeOptions; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.gxwebsoft.cms.service.ArticleService; +import com.gxwebsoft.common.core.config.ConfigProperties; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.service.FileRecordService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.codec.binary.Base64; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.io.UnsupportedEncodingException; +import java.time.Instant; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; + +/** + * 阿里云OSS云存储 + * + * @author WebSoft + * @since 2022-11-19 13:54:27 + */ +@Api(tags = "阿里云OSS云存储") +@RestController +@RequestMapping("/api/oss") +public class AliOssController extends BaseController { + +// String accessKeyId = "LTAI5tGZwF9Pz1S9weuKMFe5"; +// String accessKeySecret = "KVP7IIxaWkwS4Bz5UKqE63hxIbs61H"; +// String accessKeyId = "LTAI4GKGZ9Z2Z8JZ77c3GNZP"; +// String accessKeySecret = "BiDkpS7UXj72HWwDWaFZxiXjNFBNCM"; +// String bucket = "oss-gxwebsoft"; +// String region = "cn-shenzhen"; +// String endpoint = "https://oss-cn-shenzhen.aliyuncs.com"; + +// String accessKeyId = "LTAI5tCqrMCF2VfCnuYutGnV"; +// String accessKeySecret = "FQMnh7F7AnifC2dFpFrqYPZA5ngE11"; +// String bucket = "nbg-oss"; +// String region = "cn-shenzhen"; +// String endpoint = "https://oss-cn-shenzhen.aliyuncs.com"; +// String host = "https://oss-nbg.wsdns.cn"; + + String accessKeyId = "LTAI5tCttegrwcy2CdyLZ5HC"; + String accessKeySecret = "SLOcoz5arYNeqXMM1tRYCnClGBkHkf"; + String bucket = "yaodongxiao"; + String region = "cn-guangzhou"; + String endpoint = "https://oss-cn-guangzhou.aliyuncs.com"; + String host = "https://yaodongxiao.oss-cn-guangzhou.aliyuncs.com"; + + public AliOssController() throws com.aliyuncs.exceptions.ClientException { + + } + + @PostMapping("/aliOCR") + public ApiResult aliOcr(@RequestBody Map mapData) throws Exception { + com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() + .setAccessKeyId(accessKeyId) + .setAccessKeySecret(accessKeySecret); + config.endpoint = "ocr-api.cn-hangzhou.aliyuncs.com"; + Client client = new com.aliyun.ocr_api20210707.Client(config); + RecognizeShoppingReceiptRequest request = new RecognizeShoppingReceiptRequest() + .setUrl(mapData.get("imgUrl")); + RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + try { + RecognizeShoppingReceiptResponse resp = client.recognizeShoppingReceiptWithOptions(request, runtime); + return success(JSONObject.parseObject(resp.body.data)); + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } catch (Exception _error) { + TeaException error = new TeaException(_error.getMessage(), _error); + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } + return success(); + } + + @ApiOperation("获取临时osstoken") + @GetMapping("/getSTSToken") + public ApiResult getSTSToken() { + CredentialsProvider credentialsProvider = new DefaultCredentialProvider(accessKeyId, accessKeySecret); + OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider); + + try { + long expireTime = 60; + long expireEndTime = System.currentTimeMillis() + expireTime * 1000; + Date expiration = new Date(expireEndTime); + PolicyConditions policyConds = new PolicyConditions(); + policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 100 * 1024 * 1024); + + String postPolicy = ossClient.generatePostPolicy(expiration, policyConds); + byte[] binaryData = postPolicy.getBytes("utf-8"); + String encodedPolicy = BinaryUtil.toBase64String(binaryData); + String postSignature = ossClient.calculatePostSignature(postPolicy); + Map result = new HashMap<>(); + result.put("accessKeyId", accessKeyId); + result.put("token", credentialsProvider.getCredentials().getSecurityToken()); + result.put("policy", encodedPolicy); + result.put("signature", postSignature); + result.put("expireEndTime", expireEndTime); + return success(result); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + return fail(); + } finally { + ossClient.shutdown(); + } + } + + @GetMapping("/getPostSignatureForOssUpload") + public ApiResult> getPostSignatureForOssUpload() throws Exception { + AssumeRoleResponseBody.AssumeRoleResponseBodyCredentials sts_data = getCredential(); + String accesskeyid = sts_data.accessKeyId; + String accesskeysecret = sts_data.accessKeySecret; + String securitytoken = sts_data.securityToken; + + //获取x-oss-credential里的date,当前日期,格式为yyyyMMdd + ZonedDateTime today = ZonedDateTime.now().withZoneSameInstant(java.time.ZoneOffset.UTC); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + String date = today.format(formatter); + //获取x-oss-date + ZonedDateTime now = ZonedDateTime.now().withZoneSameInstant(java.time.ZoneOffset.UTC); + DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss'Z'"); + String x_oss_date = now.format(formatter2); + + String upload_dir = LocalDateTimeUtil.format(LocalDateTimeUtil.now(), "yyyyMMdd"); + // 步骤1:创建policy。 + String x_oss_credential = accesskeyid + "/" + date + "/" + region + "/oss/aliyun_v4_request"; + + ObjectMapper mapper = new ObjectMapper(); + + Map policy = new HashMap<>(); + policy.put("expiration", generateExpiration(3600L)); + + List conditions = new ArrayList<>(); + + Map bucketCondition = new HashMap<>(); + bucketCondition.put("bucket", bucket); + conditions.add(bucketCondition); + + Map securityTokenCondition = new HashMap<>(); + securityTokenCondition.put("x-oss-security-token", securitytoken); + conditions.add(securityTokenCondition); + + Map signatureVersionCondition = new HashMap<>(); + signatureVersionCondition.put("x-oss-signature-version", "OSS4-HMAC-SHA256"); + conditions.add(signatureVersionCondition); + + Map credentialCondition = new HashMap<>(); + credentialCondition.put("x-oss-credential", x_oss_credential); // 替换为实际的 access key id + conditions.add(credentialCondition); + + Map dateCondition = new HashMap<>(); + dateCondition.put("x-oss-date", x_oss_date); + conditions.add(dateCondition); + + conditions.add(Arrays.asList("content-length-range", 1, 10240000)); + conditions.add(Arrays.asList("eq", "$success_action_status", "200")); + conditions.add(Arrays.asList("starts-with", "$key", upload_dir)); + + policy.put("conditions", conditions); + + String jsonPolicy = mapper.writeValueAsString(policy); + + // 步骤2:构造待签名字符串(StringToSign)。 + String stringToSign = new String(Base64.encodeBase64(jsonPolicy.getBytes())); + // System.out.println("stringToSign: " + stringToSign); + + // 步骤3:计算SigningKey。 + byte[] dateKey = hmacsha256(("aliyun_v4" + accesskeysecret).getBytes(), date); + byte[] dateRegionKey = hmacsha256(dateKey, region); + byte[] dateRegionServiceKey = hmacsha256(dateRegionKey, "oss"); + byte[] signingKey = hmacsha256(dateRegionServiceKey, "aliyun_v4_request"); + // System.out.println("signingKey: " + BinaryUtil.toBase64String(signingKey)); + + // 步骤4:计算Signature。 + byte[] result = hmacsha256(signingKey, stringToSign); + String signature = BinaryUtil.toHex(result); + // System.out.println("signature:" + signature); + + + Map response = new HashMap<>(); + // 将数据添加到 map 中 + response.put("version", "OSS4-HMAC-SHA256"); + response.put("policy", stringToSign); + response.put("x_oss_credential", x_oss_credential); + response.put("x_oss_date", x_oss_date); + response.put("signature", signature); + response.put("security_token", securitytoken); + response.put("dir", upload_dir); + response.put("host", host); + // 返回带有状态码 200 (OK) 的 ResponseEntity,返回给Web端,进行PostObject操作 + return success(response); + } + + public static byte[] hmacsha256(byte[] key, String data) { + try { + // 初始化HMAC密钥规格,指定算法为HMAC-SHA256并使用提供的密钥。 + SecretKeySpec secretKeySpec = new SecretKeySpec(key, "HmacSHA256"); + + // 获取Mac实例,并通过getInstance方法指定使用HMAC-SHA256算法。 + Mac mac = Mac.getInstance("HmacSHA256"); + // 使用密钥初始化Mac对象。 + mac.init(secretKeySpec); + + // 执行HMAC计算,通过doFinal方法接收需要计算的数据并返回计算结果的数组。 + byte[] hmacBytes = mac.doFinal(data.getBytes()); + + return hmacBytes; + } catch (Exception e) { + throw new RuntimeException("Failed to calculate HMAC-SHA256", e); + } + } + + public com.aliyun.sts20150401.Client createStsClient() throws Exception { + com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() + .setAccessKeyId(accessKeyId) + .setAccessKeySecret(accessKeySecret); + config.endpoint = "sts.cn-guangzhou.aliyuncs.com"; + return new com.aliyun.sts20150401.Client(config); + } + + public AssumeRoleResponseBody.AssumeRoleResponseBodyCredentials getCredential() throws Exception { + com.aliyun.sts20150401.Client client = createStsClient(); + com.aliyun.sts20150401.models.AssumeRoleRequest assumeRoleRequest = new com.aliyun.sts20150401.models.AssumeRoleRequest() + .setRoleArn("acs:ram::1975868532460222:role/sts") + .setRoleSessionName("YDXSTS");// 自定义会话名称 + com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); + try { + // 复制代码运行请自行打印 API 的返回值 + AssumeRoleResponse response = client.assumeRoleWithOptions(assumeRoleRequest, runtime); + // credentials里包含了后续要用到的AccessKeyId、AccessKeySecret和SecurityToken。 + return response.body.credentials; + } catch (TeaException error) { + // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。 + // 错误 message + System.out.println(error.getMessage()); + // 诊断地址 + System.out.println(error.getData().get("Recommend")); + com.aliyun.teautil.Common.assertAsString(error.message); + } + // 返回一个默认的错误响应对象,避免返回null + AssumeRoleResponseBody.AssumeRoleResponseBodyCredentials defaultCredentials = new AssumeRoleResponseBody.AssumeRoleResponseBodyCredentials(); + defaultCredentials.accessKeyId = "ERROR_ACCESS_KEY_ID"; + defaultCredentials.accessKeySecret = "ERROR_ACCESS_KEY_SECRET"; + defaultCredentials.securityToken = "ERROR_SECURITY_TOKEN"; + return defaultCredentials; + } + + public static String generateExpiration(long seconds) { + // 获取当前时间戳(以秒为单位) + long now = Instant.now().getEpochSecond(); + // 计算过期时间的时间戳 + long expirationTime = now + seconds; + // 将时间戳转换为Instant对象,并格式化为ISO8601格式 + Instant instant = Instant.ofEpochSecond(expirationTime); + // 定义时区为UTC + ZoneId zone = ZoneOffset.UTC; + // 将 Instant 转换为 ZonedDateTime + ZonedDateTime zonedDateTime = instant.atZone(zone); + // 定义日期时间格式,例如2023-12-03T13:00:00.000Z + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); + // 格式化日期时间 + String formattedDate = zonedDateTime.format(formatter); + // 输出结果 + return formattedDate; + } +} diff --git a/src/main/java/com/gxwebsoft/common/system/controller/AreaController.java b/src/main/java/com/gxwebsoft/common/system/controller/AreaController.java index 1f524cc..c403967 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/AreaController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/AreaController.java @@ -64,6 +64,11 @@ public class AreaController extends BaseController { //return success(areaService.listRel(param)); } + @PostMapping("/listByFid") + public ApiResult listByFid(@RequestBody Map param) { + return success(areaService.list(new LambdaQueryWrapper().eq(Area::getFid, param.get("fid")))); + } + @ApiOperation("查询全部市") @PostMapping("city-by-parent") public ApiResult cityByParent(@RequestBody Map param) { @@ -84,6 +89,12 @@ public class AreaController extends BaseController { //return success(areaService.listRel(param)); } + @ApiOperation("查询全部") + @PostMapping("/area-info-by-name") + public ApiResult areaInfoByName(@RequestBody AreaParam param) { + return success(areaService.areaInfoByName(param.getName(), null)); + } + @PreAuthorize("hasAuthority('common.system:area:list')") @OperationLog @ApiOperation("分页查询") diff --git a/src/main/java/com/gxwebsoft/common/system/controller/CacheController.java b/src/main/java/com/gxwebsoft/common/system/controller/CacheController.java index e4192dc..550cbfa 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/CacheController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/CacheController.java @@ -37,7 +37,6 @@ public class CacheController extends BaseController { @Resource private StringRedisTemplate stringRedisTemplate; - @PreAuthorize("hasAuthority('sys:cache:list')") @ApiOperation("查询全部缓存") @GetMapping() public ApiResult> list() { @@ -65,17 +64,15 @@ public class CacheController extends BaseController { return success(map); } - @PreAuthorize("hasAuthority('sys:cache:list')") @ApiOperation("读取缓存") @GetMapping("/{key}") public ApiResult get(@PathVariable("key") String key) { - System.out.println("读取缓存 = " + key); +// System.out.println("读取缓存 = " + key); final String cache = cacheClient.get(key); - System.out.println("cache = " + cache); +// System.out.println("cache = " + cache); return success("读取成功", JSONObject.parseObject(cache)); } - @PreAuthorize("hasAuthority('sys:cache:save')") @ApiOperation("添加缓存") @PostMapping() public ApiResult add(@RequestBody Cache cache) { @@ -87,7 +84,6 @@ public class CacheController extends BaseController { return success("缓存成功"); } - @PreAuthorize("hasAuthority('sys:cache:save')") @OperationLog @ApiOperation("删除缓存") @DeleteMapping("/{key}") @@ -98,7 +94,6 @@ public class CacheController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('sys:cache:save')") @ApiOperation("缓存皮肤") @PostMapping("/theme") public ApiResult saveTheme(@RequestBody Cache cache) { diff --git a/src/main/java/com/gxwebsoft/common/system/controller/DictDataController.java b/src/main/java/com/gxwebsoft/common/system/controller/DictDataController.java index 1323f23..943ff39 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/DictDataController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/DictDataController.java @@ -53,7 +53,6 @@ public class DictDataController extends BaseController { return success(dictDataService.pageRel(param)); } - @PreAuthorize("hasAuthority('sys:dict:list')") @OperationLog @ApiOperation("查询全部字典数据") @GetMapping() @@ -61,7 +60,6 @@ public class DictDataController extends BaseController { return success(dictDataService.listRel(param)); } - @PreAuthorize("hasAuthority('sys:dict:list')") @OperationLog @ApiOperation("根据id查询字典数据") @GetMapping("/{id}") @@ -79,11 +77,11 @@ public class DictDataController extends BaseController { .eq(DictData::getDictDataName, dictData.getDictDataName())) > 0) { return fail("字典数据名称已存在"); } - if (dictDataService.count(new LambdaQueryWrapper() - .eq(DictData::getDictId, dictData.getDictId()) - .eq(DictData::getDictDataCode, dictData.getDictDataCode())) > 0) { - return fail("字典数据标识已存在"); - } +// if (dictDataService.count(new LambdaQueryWrapper() +// .eq(DictData::getDictId, dictData.getDictId()) +// .eq(DictData::getDictDataCode, dictData.getDictDataCode())) > 0) { +// return fail("字典数据标识已存在"); +// } // 自动添加字典 final int count = dictService.count(new LambdaQueryWrapper().eq(Dict::getDictCode, dictData.getDictCode())); if (dictData.getDictCode() != null && count == 0) { diff --git a/src/main/java/com/gxwebsoft/common/system/controller/FileController.java b/src/main/java/com/gxwebsoft/common/system/controller/FileController.java index ceab101..828a822 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/FileController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/FileController.java @@ -55,14 +55,14 @@ public class FileController extends BaseController { File upload = FileServerUtil.upload(file, dir, config.getUploadUuidName()); String path = upload.getAbsolutePath().replace("\\", "/").substring(dir.length() - 1); // String requestURL = StrUtil.removeSuffix(request.getRequestURL(), "/upload"); - String requestURL = config.getFileServer() + "/api/file"; + String requestURL = config.getFileServer() + "/api/file/"; String originalName = file.getOriginalFilename(); result = new FileRecord(); result.setCreateUserId(getLoginUserId()); result.setName(StrUtil.isBlank(originalName) ? upload.getName() : originalName); result.setLength(upload.length()); result.setPath(path); - result.setUrl(requestURL + path); + result.setUrl((requestURL + path).replace("file//", "file/")); String contentType = FileServerUtil.getContentType(upload); result.setContentType(contentType); if (FileServerUtil.isImage(contentType)) { diff --git a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java index 0b99a08..f41ce55 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/MainController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/MainController.java @@ -2,6 +2,11 @@ package com.gxwebsoft.common.system.controller; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.cms.entity.ArticleCollect; +import com.gxwebsoft.cms.entity.ArticleComment; +import com.gxwebsoft.cms.service.ArticleCollectService; +import com.gxwebsoft.cms.service.ArticleCommentService; import com.gxwebsoft.common.core.annotation.OperationLog; import com.gxwebsoft.common.core.config.ConfigProperties; import com.gxwebsoft.common.core.security.JwtSubject; @@ -60,7 +65,9 @@ public class MainController extends BaseController { @Resource private CacheClient cacheClient; @Resource - private StringRedisTemplate stringRedisTemplate; + private ArticleCommentService articleCommentService; + @Resource + private ArticleCollectService articleCollectService; @ApiOperation("用户登录") @PostMapping("/login") @@ -123,7 +130,14 @@ public class MainController extends BaseController { @ApiOperation("获取登录用户信息") @GetMapping("/auth/user") public ApiResult userInfo() { - return success(userService.getByIdRel(getLoginUserId())); + User user = userService.getByIdRel(getLoginUserId()); + int commentNum = articleCommentService.count(new LambdaQueryWrapper() + .eq(ArticleComment::getUserId, getLoginUser())); + int collectNum = articleCollectService.count(new LambdaQueryWrapper() + .eq(ArticleCollect::getUserId, getLoginUser())); + user.setArticleCommentNum(commentNum); + user.setArticleCollectNum(collectNum); + return success(user); } @ApiOperation("获取登录用户菜单") diff --git a/src/main/java/com/gxwebsoft/common/system/controller/UserController.java b/src/main/java/com/gxwebsoft/common/system/controller/UserController.java index ce9043f..04b3408 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/UserController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/UserController.java @@ -2,6 +2,7 @@ package com.gxwebsoft.common.system.controller; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -12,30 +13,39 @@ import com.gxwebsoft.common.core.config.ConfigProperties; import com.gxwebsoft.common.core.security.JwtSubject; import com.gxwebsoft.common.core.security.JwtUtil; import com.gxwebsoft.common.core.utils.CommonUtil; +import com.gxwebsoft.common.core.utils.ExcelExportUtil; import com.gxwebsoft.common.core.web.*; import com.gxwebsoft.common.system.entity.*; import com.gxwebsoft.common.system.param.UserImportParam; import com.gxwebsoft.common.system.param.UserParam; import com.gxwebsoft.common.system.result.LoginResult; import com.gxwebsoft.common.system.service.*; +import com.gxwebsoft.shop.entity.UserBalanceLog; import com.gxwebsoft.shop.entity.UserOauth; -import com.gxwebsoft.shop.service.RechargeOrderService; -import com.gxwebsoft.shop.service.UserOauthService; +import com.gxwebsoft.shop.entity.UserParentList; +import com.gxwebsoft.shop.entity.UserPointLog; +import com.gxwebsoft.shop.service.*; +import com.gxwebsoft.yxe.entity.YxeShare; +import com.gxwebsoft.yxe.entity.YxeTask; +import com.gxwebsoft.yxe.entity.YxeUserTask; +import com.gxwebsoft.yxe.service.YxeShareService; +import com.gxwebsoft.yxe.service.YxeTaskService; +import com.gxwebsoft.yxe.service.YxeUserTaskService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.IOException; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -54,6 +64,23 @@ public class UserController extends BaseController { private UserOauthService userOauthService; @Resource private ConfigProperties configProperties; + @Resource + private YxeUserTaskService yxeUserTaskService; + @Resource + private YxeShareService yxeShareService; + @Resource + private YxeTaskService yxeTaskService; + @Resource + private ExcelExportUtil excelExportUtil; + @Resource + private UserParentListService userParentListService; + @Resource + private DictDataService dictDataService; + @Resource + private UserBalanceLogService userBalanceLogService; + @Resource + private UserPointLogService userPointLogService; + @PreAuthorize("hasAuthority('sys:user:list')") @OperationLog @@ -71,6 +98,72 @@ public class UserController extends BaseController { return success("统计成功", totalBalance); } + @GetMapping("/countUserIncome") + public ApiResult countUserIncome() { + Map data = new HashMap<>(); + + BigDecimal taskIncome = BigDecimal.ZERO; + BigDecimal shareIncome = BigDecimal.ZERO; + BigDecimal totalTaskIncome = BigDecimal.ZERO; + BigDecimal totalShareIncome = BigDecimal.ZERO; + List taskList = new ArrayList<>(); + if (getLoginUser() != null) { + List userTaskList = yxeUserTaskService.listByUserId(getLoginUserId()); + List shareList = yxeShareService.listByUser(getLoginUserId()); + if (!userTaskList.isEmpty()) { + Set taskIds = userTaskList.stream().map(YxeUserTask::getTaskId).filter(Objects::nonNull).collect(Collectors.toSet()); + if (!taskIds.isEmpty()) { + taskList = yxeTaskService.listByIds(taskIds); + } + } + for (YxeUserTask userTask : userTaskList) { + YxeTask task = taskList.stream().filter(t -> t.getId().equals(userTask.getTaskId())).findFirst().orElse(null); + if (Integer.valueOf(2).equals(userTask.getStatus())) { + taskIncome = taskIncome.add(resolveUserTaskIncome(userTask, task)); + } + } + for (YxeShare share : shareList) { + if (share.getIncome() != null) shareIncome = shareIncome.add(share.getIncome()); + } + + if (getLoginUser().getCanAuth().equals(1)) { + List totalUserTaskList = yxeUserTaskService.list(); + List totalShareList = yxeShareService.list(); + List taskListAll = new ArrayList<>(); + if (!totalUserTaskList.isEmpty()) { + Set taskIds = totalUserTaskList.stream().map(YxeUserTask::getTaskId).filter(Objects::nonNull).collect(Collectors.toSet()); + if (!taskIds.isEmpty()) { + taskListAll = yxeTaskService.listByIds(taskIds); + } + } + for (YxeUserTask userTask : totalUserTaskList) { + YxeTask task = taskListAll.stream().filter(t -> t.getId().equals(userTask.getTaskId())).findFirst().orElse(null); + if (Integer.valueOf(2).equals(userTask.getStatus())) { + totalTaskIncome = totalTaskIncome.add(resolveUserTaskIncome(userTask, task)); + } + } + for (YxeShare share : totalShareList) { + if (share.getIncome() != null) totalShareIncome = totalShareIncome.add(share.getIncome()); + } + } + } + data.put("taskIncome", taskIncome); + data.put("shareIncome", shareIncome); + data.put("totalTaskIncome", totalTaskIncome); + data.put("totalShareIncome", totalShareIncome); + return success("统计成功", data); + } + + private BigDecimal resolveUserTaskIncome(YxeUserTask userTask, YxeTask task) { + if (userTask != null && userTask.getIncome() != null && userTask.getIncome().compareTo(BigDecimal.ZERO) > 0) { + return userTask.getIncome(); + } + if (task != null && task.getReward() != null) { + return task.getReward(); + } + return BigDecimal.ZERO; + } + @PostMapping("/login-by-phone") public ApiResult loginByPhone(@RequestBody User userParam) { User user = userService.getByPhone(userParam.getPhone()); @@ -79,6 +172,16 @@ public class UserController extends BaseController { return success("登录成功", new LoginResult(access_token, user)); } + @ApiOperation("手机号登录(测试用)") + @PostMapping("/loginByPhoneForTest") + public ApiResult loginByPhoneForTest(@RequestBody User user) { + User getLoginUser = userService.getByPhone(user.getPhone()); + if (!user.getPhoneLoginCode().equals("1700083")) return fail("验证码错误"); + String access_token = JwtUtil.buildToken(new JwtSubject(getLoginUser.getUsername(), getLoginUser.getTenantId()), + configProperties.getTokenExpireTime(), configProperties.getTokenKey()); + return success("登录成功", new LoginResult(access_token, user)); + } + @PostMapping("/data") public ApiResult userData() { User loginUser = getLoginUser(); @@ -125,7 +228,6 @@ public class UserController extends BaseController { return success(userService.pageRel(param)); } - @PreAuthorize("hasAuthority('sys:user:list')") @OperationLog @ApiOperation("查询全部用户") @GetMapping() @@ -166,6 +268,41 @@ public class UserController extends BaseController { } else { user.setPassword(null); } + if (userService.updateUser(user)) { + User user1 = userService.getById(user.getUserId()); + if (user.getAuthStatus() != null && user.getAuthStatus().equals(2) && user1.getParentId() != null && user1.getParentId() > 0) { + UserParentList userParentList = userParentListService.check(user1.getUserId(), user1.getParentId()); + if (userParentList == null) { + userParentList = new UserParentList(); + userParentList.setParentId(user1.getParentId()); + userParentList.setUid(user1.getUserId()); + userParentListService.save(userParentList); + + DictData dictData = dictDataService.getById(591); + if (dictData != null) { + User parentUser = userService.getById(user1.getParentId()); + + UserPointLog userPointLog = new UserPointLog(); + userPointLog.setUserId(parentUser.getUserId()); + userPointLog.setPoint(Integer.parseInt(dictData.getDictDataCode())); + userPointLog.setMsg("分享用户: " + user1.getPhone() + "获得积分"); + userPointLogService.save(userPointLog); + + parentUser.setPoints(parentUser.getPoints() + Integer.parseInt(dictData.getDictDataCode())); + userService.updateById(parentUser); + } + } + } + return success("修改成功"); + } + return fail("修改失败"); + } + + @OperationLog + @ApiOperation("修改用户") + @PutMapping("/self") + public ApiResult updateForSelf(@RequestBody User user) { + user.setUserId(getLoginUser().getUserId()); if (userService.updateUser(user)) { return success("修改成功"); } @@ -297,6 +434,44 @@ public class UserController extends BaseController { return fail(param.getValue() + "不存在"); } + @PreAuthorize("hasAuthority('sys:user:list')") + @OperationLog + @ApiOperation("导出用户") + @PostMapping("/export") + public ApiResult export(@RequestBody(required = false) UserParam param) throws IOException { + if (param == null) { + param = new UserParam(); + } + param.normalizeStringFields(); + List list = userService.listRel(param); + XSSFWorkbook workbook = excelExportUtil.createWorkbook("用户", + "用户ID", "账号", "昵称", "姓名", "用户分组", "手机号", "余额", "积分", "状态", "注册时间"); + Sheet sheet = workbook.getSheetAt(0); + int rowNum = 1; + for (User item : list) { + excelExportUtil.writeRow(sheet, rowNum++, + item.getUserId(), + item.getUsername(), + item.getNickname(), + item.getRealName(), + item.getUserGroup(), + item.getPhone(), + item.getBalance(), + item.getPoints(), + getUserStatusText(item.getStatus()), + item.getCreateTime() == null ? "" : DateUtil.formatDateTime(item.getCreateTime())); + } + excelExportUtil.autoSizeColumns(sheet, 13); + return success(excelExportUtil.saveWorkbook(workbook, "用户数据", getLoginUserId())); + } + + private String getUserStatusText(Integer status) { + if (status == null) { + return ""; + } + return status.equals(0) ? "正常" : "冻结"; + } + @PreAuthorize("hasAuthority('sys:auth:user')") @PostMapping("/getAvatarByMpWx") diff --git a/src/main/java/com/gxwebsoft/common/system/entity/Area.java b/src/main/java/com/gxwebsoft/common/system/entity/Area.java index b66a68d..baf6516 100644 --- a/src/main/java/com/gxwebsoft/common/system/entity/Area.java +++ b/src/main/java/com/gxwebsoft/common/system/entity/Area.java @@ -40,4 +40,6 @@ public class Area implements Serializable { @TableField(exist = false) private List children; + @TableField(exist = false) + private Area city; } diff --git a/src/main/java/com/gxwebsoft/common/system/entity/User.java b/src/main/java/com/gxwebsoft/common/system/entity/User.java index 643825d..fd635d5 100644 --- a/src/main/java/com/gxwebsoft/common/system/entity/User.java +++ b/src/main/java/com/gxwebsoft/common/system/entity/User.java @@ -67,15 +67,28 @@ public class User implements UserDetails { @ApiModelProperty("别名") private String alias; + private Integer parentId; + @ApiModelProperty("真实姓名") private String realName; @ApiModelProperty("身份证号") private String idCard; + private String idCardFront; + + private String idCardBack; + + private String qualification; + + private Integer authStatus; + @ApiModelProperty("出生日期") - @JsonFormat(pattern = "yyyy-MM-dd") - private Date birthday; + private String birthday; + + private String birthTime; + + private String birthAddress; @ApiModelProperty("所在国家") private String country; @@ -101,6 +114,8 @@ public class User implements UserDetails { @ApiModelProperty("用户可用积分") private Integer points; + private Integer canAuth; + @ApiModelProperty("用户总支付的金额") private String payMoney; @@ -135,6 +150,10 @@ public class User implements UserDetails { @TableLogic private Integer deleted; + private Integer coin; + + private Integer sendCoin; + @ApiModelProperty(value = "租户id") private Integer tenantId; @@ -172,6 +191,9 @@ public class User implements UserDetails { @ApiModelProperty("用户等级(0管理员1区代2总售后3零售商店长4导购5售后6散户7编外8售后店长)") private Integer userLevel; + @ApiModelProperty("用户分组") + private String userGroup; + @ApiModelProperty("机构名称") @TableField(exist = false) private String organizationName; @@ -220,6 +242,14 @@ public class User implements UserDetails { @TableField(exist = false) private String mobile; + @TableField(exist = false) + private String phoneLoginCode; + + @TableField(exist = false) + private Integer articleCollectNum; + + @TableField(exist = false) + private Integer articleCommentNum; @Override public boolean isAccountNonExpired() { @@ -245,4 +275,12 @@ public class User implements UserDetails { return DesensitizedUtil.mobilePhone(this.phone); } + @TableField(exist = false) + private Integer totalTaskNum; + + @TableField(exist = false) + private Integer taskCompleteNum; + + @TableField(exist = false) + private BigDecimal incomeAmount; } diff --git a/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml b/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml index 08d27f1..08625f5 100644 --- a/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml +++ b/src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml @@ -48,6 +48,9 @@ AND a.open_id = #{param.openId} + + AND a.auth_status = #{param.authStatus} + AND a.nickname LIKE CONCAT('%', #{param.nickname}, '%') @@ -81,6 +84,9 @@ AND a.user_level = #{param.userLevel} + + AND a.user_group LIKE CONCAT('%', #{param.userGroup}, '%') + AND a.organization_id = #{param.organizationId} diff --git a/src/main/java/com/gxwebsoft/common/system/param/UserParam.java b/src/main/java/com/gxwebsoft/common/system/param/UserParam.java index 927003d..92e1dbc 100644 --- a/src/main/java/com/gxwebsoft/common/system/param/UserParam.java +++ b/src/main/java/com/gxwebsoft/common/system/param/UserParam.java @@ -92,6 +92,8 @@ public class UserParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer status; + private Integer authStatus; + @ApiModelProperty("是否删除, 0否, 1是") @TableLogic private Integer deleted; @@ -156,6 +158,9 @@ public class UserParam extends BaseParam { @ApiModelProperty("用户等级(0管理员1区代2总售后3零售商店长4导购5售后6散户)") private Integer userLevel; + @ApiModelProperty("用户分组") + private String userGroup; + @ApiModelProperty("性别名称") @TableField(exist = false) private String sexName; diff --git a/src/main/java/com/gxwebsoft/common/system/service/AreaService.java b/src/main/java/com/gxwebsoft/common/system/service/AreaService.java index de1dc73..e7c63b6 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/AreaService.java +++ b/src/main/java/com/gxwebsoft/common/system/service/AreaService.java @@ -46,4 +46,8 @@ public interface AreaService extends IService { Area getProvinceByName(String name); Area getRegionByName(String name); + + Area areaInfoByName(String name, Integer level); + + Area areaInfoByName(String name, Integer level, Integer parentId); } diff --git a/src/main/java/com/gxwebsoft/common/system/service/UserService.java b/src/main/java/com/gxwebsoft/common/system/service/UserService.java index 0373cd1..40cefb0 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/UserService.java +++ b/src/main/java/com/gxwebsoft/common/system/service/UserService.java @@ -31,6 +31,11 @@ public interface UserService extends IService, UserDetailsService { * @return List */ List listRel(UserParam param); + + List listByNickname(String nickname); + + List listByRealName(String realName); + void listRanking(UserParam param); /** diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/AreaServiceImpl.java b/src/main/java/com/gxwebsoft/common/system/service/impl/AreaServiceImpl.java index 4eeced7..fa5b1cf 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/impl/AreaServiceImpl.java +++ b/src/main/java/com/gxwebsoft/common/system/service/impl/AreaServiceImpl.java @@ -78,4 +78,23 @@ public class AreaServiceImpl extends ServiceImpl implements Ar ); } + @Override + public Area areaInfoByName(String name, Integer level) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Area::getName, name); + if (level != null) wrapper.eq(Area::getLevelId, level); + Area item = getOne(wrapper); + if (item.getLevelId().equals(3)) + item.setCity(getById(item.getFid())); + return item; + } + + @Override + public Area areaInfoByName(String name, Integer level, Integer parentId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Area::getName, name); + if (parentId != null) wrapper.eq(Area::getFid, parentId); + if (level != null) wrapper.eq(Area::getLevelId, level); + return getOne(wrapper); + } } diff --git a/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java b/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java index d4e958d..cdc9dcf 100644 --- a/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java @@ -81,10 +81,26 @@ public class UserServiceImpl extends ServiceImpl implements Us return page.sortRecords(list); } + @Override + public List listByNickname(String nickname) { + return list( + new LambdaQueryWrapper() + .like(User::getNickname, nickname) + ); + } + + @Override + public List listByRealName(String realName) { + return list( + new LambdaQueryWrapper() + .like(User::getRealName, realName) + ); + } + @Override public void listRanking(UserParam param) { - List list = baseMapper.selectListRel(param); - Map map = new HashMap<>(); + List list = baseMapper.selectListRel(param); + Map map = new HashMap<>(); // list.forEach(d -> { // int count = appService.count(new LambdaQueryWrapper() // .eq(App::getUserId, d.getUserId())); @@ -130,7 +146,7 @@ public class UserServiceImpl extends ServiceImpl implements Us if (StrUtil.isBlank(username)) { return null; } - User user = baseMapper.selectByUsername(username, tenantId); + User user = getOne(new LambdaQueryWrapper().eq(User::getUsername, username).last("limit 1")); if (user != null) { user.setRoles(userRoleService.listByUserId(user.getUserId())); user.setAuthorities(roleMenuService.listMenuByUserId(user.getUserId(), null)); @@ -209,27 +225,31 @@ public class UserServiceImpl extends ServiceImpl implements Us @Override public User getByPhone(String phone) { - return query().eq("phone", phone).one(); + return getOne( + new LambdaQueryWrapper() + .eq(User::getPhone, phone) + .last("limit 1") + ); } @Override public User getByOpenId(String openId) { - return query().eq("openId", openId).one(); + return query().eq("openId", openId).one(); } @Override public User getByUnionId(UserParam param) { - return param.getOne(baseMapper.getOne(param)); + return param.getOne(baseMapper.getOne(param)); } @Override public User getByOauthId(UserParam userParam) { - return userParam.getOne(baseMapper.getOne(userParam)); + return userParam.getOne(baseMapper.getOne(userParam)); } @Override public List listStatisticsRel(UserParam param) { - List list = baseMapper.selectListStatisticsRel(param); + List list = baseMapper.selectListStatisticsRel(param); return list; } diff --git a/src/main/java/com/gxwebsoft/law/config/WebSocketConfig.java b/src/main/java/com/gxwebsoft/law/config/WebSocketConfig.java deleted file mode 100644 index 851ab05..0000000 --- a/src/main/java/com/gxwebsoft/law/config/WebSocketConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.gxwebsoft.law.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - - -@Configuration -public class WebSocketConfig -{ - @Bean - public ServerEndpointExporter serverEndpointExporter() - { - ServerEndpointExporter exporter = new ServerEndpointExporter(); - - // 手动注册 WebSocket 端点 - exporter.setAnnotatedEndpointClasses(WebSocketServer.class); - - - return exporter; - } -} \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/law/config/WebSocketServer.java b/src/main/java/com/gxwebsoft/law/config/WebSocketServer.java deleted file mode 100644 index 417eaa2..0000000 --- a/src/main/java/com/gxwebsoft/law/config/WebSocketServer.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gxwebsoft.law.config; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Component; -import org.springframework.stereotype.Controller; - -import javax.websocket.*; -import javax.websocket.server.PathParam; -import javax.websocket.server.ServerEndpoint; -import java.io.IOException; -import java.util.concurrent.ConcurrentHashMap; - - -@ServerEndpoint(value = "/chat/{userId}") -@Component -public class WebSocketServer { - - /** - * concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。 - */ - private static ConcurrentHashMap webSocketMap = new ConcurrentHashMap<>(); - /** - * 与某个客户端的连接会话,需要通过它来给客户端发送数据 - */ - private Session session; - /** - * 接收userId - */ - private String userId = ""; - - /** - * 连接建立成功调用的方法 - */ - @OnOpen - public void onOpen(Session session, @PathParam("userId") String userId) { - this.session = session; - this.userId = userId; - if (webSocketMap.containsKey(userId)) { - webSocketMap.remove(userId); - webSocketMap.put(userId, this); - //加入set中 - } else { - webSocketMap.put(userId, this); - } - - try { - sendMessage(userId, "连接成功"); - } catch (IOException e) { - - } - } - - /** - * 连接关闭调用的方法 - */ - @OnClose - public void onClose() { - if (webSocketMap.containsKey(userId)) { - webSocketMap.remove(userId); - } - } - - - /** - * 实现服务器主动推送 - */ - public void sendMessage(String userId, String message) throws IOException { - if (webSocketMap.containsKey(userId)) { - Session session1 = webSocketMap.get(userId).session; - if (session1 != null) session1.getBasicRemote().sendText(message); - } - } - - - /** - * 实现服务器主动推送 - */ - public void sendAllMessage(String message) throws IOException { - ConcurrentHashMap.KeySetView userIds = webSocketMap.keySet(); - for (String userId : userIds) { - WebSocketServer webSocketServer = webSocketMap.get(userId); - webSocketServer.session.getBasicRemote().sendText(message); - } - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/AiController.java b/src/main/java/com/gxwebsoft/law/controller/AiController.java deleted file mode 100644 index fff484a..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/AiController.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.gxwebsoft.law.controller; - -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.toolkit.sql.StringEscape; -import com.gxwebsoft.common.core.utils.JSONUtil; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.config.WebSocketServer; -import com.gxwebsoft.law.entity.ChatMessage; -import com.gxwebsoft.law.entity.ChatResponse; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; - -@Api(tags = "AI") -@RestController -@RequestMapping("/api/chat") -public class AiController extends BaseController { - @Resource - private WebSocketServer webSocketServer; - - @PostMapping("/message") - public ApiResult message(@RequestBody ChatMessage message) throws IOException { - Map params = new HashMap<>(); - params.put("query", message.getQuery()); - params.put("user", getLoginUserId()); - params.put("response_mode", "streaming"); - String token = "Bearer app-UxV82WXIRrScpf53exkJ7dIw"; - if (message.getType() != null) { - token = "Bearer app-7AFseF5UTEJpZGkW93S0wybh"; - } - if (message.getInputs() != null) { - Map inputs = new HashMap<>(); - inputs.put("request_type", message.getRequestType()); - inputs.put("request_json", message.getInputs()); - params.put("inputs", inputs); - } else { - params.put("inputs", new HashMap<>()); - } - // 使用 Java 自带的 HttpURLConnection 发送流式请求 - try { - URL url = new URL("http://workflow.gxshucheng.com:8010/v1/chat-messages"); - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("POST"); - connection.setRequestProperty("Authorization", token); - connection.setRequestProperty("Content-Type", "application/json"); - connection.setDoOutput(true); - connection.setConnectTimeout(600000); - connection.setReadTimeout(600000); - - // 写入请求体 - try (OutputStream os = connection.getOutputStream()) { - os.write(JSONUtil.toJSONString(params).getBytes(StandardCharsets.UTF_8)); - } - - StringBuilder responseStr = new StringBuilder(); - // 读取响应流 - try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) { - String line; - while ((line = br.readLine()) != null) { - System.out.println("Received chunk: " + line); // 打印接收到的每一部分数据 - // 这里可以对每一部分数据进行处理,例如解析或发送给前端 - if (!line.isEmpty()) { - String[] dataList = line.split("data: "); - if (dataList.length == 2) { -// System.out.println(dataList[1]); - Map data = JSONUtil.parseObject(dataList[1], Map.class); - if (data.get("event") != null && data.get("event").equals("message")) { - String answer = (String) data.get("answer"); - String task_id = (String) data.get("task_id"); - if (answer != null && !answer.isEmpty()) { - HashMap answerData = new HashMap<>(); - answerData.put("answer", answer); - answerData.put("taskId", task_id); - webSocketServer.sendMessage(message.getUser(), JSONUtil.toJSONString(answerData)); - } - System.out.println(answer); - responseStr.append(answer); - }else if (data.get("event") != null && data.get("event").equals("message_end")) { - String task_id = (String) data.get("task_id"); - HashMap answerData = new HashMap<>(); - answerData.put("answer", "__END__"); - answerData.put("taskId", task_id); - webSocketServer.sendMessage(message.getUser(), JSONUtil.toJSONString(answerData)); - } - } - } - } - } - } catch (Exception e) { - System.out.println(e.getMessage()); - for (StackTraceElement stackTraceElement : e.getStackTrace()) { - System.out.println(stackTraceElement); - } - webSocketServer.sendMessage(message.getUser(), "出错了,请晚点再来提问吧~"); - return fail("出错了,请晚点再来提问吧~"); - } - - // 返回成功响应 - return success("Stream processing completed"); - } - - @PostMapping("/messageStop") - public ApiResult stop(@RequestBody Map data) { - if (data.get("taskId") == null) return success(); - String taskId = data.get("taskId").toString(); - Map postData = new HashMap<>(); - postData.put("user", getLoginUserId()); - String token = "Bearer app-UxV82WXIRrScpf53exkJ7dIw"; - if (data.get("type") != null) { - token = "Bearer app-7AFseF5UTEJpZGkW93S0wybh"; - } - String res = HttpRequest.post("http://workflow.gxshucheng.com:8010/v1/chat-messages/" + taskId + "/stop") - .header("Authorization", token) - .header("Content-Type", "application/json") - .body(JSONObject.toJSONString(postData)) - .execute().body(); - System.out.println("stop res:" + res); - return success(); - } -} \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalAidController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalAidController.java deleted file mode 100644 index 013c714..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalAidController.java +++ /dev/null @@ -1,207 +0,0 @@ -package com.gxwebsoft.law.controller; - -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.util.ZipUtil; -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalAidService; -import com.gxwebsoft.law.entity.LawLegalAid; -import com.gxwebsoft.law.param.LawLegalAidParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.apache.poi.xwpf.usermodel.XWPFDocument; -import org.apache.poi.xwpf.usermodel.XWPFTable; -import org.apache.poi.xwpf.usermodel.XWPFTableRow; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; - -/** - * 法律援助申请控制器 - * - * @author LX - * @since 2025-04-17 17:33:28 - */ -@Api(tags = "法律援助申请管理") -@RestController -@RequestMapping("/api/law/law-legal-aid") -public class LawLegalAidController extends BaseController { - @Resource - private LawLegalAidService lawLegalAidService; - - @Value("${config.upload-path}") - private String uploadPath; - @Value("${config.server-url}") - private String serverUrl; - - @ApiOperation("分页查询法律援助申请") - @GetMapping("/page") - public ApiResult> page(LawLegalAidParam param) { - // 使用关联查询 - return success(lawLegalAidService.pageRel(param)); - } - - @ApiOperation("查询全部法律援助申请") - @GetMapping() - public ApiResult> list(LawLegalAidParam param) { - // 使用关联查询 - return success(lawLegalAidService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawLegalAid:list')") - @ApiOperation("根据id查询法律援助申请") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalAidService.getByIdRel(id)); - } - - @ApiOperation("添加法律援助申请") - @PostMapping() - public ApiResult save(@RequestBody LawLegalAid lawLegalAid) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalAid.setUserId(loginUser.getUserId()); - } - if (lawLegalAidService.save(lawLegalAid)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改法律援助申请") - @PutMapping() - public ApiResult update(@RequestBody LawLegalAid lawLegalAid) { - if (lawLegalAidService.updateById(lawLegalAid)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除法律援助申请") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalAidService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加法律援助申请") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalAidService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改法律援助申请") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalAidService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除法律援助申请") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalAidService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("导出") - @PostMapping("/export") - public ApiResult export() throws IOException { - List list = lawLegalAidService.list(); - XWPFDocument doc = new XWPFDocument(Files.newInputStream(Paths.get(uploadPath + "/file/法律援助申请表.docx"))); - List pathList = new ArrayList<>(); - for (LawLegalAid lawLegalAid : list) { - String outputPath = uploadPath + "file/doc/法律援助申请表/" + lawLegalAid.getName() + "-" + lawLegalAid.getId() + ".docx"; - pathList.add(outputPath); - FileOutputStream fos = new FileOutputStream(outputPath); - List tables = doc.getTables(); - XWPFTable table = tables.get(0); - for (int i = 0; i < table.getRows().size(); i++) { - XWPFTableRow row = table.getRow(i); - switch (i) { - case 0: { - row.getCell(2).setText(lawLegalAid.getName()); - row.getCell(4).setText(lawLegalAid.getGender().equals(0) ? "男" : "女"); - row.getCell(6).setText(lawLegalAid.getNation()); - } - break; - case 1: { - row.getCell(2).setText("身份证 " + lawLegalAid.getIdCard()); - } - break; - case 2: { - row.getCell(2).setText(lawLegalAid.getHouseholdAddress()); - } - break; - case 3: { - row.getCell(2).setText(lawLegalAid.getLiveAddress()); - } - break; - case 5: { - row.getCell(2).setText(lawLegalAid.getCompanyName()); - } - break; - case 6: { - row.getCell(2).setText(lawLegalAid.getPhone()); - } - break; - case 7: { - row.getCell(2).setText(lawLegalAid.getEmail()); - } - break; - case 9: { - if (lawLegalAid.getProxyName() != null && !lawLegalAid.getProxyName().isEmpty()) - row.getCell(2).setText(lawLegalAid.getProxyName()); - if (lawLegalAid.getProxyRelation() != null && !lawLegalAid.getProxyRelation().isEmpty()) - row.getCell(4).setText(lawLegalAid.getProxyRelation()); - if (lawLegalAid.getProxyPhone() != null && !lawLegalAid.getProxyPhone().isEmpty()) - row.getCell(6).setText(lawLegalAid.getProxyPhone()); - } - break; - case 10: { - if (lawLegalAid.getProxyIdCard() != null && !lawLegalAid.getProxyIdCard().isEmpty()) - row.getCell(2).setText("身份证 " + lawLegalAid.getProxyIdCard()); - } - break; - case 12: { - row.getCell(1).setText(lawLegalAid.getContent()); - } - break; - } - } - doc.write(fos); - fos.flush(); - fos.close(); - } - ZipUtil.zip(uploadPath + "file/doc/法律援助申请表"); - for (String path : pathList) { - FileUtil.del(path); - } - return success("导出成功", serverUrl + "/file/doc/法律援助申请表.zip"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalAppraisalController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalAppraisalController.java deleted file mode 100644 index 40faa4c..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalAppraisalController.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalAppraisalService; -import com.gxwebsoft.law.entity.LawLegalAppraisal; -import com.gxwebsoft.law.param.LawLegalAppraisalParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 司法鉴定申请控制器 - * - * @author LX - * @since 2025-05-06 17:11:41 - */ -@Api(tags = "司法鉴定申请管理") -@RestController -@RequestMapping("/api/law/law-legal-appraisal") -public class LawLegalAppraisalController extends BaseController { - @Resource - private LawLegalAppraisalService lawLegalAppraisalService; - - @ApiOperation("分页查询司法鉴定申请") - @GetMapping("/page") - public ApiResult> page(LawLegalAppraisalParam param) { - // 使用关联查询 - return success(lawLegalAppraisalService.pageRel(param)); - } - - @ApiOperation("查询全部司法鉴定申请") - @GetMapping() - public ApiResult> list(LawLegalAppraisalParam param) { - // 使用关联查询 - return success(lawLegalAppraisalService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawLegalAppraisal:list')") - @ApiOperation("根据id查询司法鉴定申请") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalAppraisalService.getByIdRel(id)); - } - - @ApiOperation("添加司法鉴定申请") - @PostMapping() - public ApiResult save(@RequestBody LawLegalAppraisal lawLegalAppraisal) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalAppraisal.setUserId(loginUser.getUserId()); - } - if (lawLegalAppraisalService.save(lawLegalAppraisal)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改司法鉴定申请") - @PutMapping() - public ApiResult update(@RequestBody LawLegalAppraisal lawLegalAppraisal) { - if (lawLegalAppraisalService.updateById(lawLegalAppraisal)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除司法鉴定申请") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalAppraisalService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加司法鉴定申请") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalAppraisalService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改司法鉴定申请") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalAppraisalService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除司法鉴定申请") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalAppraisalService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalArbitrateController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalArbitrateController.java deleted file mode 100644 index 5216fbe..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalArbitrateController.java +++ /dev/null @@ -1,223 +0,0 @@ -package com.gxwebsoft.law.controller; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.date.LocalDateTimeUtil; -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.util.ZipUtil; -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.entity.LawLegalAid; -import com.gxwebsoft.law.service.LawLegalArbitrateService; -import com.gxwebsoft.law.entity.LawLegalArbitrate; -import com.gxwebsoft.law.param.LawLegalArbitrateParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.apache.poi.xwpf.usermodel.*; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.io.FileOutputStream; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * 法律仲裁申请控制器 - * - * @author LX - * @since 2025-05-06 15:56:26 - */ -@Api(tags = "法律仲裁申请管理") -@RestController -@RequestMapping("/api/law/law-legal-arbitrate") -public class LawLegalArbitrateController extends BaseController { - @Resource - private LawLegalArbitrateService lawLegalArbitrateService; - - @Value("${config.upload-path}") - private String uploadPath; - @Value("${config.server-url}") - private String serverUrl; - - @ApiOperation("分页查询法律仲裁申请") - @GetMapping("/page") - public ApiResult> page(LawLegalArbitrateParam param) { - // 使用关联查询 - return success(lawLegalArbitrateService.pageRel(param)); - } - - @ApiOperation("查询全部法律仲裁申请") - @GetMapping() - public ApiResult> list(LawLegalArbitrateParam param) { - // 使用关联查询 - return success(lawLegalArbitrateService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawLegalArbitrate:list')") - @ApiOperation("根据id查询法律仲裁申请") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalArbitrateService.getByIdRel(id)); - } - - @ApiOperation("添加法律仲裁申请") - @PostMapping() - public ApiResult save(@RequestBody LawLegalArbitrate lawLegalArbitrate) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalArbitrate.setUserId(loginUser.getUserId()); - } - if (lawLegalArbitrateService.save(lawLegalArbitrate)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改法律仲裁申请") - @PutMapping() - public ApiResult update(@RequestBody LawLegalArbitrate lawLegalArbitrate) { - if (lawLegalArbitrateService.updateById(lawLegalArbitrate)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除法律仲裁申请") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalArbitrateService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加法律仲裁申请") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalArbitrateService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改法律仲裁申请") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalArbitrateService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除法律仲裁申请") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalArbitrateService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("导出") - @PostMapping("/export") - public ApiResult export() throws IOException { - List list = lawLegalArbitrateService.list(); - List pathList = new ArrayList<>(); - for (LawLegalArbitrate lawLegalArbitrate : list) { - XWPFDocument doc = new XWPFDocument(); - String outputPath = uploadPath + "file/doc/仲裁申请书/" + lawLegalArbitrate.getName() + "-" + lawLegalArbitrate.getId() + ".docx"; - pathList.add(outputPath); - FileOutputStream fos = new FileOutputStream(outputPath); - XWPFParagraph paragraph = doc.createParagraph(); - paragraph.setAlignment(ParagraphAlignment.CENTER); - XWPFRun titleRun = paragraph.createRun(); - titleRun.setFontFamily("宋体"); - titleRun.setBold(true); - titleRun.setFontSize(26f); - titleRun.setText("仲裁申请书"); - - String line0 = " 申请人:"; - line0 += lawLegalArbitrate.getName() + ","; - line0 += lawLegalArbitrate.getGender().equals(0) ? "男," : "女,"; - line0 += lawLegalArbitrate.getBirthday() + "出生,"; - line0 += (lawLegalArbitrate.getNation().contains("族") ? lawLegalArbitrate.getNation() : lawLegalArbitrate.getNation() + "族") + ","; - line0 += "住" + lawLegalArbitrate.getLiveAddress() + ","; - line0 += "身份证号码:" + lawLegalArbitrate.getIdCard() + ","; - line0 += "联系电话:" + lawLegalArbitrate.getPhone() + "。"; - setContent(doc, line0); - - String line1 = " 被申请人:"; - line1 += lawLegalArbitrate.getBeenName() + ","; - line1 += "住所地:" + lawLegalArbitrate.getBeenAddress() + "。"; - line1 += "统一社会信用代码:" + lawLegalArbitrate.getBeenCode() + "。"; - line1 += "联系电话:" + lawLegalArbitrate.getBeenPhone() + "。"; - setContent(doc, line1); - - String line2 = " 法定代表人:"; - line2 += lawLegalArbitrate.getBeenLegalName() + "," + lawLegalArbitrate.getBeenLegalPosition() + "。"; - setContent(doc, line2); - - setTitle(doc, " 仲裁请求:"); - setContent(doc, " " + lawLegalArbitrate.getRequestContent()); - - setTitle(doc, " 事实和理由:"); - setContent(doc, " " + lawLegalArbitrate.getContent()); - - setContent(doc, " 此致"); - setContent(doc, " 贵港仲裁委员会"); - - setEndContent(doc, "申请人: "); - String date = LocalDateTimeUtil.format(lawLegalArbitrate.getCreateTime(), "yyyy年MM月dd日"); - setEndContent(doc, date); - - doc.write(fos); - fos.flush(); - fos.close(); - } - ZipUtil.zip(uploadPath + "file/doc/仲裁申请书"); - for (String path : pathList) { - FileUtil.del(path); - } - return success("导出成功", serverUrl + "/file/doc/仲裁申请书.zip"); - } - - private void setContent(XWPFDocument doc, String content) { - XWPFParagraph paragraph1 = doc.createParagraph(); - paragraph1.setAlignment(ParagraphAlignment.LEFT); - XWPFRun pRun1 = paragraph1.createRun(); - pRun1.setFontFamily("仿宋"); - pRun1.setFontSize(16f); - pRun1.setText(content); - } - - private void setEndContent(XWPFDocument doc, String content) { - XWPFParagraph paragraph1 = doc.createParagraph(); - paragraph1.setAlignment(ParagraphAlignment.RIGHT); - XWPFRun pRun1 = paragraph1.createRun(); - pRun1.setFontFamily("仿宋"); - pRun1.setFontSize(16f); - pRun1.setText(content); - } - - private void setTitle(XWPFDocument doc, String content) { - XWPFParagraph paragraph1 = doc.createParagraph(); - paragraph1.setAlignment(ParagraphAlignment.LEFT); - XWPFRun pRun1 = paragraph1.createRun(); - pRun1.setFontFamily("仿宋"); - pRun1.setFontSize(16f); - pRun1.setBold(true); - pRun1.setText(content); - } -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalCalConfigController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalCalConfigController.java deleted file mode 100644 index 2ff0ab0..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalCalConfigController.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalCalConfigService; -import com.gxwebsoft.law.entity.LawLegalCalConfig; -import com.gxwebsoft.law.param.LawLegalCalConfigParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 法律计算器配置控制器 - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -@Api(tags = "法律计算器配置管理") -@RestController -@RequestMapping("/api/law/law-legal-cal-config") -public class LawLegalCalConfigController extends BaseController { - @Resource - private LawLegalCalConfigService lawLegalCalConfigService; - - @ApiOperation("分页查询法律计算器配置") - @GetMapping("/page") - public ApiResult> page(LawLegalCalConfigParam param) { - // 使用关联查询 - return success(lawLegalCalConfigService.pageRel(param)); - } - - @ApiOperation("查询全部法律计算器配置") - @GetMapping() - public ApiResult> list(LawLegalCalConfigParam param) { - // 使用关联查询 - return success(lawLegalCalConfigService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawLegalCalConfig:list')") - @ApiOperation("根据id查询法律计算器配置") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalCalConfigService.getByIdRel(id)); - } - - @ApiOperation("添加法律计算器配置") - @PostMapping() - public ApiResult save(@RequestBody LawLegalCalConfig lawLegalCalConfig) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalCalConfig.setUserId(loginUser.getUserId()); - } - if (lawLegalCalConfigService.save(lawLegalCalConfig)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改法律计算器配置") - @PutMapping() - public ApiResult update(@RequestBody LawLegalCalConfig lawLegalCalConfig) { - if (lawLegalCalConfigService.updateById(lawLegalCalConfig)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除法律计算器配置") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalCalConfigService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加法律计算器配置") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalCalConfigService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改法律计算器配置") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalCalConfigService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除法律计算器配置") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalCalConfigService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalCalContentController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalCalContentController.java deleted file mode 100644 index 78c18bf..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalCalContentController.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalCalContentService; -import com.gxwebsoft.law.entity.LawLegalCalContent; -import com.gxwebsoft.law.param.LawLegalCalContentParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 用户填写法律计算器内容控制器 - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -@Api(tags = "用户填写法律计算器内容管理") -@RestController -@RequestMapping("/api/law/law-legal-cal-content") -public class LawLegalCalContentController extends BaseController { - @Resource - private LawLegalCalContentService lawLegalCalContentService; - - @ApiOperation("分页查询用户填写法律计算器内容") - @GetMapping("/page") - public ApiResult> page(LawLegalCalContentParam param) { - // 使用关联查询 - return success(lawLegalCalContentService.pageRel(param)); - } - - @ApiOperation("查询全部用户填写法律计算器内容") - @GetMapping() - public ApiResult> list(LawLegalCalContentParam param) { - // 使用关联查询 - return success(lawLegalCalContentService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawLegalCalContent:list')") - @ApiOperation("根据id查询用户填写法律计算器内容") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalCalContentService.getByIdRel(id)); - } - - @ApiOperation("添加用户填写法律计算器内容") - @PostMapping() - public ApiResult save(@RequestBody LawLegalCalContent lawLegalCalContent) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalCalContent.setUserId(loginUser.getUserId()); - } - if (lawLegalCalContentService.save(lawLegalCalContent)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改用户填写法律计算器内容") - @PutMapping() - public ApiResult update(@RequestBody LawLegalCalContent lawLegalCalContent) { - if (lawLegalCalContentService.updateById(lawLegalCalContent)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除用户填写法律计算器内容") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalCalContentService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加用户填写法律计算器内容") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalCalContentService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改用户填写法律计算器内容") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalCalContentService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除用户填写法律计算器内容") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalCalContentService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalCalTypeController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalCalTypeController.java deleted file mode 100644 index 7652146..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalCalTypeController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalCalTypeService; -import com.gxwebsoft.law.entity.LawLegalCalType; -import com.gxwebsoft.law.param.LawLegalCalTypeParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 法律计算器配置控制器 - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -@Api(tags = "法律计算器配置管理") -@RestController -@RequestMapping("/api/law/law-legal-cal-type") -public class LawLegalCalTypeController extends BaseController { - @Resource - private LawLegalCalTypeService lawLegalCalTypeService; - - @ApiOperation("分页查询法律计算器配置") - @GetMapping("/page") - public ApiResult> page(LawLegalCalTypeParam param) { - // 使用关联查询 - return success(lawLegalCalTypeService.pageRel(param)); - } - - @ApiOperation("查询全部法律计算器配置") - @GetMapping() - public ApiResult> list(LawLegalCalTypeParam param) { - // 使用关联查询 - return success(lawLegalCalTypeService.listRel(param)); - } - - @ApiOperation("根据id查询法律计算器配置") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalCalTypeService.getByIdRel(id)); - } - - @ApiOperation("添加法律计算器配置") - @PostMapping() - public ApiResult save(@RequestBody LawLegalCalType lawLegalCalType) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalCalType.setUserId(loginUser.getUserId()); - } - if (lawLegalCalTypeService.save(lawLegalCalType)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改法律计算器配置") - @PutMapping() - public ApiResult update(@RequestBody LawLegalCalType lawLegalCalType) { - if (lawLegalCalTypeService.updateById(lawLegalCalType)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除法律计算器配置") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalCalTypeService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加法律计算器配置") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalCalTypeService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改法律计算器配置") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalCalTypeService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除法律计算器配置") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalCalTypeService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalDocConfigController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalDocConfigController.java deleted file mode 100644 index 6fe4c60..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalDocConfigController.java +++ /dev/null @@ -1,203 +0,0 @@ -package com.gxwebsoft.law.controller; - -import cn.hutool.core.date.DateUtil; -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalDocConfigService; -import com.gxwebsoft.law.entity.LawLegalDocConfig; -import com.gxwebsoft.law.param.LawLegalDocConfigParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.apache.poi.xwpf.usermodel.ParagraphAlignment; -import org.apache.poi.xwpf.usermodel.XWPFDocument; -import org.apache.poi.xwpf.usermodel.XWPFParagraph; -import org.apache.poi.xwpf.usermodel.XWPFRun; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.mail.SimpleMailMessage; -import org.springframework.mail.javamail.JavaMailSender; -import org.springframework.mail.javamail.MimeMessageHelper; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import javax.mail.Authenticator; -import javax.mail.MessagingException; -import javax.mail.PasswordAuthentication; -import javax.mail.Session; -import javax.mail.internet.InternetAddress; -import javax.mail.internet.MimeMessage; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.List; -import java.util.Properties; - -/** - * 法律文书配置控制器 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Api(tags = "法律文书配置管理") -@RestController -@RequestMapping("/api/law/law-legal-doc-config") -public class LawLegalDocConfigController extends BaseController { - @Resource - private LawLegalDocConfigService lawLegalDocConfigService; - @Value("${config.upload-path}") - private String uploadPath; - @Autowired - private JavaMailSender javaMailSender; - - @ApiOperation("分页查询法律文书配置") - @GetMapping("/page") - public ApiResult> page(LawLegalDocConfigParam param) { - // 使用关联查询 - return success(lawLegalDocConfigService.pageRel(param)); - } - - @ApiOperation("查询全部法律文书配置") - @GetMapping() - public ApiResult> list(LawLegalDocConfigParam param) { - // 使用关联查询 - return success(lawLegalDocConfigService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawLegalDocConfig:list')") - @ApiOperation("根据id查询法律文书配置") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalDocConfigService.getByIdRel(id)); - } - - @ApiOperation("添加法律文书配置") - @PostMapping() - public ApiResult save(@RequestBody LawLegalDocConfig lawLegalDocConfig) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalDocConfig.setUserId(loginUser.getUserId()); - } - if (lawLegalDocConfigService.save(lawLegalDocConfig)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改法律文书配置") - @PutMapping() - public ApiResult update(@RequestBody LawLegalDocConfig lawLegalDocConfig) { - if (lawLegalDocConfigService.updateById(lawLegalDocConfig)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除法律文书配置") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalDocConfigService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加法律文书配置") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalDocConfigService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改法律文书配置") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalDocConfigService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除法律文书配置") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalDocConfigService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @PostMapping("/make") - public ApiResult makeDoc(@RequestBody LawLegalDocConfig lawLegalDocConfig) throws IOException { - String filePath = "/file/doc/" + lawLegalDocConfig.getTitle() + DateUtil.currentSeconds() + ".docx"; - String levelOutputPath = uploadPath + filePath; - String userContent = lawLegalDocConfig.getUserContent(); - XWPFDocument doc = new XWPFDocument(); - XWPFParagraph paragraph = doc.createParagraph(); - XWPFRun run = paragraph.createRun(); - paragraph.setAlignment(ParagraphAlignment.CENTER); - run.setText(lawLegalDocConfig.getTitle()); - run.setFontSize(16); - run.setBold(true); - run.addCarriageReturn(); - XWPFParagraph newParagraph = doc.createParagraph(); - XWPFRun newRun = newParagraph.createRun(); - String[] userContentArray = userContent.split("\n"); - run.setFontSize(14); - for (String item : userContentArray) { - newRun.setText(item); - newRun.addCarriageReturn(); - } - FileOutputStream fos = new FileOutputStream(levelOutputPath); - doc.write(fos); - fos.flush(); - fos.close(); - return success("生成成功", filePath); - } - - @PostMapping("/send-email") - public ApiResult sendEmail(@RequestBody LawLegalDocConfig lawLegalDocConfig) throws IOException, MessagingException { - Properties properties = new Properties();// 创建Properties对象 - properties.setProperty("mail.transport.protocol", "smtp"); - properties.put("mail.smtp.host", "smtp.qq.com"); - properties.setProperty("mail.smtp.auth", "true"); - String from = "517289602@qq.com"; - Authenticator auth = new MailAuthenticator(from, "fhvgbekxmxrxcaec"); - Session session = Session.getDefaultInstance(properties, auth); - MimeMessage mimeMessage = new MimeMessage(session); - MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); - - helper.setFrom(new InternetAddress(from)); - helper.setTo(lawLegalDocConfig.getEmail()); - helper.setSubject(lawLegalDocConfig.getTitle()); - helper.setText("请注意查收"); - File file = new File(uploadPath + lawLegalDocConfig.getFile()); - helper.addAttachment(lawLegalDocConfig.getTitle(), file); - javaMailSender.send(mimeMessage); - return success("发送成功"); - } - - static class MailAuthenticator extends Authenticator { - private final String user; - private final String pwd; - - public MailAuthenticator(String user, String pwd) { - this.user = user; - this.pwd = pwd; - } - - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(user, pwd); - } - } -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalDocContentController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalDocContentController.java deleted file mode 100644 index a9388e1..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalDocContentController.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalDocContentService; -import com.gxwebsoft.law.entity.LawLegalDocContent; -import com.gxwebsoft.law.param.LawLegalDocContentParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 用户填写法律文书内容控制器 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Api(tags = "用户填写法律文书内容管理") -@RestController -@RequestMapping("/api/law/law-legal-doc-content") -public class LawLegalDocContentController extends BaseController { - @Resource - private LawLegalDocContentService lawLegalDocContentService; - - @ApiOperation("分页查询用户填写法律文书内容") - @GetMapping("/page") - public ApiResult> page(LawLegalDocContentParam param) { - // 使用关联查询 - return success(lawLegalDocContentService.pageRel(param)); - } - - @ApiOperation("查询全部用户填写法律文书内容") - @GetMapping() - public ApiResult> list(LawLegalDocContentParam param) { - // 使用关联查询 - return success(lawLegalDocContentService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawLegalDocContent:list')") - @ApiOperation("根据id查询用户填写法律文书内容") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalDocContentService.getByIdRel(id)); - } - - @ApiOperation("添加用户填写法律文书内容") - @PostMapping() - public ApiResult save(@RequestBody LawLegalDocContent lawLegalDocContent) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalDocContent.setUserId(loginUser.getUserId()); - } - if (lawLegalDocContentService.save(lawLegalDocContent)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改用户填写法律文书内容") - @PutMapping() - public ApiResult update(@RequestBody LawLegalDocContent lawLegalDocContent) { - if (lawLegalDocContentService.updateById(lawLegalDocContent)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除用户填写法律文书内容") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalDocContentService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加用户填写法律文书内容") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalDocContentService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改用户填写法律文书内容") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalDocContentService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除用户填写法律文书内容") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalDocContentService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalDocTypeController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalDocTypeController.java deleted file mode 100644 index a5a30d2..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalDocTypeController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalDocTypeService; -import com.gxwebsoft.law.entity.LawLegalDocType; -import com.gxwebsoft.law.param.LawLegalDocTypeParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 法律文书配置控制器 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Api(tags = "法律文书配置管理") -@RestController -@RequestMapping("/api/law/law-legal-doc-type") -public class LawLegalDocTypeController extends BaseController { - @Resource - private LawLegalDocTypeService lawLegalDocTypeService; - - @ApiOperation("分页查询法律文书配置") - @GetMapping("/page") - public ApiResult> page(LawLegalDocTypeParam param) { - // 使用关联查询 - return success(lawLegalDocTypeService.pageRel(param)); - } - - @ApiOperation("查询全部法律文书配置") - @GetMapping() - public ApiResult> list(LawLegalDocTypeParam param) { - // 使用关联查询 - return success(lawLegalDocTypeService.listRel(param)); - } - - @ApiOperation("根据id查询法律文书配置") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalDocTypeService.getByIdRel(id)); - } - - @ApiOperation("添加法律文书配置") - @PostMapping() - public ApiResult save(@RequestBody LawLegalDocType lawLegalDocType) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalDocType.setUserId(loginUser.getUserId()); - } - if (lawLegalDocTypeService.save(lawLegalDocType)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改法律文书配置") - @PutMapping() - public ApiResult update(@RequestBody LawLegalDocType lawLegalDocType) { - if (lawLegalDocTypeService.updateById(lawLegalDocType)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除法律文书配置") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalDocTypeService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加法律文书配置") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalDocTypeService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改法律文书配置") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalDocTypeService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除法律文书配置") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalDocTypeService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckConfigController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckConfigController.java deleted file mode 100644 index b89bdcd..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckConfigController.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalOrgCheckConfigService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckConfig; -import com.gxwebsoft.law.param.LawLegalOrgCheckConfigParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 企业法制体检配置控制器 - * - * @author LX - * @since 2025-04-17 17:51:15 - */ -@Api(tags = "企业法制体检配置管理") -@RestController -@RequestMapping("/api/law/law-legal-org-check-config") -public class LawLegalOrgCheckConfigController extends BaseController { - @Resource - private LawLegalOrgCheckConfigService lawLegalOrgCheckConfigService; - - @ApiOperation("分页查询企业法制体检配置") - @GetMapping("/page") - public ApiResult> page(LawLegalOrgCheckConfigParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckConfigService.pageRel(param)); - } - - @ApiOperation("查询全部企业法制体检配置") - @GetMapping() - public ApiResult> list(LawLegalOrgCheckConfigParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckConfigService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawLegalOrgCheckConfig:list')") - @ApiOperation("根据id查询企业法制体检配置") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalOrgCheckConfigService.getByIdRel(id)); - } - - @ApiOperation("添加企业法制体检配置") - @PostMapping() - public ApiResult save(@RequestBody LawLegalOrgCheckConfig lawLegalOrgCheckConfig) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalOrgCheckConfig.setUserId(loginUser.getUserId()); - } - if (lawLegalOrgCheckConfigService.save(lawLegalOrgCheckConfig)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改企业法制体检配置") - @PutMapping() - public ApiResult update(@RequestBody LawLegalOrgCheckConfig lawLegalOrgCheckConfig) { - if (lawLegalOrgCheckConfigService.updateById(lawLegalOrgCheckConfig)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除企业法制体检配置") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalOrgCheckConfigService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加企业法制体检配置") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalOrgCheckConfigService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改企业法制体检配置") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalOrgCheckConfigService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除企业法制体检配置") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalOrgCheckConfigService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckConfigSuggestController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckConfigSuggestController.java deleted file mode 100644 index 30f4c96..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckConfigSuggestController.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalOrgCheckConfigSuggestService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckConfigSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckConfigSuggestParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 法律意见书配置控制器 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Api(tags = "法律意见书配置管理") -@RestController -@RequestMapping("/api/law/law-legal-org-check-config-suggest") -public class LawLegalOrgCheckConfigSuggestController extends BaseController { - @Resource - private LawLegalOrgCheckConfigSuggestService lawLegalOrgCheckConfigSuggestService; - - @ApiOperation("分页查询法律意见书配置") - @GetMapping("/page") - public ApiResult> page(LawLegalOrgCheckConfigSuggestParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckConfigSuggestService.pageRel(param)); - } - - @ApiOperation("查询全部法律意见书配置") - @GetMapping() - public ApiResult> list(LawLegalOrgCheckConfigSuggestParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckConfigSuggestService.listRel(param)); - } - - @ApiOperation("树形") - @GetMapping("/tree") - public ApiResult> tree(LawLegalOrgCheckConfigSuggestParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckConfigSuggestService.listByLevel(param)); - } - - @PreAuthorize("hasAuthority('law:lawLegalOrgCheckConfigSuggest:list')") - @ApiOperation("根据id查询法律意见书配置") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalOrgCheckConfigSuggestService.getByIdRel(id)); - } - - @ApiOperation("添加法律意见书配置") - @PostMapping() - public ApiResult save(@RequestBody LawLegalOrgCheckConfigSuggest lawLegalOrgCheckConfigSuggest) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalOrgCheckConfigSuggest.setUserId(loginUser.getUserId()); - } - if (lawLegalOrgCheckConfigSuggestService.save(lawLegalOrgCheckConfigSuggest)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改法律意见书配置") - @PutMapping() - public ApiResult update(@RequestBody LawLegalOrgCheckConfigSuggest lawLegalOrgCheckConfigSuggest) { - if (lawLegalOrgCheckConfigSuggestService.updateById(lawLegalOrgCheckConfigSuggest)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除法律意见书配置") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalOrgCheckConfigSuggestService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加法律意见书配置") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalOrgCheckConfigSuggestService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改法律意见书配置") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalOrgCheckConfigSuggestService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除法律意见书配置") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalOrgCheckConfigSuggestService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckContentController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckContentController.java deleted file mode 100644 index 7411f29..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckContentController.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalOrgCheckContentService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckContent; -import com.gxwebsoft.law.param.LawLegalOrgCheckContentParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 用户填写企业法制体检内容控制器 - * - * @author LX - * @since 2025-04-17 17:48:54 - */ -@Api(tags = "用户填写企业法制体检内容管理") -@RestController -@RequestMapping("/api/law/law-legal-org-check-content") -public class LawLegalOrgCheckContentController extends BaseController { - @Resource - private LawLegalOrgCheckContentService lawLegalOrgCheckContentService; - - @ApiOperation("分页查询用户填写企业法制体检内容") - @GetMapping("/page") - public ApiResult> page(LawLegalOrgCheckContentParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckContentService.pageRel(param)); - } - - @ApiOperation("查询全部用户填写企业法制体检内容") - @GetMapping() - public ApiResult> list(LawLegalOrgCheckContentParam param) { - // 使用关联查询 - User loginUser = getLoginUser(); - if (loginUser != null) { - param.setUserId(loginUser.getUserId()); - } - return success(lawLegalOrgCheckContentService.listRel(param)); - } - - @ApiOperation("根据id查询用户填写企业法制体检内容") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalOrgCheckContentService.getByIdRel(id)); - } - - @ApiOperation("添加用户填写企业法制体检内容") - @PostMapping() - public ApiResult save(@RequestBody LawLegalOrgCheckContent lawLegalOrgCheckContent) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalOrgCheckContent.setUserId(loginUser.getUserId()); - } - if (lawLegalOrgCheckContentService.save(lawLegalOrgCheckContent)) { - return success("添加成功", lawLegalOrgCheckContent.getId()); - } - return fail("添加失败"); - } - - @ApiOperation("修改用户填写企业法制体检内容") - @PostMapping("/update") - public ApiResult update(@RequestBody LawLegalOrgCheckContent lawLegalOrgCheckContent) { - if (lawLegalOrgCheckContentService.updateById(lawLegalOrgCheckContent)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除用户填写企业法制体检内容") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalOrgCheckContentService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加用户填写企业法制体检内容") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalOrgCheckContentService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改用户填写企业法制体检内容") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalOrgCheckContentService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除用户填写企业法制体检内容") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalOrgCheckContentService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckContentSuggestController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckContentSuggestController.java deleted file mode 100644 index 63f0836..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckContentSuggestController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalOrgCheckContentSuggestService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckContentSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckContentSuggestParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 用户填写法律意见书内容控制器 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Api(tags = "用户填写法律意见书内容管理") -@RestController -@RequestMapping("/api/law/law-legal-org-check-content-suggest") -public class LawLegalOrgCheckContentSuggestController extends BaseController { - @Resource - private LawLegalOrgCheckContentSuggestService lawLegalOrgCheckContentSuggestService; - - @ApiOperation("分页查询用户填写法律意见书内容") - @GetMapping("/page") - public ApiResult> page(LawLegalOrgCheckContentSuggestParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckContentSuggestService.pageRel(param)); - } - - @ApiOperation("查询全部用户填写法律意见书内容") - @GetMapping() - public ApiResult> list(LawLegalOrgCheckContentSuggestParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckContentSuggestService.listRel(param)); - } - - @ApiOperation("根据id查询用户填写法律意见书内容") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalOrgCheckContentSuggestService.getByIdRel(id)); - } - - @ApiOperation("添加用户填写法律意见书内容") - @PostMapping() - public ApiResult save(@RequestBody LawLegalOrgCheckContentSuggest lawLegalOrgCheckContentSuggest) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalOrgCheckContentSuggest.setUserId(loginUser.getUserId()); - } - if (lawLegalOrgCheckContentSuggestService.save(lawLegalOrgCheckContentSuggest)) { - return success("添加成功", lawLegalOrgCheckContentSuggest.getId()); - } - return fail("添加失败"); - } - - @ApiOperation("修改用户填写法律意见书内容") - @PutMapping() - public ApiResult update(@RequestBody LawLegalOrgCheckContentSuggest lawLegalOrgCheckContentSuggest) { - if (lawLegalOrgCheckContentSuggestService.updateById(lawLegalOrgCheckContentSuggest)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除用户填写法律意见书内容") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalOrgCheckContentSuggestService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加用户填写法律意见书内容") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalOrgCheckContentSuggestService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改用户填写法律意见书内容") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalOrgCheckContentSuggestService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除用户填写法律意见书内容") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalOrgCheckContentSuggestService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckTypeController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckTypeController.java deleted file mode 100644 index 3d3e647..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckTypeController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalOrgCheckTypeService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckType; -import com.gxwebsoft.law.param.LawLegalOrgCheckTypeParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 企业法制体检配置控制器 - * - * @author LX - * @since 2025-04-17 18:04:46 - */ -@Api(tags = "企业法制体检配置管理") -@RestController -@RequestMapping("/api/law/law-legal-org-check-type") -public class LawLegalOrgCheckTypeController extends BaseController { - @Resource - private LawLegalOrgCheckTypeService lawLegalOrgCheckTypeService; - - @ApiOperation("分页查询企业法制体检配置") - @GetMapping("/page") - public ApiResult> page(LawLegalOrgCheckTypeParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckTypeService.pageRel(param)); - } - - @ApiOperation("查询全部企业法制体检配置") - @GetMapping() - public ApiResult> list(LawLegalOrgCheckTypeParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckTypeService.listRel(param)); - } - - @ApiOperation("根据id查询企业法制体检配置") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalOrgCheckTypeService.getByIdRel(id)); - } - - @ApiOperation("添加企业法制体检配置") - @PostMapping() - public ApiResult save(@RequestBody LawLegalOrgCheckType lawLegalOrgCheckType) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalOrgCheckType.setUserId(loginUser.getUserId()); - } - if (lawLegalOrgCheckTypeService.save(lawLegalOrgCheckType)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改企业法制体检配置") - @PutMapping() - public ApiResult update(@RequestBody LawLegalOrgCheckType lawLegalOrgCheckType) { - if (lawLegalOrgCheckTypeService.updateById(lawLegalOrgCheckType)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除企业法制体检配置") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalOrgCheckTypeService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加企业法制体检配置") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalOrgCheckTypeService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改企业法制体检配置") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalOrgCheckTypeService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除企业法制体检配置") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalOrgCheckTypeService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckTypeSuggestController.java b/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckTypeSuggestController.java deleted file mode 100644 index 27eeb04..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawLegalOrgCheckTypeSuggestController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawLegalOrgCheckTypeSuggestService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckTypeSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckTypeSuggestParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 法律意见书配置控制器 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Api(tags = "法律意见书配置管理") -@RestController -@RequestMapping("/api/law/law-legal-org-check-type-suggest") -public class LawLegalOrgCheckTypeSuggestController extends BaseController { - @Resource - private LawLegalOrgCheckTypeSuggestService lawLegalOrgCheckTypeSuggestService; - - @ApiOperation("分页查询法律意见书配置") - @GetMapping("/page") - public ApiResult> page(LawLegalOrgCheckTypeSuggestParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckTypeSuggestService.pageRel(param)); - } - - @ApiOperation("查询全部法律意见书配置") - @GetMapping() - public ApiResult> list(LawLegalOrgCheckTypeSuggestParam param) { - // 使用关联查询 - return success(lawLegalOrgCheckTypeSuggestService.listRel(param)); - } - - @ApiOperation("根据id查询法律意见书配置") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawLegalOrgCheckTypeSuggestService.getByIdRel(id)); - } - - @ApiOperation("添加法律意见书配置") - @PostMapping() - public ApiResult save(@RequestBody LawLegalOrgCheckTypeSuggest lawLegalOrgCheckTypeSuggest) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawLegalOrgCheckTypeSuggest.setUserId(loginUser.getUserId()); - } - if (lawLegalOrgCheckTypeSuggestService.save(lawLegalOrgCheckTypeSuggest)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改法律意见书配置") - @PutMapping() - public ApiResult update(@RequestBody LawLegalOrgCheckTypeSuggest lawLegalOrgCheckTypeSuggest) { - if (lawLegalOrgCheckTypeSuggestService.updateById(lawLegalOrgCheckTypeSuggest)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除法律意见书配置") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawLegalOrgCheckTypeSuggestService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加法律意见书配置") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawLegalOrgCheckTypeSuggestService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改法律意见书配置") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawLegalOrgCheckTypeSuggestService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除法律意见书配置") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawLegalOrgCheckTypeSuggestService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawNotaryConfigController.java b/src/main/java/com/gxwebsoft/law/controller/LawNotaryConfigController.java deleted file mode 100644 index d131edc..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawNotaryConfigController.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawNotaryConfigService; -import com.gxwebsoft.law.entity.LawNotaryConfig; -import com.gxwebsoft.law.param.LawNotaryConfigParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 公证配置控制器 - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -@Api(tags = "公证配置管理") -@RestController -@RequestMapping("/api/law/law-notary-config") -public class LawNotaryConfigController extends BaseController { - @Resource - private LawNotaryConfigService lawNotaryConfigService; - - @ApiOperation("分页查询公证配置") - @GetMapping("/page") - public ApiResult> page(LawNotaryConfigParam param) { - // 使用关联查询 - return success(lawNotaryConfigService.pageRel(param)); - } - - @ApiOperation("查询全部公证配置") - @GetMapping() - public ApiResult> list(LawNotaryConfigParam param) { - // 使用关联查询 - return success(lawNotaryConfigService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawNotaryConfig:list')") - @ApiOperation("根据id查询公证配置") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawNotaryConfigService.getByIdRel(id)); - } - - @ApiOperation("添加公证配置") - @PostMapping() - public ApiResult save(@RequestBody LawNotaryConfig lawNotaryConfig) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawNotaryConfig.setUserId(loginUser.getUserId()); - } - if (lawNotaryConfigService.save(lawNotaryConfig)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改公证配置") - @PutMapping() - public ApiResult update(@RequestBody LawNotaryConfig lawNotaryConfig) { - if (lawNotaryConfigService.updateById(lawNotaryConfig)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除公证配置") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawNotaryConfigService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加公证配置") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawNotaryConfigService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改公证配置") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawNotaryConfigService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除公证配置") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawNotaryConfigService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawNotaryListController.java b/src/main/java/com/gxwebsoft/law/controller/LawNotaryListController.java deleted file mode 100644 index 18ae913..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawNotaryListController.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawNotaryListService; -import com.gxwebsoft.law.entity.LawNotaryList; -import com.gxwebsoft.law.param.LawNotaryListParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 公证列表控制器 - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -@Api(tags = "公证列表管理") -@RestController -@RequestMapping("/api/law/law-notary-list") -public class LawNotaryListController extends BaseController { - @Resource - private LawNotaryListService lawNotaryListService; - - @ApiOperation("分页查询公证列表") - @GetMapping("/page") - public ApiResult> page(LawNotaryListParam param) { - // 使用关联查询 - return success(lawNotaryListService.pageRel(param)); - } - - @ApiOperation("查询全部公证列表") - @GetMapping() - public ApiResult> list(LawNotaryListParam param) { - // 使用关联查询 - return success(lawNotaryListService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawNotaryList:list')") - @ApiOperation("根据id查询公证列表") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawNotaryListService.getByIdRel(id)); - } - - @ApiOperation("添加公证列表") - @PostMapping() - public ApiResult save(@RequestBody LawNotaryList lawNotaryList) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawNotaryList.setUserId(loginUser.getUserId()); - } - if (lawNotaryListService.save(lawNotaryList)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改公证列表") - @PutMapping() - public ApiResult update(@RequestBody LawNotaryList lawNotaryList) { - if (lawNotaryListService.updateById(lawNotaryList)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除公证列表") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawNotaryListService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加公证列表") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawNotaryListService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改公证列表") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawNotaryListService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除公证列表") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawNotaryListService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawOrgCheckLogController.java b/src/main/java/com/gxwebsoft/law/controller/LawOrgCheckLogController.java deleted file mode 100644 index b3d90bc..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawOrgCheckLogController.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawOrgCheckLogService; -import com.gxwebsoft.law.entity.LawOrgCheckLog; -import com.gxwebsoft.law.param.LawOrgCheckLogParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 企业法制检查报告控制器 - * - * @author LX - * @since 2025-04-20 07:43:09 - */ -@Api(tags = "企业法制检查报告管理") -@RestController -@RequestMapping("/api/law/law-org-check-log") -public class LawOrgCheckLogController extends BaseController { - @Resource - private LawOrgCheckLogService lawOrgCheckLogService; - - @ApiOperation("分页查询企业法制检查报告") - @GetMapping("/page") - public ApiResult> page(LawOrgCheckLogParam param) { - // 使用关联查询 - return success(lawOrgCheckLogService.pageRel(param)); - } - - @ApiOperation("查询全部企业法制检查报告") - @GetMapping() - public ApiResult> list(LawOrgCheckLogParam param) { - // 使用关联查询 - return success(lawOrgCheckLogService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawOrgCheckLog:list')") - @ApiOperation("根据id查询企业法制检查报告") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawOrgCheckLogService.getByIdRel(id)); - } - - @ApiOperation("添加企业法制检查报告") - @PostMapping() - public ApiResult save(@RequestBody LawOrgCheckLog lawOrgCheckLog) { - // 记录当前登录用户id - User loginUser = getLoginUser(); - if (loginUser != null) { - lawOrgCheckLog.setUserId(loginUser.getUserId()); - } - if (lawOrgCheckLogService.save(lawOrgCheckLog)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改企业法制检查报告") - @PutMapping() - public ApiResult update(@RequestBody LawOrgCheckLog lawOrgCheckLog) { - if (lawOrgCheckLogService.updateById(lawOrgCheckLog)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除企业法制检查报告") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawOrgCheckLogService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加企业法制检查报告") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawOrgCheckLogService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改企业法制检查报告") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawOrgCheckLogService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除企业法制检查报告") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawOrgCheckLogService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawOrgController.java b/src/main/java/com/gxwebsoft/law/controller/LawOrgController.java deleted file mode 100644 index a6ff687..0000000 --- a/src/main/java/com/gxwebsoft/law/controller/LawOrgController.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.gxwebsoft.law.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.system.entity.Area; -import com.gxwebsoft.common.system.service.AreaService; -import com.gxwebsoft.law.service.LawOrgService; -import com.gxwebsoft.law.entity.LawOrg; -import com.gxwebsoft.law.param.LawOrgParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 机构控制器 - * - * @author LX - * @since 2025-04-14 00:35:34 - */ -@Api(tags = "机构管理") -@RestController -@RequestMapping("/api/law/law-org") -public class LawOrgController extends BaseController { - @Resource - private LawOrgService lawOrgService; - @Resource - private AreaService areaService; - - @ApiOperation("分页查询机构") - @GetMapping("/page") - public ApiResult> page(LawOrgParam param) { - // 使用关联查询 - return success(lawOrgService.pageRel(param)); - } - - @ApiOperation("查询全部机构") - @GetMapping() - public ApiResult> list(LawOrgParam param) { - // 使用关联查询 - return success(lawOrgService.listRel(param)); - } - - @PreAuthorize("hasAuthority('law:lawOrg:list')") - @ApiOperation("根据id查询机构") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 - return success(lawOrgService.getByIdRel(id)); - } - - @ApiOperation("添加机构") - @PostMapping() - public ApiResult save(@RequestBody LawOrg lawOrg) { - if (lawOrg.getProvince() != null) { - Area province = areaService.getProvinceByName(lawOrg.getProvince()); - if (province != null) { - lawOrg.setProvinceId(province.getId()); - } - } - if (lawOrg.getCity() != null) { - Area city = areaService.getCityByName(lawOrg.getCity()); - if (city != null) { - lawOrg.setCityId(city.getId()); - } - } - if (lawOrg.getRegion() != null) { - Area region = areaService.getRegionByName(lawOrg.getRegion()); - if (region != null) { - lawOrg.setAreaId(region.getId()); - } - } - if (lawOrgService.save(lawOrg)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("修改机构") - @PutMapping() - public ApiResult update(@RequestBody LawOrg lawOrg) { - if (lawOrg.getProvince() != null) { - Area province = areaService.getProvinceByName(lawOrg.getProvince()); - if (province != null) { - lawOrg.setProvinceId(province.getId()); - } - if (lawOrg.getCity() != null) { - Area city = areaService.getCityByName(lawOrg.getCity()); - if (city != null) { - lawOrg.setCityId(city.getId()); - } - if (lawOrg.getRegion() != null) { - Area region = areaService.getRegionByName(lawOrg.getRegion()); - if (region != null) { - lawOrg.setAreaId(region.getId()); - } - } - } - } - if (lawOrgService.updateById(lawOrg)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("删除机构") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (lawOrgService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @ApiOperation("批量添加机构") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawOrgService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @ApiOperation("批量修改机构") - @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawOrgService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @ApiOperation("批量删除机构") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (lawOrgService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/ChatMessage.java b/src/main/java/com/gxwebsoft/law/entity/ChatMessage.java deleted file mode 100644 index 9165f9c..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/ChatMessage.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.*; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serializable; -import java.time.LocalDateTime; -import java.util.List; -import java.util.Map; - -/** - * 机构 - * - * @author LX - * @since 2025-04-14 00:35:34 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawOrg对象", description = "机构") -@TableName("law_org") -public class ChatMessage implements Serializable { - private static final long serialVersionUID = 1L; - - @TableField(exist = false) - private String query; - - @TableField(exist = false) - private String inputs; - - @TableField(exist = false) - private String responseMode; - - @TableField(exist = false) - private String user; - - @TableField(exist = false) - private String conversationId; - - @TableField(exist = false) - private String type; - - @TableField(exist = false) - private Integer requestType; - - @TableField(exist = false) - private Map files; -} diff --git a/src/main/java/com/gxwebsoft/law/entity/ChatResponse.java b/src/main/java/com/gxwebsoft/law/entity/ChatResponse.java deleted file mode 100644 index fa0dc36..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/ChatResponse.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import java.io.Serializable; -import java.util.Map; - -/** - * 机构 - * - * @author LX - * @since 2025-04-14 00:35:34 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawOrg对象", description = "机构") -@TableName("law_org") -public class ChatResponse implements Serializable { - private String event; - - private String conversation_id; - private String message_id; - private long created_at; - private String task_id; - private String workflow_run_id; - private String id; - private String answer; - private ChatResponse.Metadata metadata; - private ChatResponse.Data data; - private Object[] files; - - public static class Data { - private Usage usage; - } - - public static class Metadata { - private String id; - private String node_id; - private String node_type; - private String title; - private String index; - private String predecessor_node_id; - private String inputs; - private String created_at; - private String extras; - } - - public static class Usage { - private int prompt_tokens; - private String prompt_unit_price; - private String prompt_price_unit; - private String prompt_price; - private int completion_tokens; - private String completion_unit_price; - private String completion_price_unit; - private String completion_price; - private int total_tokens; - private String total_price; - private String currency; - private double latency; - } -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawFeedback.java b/src/main/java/com/gxwebsoft/law/entity/LawFeedback.java deleted file mode 100644 index 11c97e8..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawFeedback.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * - * - * @author LX - * @since 2025-05-06 10:27:16 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawFeedback对象", description = "") -@TableName("law_feedback") -public class LawFeedback implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer userId; - - private String title; - - private String company; - - private String address; - - private String date; - - private String pics; - - private String video; - - private String content; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalAppraisal.java b/src/main/java/com/gxwebsoft/law/entity/LawLegalAppraisal.java deleted file mode 100644 index 42beb3a..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalAppraisal.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.*; - -import java.time.LocalDateTime; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 司法鉴定申请 - * - * @author LX - * @since 2025-05-06 17:11:41 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalAppraisal对象", description = "司法鉴定申请") -@TableName("law_legal_appraisal") -public class LawLegalAppraisal implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer userId; - - private String name; - - private Integer gender; - - private Integer isNew; - - private String phone; - - private String birthday; - - private String idCard; - - private String fileList; - - private String standard; - - private String application; - - @ApiModelProperty(value = "住所地址") - private String liveAddress; - - @ApiModelProperty(value = "户籍地址") - private String householdAddress; - - private Integer orgId; - - @ApiModelProperty(value = "说明") - private String content; - - @ApiModelProperty(value = "详情") - private String detail; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - - @TableField(exist = false) - private LawOrg lawOrg; -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalArbitrate.java b/src/main/java/com/gxwebsoft/law/entity/LawLegalArbitrate.java deleted file mode 100644 index 3a53056..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalArbitrate.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 法律仲裁申请 - * - * @author LX - * @since 2025-05-06 15:56:26 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalArbitrate对象", description = "法律仲裁申请") -@TableName("law_legal_arbitrate") -public class LawLegalArbitrate implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer userId; - - private String name; - - private Integer gender; - - private String phone; - - private String birthday; - - private String idCard; - - private String nation; - - @ApiModelProperty(value = "住所地址") - private String liveAddress; - - @ApiModelProperty(value = "户籍地址") - private String householdAddress; - - @ApiModelProperty(value = "事实和理由") - private String content; - - @ApiModelProperty(value = "仲裁请求") - private String requestContent; - - @ApiModelProperty(value = "被申请人") - private String beenName; - - @ApiModelProperty(value = "被申请人地址") - private String beenAddress; - - @ApiModelProperty(value = "被申请人代码") - private String beenCode; - - @ApiModelProperty(value = "被申请人联系方式") - private String beenPhone; - - @ApiModelProperty(value = "法定代表人") - private String beenLegalName; - - @ApiModelProperty(value = "职位") - private String beenLegalPosition; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalCalConfig.java b/src/main/java/com/gxwebsoft/law/entity/LawLegalCalConfig.java deleted file mode 100644 index e348809..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalCalConfig.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 法律计算器配置 - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalCalConfig对象", description = "法律计算器配置") -@TableName("law_legal_cal_config") -public class LawLegalCalConfig implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer typeId; - - private String title; - - @ApiModelProperty(value = "类型") - private String type; - - @ApiModelProperty(value = "内容") - private String answer; - - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalCalContent.java b/src/main/java/com/gxwebsoft/law/entity/LawLegalCalContent.java deleted file mode 100644 index d2d40fe..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalCalContent.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 用户填写法律计算器内容 - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalCalContent对象", description = "用户填写法律计算器内容") -@TableName("law_legal_cal_content") -public class LawLegalCalContent implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer groupId; - - private String content; - - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalDocConfig.java b/src/main/java/com/gxwebsoft/law/entity/LawLegalDocConfig.java deleted file mode 100644 index 85ae235..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalDocConfig.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.*; - -import java.time.LocalDateTime; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 法律文书配置 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalDocConfig对象", description = "法律文书配置") -@TableName("law_legal_doc_config") -public class LawLegalDocConfig implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer typeId; - - private String title; - - @ApiModelProperty(value = "类型") - private String type; - - @ApiModelProperty(value = "内容") - private String answer; - - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - - @TableField(exist = false) - private String userContent; - - @TableField(exist = false) - private String email; - - @TableField(exist = false) - private String file; -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalDocContent.java b/src/main/java/com/gxwebsoft/law/entity/LawLegalDocContent.java deleted file mode 100644 index 853fd2e..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalDocContent.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 用户填写法律文书内容 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalDocContent对象", description = "用户填写法律文书内容") -@TableName("law_legal_doc_content") -public class LawLegalDocContent implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer groupId; - - private String content; - - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckConfig.java b/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckConfig.java deleted file mode 100644 index a453959..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckConfig.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 企业法制体检配置 - * - * @author LX - * @since 2025-04-17 17:51:15 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalOrgCheckConfig对象", description = "企业法制体检配置") -@TableName("law_legal_org_check_config") -public class LawLegalOrgCheckConfig implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer typeId; - - private String title; - - @ApiModelProperty(value = "类型") - private String type; - - @ApiModelProperty(value = "内容") - private String answer; - - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckConfigSuggest.java b/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckConfigSuggest.java deleted file mode 100644 index e1b079f..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckConfigSuggest.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.*; - -import java.time.LocalDateTime; -import java.io.Serializable; -import java.util.List; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 法律意见书配置 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalOrgCheckConfigSuggest对象", description = "法律意见书配置") -@TableName("law_legal_org_check_config_suggest") -public class LawLegalOrgCheckConfigSuggest implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer typeId; - - private Integer parentId; - - private String title; - - @ApiModelProperty(value = "类型") - private String type; - - @ApiModelProperty(value = "内容") - private String answer; - - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - - @TableField(exist = false) - private List children; - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckContentSuggest.java b/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckContentSuggest.java deleted file mode 100644 index 647bd8a..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckContentSuggest.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 用户填写法律意见书内容 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalOrgCheckContentSuggest对象", description = "用户填写法律意见书内容") -@TableName("law_legal_org_check_content_suggest") -public class LawLegalOrgCheckContentSuggest implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer groupId; - - private String content; - - private String aiContent; - - private String title; - - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawNotaryList.java b/src/main/java/com/gxwebsoft/law/entity/LawNotaryList.java deleted file mode 100644 index 59c2cf6..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawNotaryList.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.*; - -import java.time.LocalDateTime; -import java.io.Serializable; - -import com.gxwebsoft.common.system.entity.User; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 公证列表 - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawNotaryList对象", description = "公证列表") -@TableName("law_notary_list") -public class LawNotaryList implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer uid; - - private String nameList; - - private String type; - - @ApiModelProperty(value = "公证事项") - private String content; - - @ApiModelProperty(value = "用途") - private String application; - - @ApiModelProperty(value = "使用地") - private String address; - - @ApiModelProperty(value = "译文") - private String translate; - - @ApiModelProperty(value = "文件列表") - private String fileList; - - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - - @TableField(exist = false) - private User user; - -} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawOrgCheckLog.java b/src/main/java/com/gxwebsoft/law/entity/LawOrgCheckLog.java deleted file mode 100644 index 31a2d2e..0000000 --- a/src/main/java/com/gxwebsoft/law/entity/LawOrgCheckLog.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.gxwebsoft.law.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 企业法制检查报告 - * - * @author LX - * @since 2025-04-20 07:43:09 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawOrgCheckLog对象", description = "企业法制检查报告") -@TableName("law_org_check_log") -public class LawOrgCheckLog implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private String companyName; - - @ApiModelProperty(value = "来访单位") - private String checkCompanyName; - - private String checkDate; - - private String type; - - @ApiModelProperty(value = "本月检查次数") - private Integer checkNum; - - private String comment; - - private String remark; - - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "创建时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawFeedbackMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawFeedbackMapper.java deleted file mode 100644 index 091cb54..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawFeedbackMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawFeedback; -import com.gxwebsoft.law.param.LawFeedbackParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * Mapper - * - * @author LX - * @since 2025-05-06 10:27:16 - */ -public interface LawFeedbackMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawFeedbackParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawFeedbackParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalAidMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalAidMapper.java deleted file mode 100644 index 979ab08..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalAidMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalAid; -import com.gxwebsoft.law.param.LawLegalAidParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 法律援助申请Mapper - * - * @author LX - * @since 2025-04-17 17:33:28 - */ -public interface LawLegalAidMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalAidParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalAidParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalAppraisalMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalAppraisalMapper.java deleted file mode 100644 index 9826b3a..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalAppraisalMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalAppraisal; -import com.gxwebsoft.law.param.LawLegalAppraisalParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 司法鉴定申请Mapper - * - * @author LX - * @since 2025-05-06 17:11:41 - */ -public interface LawLegalAppraisalMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalAppraisalParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalAppraisalParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalArbitrateMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalArbitrateMapper.java deleted file mode 100644 index e6a5e83..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalArbitrateMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalArbitrate; -import com.gxwebsoft.law.param.LawLegalArbitrateParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 法律仲裁申请Mapper - * - * @author LX - * @since 2025-05-06 15:56:26 - */ -public interface LawLegalArbitrateMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalArbitrateParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalArbitrateParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalCalConfigMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalCalConfigMapper.java deleted file mode 100644 index 68e5e82..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalCalConfigMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalCalConfig; -import com.gxwebsoft.law.param.LawLegalCalConfigParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 法律计算器配置Mapper - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -public interface LawLegalCalConfigMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalCalConfigParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalCalConfigParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalCalContentMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalCalContentMapper.java deleted file mode 100644 index 3488367..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalCalContentMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalCalContent; -import com.gxwebsoft.law.param.LawLegalCalContentParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 用户填写法律计算器内容Mapper - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -public interface LawLegalCalContentMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalCalContentParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalCalContentParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalCalTypeMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalCalTypeMapper.java deleted file mode 100644 index 2adae06..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalCalTypeMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalCalType; -import com.gxwebsoft.law.param.LawLegalCalTypeParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 法律计算器配置Mapper - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -public interface LawLegalCalTypeMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalCalTypeParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalCalTypeParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalDocConfigMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalDocConfigMapper.java deleted file mode 100644 index 19cb755..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalDocConfigMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalDocConfig; -import com.gxwebsoft.law.param.LawLegalDocConfigParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 法律文书配置Mapper - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -public interface LawLegalDocConfigMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalDocConfigParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalDocConfigParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalDocContentMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalDocContentMapper.java deleted file mode 100644 index 1cb051c..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalDocContentMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalDocContent; -import com.gxwebsoft.law.param.LawLegalDocContentParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 用户填写法律文书内容Mapper - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -public interface LawLegalDocContentMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalDocContentParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalDocContentParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalDocTypeMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalDocTypeMapper.java deleted file mode 100644 index 5aeb487..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalDocTypeMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalDocType; -import com.gxwebsoft.law.param.LawLegalDocTypeParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 法律文书配置Mapper - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -public interface LawLegalDocTypeMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalDocTypeParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalDocTypeParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckConfigMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckConfigMapper.java deleted file mode 100644 index 261c681..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckConfigMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalOrgCheckConfig; -import com.gxwebsoft.law.param.LawLegalOrgCheckConfigParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 企业法制体检配置Mapper - * - * @author LX - * @since 2025-04-17 17:51:15 - */ -public interface LawLegalOrgCheckConfigMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalOrgCheckConfigParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalOrgCheckConfigParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckConfigSuggestMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckConfigSuggestMapper.java deleted file mode 100644 index e6a9edc..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckConfigSuggestMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalOrgCheckConfigSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckConfigSuggestParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 法律意见书配置Mapper - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -public interface LawLegalOrgCheckConfigSuggestMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalOrgCheckConfigSuggestParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalOrgCheckConfigSuggestParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckContentMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckContentMapper.java deleted file mode 100644 index 6031823..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckContentMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalOrgCheckContent; -import com.gxwebsoft.law.param.LawLegalOrgCheckContentParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 用户填写企业法制体检内容Mapper - * - * @author LX - * @since 2025-04-17 17:48:54 - */ -public interface LawLegalOrgCheckContentMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalOrgCheckContentParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalOrgCheckContentParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckContentSuggestMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckContentSuggestMapper.java deleted file mode 100644 index 283685d..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckContentSuggestMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalOrgCheckContentSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckContentSuggestParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 用户填写法律意见书内容Mapper - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -public interface LawLegalOrgCheckContentSuggestMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalOrgCheckContentSuggestParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalOrgCheckContentSuggestParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckTypeMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckTypeMapper.java deleted file mode 100644 index b2110bf..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckTypeMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalOrgCheckType; -import com.gxwebsoft.law.param.LawLegalOrgCheckTypeParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 企业法制体检配置Mapper - * - * @author LX - * @since 2025-04-17 18:04:46 - */ -public interface LawLegalOrgCheckTypeMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalOrgCheckTypeParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalOrgCheckTypeParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckTypeSuggestMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckTypeSuggestMapper.java deleted file mode 100644 index a9069d9..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawLegalOrgCheckTypeSuggestMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawLegalOrgCheckTypeSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckTypeSuggestParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 法律意见书配置Mapper - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -public interface LawLegalOrgCheckTypeSuggestMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawLegalOrgCheckTypeSuggestParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawLegalOrgCheckTypeSuggestParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawNotaryConfigMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawNotaryConfigMapper.java deleted file mode 100644 index 294ccb5..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawNotaryConfigMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawNotaryConfig; -import com.gxwebsoft.law.param.LawNotaryConfigParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 公证配置Mapper - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -public interface LawNotaryConfigMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawNotaryConfigParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawNotaryConfigParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawNotaryListMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawNotaryListMapper.java deleted file mode 100644 index 9c09fa9..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawNotaryListMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawNotaryList; -import com.gxwebsoft.law.param.LawNotaryListParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 公证列表Mapper - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -public interface LawNotaryListMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawNotaryListParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawNotaryListParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawOrgCheckLogMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawOrgCheckLogMapper.java deleted file mode 100644 index 2727e46..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawOrgCheckLogMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawOrgCheckLog; -import com.gxwebsoft.law.param.LawOrgCheckLogParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 企业法制检查报告Mapper - * - * @author LX - * @since 2025-04-20 07:43:09 - */ -public interface LawOrgCheckLogMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawOrgCheckLogParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawOrgCheckLogParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawOrgMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawOrgMapper.java deleted file mode 100644 index 0915659..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawOrgMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawOrg; -import com.gxwebsoft.law.param.LawOrgParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 机构Mapper - * - * @author LX - * @since 2025-04-14 00:35:34 - */ -public interface LawOrgMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawOrgParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawOrgParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/LawOrgPeopleMapper.java b/src/main/java/com/gxwebsoft/law/mapper/LawOrgPeopleMapper.java deleted file mode 100644 index c560195..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/LawOrgPeopleMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.law.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.law.entity.LawOrgPeople; -import com.gxwebsoft.law.param.LawOrgPeopleParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * Mapper - * - * @author LX - * @since 2025-04-14 01:31:54 - */ -public interface LawOrgPeopleMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") LawOrgPeopleParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") LawOrgPeopleParam param); - -} diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawFeedbackMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawFeedbackMapper.xml deleted file mode 100644 index 52d5135..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawFeedbackMapper.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - SELECT a.* - FROM law_feedback a - - - AND a.id = #{param.id} - - - AND a.user_id = #{param.userId} - - - AND a.title LIKE CONCAT('%', #{param.title}, '%') - - - AND a.company LIKE CONCAT('%', #{param.company}, '%') - - - AND a.address LIKE CONCAT('%', #{param.address}, '%') - - - AND a.date LIKE CONCAT('%', #{param.date}, '%') - - - AND a.pics LIKE CONCAT('%', #{param.pics}, '%') - - - AND a.video LIKE CONCAT('%', #{param.video}, '%') - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalAppraisalMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalAppraisalMapper.xml deleted file mode 100644 index 440b212..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalAppraisalMapper.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - SELECT a.* - FROM law_legal_appraisal a - - - AND a.id = #{param.id} - - - AND a.user_id = #{param.userId} - - - AND a.name LIKE CONCAT('%', #{param.name}, '%') - - - AND a.gender = #{param.gender} - - - AND a.phone LIKE CONCAT('%', #{param.phone}, '%') - - - AND a.birthday LIKE CONCAT('%', #{param.birthday}, '%') - - - AND a.id_card LIKE CONCAT('%', #{param.idCard}, '%') - - - AND a.live_address LIKE CONCAT('%', #{param.liveAddress}, '%') - - - AND a.household_address LIKE CONCAT('%', #{param.householdAddress}, '%') - - - AND a.org_id = #{param.orgId} - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.detail LIKE CONCAT('%', #{param.detail}, '%') - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - ORDER BY a.create_time DESC - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalArbitrateMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalArbitrateMapper.xml deleted file mode 100644 index ec7ccb0..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalArbitrateMapper.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - SELECT a.* - FROM law_legal_arbitrate a - - - AND a.id = #{param.id} - - - AND a.user_id = #{param.userId} - - - AND a.name LIKE CONCAT('%', #{param.name}, '%') - - - AND a.gender = #{param.gender} - - - AND a.phone LIKE CONCAT('%', #{param.phone}, '%') - - - AND a.birthday LIKE CONCAT('%', #{param.birthday}, '%') - - - AND a.id_card LIKE CONCAT('%', #{param.idCard}, '%') - - - AND a.live_address LIKE CONCAT('%', #{param.liveAddress}, '%') - - - AND a.household_address LIKE CONCAT('%', #{param.householdAddress}, '%') - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.request_content LIKE CONCAT('%', #{param.requestContent}, '%') - - - AND a.been_name LIKE CONCAT('%', #{param.beenName}, '%') - - - AND a.been_address LIKE CONCAT('%', #{param.beenAddress}, '%') - - - AND a.been_code LIKE CONCAT('%', #{param.beenCode}, '%') - - - AND a.been_phone LIKE CONCAT('%', #{param.beenPhone}, '%') - - - AND a.been_legal_name LIKE CONCAT('%', #{param.beenLegalName}, '%') - - - AND a.been_legal_position LIKE CONCAT('%', #{param.beenLegalPosition}, '%') - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND ( - a.name LIKE CONCAT('%', #{param.keywords}, '%') - OR a.phone LIKE CONCAT('%', #{param.keywords}, '%') - OR a.id_card LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - ORDER BY a.create_time DESC - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalCalConfigMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalCalConfigMapper.xml deleted file mode 100644 index 0111948..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalCalConfigMapper.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - SELECT a.* - FROM law_legal_cal_config a - - - AND a.id = #{param.id} - - - AND a.type_id = #{param.typeId} - - - AND a.title LIKE CONCAT('%', #{param.title}, '%') - - - AND a.type LIKE CONCAT('%', #{param.type}, '%') - - - AND a.answer LIKE CONCAT('%', #{param.answer}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckConfigMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckConfigMapper.xml deleted file mode 100644 index c0d6646..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckConfigMapper.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - SELECT a.* - FROM law_legal_org_check_config a - - - AND a.id = #{param.id} - - - AND a.type_id = #{param.typeId} - - - AND a.title LIKE CONCAT('%', #{param.title}, '%') - - - AND a.type LIKE CONCAT('%', #{param.type}, '%') - - - AND a.answer LIKE CONCAT('%', #{param.answer}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckConfigSuggestMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckConfigSuggestMapper.xml deleted file mode 100644 index c6f4bef..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckConfigSuggestMapper.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - SELECT a.* - FROM law_legal_org_check_config_suggest a - - - AND a.id = #{param.id} - - - AND a.type_id = #{param.typeId} - - - AND a.parent_id = #{param.parentId} - - - AND a.title LIKE CONCAT('%', #{param.title}, '%') - - - AND a.type LIKE CONCAT('%', #{param.type}, '%') - - - AND a.answer LIKE CONCAT('%', #{param.answer}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckContentMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckContentMapper.xml deleted file mode 100644 index 4235089..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckContentMapper.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - SELECT a.* - FROM law_legal_org_check_content a - - - AND a.id = #{param.id} - - - AND a.group_id = #{param.groupId} - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckContentSuggestMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckContentSuggestMapper.xml deleted file mode 100644 index 62d38bc..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckContentSuggestMapper.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - SELECT a.* - FROM law_legal_org_check_content_suggest a - - - AND a.id = #{param.id} - - - AND a.group_id = #{param.groupId} - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawNotaryConfigMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawNotaryConfigMapper.xml deleted file mode 100644 index 9c64dc7..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawNotaryConfigMapper.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - SELECT a.* - FROM law_notary_config a - - - AND a.id = #{param.id} - - - AND a.title LIKE CONCAT('%', #{param.title}, '%') - - - AND a.config_list LIKE CONCAT('%', #{param.configList}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawNotaryListMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawNotaryListMapper.xml deleted file mode 100644 index 7bdf96c..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawNotaryListMapper.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - SELECT a.* - FROM law_notary_list a - - - AND a.id = #{param.id} - - - AND a.uid = #{param.uid} - - - AND a.name_list LIKE CONCAT('%', #{param.nameList}, '%') - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.application LIKE CONCAT('%', #{param.application}, '%') - - - AND a.address LIKE CONCAT('%', #{param.address}, '%') - - - AND a.translate LIKE CONCAT('%', #{param.translate}, '%') - - - AND a.file_list LIKE CONCAT('%', #{param.fileList}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - ORDER BY a.id DESC - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawOrgCheckLogMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawOrgCheckLogMapper.xml deleted file mode 100644 index 52a2081..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawOrgCheckLogMapper.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - SELECT a.* - FROM law_org_check_log a - - - AND a.id = #{param.id} - - - AND a.company_name LIKE CONCAT('%', #{param.companyName}, '%') - - - AND a.check_company_name LIKE CONCAT('%', #{param.checkCompanyName}, '%') - - - AND a.check_date LIKE CONCAT('%', #{param.checkDate}, '%') - - - AND a.type LIKE CONCAT('%', #{param.type}, '%') - - - AND a.check_num = #{param.checkNum} - - - AND a.comment LIKE CONCAT('%', #{param.comment}, '%') - - - AND a.remark LIKE CONCAT('%', #{param.remark}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawOrgMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawOrgMapper.xml deleted file mode 100644 index 177f65f..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawOrgMapper.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - SELECT a.* - FROM law_org a - - - AND a.id = #{param.id} - - - AND a.title LIKE CONCAT('%', #{param.title}, '%') - - - AND a.type = #{param.type} - - - AND a.province_id = #{param.provinceId} - - - AND a.city_id = #{param.cityId} - - - AND a.area_id = #{param.areaId} - - - AND a.lat LIKE CONCAT('%', #{param.lat}, '%') - - - AND a.lng LIKE CONCAT('%', #{param.lng}, '%') - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.title LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawOrgPeopleMapper.xml b/src/main/java/com/gxwebsoft/law/mapper/xml/LawOrgPeopleMapper.xml deleted file mode 100644 index a02f573..0000000 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawOrgPeopleMapper.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - SELECT a.* - FROM law_org_people a - - - AND a.id = #{param.id} - - - AND a.org_id = #{param.orgId} - - - AND a.name LIKE CONCAT('%', #{param.name}, '%') - - - AND a.phone LIKE CONCAT('%', #{param.phone}, '%') - - - AND a.position LIKE CONCAT('%', #{param.position}, '%') - - - AND a.type LIKE CONCAT('%', #{param.type}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - AND (a.name LIKE CONCAT('%', #{param.keywords}, '%') - ) - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalAidParam.java b/src/main/java/com/gxwebsoft/law/param/LawLegalAidParam.java deleted file mode 100644 index 7217158..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalAidParam.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 法律援助申请查询参数 - * - * @author LX - * @since 2025-04-17 17:33:28 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalAidParam对象", description = "法律援助申请查询参数") -public class LawLegalAidParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - private String name; - - @QueryField(type = QueryType.EQ) - private Integer gender; - - private String phone; - - private String birthday; - - private String idCard; - - @ApiModelProperty(value = "住所地址") - private String liveAddress; - - @ApiModelProperty(value = "户籍地址") - private String householdAdderss; - - @ApiModelProperty(value = "说明") - private String content; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalArbitrateParam.java b/src/main/java/com/gxwebsoft/law/param/LawLegalArbitrateParam.java deleted file mode 100644 index 5dd62bd..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalArbitrateParam.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 法律仲裁申请查询参数 - * - * @author LX - * @since 2025-05-06 15:56:26 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalArbitrateParam对象", description = "法律仲裁申请查询参数") -public class LawLegalArbitrateParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - private String name; - - @QueryField(type = QueryType.EQ) - private Integer gender; - - private String phone; - - private String birthday; - - private String idCard; - - @ApiModelProperty(value = "住所地址") - private String liveAddress; - - @ApiModelProperty(value = "户籍地址") - private String householdAddress; - - @ApiModelProperty(value = "事实和理由") - private String content; - - @ApiModelProperty(value = "仲裁请求") - private String requestContent; - - @ApiModelProperty(value = "被申请人") - private String beenName; - - @ApiModelProperty(value = "被申请人地址") - private String beenAddress; - - @ApiModelProperty(value = "被申请人代码") - private String beenCode; - - @ApiModelProperty(value = "被申请人联系方式") - private String beenPhone; - - @ApiModelProperty(value = "法定代表人") - private String beenLegalName; - - @ApiModelProperty(value = "职位") - private String beenLegalPosition; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalCalConfigParam.java b/src/main/java/com/gxwebsoft/law/param/LawLegalCalConfigParam.java deleted file mode 100644 index daa195d..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalCalConfigParam.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 法律计算器配置查询参数 - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalCalConfigParam对象", description = "法律计算器配置查询参数") -public class LawLegalCalConfigParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @QueryField(type = QueryType.EQ) - private Integer typeId; - - private String title; - - @ApiModelProperty(value = "类型") - private String type; - - @ApiModelProperty(value = "内容") - private String answer; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalDocConfigParam.java b/src/main/java/com/gxwebsoft/law/param/LawLegalDocConfigParam.java deleted file mode 100644 index 45b64fb..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalDocConfigParam.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 法律文书配置查询参数 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalDocConfigParam对象", description = "法律文书配置查询参数") -public class LawLegalDocConfigParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @QueryField(type = QueryType.EQ) - private Integer typeId; - - private String title; - - @ApiModelProperty(value = "类型") - private String type; - - @ApiModelProperty(value = "内容") - private String answer; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalDocContentParam.java b/src/main/java/com/gxwebsoft/law/param/LawLegalDocContentParam.java deleted file mode 100644 index 4b4f492..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalDocContentParam.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 用户填写法律文书内容查询参数 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalDocContentParam对象", description = "用户填写法律文书内容查询参数") -public class LawLegalDocContentParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @QueryField(type = QueryType.EQ) - private Integer groupId; - - private String content; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckConfigParam.java b/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckConfigParam.java deleted file mode 100644 index 0804fa6..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckConfigParam.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 企业法制体检配置查询参数 - * - * @author LX - * @since 2025-04-17 17:51:15 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalOrgCheckConfigParam对象", description = "企业法制体检配置查询参数") -public class LawLegalOrgCheckConfigParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - private Integer typeId; - - private String title; - - @ApiModelProperty(value = "类型") - private String type; - - @ApiModelProperty(value = "内容") - private String answer; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckConfigSuggestParam.java b/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckConfigSuggestParam.java deleted file mode 100644 index 0179528..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckConfigSuggestParam.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 法律意见书配置查询参数 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalOrgCheckConfigSuggestParam对象", description = "法律意见书配置查询参数") -public class LawLegalOrgCheckConfigSuggestParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @QueryField(type = QueryType.EQ) - private Integer typeId; - - private Integer parentId; - - private String title; - - @ApiModelProperty(value = "类型") - private String type; - - @ApiModelProperty(value = "内容") - private String answer; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckContentParam.java b/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckContentParam.java deleted file mode 100644 index 8c846a9..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckContentParam.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 用户填写企业法制体检内容查询参数 - * - * @author LX - * @since 2025-04-17 17:48:54 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalOrgCheckContentParam对象", description = "用户填写企业法制体检内容查询参数") -public class LawLegalOrgCheckContentParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @QueryField(type = QueryType.EQ) - private Integer groupId; - - private String content; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckContentSuggestParam.java b/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckContentSuggestParam.java deleted file mode 100644 index 4dbaf37..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckContentSuggestParam.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 用户填写法律意见书内容查询参数 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalOrgCheckContentSuggestParam对象", description = "用户填写法律意见书内容查询参数") -public class LawLegalOrgCheckContentSuggestParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @QueryField(type = QueryType.EQ) - private Integer groupId; - - private String content; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawNotaryListParam.java b/src/main/java/com/gxwebsoft/law/param/LawNotaryListParam.java deleted file mode 100644 index c88d212..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawNotaryListParam.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 公证列表查询参数 - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawNotaryListParam对象", description = "公证列表查询参数") -public class LawNotaryListParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - @QueryField(type = QueryType.EQ) - private Integer uid; - - private String nameList; - - @ApiModelProperty(value = "公证事项") - private String content; - - @ApiModelProperty(value = "用途") - private String application; - - @ApiModelProperty(value = "使用地") - private String address; - - @ApiModelProperty(value = "译文") - private String translate; - - @ApiModelProperty(value = "文件列表") - private String fileList; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/param/LawOrgCheckLogParam.java b/src/main/java/com/gxwebsoft/law/param/LawOrgCheckLogParam.java deleted file mode 100644 index 33e3ae0..0000000 --- a/src/main/java/com/gxwebsoft/law/param/LawOrgCheckLogParam.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gxwebsoft.law.param; - -import java.math.BigDecimal; -import com.gxwebsoft.common.core.annotation.QueryField; -import com.gxwebsoft.common.core.annotation.QueryType; -import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 企业法制检查报告查询参数 - * - * @author LX - * @since 2025-04-20 07:43:09 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawOrgCheckLogParam对象", description = "企业法制检查报告查询参数") -public class LawOrgCheckLogParam extends BaseParam { - private static final long serialVersionUID = 1L; - - @QueryField(type = QueryType.EQ) - private Integer id; - - private String companyName; - - @ApiModelProperty(value = "来访单位") - private String checkCompanyName; - - private String checkDate; - - private String type; - - @ApiModelProperty(value = "本月检查次数") - @QueryField(type = QueryType.EQ) - private Integer checkNum; - - private String comment; - - private String remark; - - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawFeedbackService.java b/src/main/java/com/gxwebsoft/law/service/LawFeedbackService.java deleted file mode 100644 index bc18c56..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawFeedbackService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawFeedback; -import com.gxwebsoft.law.param.LawFeedbackParam; - -import java.util.List; - -/** - * Service - * - * @author LX - * @since 2025-05-06 10:27:16 - */ -public interface LawFeedbackService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawFeedbackParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawFeedbackParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawFeedback - */ - LawFeedback getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalAidService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalAidService.java deleted file mode 100644 index 6dc29b0..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalAidService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalAid; -import com.gxwebsoft.law.param.LawLegalAidParam; - -import java.util.List; - -/** - * 法律援助申请Service - * - * @author LX - * @since 2025-04-17 17:33:28 - */ -public interface LawLegalAidService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalAidParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalAidParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalAid - */ - LawLegalAid getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalAppraisalService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalAppraisalService.java deleted file mode 100644 index cf45e3b..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalAppraisalService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalAppraisal; -import com.gxwebsoft.law.param.LawLegalAppraisalParam; - -import java.util.List; - -/** - * 司法鉴定申请Service - * - * @author LX - * @since 2025-05-06 17:11:41 - */ -public interface LawLegalAppraisalService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalAppraisalParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalAppraisalParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalAppraisal - */ - LawLegalAppraisal getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalArbitrateService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalArbitrateService.java deleted file mode 100644 index cb3a6ef..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalArbitrateService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalArbitrate; -import com.gxwebsoft.law.param.LawLegalArbitrateParam; - -import java.util.List; - -/** - * 法律仲裁申请Service - * - * @author LX - * @since 2025-05-06 15:56:26 - */ -public interface LawLegalArbitrateService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalArbitrateParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalArbitrateParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalArbitrate - */ - LawLegalArbitrate getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalCalConfigService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalCalConfigService.java deleted file mode 100644 index e45ba3c..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalCalConfigService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalCalConfig; -import com.gxwebsoft.law.param.LawLegalCalConfigParam; - -import java.util.List; - -/** - * 法律计算器配置Service - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -public interface LawLegalCalConfigService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalCalConfigParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalCalConfigParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalCalConfig - */ - LawLegalCalConfig getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalCalContentService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalCalContentService.java deleted file mode 100644 index 1e96610..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalCalContentService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalCalContent; -import com.gxwebsoft.law.param.LawLegalCalContentParam; - -import java.util.List; - -/** - * 用户填写法律计算器内容Service - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -public interface LawLegalCalContentService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalCalContentParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalCalContentParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalCalContent - */ - LawLegalCalContent getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalCalTypeService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalCalTypeService.java deleted file mode 100644 index fe4efff..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalCalTypeService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalCalType; -import com.gxwebsoft.law.param.LawLegalCalTypeParam; - -import java.util.List; - -/** - * 法律计算器配置Service - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -public interface LawLegalCalTypeService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalCalTypeParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalCalTypeParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalCalType - */ - LawLegalCalType getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalDocConfigService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalDocConfigService.java deleted file mode 100644 index bc11a15..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalDocConfigService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalDocConfig; -import com.gxwebsoft.law.param.LawLegalDocConfigParam; - -import java.util.List; - -/** - * 法律文书配置Service - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -public interface LawLegalDocConfigService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalDocConfigParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalDocConfigParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalDocConfig - */ - LawLegalDocConfig getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalDocContentService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalDocContentService.java deleted file mode 100644 index 3a66710..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalDocContentService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalDocContent; -import com.gxwebsoft.law.param.LawLegalDocContentParam; - -import java.util.List; - -/** - * 用户填写法律文书内容Service - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -public interface LawLegalDocContentService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalDocContentParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalDocContentParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalDocContent - */ - LawLegalDocContent getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalDocTypeService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalDocTypeService.java deleted file mode 100644 index bd08f8f..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalDocTypeService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalDocType; -import com.gxwebsoft.law.param.LawLegalDocTypeParam; - -import java.util.List; - -/** - * 法律文书配置Service - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -public interface LawLegalDocTypeService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalDocTypeParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalDocTypeParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalDocType - */ - LawLegalDocType getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckConfigService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckConfigService.java deleted file mode 100644 index 31905eb..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckConfigService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalOrgCheckConfig; -import com.gxwebsoft.law.param.LawLegalOrgCheckConfigParam; - -import java.util.List; - -/** - * 企业法制体检配置Service - * - * @author LX - * @since 2025-04-17 17:51:15 - */ -public interface LawLegalOrgCheckConfigService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalOrgCheckConfigParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalOrgCheckConfigParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalOrgCheckConfig - */ - LawLegalOrgCheckConfig getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckConfigSuggestService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckConfigSuggestService.java deleted file mode 100644 index 389042f..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckConfigSuggestService.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalOrgCheckConfigSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckConfigSuggestParam; - -import java.util.List; - -/** - * 法律意见书配置Service - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -public interface LawLegalOrgCheckConfigSuggestService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalOrgCheckConfigSuggestParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalOrgCheckConfigSuggestParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalOrgCheckConfigSuggest - */ - LawLegalOrgCheckConfigSuggest getByIdRel(Integer id); - - List listByLevel(LawLegalOrgCheckConfigSuggestParam param); -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckContentService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckContentService.java deleted file mode 100644 index 4a32478..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckContentService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalOrgCheckContent; -import com.gxwebsoft.law.param.LawLegalOrgCheckContentParam; - -import java.util.List; - -/** - * 用户填写企业法制体检内容Service - * - * @author LX - * @since 2025-04-17 17:48:54 - */ -public interface LawLegalOrgCheckContentService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalOrgCheckContentParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalOrgCheckContentParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalOrgCheckContent - */ - LawLegalOrgCheckContent getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckContentSuggestService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckContentSuggestService.java deleted file mode 100644 index a20b02e..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckContentSuggestService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalOrgCheckContentSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckContentSuggestParam; - -import java.util.List; - -/** - * 用户填写法律意见书内容Service - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -public interface LawLegalOrgCheckContentSuggestService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalOrgCheckContentSuggestParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalOrgCheckContentSuggestParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalOrgCheckContentSuggest - */ - LawLegalOrgCheckContentSuggest getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckTypeService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckTypeService.java deleted file mode 100644 index 9a86a07..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckTypeService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalOrgCheckType; -import com.gxwebsoft.law.param.LawLegalOrgCheckTypeParam; - -import java.util.List; - -/** - * 企业法制体检配置Service - * - * @author LX - * @since 2025-04-17 18:04:46 - */ -public interface LawLegalOrgCheckTypeService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalOrgCheckTypeParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalOrgCheckTypeParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalOrgCheckType - */ - LawLegalOrgCheckType getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckTypeSuggestService.java b/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckTypeSuggestService.java deleted file mode 100644 index 40b3b15..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawLegalOrgCheckTypeSuggestService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawLegalOrgCheckTypeSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckTypeSuggestParam; - -import java.util.List; - -/** - * 法律意见书配置Service - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -public interface LawLegalOrgCheckTypeSuggestService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawLegalOrgCheckTypeSuggestParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawLegalOrgCheckTypeSuggestParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawLegalOrgCheckTypeSuggest - */ - LawLegalOrgCheckTypeSuggest getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawNotaryConfigService.java b/src/main/java/com/gxwebsoft/law/service/LawNotaryConfigService.java deleted file mode 100644 index 0cc04b3..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawNotaryConfigService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawNotaryConfig; -import com.gxwebsoft.law.param.LawNotaryConfigParam; - -import java.util.List; - -/** - * 公证配置Service - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -public interface LawNotaryConfigService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawNotaryConfigParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawNotaryConfigParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawNotaryConfig - */ - LawNotaryConfig getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawNotaryListService.java b/src/main/java/com/gxwebsoft/law/service/LawNotaryListService.java deleted file mode 100644 index d5ee672..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawNotaryListService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawNotaryList; -import com.gxwebsoft.law.param.LawNotaryListParam; - -import java.util.List; - -/** - * 公证列表Service - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -public interface LawNotaryListService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawNotaryListParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawNotaryListParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawNotaryList - */ - LawNotaryList getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawOrgCheckLogService.java b/src/main/java/com/gxwebsoft/law/service/LawOrgCheckLogService.java deleted file mode 100644 index 3874f26..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawOrgCheckLogService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawOrgCheckLog; -import com.gxwebsoft.law.param.LawOrgCheckLogParam; - -import java.util.List; - -/** - * 企业法制检查报告Service - * - * @author LX - * @since 2025-04-20 07:43:09 - */ -public interface LawOrgCheckLogService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawOrgCheckLogParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawOrgCheckLogParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawOrgCheckLog - */ - LawOrgCheckLog getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawOrgPeopleService.java b/src/main/java/com/gxwebsoft/law/service/LawOrgPeopleService.java deleted file mode 100644 index b817f4c..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawOrgPeopleService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawOrgPeople; -import com.gxwebsoft.law.param.LawOrgPeopleParam; - -import java.util.List; - -/** - * Service - * - * @author LX - * @since 2025-04-14 01:31:54 - */ -public interface LawOrgPeopleService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawOrgPeopleParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawOrgPeopleParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawOrgPeople - */ - LawOrgPeople getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/LawOrgService.java b/src/main/java/com/gxwebsoft/law/service/LawOrgService.java deleted file mode 100644 index 314e0ee..0000000 --- a/src/main/java/com/gxwebsoft/law/service/LawOrgService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.law.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.entity.LawOrg; -import com.gxwebsoft.law.param.LawOrgParam; - -import java.util.List; - -/** - * 机构Service - * - * @author LX - * @since 2025-04-14 00:35:34 - */ -public interface LawOrgService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(LawOrgParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(LawOrgParam param); - - /** - * 根据id查询 - * - * @param id - * @return LawOrg - */ - LawOrg getByIdRel(Integer id); - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawFeedbackServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawFeedbackServiceImpl.java deleted file mode 100644 index 0bd82c6..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawFeedbackServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawFeedbackMapper; -import com.gxwebsoft.law.service.LawFeedbackService; -import com.gxwebsoft.law.entity.LawFeedback; -import com.gxwebsoft.law.param.LawFeedbackParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * Service实现 - * - * @author LX - * @since 2025-05-06 10:27:16 - */ -@Service -public class LawFeedbackServiceImpl extends ServiceImpl implements LawFeedbackService { - - @Override - public PageResult pageRel(LawFeedbackParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawFeedbackParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawFeedback getByIdRel(Integer id) { - LawFeedbackParam param = new LawFeedbackParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalAidServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalAidServiceImpl.java deleted file mode 100644 index 59a1a31..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalAidServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalAidMapper; -import com.gxwebsoft.law.service.LawLegalAidService; -import com.gxwebsoft.law.entity.LawLegalAid; -import com.gxwebsoft.law.param.LawLegalAidParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 法律援助申请Service实现 - * - * @author LX - * @since 2025-04-17 17:33:28 - */ -@Service -public class LawLegalAidServiceImpl extends ServiceImpl implements LawLegalAidService { - - @Override - public PageResult pageRel(LawLegalAidParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalAidParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalAid getByIdRel(Integer id) { - LawLegalAidParam param = new LawLegalAidParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalAppraisalServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalAppraisalServiceImpl.java deleted file mode 100644 index 6010001..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalAppraisalServiceImpl.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalAppraisalMapper; -import com.gxwebsoft.law.service.LawLegalAppraisalService; -import com.gxwebsoft.law.entity.LawLegalAppraisal; -import com.gxwebsoft.law.param.LawLegalAppraisalParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.service.LawOrgService; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 司法鉴定申请Service实现 - * - * @author LX - * @since 2025-05-06 17:11:41 - */ -@Service -public class LawLegalAppraisalServiceImpl extends ServiceImpl implements LawLegalAppraisalService { - - @Resource - private LawOrgService lawOrgService; - @Override - public PageResult pageRel(LawLegalAppraisalParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - for (LawLegalAppraisal lawLegalAppraisal : list) { - lawLegalAppraisal.setLawOrg(lawOrgService.getById(lawLegalAppraisal.getOrgId())); - } - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalAppraisalParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalAppraisal getByIdRel(Integer id) { - LawLegalAppraisalParam param = new LawLegalAppraisalParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalArbitrateServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalArbitrateServiceImpl.java deleted file mode 100644 index ad39171..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalArbitrateServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalArbitrateMapper; -import com.gxwebsoft.law.service.LawLegalArbitrateService; -import com.gxwebsoft.law.entity.LawLegalArbitrate; -import com.gxwebsoft.law.param.LawLegalArbitrateParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 法律仲裁申请Service实现 - * - * @author LX - * @since 2025-05-06 15:56:26 - */ -@Service -public class LawLegalArbitrateServiceImpl extends ServiceImpl implements LawLegalArbitrateService { - - @Override - public PageResult pageRel(LawLegalArbitrateParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder(" create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalArbitrateParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder(" create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalArbitrate getByIdRel(Integer id) { - LawLegalArbitrateParam param = new LawLegalArbitrateParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalCalConfigServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalCalConfigServiceImpl.java deleted file mode 100644 index d5ec471..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalCalConfigServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalCalConfigMapper; -import com.gxwebsoft.law.service.LawLegalCalConfigService; -import com.gxwebsoft.law.entity.LawLegalCalConfig; -import com.gxwebsoft.law.param.LawLegalCalConfigParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 法律计算器配置Service实现 - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -@Service -public class LawLegalCalConfigServiceImpl extends ServiceImpl implements LawLegalCalConfigService { - - @Override - public PageResult pageRel(LawLegalCalConfigParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time asc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalCalConfigParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time asc"); - return page.sortRecords(list); - } - - @Override - public LawLegalCalConfig getByIdRel(Integer id) { - LawLegalCalConfigParam param = new LawLegalCalConfigParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalCalContentServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalCalContentServiceImpl.java deleted file mode 100644 index b88561e..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalCalContentServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalCalContentMapper; -import com.gxwebsoft.law.service.LawLegalCalContentService; -import com.gxwebsoft.law.entity.LawLegalCalContent; -import com.gxwebsoft.law.param.LawLegalCalContentParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 用户填写法律计算器内容Service实现 - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -@Service -public class LawLegalCalContentServiceImpl extends ServiceImpl implements LawLegalCalContentService { - - @Override - public PageResult pageRel(LawLegalCalContentParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalCalContentParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalCalContent getByIdRel(Integer id) { - LawLegalCalContentParam param = new LawLegalCalContentParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalCalTypeServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalCalTypeServiceImpl.java deleted file mode 100644 index f17f002..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalCalTypeServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalCalTypeMapper; -import com.gxwebsoft.law.service.LawLegalCalTypeService; -import com.gxwebsoft.law.entity.LawLegalCalType; -import com.gxwebsoft.law.param.LawLegalCalTypeParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 法律计算器配置Service实现 - * - * @author LX - * @since 2025-04-17 19:23:47 - */ -@Service -public class LawLegalCalTypeServiceImpl extends ServiceImpl implements LawLegalCalTypeService { - - @Override - public PageResult pageRel(LawLegalCalTypeParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalCalTypeParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalCalType getByIdRel(Integer id) { - LawLegalCalTypeParam param = new LawLegalCalTypeParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalDocConfigServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalDocConfigServiceImpl.java deleted file mode 100644 index b9c0d20..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalDocConfigServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalDocConfigMapper; -import com.gxwebsoft.law.service.LawLegalDocConfigService; -import com.gxwebsoft.law.entity.LawLegalDocConfig; -import com.gxwebsoft.law.param.LawLegalDocConfigParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 法律文书配置Service实现 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Service -public class LawLegalDocConfigServiceImpl extends ServiceImpl implements LawLegalDocConfigService { - - @Override - public PageResult pageRel(LawLegalDocConfigParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time asc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalDocConfigParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time asc"); - return page.sortRecords(list); - } - - @Override - public LawLegalDocConfig getByIdRel(Integer id) { - LawLegalDocConfigParam param = new LawLegalDocConfigParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalDocContentServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalDocContentServiceImpl.java deleted file mode 100644 index 947bb02..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalDocContentServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalDocContentMapper; -import com.gxwebsoft.law.service.LawLegalDocContentService; -import com.gxwebsoft.law.entity.LawLegalDocContent; -import com.gxwebsoft.law.param.LawLegalDocContentParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 用户填写法律文书内容Service实现 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Service -public class LawLegalDocContentServiceImpl extends ServiceImpl implements LawLegalDocContentService { - - @Override - public PageResult pageRel(LawLegalDocContentParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalDocContentParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalDocContent getByIdRel(Integer id) { - LawLegalDocContentParam param = new LawLegalDocContentParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalDocTypeServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalDocTypeServiceImpl.java deleted file mode 100644 index 6b73cae..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalDocTypeServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalDocTypeMapper; -import com.gxwebsoft.law.service.LawLegalDocTypeService; -import com.gxwebsoft.law.entity.LawLegalDocType; -import com.gxwebsoft.law.param.LawLegalDocTypeParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 法律文书配置Service实现 - * - * @author LX - * @since 2025-04-17 19:06:41 - */ -@Service -public class LawLegalDocTypeServiceImpl extends ServiceImpl implements LawLegalDocTypeService { - - @Override - public PageResult pageRel(LawLegalDocTypeParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalDocTypeParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalDocType getByIdRel(Integer id) { - LawLegalDocTypeParam param = new LawLegalDocTypeParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckConfigServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckConfigServiceImpl.java deleted file mode 100644 index 82318ce..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckConfigServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalOrgCheckConfigMapper; -import com.gxwebsoft.law.service.LawLegalOrgCheckConfigService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckConfig; -import com.gxwebsoft.law.param.LawLegalOrgCheckConfigParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 企业法制体检配置Service实现 - * - * @author LX - * @since 2025-04-17 17:51:15 - */ -@Service -public class LawLegalOrgCheckConfigServiceImpl extends ServiceImpl implements LawLegalOrgCheckConfigService { - - @Override - public PageResult pageRel(LawLegalOrgCheckConfigParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time asc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalOrgCheckConfigParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time asc"); - return page.sortRecords(list); - } - - @Override - public LawLegalOrgCheckConfig getByIdRel(Integer id) { - LawLegalOrgCheckConfigParam param = new LawLegalOrgCheckConfigParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckConfigSuggestServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckConfigSuggestServiceImpl.java deleted file mode 100644 index 7711030..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckConfigSuggestServiceImpl.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalOrgCheckConfigSuggestMapper; -import com.gxwebsoft.law.service.LawLegalOrgCheckConfigSuggestService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckConfigSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckConfigSuggestParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 法律意见书配置Service实现 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Service -public class LawLegalOrgCheckConfigSuggestServiceImpl extends ServiceImpl implements LawLegalOrgCheckConfigSuggestService { - - @Override - public PageResult pageRel(LawLegalOrgCheckConfigSuggestParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalOrgCheckConfigSuggestParam param) { - return baseMapper.selectListRel(param); - } - - @Override - public LawLegalOrgCheckConfigSuggest getByIdRel(Integer id) { - LawLegalOrgCheckConfigSuggestParam param = new LawLegalOrgCheckConfigSuggestParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - - @Override - public List listByLevel(LawLegalOrgCheckConfigSuggestParam param) { - List topList = list( - new LambdaQueryWrapper() - .eq(LawLegalOrgCheckConfigSuggest::getParentId, 0) - ); - if (!topList.isEmpty()) { - for (LawLegalOrgCheckConfigSuggest top : topList) { - top.setChildren(getChildrenList(top.getId())); - } - } - return topList; - } - - private List getChildrenList(Integer parentId) { - List children = list( - new LambdaQueryWrapper() - .eq(LawLegalOrgCheckConfigSuggest::getParentId, parentId) - ); - if (!children.isEmpty()) { - for (LawLegalOrgCheckConfigSuggest child : children) { - child.setChildren(getChildrenList(child.getId())); - } - } - return children; - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckContentServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckContentServiceImpl.java deleted file mode 100644 index b46d2f5..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckContentServiceImpl.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.common.system.service.UserService; -import com.gxwebsoft.law.mapper.LawLegalOrgCheckContentMapper; -import com.gxwebsoft.law.service.LawLegalOrgCheckContentService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckContent; -import com.gxwebsoft.law.param.LawLegalOrgCheckContentParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 用户填写企业法制体检内容Service实现 - * - * @author LX - * @since 2025-04-17 17:48:54 - */ -@Service -public class LawLegalOrgCheckContentServiceImpl extends ServiceImpl implements LawLegalOrgCheckContentService { - - @Resource - private UserService userService; - @Override - public PageResult pageRel(LawLegalOrgCheckContentParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - List list = baseMapper.selectPageRel(page, param); - for (LawLegalOrgCheckContent lawLegalOrgCheckContent : list) { - if (lawLegalOrgCheckContent.getUserId() != null) { - lawLegalOrgCheckContent.setUser(userService.getByIdRel(lawLegalOrgCheckContent.getUserId())); - } - } - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalOrgCheckContentParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalOrgCheckContent getByIdRel(Integer id) { - LawLegalOrgCheckContentParam param = new LawLegalOrgCheckContentParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckContentSuggestServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckContentSuggestServiceImpl.java deleted file mode 100644 index 8536fb3..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckContentSuggestServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalOrgCheckContentSuggestMapper; -import com.gxwebsoft.law.service.LawLegalOrgCheckContentSuggestService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckContentSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckContentSuggestParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 用户填写法律意见书内容Service实现 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Service -public class LawLegalOrgCheckContentSuggestServiceImpl extends ServiceImpl implements LawLegalOrgCheckContentSuggestService { - - @Override - public PageResult pageRel(LawLegalOrgCheckContentSuggestParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalOrgCheckContentSuggestParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalOrgCheckContentSuggest getByIdRel(Integer id) { - LawLegalOrgCheckContentSuggestParam param = new LawLegalOrgCheckContentSuggestParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckTypeServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckTypeServiceImpl.java deleted file mode 100644 index f6ffdc9..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckTypeServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalOrgCheckTypeMapper; -import com.gxwebsoft.law.service.LawLegalOrgCheckTypeService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckType; -import com.gxwebsoft.law.param.LawLegalOrgCheckTypeParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 企业法制体检配置Service实现 - * - * @author LX - * @since 2025-04-17 18:04:46 - */ -@Service -public class LawLegalOrgCheckTypeServiceImpl extends ServiceImpl implements LawLegalOrgCheckTypeService { - - @Override - public PageResult pageRel(LawLegalOrgCheckTypeParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalOrgCheckTypeParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalOrgCheckType getByIdRel(Integer id) { - LawLegalOrgCheckTypeParam param = new LawLegalOrgCheckTypeParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckTypeSuggestServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckTypeSuggestServiceImpl.java deleted file mode 100644 index a975c48..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawLegalOrgCheckTypeSuggestServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawLegalOrgCheckTypeSuggestMapper; -import com.gxwebsoft.law.service.LawLegalOrgCheckTypeSuggestService; -import com.gxwebsoft.law.entity.LawLegalOrgCheckTypeSuggest; -import com.gxwebsoft.law.param.LawLegalOrgCheckTypeSuggestParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 法律意见书配置Service实现 - * - * @author LX - * @since 2025-04-17 18:55:31 - */ -@Service -public class LawLegalOrgCheckTypeSuggestServiceImpl extends ServiceImpl implements LawLegalOrgCheckTypeSuggestService { - - @Override - public PageResult pageRel(LawLegalOrgCheckTypeSuggestParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawLegalOrgCheckTypeSuggestParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawLegalOrgCheckTypeSuggest getByIdRel(Integer id) { - LawLegalOrgCheckTypeSuggestParam param = new LawLegalOrgCheckTypeSuggestParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawNotaryConfigServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawNotaryConfigServiceImpl.java deleted file mode 100644 index dadaa53..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawNotaryConfigServiceImpl.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawNotaryConfigMapper; -import com.gxwebsoft.law.service.LawNotaryConfigService; -import com.gxwebsoft.law.entity.LawNotaryConfig; -import com.gxwebsoft.law.param.LawNotaryConfigParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 公证配置Service实现 - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -@Service -public class LawNotaryConfigServiceImpl extends ServiceImpl implements LawNotaryConfigService { - - @Override - public PageResult pageRel(LawNotaryConfigParam param) { - PageParam page = new PageParam<>(param); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawNotaryConfigParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - return page.sortRecords(list); - } - - @Override - public LawNotaryConfig getByIdRel(Integer id) { - LawNotaryConfigParam param = new LawNotaryConfigParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawNotaryListServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawNotaryListServiceImpl.java deleted file mode 100644 index 546dece..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawNotaryListServiceImpl.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.common.system.service.UserService; -import com.gxwebsoft.law.mapper.LawNotaryListMapper; -import com.gxwebsoft.law.service.LawNotaryListService; -import com.gxwebsoft.law.entity.LawNotaryList; -import com.gxwebsoft.law.param.LawNotaryListParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 公证列表Service实现 - * - * @author LX - * @since 2025-05-17 16:10:35 - */ -@Service -public class LawNotaryListServiceImpl extends ServiceImpl implements LawNotaryListService { - - @Resource - private UserService userService; - - @Override - public PageResult pageRel(LawNotaryListParam param) { - PageParam page = new PageParam<>(param); - List list = baseMapper.selectPageRel(page, param); - for (LawNotaryList item : list) { - item.setUser(userService.getByIdRel(item.getUserId())); - } - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawNotaryListParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - return page.sortRecords(list); - } - - @Override - public LawNotaryList getByIdRel(Integer id) { - LawNotaryListParam param = new LawNotaryListParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawOrgCheckLogServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawOrgCheckLogServiceImpl.java deleted file mode 100644 index f70c814..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawOrgCheckLogServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.mapper.LawOrgCheckLogMapper; -import com.gxwebsoft.law.service.LawOrgCheckLogService; -import com.gxwebsoft.law.entity.LawOrgCheckLog; -import com.gxwebsoft.law.param.LawOrgCheckLogParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 企业法制检查报告Service实现 - * - * @author LX - * @since 2025-04-20 07:43:09 - */ -@Service -public class LawOrgCheckLogServiceImpl extends ServiceImpl implements LawOrgCheckLogService { - - @Override - public PageResult pageRel(LawOrgCheckLogParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawOrgCheckLogParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - return page.sortRecords(list); - } - - @Override - public LawOrgCheckLog getByIdRel(Integer id) { - LawOrgCheckLogParam param = new LawOrgCheckLogParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawOrgPeopleServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawOrgPeopleServiceImpl.java deleted file mode 100644 index b026573..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawOrgPeopleServiceImpl.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.law.entity.LawOrg; -import com.gxwebsoft.law.mapper.LawOrgPeopleMapper; -import com.gxwebsoft.law.service.LawOrgPeopleService; -import com.gxwebsoft.law.entity.LawOrgPeople; -import com.gxwebsoft.law.param.LawOrgPeopleParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.law.service.LawOrgService; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Service实现 - * - * @author LX - * @since 2025-04-14 01:31:54 - */ -@Service -public class LawOrgPeopleServiceImpl extends ServiceImpl implements LawOrgPeopleService { - @Resource - private LawOrgService lawOrgService; - - @Override - public PageResult pageRel(LawOrgPeopleParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - for (LawOrgPeople lawOrgPeople : list) { - lawOrgPeople.setLawOrg(lawOrgService.getByIdRel(lawOrgPeople.getOrgId())); - } - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawOrgPeopleParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - List orgIdList = new ArrayList<>(); - if (!list.isEmpty()) { - orgIdList = list.stream().map(LawOrgPeople::getOrgId).collect(Collectors.toList()); - List lawOrgList = lawOrgService.listByIds(orgIdList); - for (LawOrgPeople lawOrgPeople: list) { - LawOrg lawOrg = lawOrgList.stream().filter(x -> x.getId().equals(lawOrgPeople.getOrgId())).findFirst().orElse(null); - lawOrgPeople.setLawOrg(lawOrg); - } - } - return list; - } - - @Override - public LawOrgPeople getByIdRel(Integer id) { - LawOrgPeopleParam param = new LawOrgPeopleParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/law/service/impl/LawOrgServiceImpl.java b/src/main/java/com/gxwebsoft/law/service/impl/LawOrgServiceImpl.java deleted file mode 100644 index edcc70f..0000000 --- a/src/main/java/com/gxwebsoft/law/service/impl/LawOrgServiceImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.gxwebsoft.law.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.common.system.service.AreaService; -import com.gxwebsoft.law.mapper.LawOrgMapper; -import com.gxwebsoft.law.service.LawOrgService; -import com.gxwebsoft.law.entity.LawOrg; -import com.gxwebsoft.law.param.LawOrgParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 机构Service实现 - * - * @author LX - * @since 2025-04-14 00:35:34 - */ -@Service -public class LawOrgServiceImpl extends ServiceImpl implements LawOrgService { - - @Resource - private AreaService areaService; - - @Override - public PageResult pageRel(LawOrgParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("sort_number asc, create_time desc"); - List list = baseMapper.selectPageRel(page, param); - for (LawOrg lawOrg : list) { - lawOrg.setProvince(lawOrg.getProvinceId() == null ? "" : areaService.getById(lawOrg.getProvinceId()).getName()); - lawOrg.setCity(lawOrg.getCityId() == null ? "" : areaService.getById(lawOrg.getCityId()).getName()); - lawOrg.setRegion(lawOrg.getAreaId() == null ? "" : areaService.getById(lawOrg.getAreaId()).getName()); - } - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(LawOrgParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("sort_number asc, create_time desc"); - for (LawOrg lawOrg : list) { - lawOrg.setProvince(lawOrg.getProvinceId() == null ? "" : areaService.getById(lawOrg.getProvinceId()).getName()); - lawOrg.setCity(lawOrg.getCityId() == null ? "" : areaService.getById(lawOrg.getCityId()).getName()); - lawOrg.setRegion(lawOrg.getAreaId() == null ? "" : areaService.getById(lawOrg.getAreaId()).getName()); - } - return list; - } - - @Override - public LawOrg getByIdRel(Integer id) { - LawOrgParam param = new LawOrgParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/open/controller/OpenCartController.java b/src/main/java/com/gxwebsoft/open/controller/OpenCartController.java deleted file mode 100644 index 3034ffb..0000000 --- a/src/main/java/com/gxwebsoft/open/controller/OpenCartController.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.gxwebsoft.open.controller; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import com.gxwebsoft.common.core.exception.BusinessException; -import com.gxwebsoft.common.core.utils.CacheClient; -import com.gxwebsoft.common.core.utils.JSONUtil; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.shop.entity.Goods; -import com.gxwebsoft.shop.entity.Order; -import com.gxwebsoft.shop.entity.OrderGoods; -import com.gxwebsoft.shop.param.CartParam; -import com.gxwebsoft.shop.service.GoodsService; -import com.gxwebsoft.shop.service.OrderGoodsService; -import com.gxwebsoft.shop.service.OrderService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.sql.Date; -import java.util.List; -import java.util.stream.Collectors; - -/** - * 购物车记录表控制器 - * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 - */ -@Api(tags = "购物车记录表管理") -@RestController -@RequestMapping("/api/open/cart") -public class OpenCartController extends BaseController { - @Resource - private GoodsService goodsService; - @Resource - private CacheClient cacheClient; - @Resource - private OrderService orderService; - @Resource - private OrderGoodsService orderGoodsService; - - @ApiOperation("添加购物车") - @PostMapping("/addCart") - public ApiResult addCart(@RequestBody OrderGoods param) { - // 准备数据 - Goods goods = goodsService.getById(param.getGoodsId()); - param.setGoodsName(goods.getGoodsName()); - param.setCategoryId(goods.getCategoryId()); - param.setImageUrl(goods.getImage()); - param.setGoodsNo(goods.getGoodsCode()); - param.setGoodsPrice(param.getGoodsPrice()); - param.setLinePrice(goods.getLinePriceMin()); - param.setGoodsWeight(goods.getGoodsWeight()); - param.setComments(goods.getSellingPoint()); - param.setGear(goods.getGear()); - param.setSortNumber(goods.getSortNumber()); - // 保存到redis - String key = getKey(); - cacheClient.hPut(key,param.getGoodsId().toString(), JSONUtil.toJSONString(param)); - return success("添加成功",getCart()); - } - - @ApiOperation("查看购物车") - @GetMapping("/showCart") - public ApiResult showCart() { - return success("获取成功",getCart()); - } - - @ApiOperation("从购物车创建订单") - @PostMapping("/createOrder") - @Transactional(rollbackFor = {Exception.class}) - public ApiResult createOrder(@RequestBody CartParam param) { - Integer userId = 0; - if(param.getAgentUserId() != null){ - userId = param.getAgentUserId(); - }else{ - userId = getLoginUserId(); - } - // 1.从缓存读取用户的购物车数据 - List orderGoods = getCart(); - if(orderGoods == null){ - throw new BusinessException("订单不存在"); - } - // 2.创建订单 - Order order = new Order(); - order.setOrderNo(makeOrderNumber("")); - order.setTotalPrice(param.getTotalPrice()); - order.setOrderPrice(param.getTotalPrice()); - order.setPayPrice(param.getTotalPrice()); - order.setDeliveryTime(Date.valueOf(param.getDeliveryTime())); - order.setExpirationTime(DateUtil.nextMonth()); - order.setUserId(userId); - orderService.save(order); - orderGoods.forEach(d -> { - // 附加orderId - d.setOrderId(order.getOrderId()); - }); - // 3.批量添加订单商品 - orderGoodsService.saveBatch(orderGoods); - // 4.清空购物车 - cacheClient.delete(getKey()); - return success("创建成功",order); - } - - @ApiOperation("清空购物车") - @GetMapping("/clearCart") - public ApiResult clearCart() { - cacheClient.delete(getKey()); - return success("清空成功"); - } - - /** - * 获取key - * @return cache10048:cart651 - */ - private String getKey(){ - // 验证签名 - isCheckSign(); - return "cart".concat(getLoginUserId().toString()); - } - - /** - * 获取购物车数据 - * @return - */ - private List getCart(){ - String key = getKey(); - // 获取购物车数据 - List values = cacheClient.hValues(key); - return values.stream().map(item -> JSONUtil.parseObject(JSONUtil.toJSONString(item), OrderGoods.class)).collect(Collectors.toList()); - } - -} diff --git a/src/main/java/com/gxwebsoft/open/controller/OpenFileController.java b/src/main/java/com/gxwebsoft/open/controller/OpenFileController.java index a0699f6..9549d2c 100644 --- a/src/main/java/com/gxwebsoft/open/controller/OpenFileController.java +++ b/src/main/java/com/gxwebsoft/open/controller/OpenFileController.java @@ -58,7 +58,7 @@ public class OpenFileController extends BaseController { result.setName(StrUtil.isBlank(originalName) ? upload.getName() : originalName); result.setLength(upload.length()); result.setPath(path); - result.setUrl(requestURL + path); + result.setUrl((requestURL + path).replace("file//", "file/")); String contentType = FileServerUtil.getContentType(upload); result.setContentType(contentType); if (FileServerUtil.isImage(contentType)) { diff --git a/src/main/java/com/gxwebsoft/open/controller/OpenMerchantController.java b/src/main/java/com/gxwebsoft/open/controller/OpenMerchantController.java index 36e5b0a..b1459eb 100644 --- a/src/main/java/com/gxwebsoft/open/controller/OpenMerchantController.java +++ b/src/main/java/com/gxwebsoft/open/controller/OpenMerchantController.java @@ -34,12 +34,6 @@ public class OpenMerchantController extends BaseController { @ApiOperation("分页查询商户管理") @GetMapping("/page") public ApiResult> page(MerchantParam param) { - // 验证签名 - isCheckSign(); - // 搜索条件 - if (getMerchantCode() != null) { - param.setMerchantCode(getMerchantCode()); - } // 使用关联查询 return success(merchantService.pageRel(param)); } @@ -47,8 +41,7 @@ public class OpenMerchantController extends BaseController { @ApiOperation("查询全部商户管理") @GetMapping() public ApiResult> list(MerchantParam param) { - // 验证签名 - isCheckSign(); + // 验证签名 PageParam page = new PageParam<>(param); page.setDefaultOrder("create_time desc"); // 使用关联查询 @@ -58,30 +51,21 @@ public class OpenMerchantController extends BaseController { @ApiOperation("根据id查询商户管理") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { - // 验证签名 - isCheckSign(); - // 使用关联查询 + // 验证签名 + // 使用关联查询 return success(merchantService.getByIdRel(id)); } @ApiOperation("添加商户管理") @PostMapping() public ApiResult save(@RequestBody Merchant merchant) { - // 验证签名 - isCheckSign(); - if (merchantService.count(new LambdaQueryWrapper() - .eq(Merchant::getMerchantCode, merchant.getMerchantCode())) > 0) { - return fail("商户编号已存在"); - } + // 验证签名 if (merchantService.save(merchant)) { // 添加缓存 String lngAndLat = merchant.getLngAndLat(); String[] split = lngAndLat.split(","); Double x = Double.parseDouble(split[0]); Double y = Double.parseDouble(split[1]); - String id = merchant.getMerchantId().toString(); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.set(MERCHANT_KEY.concat(":").concat(merchant.getMerchantId().toString()),merchant); return success("添加成功"); } return fail("添加失败"); @@ -90,22 +74,12 @@ public class OpenMerchantController extends BaseController { @ApiOperation("修改商户管理") @PutMapping() public ApiResult update(@RequestBody Merchant merchant) { - // 验证签名 - isCheckSign(); - // 超级管理员不能设为店主 - if(getLoginUser().getUserId().equals(merchant.getMerchantOwner())){ - return fail("超级管理员不能绑定为负责人!"); - } if (merchantService.updateById(merchant)) { // 添加缓存 String lngAndLat = merchant.getLngAndLat(); String[] split = lngAndLat.split(","); Double x = Double.parseDouble(split[0]); Double y = Double.parseDouble(split[1]); - String id = merchant.getMerchantId().toString(); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.set(MERCHANT_KEY.concat(":").concat(merchant.getMerchantId().toString()),merchant); return success("修改成功"); } return fail("修改失败"); @@ -114,8 +88,7 @@ public class OpenMerchantController extends BaseController { @ApiOperation("删除商户管理") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { - // 验证签名 - isCheckSign(); + // 验证签名 if (merchantService.removeById(id)) { return success("删除成功"); } @@ -125,19 +98,14 @@ public class OpenMerchantController extends BaseController { @ApiOperation("批量添加商户管理") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { - // 验证签名 - isCheckSign(); + // 验证签名 if (merchantService.saveBatch(list)) { list.forEach(d -> { - // 添加缓存 - String lngAndLat = d.getLngAndLat(); - String[] split = lngAndLat.split(","); - Double x = Double.parseDouble(split[0]); - Double y = Double.parseDouble(split[1]); - String id = d.getMerchantId().toString(); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.set(MERCHANT_KEY.concat(":").concat(d.getMerchantId().toString()),d); + // 添加缓存 + String lngAndLat = d.getLngAndLat(); + String[] split = lngAndLat.split(","); + Double x = Double.parseDouble(split[0]); + Double y = Double.parseDouble(split[1]); }); return success("添加成功"); } @@ -147,8 +115,7 @@ public class OpenMerchantController extends BaseController { @ApiOperation("批量修改商户管理") @PutMapping("/batch") public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - // 验证签名 - isCheckSign(); + // 验证签名 if (batchParam.update(merchantService, "merchant_id")) { return success("修改成功"); } @@ -158,23 +125,14 @@ public class OpenMerchantController extends BaseController { @ApiOperation("批量删除商户管理") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { - // 验证签名 - isCheckSign(); + // 验证签名 if (merchantService.removeByIds(ids)) { // 删除缓存 ids.forEach(id -> { - cacheClient.geoRemove(MERCHANT_GEO_KEY,id); + cacheClient.geoRemove(MERCHANT_GEO_KEY, id); }); return success("删除成功"); } return fail("删除失败"); } - - @ApiOperation("根据定位查询附近的商户列表") - @PostMapping("/getListByGeo") - public ApiResult> getListByGeo(@RequestBody MerchantParam param) { - // 验证签名 - isCheckSign(); - return success(merchantService.listByGeo(param)); - } } diff --git a/src/main/java/com/gxwebsoft/open/controller/OpenOrderGoodsController.java b/src/main/java/com/gxwebsoft/open/controller/OpenOrderGoodsController.java index 28e7d3c..687e306 100644 --- a/src/main/java/com/gxwebsoft/open/controller/OpenOrderGoodsController.java +++ b/src/main/java/com/gxwebsoft/open/controller/OpenOrderGoodsController.java @@ -90,7 +90,6 @@ public class OpenOrderGoodsController extends BaseController { User loginUser = getLoginUser(); if (loginUser != null) { orderGoods.setUserId(loginUser.getUserId()); - orderGoods.setMerchantCode(getMerchantCode()); } if (orderGoodsService.save(orderGoods)) { return success("添加成功"); @@ -152,47 +151,4 @@ public class OpenOrderGoodsController extends BaseController { } return fail("删除失败"); } - - @ApiOperation("取消订单商品") - @PostMapping("/cancel") - @Transactional(rollbackFor = {Exception.class}) - public ApiResult cancel(@RequestBody OrderGoods orderGoods) { - // 验证签名 - isCheckSign(); - if (orderGoods.getOrderGoodsId() == null) { - return fail("菜品不存在!"); - } - System.out.println("orderGoods = " + orderGoods); - final Order byId = orderService.getById(orderGoods.getOrderId()); - System.out.println("byId = " + byId); - // 取消报餐截止时间 - orderGoodsService.removeById(orderGoods); - System.out.println("orderGoods = " + orderGoods); - // 退款 - User user = userService.getById(byId.getUserId()); - System.out.println("user = " + user); - System.out.println("orderGoods.getGoodsPrice() = " + orderGoods.getGoodsPrice()); - BigDecimal balance = user.getBalance().add(orderGoods.getGoodsPrice()); - user.setBalance(balance); - userService.updateById(user); - // 记录余额明细 - UserBalanceLog userBalanceLog = new UserBalanceLog(); - userBalanceLog.setUserId(byId.getUserId()); - userBalanceLog.setScene(BALANCE_REFUND); - userBalanceLog.setMoney(orderGoods.getGoodsPrice()); - userBalanceLog.setBalance(balance); - userBalanceLog.setComments(orderGoods.getOrderId().toString()); - userBalanceLogService.save(userBalanceLog); - final int count = orderGoodsService.count(new LambdaUpdateWrapper().eq(OrderGoods::getOrderId, orderGoods.getOrderId()).gt(OrderGoods::getTotalNum,0)); - System.out.println("count = " + count); - // 无菜品就把订单状态改为已取消 - if(count == 0){ - final Order order = new Order(); - order.setOrderId(orderGoods.getOrderId()); - order.setOrderStatus(ORDER_STATUS_CANCEL); - orderService.removeById(orderGoods.getOrderId()); - } - return success("菜品取消成功"); - } - } diff --git a/src/main/java/com/gxwebsoft/open/controller/OpenUserOrderController.java b/src/main/java/com/gxwebsoft/open/controller/OpenUserOrderController.java deleted file mode 100644 index c6a6218..0000000 --- a/src/main/java/com/gxwebsoft/open/controller/OpenUserOrderController.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.gxwebsoft.open.controller; - -import com.gxwebsoft.common.core.exception.BusinessException; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.system.entity.User; -import com.gxwebsoft.shop.entity.Order; -import com.gxwebsoft.shop.param.OrderParam; -import com.gxwebsoft.shop.service.OrderService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import java.util.List; - -/** - * 用户-我的订单 - * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 - */ -@Api(tags = "我的订单") -@RestController -@RequestMapping("/api/open/user-order") -public class OpenUserOrderController extends BaseController { - @Resource - private OrderService orderService; - - @ApiOperation("分页查询用户订单") - @GetMapping("/page") - public ApiResult> page(OrderParam param) { - // 验证签名 - isCheckSign(); - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - // 记录当前登录用户id、租户id - User user = getLoginUser(); - if (user != null) { - param.setUserId(user.getUserId()); - param.setTenantId(user.getTenantId()); - } - // 使用关联查询 - return success(orderService.pageRel(param)); - } - - @ApiOperation("查询全部用户订单") - @GetMapping() - public ApiResult> list(OrderParam param) { - // 验证签名 - isCheckSign(); - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - // 记录当前登录用户id、租户id - User user = getLoginUser(); - if (user != null) { - param.setUserId(user.getUserId()); - param.setTenantId(user.getTenantId()); - } - - // 使用关联查询 - return success(orderService.listRel(param)); - } - - @ApiOperation("测试") - @GetMapping("/test") - public ApiResult> test(OrderParam param) { - // 验证签名 - isCheckSign(); - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - // 记录当前登录用户id、租户id - User user = getLoginUser(); - if (user != null) { - param.setUserId(user.getUserId()); - param.setTenantId(user.getTenantId()); - } - // 使用关联查询 - return success(orderService.pageRel(param)); - } -} diff --git a/src/main/java/com/gxwebsoft/shop/config/WxPayConfig.java b/src/main/java/com/gxwebsoft/shop/config/WxPayConfig.java index 90bd86f..a3107c2 100644 --- a/src/main/java/com/gxwebsoft/shop/config/WxPayConfig.java +++ b/src/main/java/com/gxwebsoft/shop/config/WxPayConfig.java @@ -23,6 +23,10 @@ public class WxPayConfig { // 商户私钥文件 private String privateKeyPath; + private String pubKeyId; + + private String pubKeyPath; + // APIv3秘钥 private String apiV3Key; diff --git a/src/main/java/com/gxwebsoft/shop/controller/CartController.java b/src/main/java/com/gxwebsoft/shop/controller/CartController.java index 668a75e..cd587f6 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/CartController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/CartController.java @@ -1,88 +1,72 @@ package com.gxwebsoft.shop.controller; -import cn.hutool.core.bean.BeanUtil; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.core.web.*; -import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.CartService; import com.gxwebsoft.shop.entity.Cart; import com.gxwebsoft.shop.param.CartParam; -import com.gxwebsoft.shop.service.CartService; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; /** - * 购物车记录表控制器 + * 控制器 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 18:42:38 */ -@Api(tags = "购物车记录表管理") +@Api(tags = "管理") @RestController @RequestMapping("/api/shop/cart") public class CartController extends BaseController { @Resource private CartService cartService; - @Resource - private StringRedisTemplate stringRedisTemplate; - @PreAuthorize("hasAuthority('shop:cart:list')") - @OperationLog - @ApiOperation("分页查询购物车记录表") + @ApiOperation("分页查询") @GetMapping("/page") public ApiResult> page(CartParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(cartService.page(page, page.getWrapper())); // 使用关联查询 - //return success(cartService.pageRel(param)); + return success(cartService.pageRel(param)); } - @PreAuthorize("hasAuthority('shop:cart:list')") - @OperationLog - @ApiOperation("查询全部购物车记录表") + @ApiOperation("查询全部") @GetMapping() public ApiResult> list(CartParam param) { -// PageParam page = new PageParam<>(param); -// page.setDefaultOrder("create_time desc"); -// return success(cartService.list(page.getOrderWrapper())); // 使用关联查询 - + param.setUserId(getLoginUserId()); return success(cartService.listRel(param)); } @PreAuthorize("hasAuthority('shop:cart:list')") - @OperationLog - @ApiOperation("根据id查询购物车记录表") + @ApiOperation("根据id查询") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { - return success(cartService.getById(id)); // 使用关联查询 - //return success(cartService.getByIdRel(id)); + return success(cartService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:cart:save')") - @OperationLog - @ApiOperation("添加购物车记录表") + @ApiOperation("添加") @PostMapping() public ApiResult save(@RequestBody Cart cart) { - // 记录当前登录用户id、租户id + // 记录当前登录用户id User loginUser = getLoginUser(); - // 存入redis - Map userMap = BeanUtil.beanToMap(loginUser); - String userMapKey = "oa:cart:".concat(loginUser.getUserId().toString()); - stringRedisTemplate.opsForHash().putAll(userMapKey,userMap); - stringRedisTemplate.expire(userMapKey,30, TimeUnit.MINUTES); - if (loginUser != null) { - cart.setUserId(loginUser.getUserId()); + cart.setUserId(loginUser.getUserId()); + } + Cart check = cartService.check(cart.getGoodsId(), cart.getUserId()); + if (check != null) { + check.setNum(check.getNum() + cart.getNum()); + cartService.updateById(check); + return success("添加成功"); } if (cartService.save(cart)) { return success("添加成功"); @@ -90,9 +74,7 @@ public class CartController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:cart:update')") - @OperationLog - @ApiOperation("修改购物车记录表") + @ApiOperation("修改") @PutMapping() public ApiResult update(@RequestBody Cart cart) { if (cartService.updateById(cart)) { @@ -101,9 +83,7 @@ public class CartController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:cart:remove')") - @OperationLog - @ApiOperation("删除购物车记录表") + @ApiOperation("删除") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { if (cartService.removeById(id)) { @@ -112,9 +92,7 @@ public class CartController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:cart:save')") - @OperationLog - @ApiOperation("批量添加购物车记录表") + @ApiOperation("批量添加") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { if (cartService.saveBatch(list)) { @@ -123,20 +101,16 @@ public class CartController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:cart:update')") - @OperationLog - @ApiOperation("批量修改购物车记录表") + @ApiOperation("批量修改") @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { if (batchParam.update(cartService, "id")) { return success("修改成功"); } return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:cart:remove')") - @OperationLog - @ApiOperation("批量删除购物车记录表") + @ApiOperation("批量删除") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { if (cartService.removeByIds(ids)) { diff --git a/src/main/java/com/gxwebsoft/shop/controller/CategoryController.java b/src/main/java/com/gxwebsoft/shop/controller/CategoryController.java index cca93cc..41698fc 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/CategoryController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/CategoryController.java @@ -28,7 +28,7 @@ import java.util.List; */ @Api(tags = "商品分类表管理") @RestController -@RequestMapping("/api/shop/category") +@RequestMapping("/api/shop/goods-category") public class CategoryController extends BaseController { @Resource private CategoryService categoryService; @@ -38,7 +38,6 @@ public class CategoryController extends BaseController { return success(categoryService.list()); } - @PreAuthorize("hasAuthority('shop:category:list')") @OperationLog @ApiOperation("分页查询商品分类表") @GetMapping("/page") @@ -51,7 +50,6 @@ public class CategoryController extends BaseController { //return success(categoryService.pageRel(param)); } - @PreAuthorize("hasAuthority('shop:category:list')") @OperationLog @ApiOperation("查询全部商品分类表") @GetMapping() @@ -70,7 +68,6 @@ public class CategoryController extends BaseController { //return success(categoryService.listRel(param)); } - @PreAuthorize("hasAuthority('shop:category:list')") @OperationLog @ApiOperation("根据id查询商品分类表") @GetMapping("/{id}") @@ -80,7 +77,6 @@ public class CategoryController extends BaseController { //return success(categoryService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:category:save')") @OperationLog @ApiOperation("添加商品分类表") @PostMapping() @@ -96,7 +92,6 @@ public class CategoryController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:category:update')") @OperationLog @ApiOperation("修改商品分类表") @PutMapping() @@ -107,7 +102,6 @@ public class CategoryController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:category:remove')") @OperationLog @ApiOperation("删除商品分类表") @DeleteMapping("/{id}") @@ -118,7 +112,6 @@ public class CategoryController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:category:save')") @OperationLog @ApiOperation("批量添加商品分类表") @PostMapping("/batch") @@ -129,7 +122,6 @@ public class CategoryController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:category:update')") @OperationLog @ApiOperation("批量修改商品分类表") @PutMapping("/batch") @@ -140,7 +132,6 @@ public class CategoryController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:category:remove')") @OperationLog @ApiOperation("批量删除商品分类表") @DeleteMapping("/batch") @@ -150,5 +141,4 @@ public class CategoryController extends BaseController { } return fail("删除失败"); } - } diff --git a/src/main/java/com/gxwebsoft/shop/controller/CouponController.java b/src/main/java/com/gxwebsoft/shop/controller/CouponController.java index 73b1780..4d5dd16 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/CouponController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/CouponController.java @@ -1,7 +1,6 @@ package com.gxwebsoft.shop.controller; import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.shop.service.CouponService; import com.gxwebsoft.shop.entity.Coupon; import com.gxwebsoft.shop.param.CouponParam; @@ -10,6 +9,7 @@ import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -19,61 +19,47 @@ import javax.annotation.Resource; import java.util.List; /** - * 优惠券记录表控制器 + * 控制器 * - * @author 科技小王子 - * @since 2022-11-28 18:26:05 + * @author LX + * @since 2026-01-19 17:54:12 */ -@Api(tags = "优惠券记录表管理") +@Api(tags = "管理") @RestController @RequestMapping("/api/shop/coupon") public class CouponController extends BaseController { @Resource private CouponService couponService; - @PreAuthorize("hasAuthority('shop:coupon:list')") - @OperationLog - @ApiOperation("分页查询优惠券记录表") + @ApiOperation("分页查询") @GetMapping("/page") public ApiResult> page(CouponParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(couponService.page(page, page.getWrapper())); // 使用关联查询 - //return success(couponService.pageRel(param)); + return success(couponService.pageRel(param)); } - @PreAuthorize("hasAuthority('shop:coupon:list')") - @OperationLog - @ApiOperation("查询全部优惠券记录表") + @ApiOperation("查询全部") @GetMapping() public ApiResult> list(CouponParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(couponService.list(page.getOrderWrapper())); // 使用关联查询 - //return success(couponService.listRel(param)); + return success(couponService.listRel(param)); } @PreAuthorize("hasAuthority('shop:coupon:list')") - @OperationLog - @ApiOperation("根据id查询优惠券记录表") + @ApiOperation("根据id查询") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { - return success(couponService.getById(id)); // 使用关联查询 - //return success(couponService.getByIdRel(id)); + return success(couponService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:coupon:save')") - @OperationLog - @ApiOperation("添加优惠券记录表") + @ApiOperation("添加") @PostMapping() public ApiResult save(@RequestBody Coupon coupon) { - // 记录当前登录用户id、租户id + // 记录当前登录用户id User loginUser = getLoginUser(); if (loginUser != null) { - coupon.setUserId(loginUser.getUserId()); + coupon.setUserId(loginUser.getUserId()); } if (couponService.save(coupon)) { return success("添加成功"); @@ -81,9 +67,7 @@ public class CouponController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:coupon:update')") - @OperationLog - @ApiOperation("修改优惠券记录表") + @ApiOperation("修改") @PutMapping() public ApiResult update(@RequestBody Coupon coupon) { if (couponService.updateById(coupon)) { @@ -92,9 +76,7 @@ public class CouponController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:coupon:remove')") - @OperationLog - @ApiOperation("删除优惠券记录表") + @ApiOperation("删除") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { if (couponService.removeById(id)) { @@ -103,9 +85,7 @@ public class CouponController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:coupon:save')") - @OperationLog - @ApiOperation("批量添加优惠券记录表") + @ApiOperation("批量添加") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { if (couponService.saveBatch(list)) { @@ -114,20 +94,16 @@ public class CouponController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:coupon:update')") - @OperationLog - @ApiOperation("批量修改优惠券记录表") + @ApiOperation("批量修改") @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(couponService, "coupon_id")) { + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(couponService, "id")) { return success("修改成功"); } return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:coupon:remove')") - @OperationLog - @ApiOperation("批量删除优惠券记录表") + @ApiOperation("批量删除") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { if (couponService.removeByIds(ids)) { diff --git a/src/main/java/com/gxwebsoft/shop/controller/DealerWithdrawController.java b/src/main/java/com/gxwebsoft/shop/controller/DealerWithdrawController.java new file mode 100644 index 0000000..fb2e8ba --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/DealerWithdrawController.java @@ -0,0 +1,279 @@ +package com.gxwebsoft.shop.controller; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.RandomUtil; +import com.alibaba.fastjson.JSONObject; +import com.gxwebsoft.common.core.utils.ExcelExportUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.entity.UserBalanceLog; +import com.gxwebsoft.shop.service.DealerWithdrawService; +import com.gxwebsoft.shop.entity.DealerWithdraw; +import com.gxwebsoft.shop.param.DealerWithdrawParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.shop.service.UserBalanceLogService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 分销商提现明细表控制器 + * + * @author LX + * @since 2026-01-27 11:43:44 + */ +@Api(tags = "分销商提现明细表管理") +@RestController +@RequestMapping("/api/shop/dealer-withdraw") +public class DealerWithdrawController extends BaseController { + @Resource + private DealerWithdrawService dealerWithdrawService; + @Resource + private UserBalanceLogService userBalanceLogService; + @Resource + private UserService userService; + @Resource + private ExcelExportUtil excelExportUtil; + + @Autowired + private WxPayController wxPayController; + + @ApiOperation("分页查询分销商提现明细表") + @GetMapping("/page") + public ApiResult> page(DealerWithdrawParam param) { + // 使用关联查询 + return success(dealerWithdrawService.pageRel(param)); + } + + @ApiOperation("查询全部分销商提现明细表") + @GetMapping() + public ApiResult> list(DealerWithdrawParam param) { + // 使用关联查询 + return success(dealerWithdrawService.listRel(param)); + } + + @ApiOperation("根据id查询分销商提现明细表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(dealerWithdrawService.getByIdRel(id)); + } + + @ApiOperation("添加分销商提现明细表") + @PostMapping() + public ApiResult save(@RequestBody DealerWithdraw dealerWithdraw) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (dealerWithdraw.getMoney().compareTo(loginUser.getBalance()) > 0) { + return fail("余额不足"); + } + dealerWithdraw.setUserId(loginUser.getUserId()); + dealerWithdraw.setOrderNo(LocalDateTimeUtil.format(LocalDateTimeUtil.now(), "yyyyMMddHHmmss") + RandomUtil.randomNumbers(6)); + if (dealerWithdrawService.save(dealerWithdraw)) { + UserBalanceLog userBalanceLog = new UserBalanceLog(); + userBalanceLog.setUserId(loginUser.getUserId()); + userBalanceLog.setScene(2); + userBalanceLog.setMoney(dealerWithdraw.getMoney()); + userBalanceLog.setBalance(loginUser.getBalance().subtract(dealerWithdraw.getMoney())); + userBalanceLog.setRemark("提现"); + userBalanceLogService.save(userBalanceLog); + + loginUser.setBalance(loginUser.getBalance().subtract(dealerWithdraw.getMoney())); + userService.updateById(loginUser); + if (dealerWithdraw.getPayType().equals(10)) { + dealerWithdraw.setOpenId(loginUser.getOpenId()); + JSONObject res = wxPayController.transferBill(dealerWithdraw); + if (res == null) { + User user = userService.getById(dealerWithdraw.getUserId()); + user.setBalance(user.getBalance().add(dealerWithdraw.getMoney())); + userService.updateById(user); + dealerWithdraw.setApplyStatus(2); + dealerWithdraw.setAuditTime((int) DateUtil.currentSeconds()); + dealerWithdraw.setRejectReason("提现失败,请联系客服"); + dealerWithdrawService.updateById(dealerWithdraw); + return fail("提现失败,请联系客服"); + } + res.put("id", dealerWithdraw.getId()); + return success(res); + } + + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改分销商提现明细表") + @PutMapping() + public ApiResult update(@RequestBody DealerWithdraw dealerWithdraw) { + if (dealerWithdrawService.updateById(dealerWithdraw)) { + DealerWithdraw dealerWithdraw1 = dealerWithdrawService.getById(dealerWithdraw.getId()); + if (dealerWithdraw.getApplyStatus().equals(2)) { + User user = userService.getById(dealerWithdraw1.getUserId()); + + UserBalanceLog userBalanceLog = new UserBalanceLog(); + userBalanceLog.setUserId(dealerWithdraw1.getUserId()); + userBalanceLog.setScene(3); + userBalanceLog.setMoney(dealerWithdraw1.getMoney()); + userBalanceLog.setBalance(user.getBalance().add(dealerWithdraw1.getMoney())); + String remark = "提现驳回"; + if (dealerWithdraw.getRejectReason() != null) + remark += ":" + dealerWithdraw.getRejectReason(); + userBalanceLog.setRemark(remark); + userBalanceLogService.save(userBalanceLog); + + user.setBalance(user.getBalance().add(dealerWithdraw1.getMoney())); + userService.updateById(user); + } + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除分销商提现明细表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (dealerWithdrawService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加分销商提现明细表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (dealerWithdrawService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改分销商提现明细表") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(dealerWithdrawService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除分销商提现明细表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (dealerWithdrawService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("导出分销商提现明细表") + @PostMapping("/export") + public ApiResult export(@RequestBody(required = false) DealerWithdrawParam param) throws java.io.IOException { + if (param == null) { + param = new DealerWithdrawParam(); + } + param.normalizeStringFields(); + List list = dealerWithdrawService.listRel(param); + Set userIds = list.stream() + .map(DealerWithdraw::getUserId) + .filter(userId -> userId != null && userId > 0) + .collect(Collectors.toSet()); + Map userMap = userIds.isEmpty() ? java.util.Collections.emptyMap() : + userService.listByIds(userIds).stream().collect(Collectors.toMap(User::getUserId, Function.identity())); + + XSSFWorkbook workbook = excelExportUtil.createWorkbook("提现", + "提现ID", "提现单号", "用户ID", "姓名", "手机号", "提现金额", "打款方式", "收款信息", "申请状态", "驳回原因", "申请时间", "审核时间"); + Sheet sheet = workbook.getSheetAt(0); + int rowNum = 1; + for (DealerWithdraw item : list) { + User user = userMap.get(item.getUserId()); + excelExportUtil.writeRow(sheet, rowNum++, + item.getId(), + item.getOrderNo(), + item.getUserId(), + user == null ? "" : user.getRealName(), + user == null ? "" : user.getPhone(), + item.getMoney(), + getPayTypeText(item.getPayType()), + getAccountInfo(item), + getApplyStatusText(item.getApplyStatus()), + item.getRejectReason(), + item.getCreateTime(), + item.getAuditTime() == null ? "" : DateUtil.date(item.getAuditTime() * 1000L)); + } + excelExportUtil.autoSizeColumns(sheet, 12); + return success(excelExportUtil.saveWorkbook(workbook, "提现明细", getLoginUserId())); + } + + private String getPayTypeText(Integer payType) { + if (payType == null) { + return ""; + } + switch (payType) { + case 10: + return "微信"; + case 20: + return "支付宝"; + case 30: + return "银行卡"; + default: + return String.valueOf(payType); + } + } + + private String getApplyStatusText(Integer applyStatus) { + if (applyStatus == null) { + return ""; + } + switch (applyStatus) { + case 10: + return "待审核"; + case 20: + return "审核通过"; + case 30: + return "驳回"; + case 40: + return "已打款"; + default: + return String.valueOf(applyStatus); + } + } + + private String getAccountInfo(DealerWithdraw item) { + if (item.getPayType() == null) { + return ""; + } + switch (item.getPayType()) { + case 20: + return String.format("%s/%s", + item.getAlipayName() == null ? "" : item.getAlipayName(), + item.getAlipayAccount() == null ? "" : item.getAlipayAccount()); + case 30: + return String.format("%s/%s/%s", + item.getBankName() == null ? "" : item.getBankName(), + item.getBankAccount() == null ? "" : item.getBankAccount(), + item.getBankCard() == null ? "" : item.getBankCard()); + default: + return "微信余额提现"; + } + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java b/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java index 23f854a..a971bf1 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java @@ -7,11 +7,7 @@ import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.shop.entity.Goods; -import com.gxwebsoft.shop.entity.GoodsPrice; import com.gxwebsoft.shop.param.GoodsParam; -import com.gxwebsoft.shop.param.GoodsPhoneModelParam; -import com.gxwebsoft.shop.service.GoodsPhoneModelService; -import com.gxwebsoft.shop.service.GoodsPriceService; import com.gxwebsoft.shop.service.GoodsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -19,6 +15,7 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; /** @@ -33,16 +30,11 @@ import java.util.List; public class GoodsController extends BaseController { @Resource private GoodsService goodsService; - @Resource - private GoodsPhoneModelService goodsPhoneModelService; - @Resource - private GoodsPriceService goodsPriceService; @PostMapping("/list") public ApiResult> listForFront(@RequestBody GoodsParam param) { List goodsList = goodsService.listRel(param); - goodsService.setData(goodsList, getLoginUser()); return success(goodsList); } @@ -54,18 +46,15 @@ public class GoodsController extends BaseController { } - @PreAuthorize("hasAuthority('shop:goods:list')") @OperationLog @ApiOperation("分页查询商品记录表") @GetMapping("/page") public ApiResult> page(GoodsParam param) { // 使用关联查询 PageResult page = goodsService.pageRel(param); - goodsService.setData(page.getList(), getLoginUser()); return success(page); } - @PreAuthorize("hasAuthority('shop:goods:list')") @OperationLog @ApiOperation("查询全部商品记录表") @GetMapping() @@ -75,11 +64,21 @@ public class GoodsController extends BaseController { // return success(goodsService.list(page.getOrderWrapper())); // 使用关联查询 List goodsList = goodsService.listRel(param); - goodsService.setData(goodsList, getLoginUser()); return success(goodsList); } - @PreAuthorize("hasAuthority('shop:goods:list')") + @OperationLog + @ApiOperation("查询全部商品记录表") + @PostMapping("/listByIds") + public ApiResult> listByIds(@RequestBody GoodsParam param) { + String[] ids = param.getIds().split(","); + List idsList = new ArrayList<>(); + for (String id : ids) { + idsList.add(Integer.parseInt(id)); + } + return success(goodsService.listByIds(idsList)); + } + @OperationLog @ApiOperation("根据id查询商品记录表") @GetMapping("/{id}") @@ -89,7 +88,6 @@ public class GoodsController extends BaseController { //return success(goodsService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:goods:save')") @OperationLog @ApiOperation("添加商品记录表") @PostMapping() @@ -100,37 +98,22 @@ public class GoodsController extends BaseController { goods.setUserId(loginUser.getUserId()); } if (goodsService.save(goods)) { - if (goods.getGoodsPhoneModelList() != null) { - addPhoneModel(goods); - } return success("添加成功"); } return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:goods:update')") @OperationLog @ApiOperation("修改商品记录表") @PutMapping() public ApiResult update(@RequestBody Goods goods) { if (goodsService.updateById(goods)) { - addPhoneModel(goods); return success("修改成功"); } return fail("修改失败"); } - private void addPhoneModel(Goods goods) { - if (goods.getGoodsPhoneModelList() != null) { - goodsPhoneModelService.delByGoodsId(goods.getGoodsId()); - goods.getGoodsPhoneModelList().forEach(goodsPhoneModel -> { - goodsPhoneModel.setGoodsId(goods.getGoodsId()); - }); - goodsPhoneModelService.saveBatch(goods.getGoodsPhoneModelList()); - } - } - @PreAuthorize("hasAuthority('shop:goods:remove')") @OperationLog @ApiOperation("删除商品记录表") @DeleteMapping("/{id}") @@ -141,7 +124,6 @@ public class GoodsController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:goods:save')") @OperationLog @ApiOperation("批量添加商品记录表") @PostMapping("/batch") @@ -152,7 +134,6 @@ public class GoodsController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:goods:update')") @OperationLog @ApiOperation("批量修改商品记录表") @PutMapping("/batch") @@ -163,7 +144,6 @@ public class GoodsController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:goods:remove')") @OperationLog @ApiOperation("批量删除商品记录表") @DeleteMapping("/batch") diff --git a/src/main/java/com/gxwebsoft/shop/controller/GoodsPhoneModelController.java b/src/main/java/com/gxwebsoft/shop/controller/GoodsPhoneModelController.java deleted file mode 100644 index 263be47..0000000 --- a/src/main/java/com/gxwebsoft/shop/controller/GoodsPhoneModelController.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.gxwebsoft.shop.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.system.entity.User; -import com.gxwebsoft.shop.service.GoodsPhoneModelService; -import com.gxwebsoft.shop.entity.GoodsPhoneModel; -import com.gxwebsoft.shop.param.GoodsPhoneModelParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 商品匹配机型控制器 - * - * @author 科技小王子 - * @since 2024-03-12 01:30:55 - */ -@Api(tags = "商品匹配机型管理") -@RestController -@RequestMapping("/api/shop/goods-phone-model") -public class GoodsPhoneModelController extends BaseController { - @Resource - private GoodsPhoneModelService goodsPhoneModelService; - - @PreAuthorize("hasAuthority('shop:goodsPhoneModel:list')") - @OperationLog - @ApiOperation("分页查询商品匹配机型") - @GetMapping("/page") - public ApiResult> page(GoodsPhoneModelParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(goodsPhoneModelService.page(page, page.getWrapper())); - // 使用关联查询 - //return success(goodsPhoneModelService.pageRel(param)); - } - - @PreAuthorize("hasAuthority('shop:goodsPhoneModel:list')") - @OperationLog - @ApiOperation("查询全部商品匹配机型") - @GetMapping() - public ApiResult> list(GoodsPhoneModelParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(goodsPhoneModelService.list(page.getOrderWrapper())); - // 使用关联查询 - //return success(goodsPhoneModelService.listRel(param)); - } - - @PreAuthorize("hasAuthority('shop:goodsPhoneModel:list')") - @OperationLog - @ApiOperation("根据id查询商品匹配机型") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - return success(goodsPhoneModelService.getById(id)); - // 使用关联查询 - //return success(goodsPhoneModelService.getByIdRel(id)); - } - - @PreAuthorize("hasAuthority('shop:goodsPhoneModel:save')") - @OperationLog - @ApiOperation("添加商品匹配机型") - @PostMapping() - public ApiResult save(@RequestBody GoodsPhoneModel goodsPhoneModel) { - if (goodsPhoneModelService.save(goodsPhoneModel)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsPhoneModel:update')") - @OperationLog - @ApiOperation("修改商品匹配机型") - @PutMapping() - public ApiResult update(@RequestBody GoodsPhoneModel goodsPhoneModel) { - if (goodsPhoneModelService.updateById(goodsPhoneModel)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsPhoneModel:remove')") - @OperationLog - @ApiOperation("删除商品匹配机型") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (goodsPhoneModelService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsPhoneModel:save')") - @OperationLog - @ApiOperation("批量添加商品匹配机型") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (goodsPhoneModelService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsPhoneModel:update')") - @OperationLog - @ApiOperation("批量修改商品匹配机型") - @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(goodsPhoneModelService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsPhoneModel:remove')") - @OperationLog - @ApiOperation("批量删除商品匹配机型") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (goodsPhoneModelService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/shop/controller/GoodsPriceController.java b/src/main/java/com/gxwebsoft/shop/controller/GoodsPriceController.java deleted file mode 100644 index dda4d01..0000000 --- a/src/main/java/com/gxwebsoft/shop/controller/GoodsPriceController.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.gxwebsoft.shop.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.system.entity.Area; -import com.gxwebsoft.common.system.entity.User; -import com.gxwebsoft.common.system.service.AreaService; -import com.gxwebsoft.shop.service.GoodsPriceService; -import com.gxwebsoft.shop.entity.GoodsPrice; -import com.gxwebsoft.shop.param.GoodsPriceParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 商品价格()控制器 - * - * @author 科技小王子 - * @since 2024-03-12 01:35:40 - */ -@Api(tags = "商品价格()管理") -@RestController -@RequestMapping("/api/shop/goods-price") -public class GoodsPriceController extends BaseController { - @Resource - private GoodsPriceService goodsPriceService; - @Resource - private AreaService areaService; - - @PreAuthorize("hasAuthority('shop:goodsPrice:list')") - @OperationLog - @ApiOperation("分页查询商品价格()") - @GetMapping("/page") - public ApiResult> page(GoodsPriceParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(goodsPriceService.page(page, page.getWrapper())); - // 使用关联查询 - //return success(goodsPriceService.pageRel(param)); - } - - @PreAuthorize("hasAuthority('shop:goodsPrice:list')") - @OperationLog - @ApiOperation("查询全部商品价格()") - @GetMapping() - public ApiResult> list(GoodsPriceParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(goodsPriceService.list(page.getOrderWrapper())); - // 使用关联查询 - //return success(goodsPriceService.listRel(param)); - } - - @PreAuthorize("hasAuthority('shop:goodsPrice:list')") - @OperationLog - @ApiOperation("根据id查询商品价格()") - @GetMapping("/info-by-city/{goodsId}/{cityId}") - public ApiResult infoByCity(@PathVariable("goodsId") Integer goodsId, @PathVariable("cityId") Integer cityId) { - return success(goodsPriceService.getByGoodsIdNCity(goodsId, cityId)); - } - - @PreAuthorize("hasAuthority('shop:goodsPrice:list')") - @OperationLog - @ApiOperation("根据id查询商品价格()") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - return success(goodsPriceService.getById(id)); - // 使用关联查询 - //return success(goodsPriceService.getByIdRel(id)); - } - - - @PreAuthorize("hasAuthority('shop:goodsPrice:update')") - @OperationLog - @ApiOperation("修改商品价格()") - @PutMapping() - public ApiResult update(@RequestBody GoodsPrice goodsPrice) { - if (goodsPriceService.updateById(goodsPrice)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsPrice:remove')") - @OperationLog - @ApiOperation("删除商品价格()") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (goodsPriceService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsPrice:save')") - @OperationLog - @ApiOperation("批量添加商品价格()") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (goodsPriceService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsPrice:update')") - @OperationLog - @ApiOperation("批量修改商品价格()") - @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(goodsPriceService, "id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsPrice:remove')") - @OperationLog - @ApiOperation("批量删除商品价格()") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (goodsPriceService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/shop/controller/GoodsServiceController.java b/src/main/java/com/gxwebsoft/shop/controller/GoodsServiceController.java deleted file mode 100644 index 3a87d4b..0000000 --- a/src/main/java/com/gxwebsoft/shop/controller/GoodsServiceController.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.gxwebsoft.shop.controller; - -import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.system.entity.User; -import com.gxwebsoft.shop.service.GoodsServiceService; -import com.gxwebsoft.shop.entity.GoodsService; -import com.gxwebsoft.shop.param.GoodsServiceParam; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.BatchParam; -import com.gxwebsoft.common.core.annotation.OperationLog; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * 商品服务与承诺记录表控制器 - * - * @author 科技小王子 - * @since 2022-11-23 21:57:50 - */ -@Api(tags = "商品服务与承诺记录表管理") -@RestController -@RequestMapping("/api/shop/goods-service") -public class GoodsServiceController extends BaseController { - @Resource - private GoodsServiceService goodsServiceService; - - @PreAuthorize("hasAuthority('shop:goodsService:list')") - @OperationLog - @ApiOperation("分页查询商品服务与承诺记录表") - @GetMapping("/page") - public ApiResult> page(GoodsServiceParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time asc"); - return success(goodsServiceService.page(page, page.getWrapper())); - // 使用关联查询 - //return success(goodsServiceService.pageRel(param)); - } - - @PreAuthorize("hasAuthority('shop:goodsService:list')") - @OperationLog - @ApiOperation("查询全部商品服务与承诺记录表") - @GetMapping() - public ApiResult> list(GoodsServiceParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(goodsServiceService.list(page.getOrderWrapper())); - // 使用关联查询 - //return success(goodsServiceService.listRel(param)); - } - - @PreAuthorize("hasAuthority('shop:goodsService:list')") - @OperationLog - @ApiOperation("根据id查询商品服务与承诺记录表") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - return success(goodsServiceService.getById(id)); - // 使用关联查询 - //return success(goodsServiceService.getByIdRel(id)); - } - - @PreAuthorize("hasAuthority('shop:goodsService:save')") - @OperationLog - @ApiOperation("添加商品服务与承诺记录表") - @PostMapping() - public ApiResult save(@RequestBody GoodsService goodsService) { - // 记录当前登录用户id、租户id - User loginUser = getLoginUser(); - if (loginUser != null) { - goodsService.setUserId(loginUser.getUserId()); - } - if (goodsServiceService.save(goodsService)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsService:update')") - @OperationLog - @ApiOperation("修改商品服务与承诺记录表") - @PutMapping() - public ApiResult update(@RequestBody GoodsService goodsService) { - if (goodsServiceService.updateById(goodsService)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsService:remove')") - @OperationLog - @ApiOperation("删除商品服务与承诺记录表") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (goodsServiceService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsService:save')") - @OperationLog - @ApiOperation("批量添加商品服务与承诺记录表") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (goodsServiceService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsService:update')") - @OperationLog - @ApiOperation("批量修改商品服务与承诺记录表") - @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(goodsServiceService, "service_id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @PreAuthorize("hasAuthority('shop:goodsService:remove')") - @OperationLog - @ApiOperation("批量删除商品服务与承诺记录表") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (goodsServiceService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - -} diff --git a/src/main/java/com/gxwebsoft/shop/controller/MerchantController.java b/src/main/java/com/gxwebsoft/shop/controller/MerchantController.java index 7ab3bb2..44f3208 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/MerchantController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/MerchantController.java @@ -1,114 +1,110 @@ package com.gxwebsoft.shop.controller; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.gxwebsoft.common.core.utils.CacheClient; -import com.gxwebsoft.common.core.web.*; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.MerchantService; import com.gxwebsoft.shop.entity.Merchant; import com.gxwebsoft.shop.param.MerchantParam; -import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; - -import static com.gxwebsoft.common.core.constants.RedisConstants.MERCHANT_GEO_KEY; -import static com.gxwebsoft.common.core.constants.RedisConstants.MERCHANT_KEY; +import java.util.Map; /** - * 商户管理控制器 + * 商户控制器 * - * @author 科技小王子 - * @since 2022-11-30 15:10:54 + * @author LX + * @since 2026-01-17 16:21:37 */ -@Api(tags = "商户管理管理") +@Api(tags = "商户管理") @RestController @RequestMapping("/api/shop/merchant") public class MerchantController extends BaseController { @Resource private MerchantService merchantService; - @Resource - private CacheClient cacheClient; - @PreAuthorize("hasAuthority('shop:merchant:list')") - @ApiOperation("分页查询商户管理") + @ApiOperation("分页查询商户") @GetMapping("/page") public ApiResult> page(MerchantParam param) { - // 搜索条件 - if (getMerchantCode() != null) { - param.setMerchantCode(getMerchantCode()); - } // 使用关联查询 return success(merchantService.pageRel(param)); } - @PreAuthorize("hasAuthority('shop:merchant:list')") - @ApiOperation("查询全部商户管理") + @ApiOperation("查询全部商户") @GetMapping() public ApiResult> list(MerchantParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - // 使用关联查询 return success(merchantService.listRel(param)); } + @ApiOperation("查询全部商户") + @GetMapping("/mini") + public ApiResult>> miniList(MerchantParam param) { + List merchantList = merchantService.listRel(param); + List> miniList = new ArrayList<>(); + for (Merchant merchant : merchantList) { + Map miniData = new HashMap<>(); + miniData.put("id", merchant.getId()); + miniData.put("name", merchant.getName()); + miniData.put("code", merchant.getCode()); + miniData.put("chain", merchant.getChain()); + miniData.put("lat", merchant.getLat()); + miniData.put("lng", merchant.getLng()); + miniData.put("province", merchant.getProvince()); + miniData.put("city", merchant.getCity()); + miniData.put("region", merchant.getRegion()); + miniData.put("lngAndLat", merchant.getLngAndLat()); + miniList.add(miniData); + } + return success(miniList); + } + + @ApiOperation("查询全部商户") + @GetMapping("/groupByChain") + public ApiResult>> groupByChain() { + // 使用关联查询 + return success(merchantService.groupByChain()); + } + @PreAuthorize("hasAuthority('shop:merchant:list')") - @ApiOperation("根据id查询商户管理") + @ApiOperation("根据id查询商户") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { - // 使用关联查询 + // 使用关联查询 return success(merchantService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:merchant:save')") - @ApiOperation("添加商户管理") + @ApiOperation("添加商户") @PostMapping() public ApiResult save(@RequestBody Merchant merchant) { - if (merchantService.count(new LambdaQueryWrapper() - .eq(Merchant::getMerchantCode, merchant.getMerchantCode())) > 0) { - return fail("商户编号已存在"); - } + Merchant check = merchantService.getByName(merchant.getName()); + if (check != null) return fail("门店已存在"); if (merchantService.save(merchant)) { - // 添加缓存 - String lngAndLat = merchant.getLngAndLat(); - String[] split = lngAndLat.split(","); - Double x = Double.parseDouble(split[0]); - Double y = Double.parseDouble(split[1]); - String id = merchant.getMerchantId().toString(); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.set(MERCHANT_KEY.concat(":").concat(merchant.getMerchantId().toString()),merchant); return success("添加成功"); } return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:merchant:update')") - @ApiOperation("修改商户管理") + @ApiOperation("修改商户") @PutMapping() public ApiResult update(@RequestBody Merchant merchant) { - // 超级管理员不能设为店主 - if(getLoginUser().getUserId().equals(merchant.getMerchantOwner())){ - return fail("超级管理员不能绑定为负责人!"); - } if (merchantService.updateById(merchant)) { - // 添加缓存 - String lngAndLat = merchant.getLngAndLat(); - String[] split = lngAndLat.split(","); - Double x = Double.parseDouble(split[0]); - Double y = Double.parseDouble(split[1]); - String id = merchant.getMerchantId().toString(); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.set(MERCHANT_KEY.concat(":").concat(merchant.getMerchantId().toString()),merchant); return success("修改成功"); } return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:merchant:remove')") - @ApiOperation("删除商户管理") + @ApiOperation("删除商户") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { if (merchantService.removeById(id)) { @@ -117,55 +113,39 @@ public class MerchantController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:merchant:save')") - @ApiOperation("批量添加商户管理") + @ApiOperation("批量添加商户") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { - if (merchantService.saveBatch(list)) { - list.forEach(d -> { - // 添加缓存 - String lngAndLat = d.getLngAndLat(); - String[] split = lngAndLat.split(","); - Double x = Double.parseDouble(split[0]); - Double y = Double.parseDouble(split[1]); - String id = d.getMerchantId().toString(); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.geoAdd(MERCHANT_GEO_KEY,x,y,id); - cacheClient.set(MERCHANT_KEY.concat(":").concat(d.getMerchantId().toString()),d); - }); + List filterList = new ArrayList<>(); + for (Merchant merchant : list) { + Merchant check = merchantService.getByName(merchant.getName()); + if (check == null) { + filterList.add(merchant); + } + } + if (filterList.isEmpty()) return fail("没有可导入数据"); + if (merchantService.saveBatch(filterList)) { return success("添加成功"); } return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:merchant:update')") - @ApiOperation("批量修改商户管理") + @ApiOperation("批量修改商户") @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(merchantService, "merchant_id")) { + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(merchantService, "id")) { return success("修改成功"); } return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:merchant:remove')") - @ApiOperation("批量删除商户管理") + @ApiOperation("批量删除商户") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { if (merchantService.removeByIds(ids)) { - // 删除缓存 - ids.forEach(id -> { - cacheClient.geoRemove(MERCHANT_GEO_KEY,id); - }); return success("删除成功"); } return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:merchant:list')") - @ApiOperation("根据定位查询附近的商户列表") - @PostMapping("/getListByGeo") - public ApiResult> getListByGeo(@RequestBody MerchantParam param) { - return success(merchantService.listByGeo(param)); - } } diff --git a/src/main/java/com/gxwebsoft/shop/controller/OrderController.java b/src/main/java/com/gxwebsoft/shop/controller/OrderController.java new file mode 100644 index 0000000..8dc5e41 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/OrderController.java @@ -0,0 +1,167 @@ +package com.gxwebsoft.shop.controller; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.RandomUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.entity.*; +import com.gxwebsoft.shop.service.*; +import com.gxwebsoft.shop.param.OrderParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; + +/** + * 订单记录表控制器 + * + * @author LX + * @since 2026-01-18 14:38:08 + */ +@Api(tags = "订单记录表管理") +@RestController +@RequestMapping("/api/shop/order") +public class OrderController extends BaseController { + @Resource + private OrderService orderService; + @Resource + private OrderGoodsService orderGoodsService; + @Resource + private GoodsService goodsService; + @Resource + private UserCouponService userCouponService; + @Resource + private CouponService couponService; + + @Autowired + private WxPayController wxPayController; + + @ApiOperation("分页查询订单记录表") + @GetMapping("/page") + public ApiResult> page(OrderParam param) { + // 使用关联查询 + return success(orderService.pageRel(param)); + } + + @ApiOperation("查询全部订单记录表") + @GetMapping() + public ApiResult> list(OrderParam param) { + // 使用关联查询 + return success(orderService.listRel(param)); + } + + @ApiOperation("根据id查询订单记录表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + Order order = orderService.getByIdRel(id); + orderService.setData(order); + return success(order); + } + + @ApiOperation("添加订单记录表") + @PostMapping() + public ApiResult save(@RequestBody Order order) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + order.setUserId(loginUser.getUserId()); + } + order.setOrderNo(LocalDateTimeUtil.format(LocalDateTimeUtil.now(), "yyyyMMddHHmmss") + RandomUtil.randomNumbers(6)); + List orderGoodsList = order.getGoodsList(); + BigDecimal totalPrice = BigDecimal.ZERO; + for (OrderGoods orderGoods : orderGoodsList) { + Goods goods = goodsService.getById(orderGoods.getGoodsId()); + totalPrice = totalPrice.add(goods.getSalePrice().multiply(new BigDecimal(orderGoods.getNum()))); + } + order.setTotalPrice(totalPrice); + BigDecimal orderPrice = totalPrice; + BigDecimal couponMoney = BigDecimal.ZERO; + if (order.getCouponId() != null) { + UserCoupon userCoupon = userCouponService.getById(order.getCouponId()); + if (userCoupon != null) { + Coupon coupon = couponService.getById(userCoupon.getCouponId()); + if (coupon != null) { + if (totalPrice.compareTo(coupon.getStartAmount()) > -1) { + if (coupon.getType() == 0) { + orderPrice = totalPrice.subtract(coupon.getReduceAmount()); + couponMoney = coupon.getReduceAmount(); + }else { + orderPrice = totalPrice.multiply(coupon.getReduceRate().divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP)); + couponMoney = totalPrice.subtract(orderPrice); + } + } + } + } + } + order.setOrderPrice(orderPrice); + order.setCouponMoney(couponMoney); + if (orderService.save(order)) { + for (OrderGoods orderGoods : orderGoodsList) { + orderGoods.setOrderId(order.getOrderId()); + orderGoods.setUserId(order.getUserId()); + } + orderGoodsService.saveBatch(orderGoodsList); + return success("添加成功", wxPayController.makePay(loginUser.getOpenId(), order.getOrderNo(), + order.getOrderPrice().multiply(new BigDecimal(100)).intValue(), + "药动销", null)); + } + return fail("添加失败"); + } + + @ApiOperation("修改订单记录表") + @PutMapping() + public ApiResult update(@RequestBody Order order) { + if (orderService.updateById(order)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除订单记录表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (orderService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加订单记录表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (orderService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改订单记录表") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(orderService, "order_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除订单记录表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (orderService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/controller/OrderGoodsController.java b/src/main/java/com/gxwebsoft/shop/controller/OrderGoodsController.java index ca66558..69cbd1a 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/OrderGoodsController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/OrderGoodsController.java @@ -1,7 +1,6 @@ package com.gxwebsoft.shop.controller; import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.shop.service.OrderGoodsService; import com.gxwebsoft.shop.entity.OrderGoods; import com.gxwebsoft.shop.param.OrderGoodsParam; @@ -10,6 +9,7 @@ import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -21,8 +21,8 @@ import java.util.List; /** * 订单商品记录表控制器 * - * @author 科技小王子 - * @since 2022-12-09 17:15:31 + * @author LX + * @since 2026-01-18 22:39:33 */ @Api(tags = "订单商品记录表管理") @RestController @@ -31,8 +31,6 @@ public class OrderGoodsController extends BaseController { @Resource private OrderGoodsService orderGoodsService; - @PreAuthorize("hasAuthority('shop:orderGoods:list')") - @OperationLog @ApiOperation("分页查询订单商品记录表") @GetMapping("/page") public ApiResult> page(OrderGoodsParam param) { @@ -40,8 +38,6 @@ public class OrderGoodsController extends BaseController { return success(orderGoodsService.pageRel(param)); } - @PreAuthorize("hasAuthority('shop:orderGoods:list')") - @OperationLog @ApiOperation("查询全部订单商品记录表") @GetMapping() public ApiResult> list(OrderGoodsParam param) { @@ -50,7 +46,6 @@ public class OrderGoodsController extends BaseController { } @PreAuthorize("hasAuthority('shop:orderGoods:list')") - @OperationLog @ApiOperation("根据id查询订单商品记录表") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { @@ -58,16 +53,13 @@ public class OrderGoodsController extends BaseController { return success(orderGoodsService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:orderGoods:save')") - @OperationLog @ApiOperation("添加订单商品记录表") @PostMapping() public ApiResult save(@RequestBody OrderGoods orderGoods) { - // 记录当前登录用户id、租户id、商户编号 + // 记录当前登录用户id User loginUser = getLoginUser(); if (loginUser != null) { - orderGoods.setUserId(loginUser.getUserId()); -// orderGoods.setMerchantCode(getMerchantCode()); + orderGoods.setUserId(loginUser.getUserId()); } if (orderGoodsService.save(orderGoods)) { return success("添加成功"); @@ -75,8 +67,6 @@ public class OrderGoodsController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:orderGoods:update')") - @OperationLog @ApiOperation("修改订单商品记录表") @PutMapping() public ApiResult update(@RequestBody OrderGoods orderGoods) { @@ -86,8 +76,6 @@ public class OrderGoodsController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:orderGoods:remove')") - @OperationLog @ApiOperation("删除订单商品记录表") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { @@ -97,8 +85,6 @@ public class OrderGoodsController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:orderGoods:save')") - @OperationLog @ApiOperation("批量添加订单商品记录表") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { @@ -108,19 +94,15 @@ public class OrderGoodsController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:orderGoods:update')") - @OperationLog @ApiOperation("批量修改订单商品记录表") @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(orderGoodsService, "order_goods_id")) { + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(orderGoodsService, "id")) { return success("修改成功"); } return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:orderGoods:remove')") - @OperationLog @ApiOperation("批量删除订单商品记录表") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { diff --git a/src/main/java/com/gxwebsoft/shop/controller/PaymentController.java b/src/main/java/com/gxwebsoft/shop/controller/PaymentController.java deleted file mode 100644 index 6f1a6fd..0000000 --- a/src/main/java/com/gxwebsoft/shop/controller/PaymentController.java +++ /dev/null @@ -1,295 +0,0 @@ -package com.gxwebsoft.shop.controller; - -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.core.config.ConfigProperties; -import com.gxwebsoft.common.core.exception.BusinessException; -import com.gxwebsoft.common.core.web.*; -import com.gxwebsoft.common.system.entity.User; -import com.gxwebsoft.common.system.service.OperationRecordService; -import com.gxwebsoft.common.system.service.UserService; -import com.gxwebsoft.shop.entity.Order; -import com.gxwebsoft.shop.entity.Payment; -import com.gxwebsoft.shop.entity.UserBalanceLog; -import com.gxwebsoft.shop.param.PaymentParam; -import com.gxwebsoft.shop.service.OrderService; -import com.gxwebsoft.shop.service.PaymentService; -import com.gxwebsoft.shop.service.UserBalanceLogService; -import com.gxwebsoft.shop.service.UserOauthService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiModelProperty; -import io.swagger.annotations.ApiOperation; -import org.springframework.core.env.Environment; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.Date; -import java.util.List; - -import static com.gxwebsoft.common.core.constants.BalanceConstants.BALANCE_USE; -import static com.gxwebsoft.common.core.constants.OrderConstants.*; - -/** - * 商城支付方式记录表控制器 - * - * @author 科技小王子 - * @since 2022-12-15 19:11:07 - */ -@Api(tags = "商城支付方式记录表管理") -@RestController -@RequestMapping("/api/shop/payment") -public class PaymentController extends BaseController { - @Resource - private PaymentService paymentService; - @Resource - private OrderService orderService; - @Resource - private Environment config; - @Resource - private ConfigProperties pathConfig; - @Resource - private OperationRecordService operationRecordService; - @Resource - private UserOauthService userOauthService; - @Resource - private UserService userService; - @Resource - private UserBalanceLogService userBalanceLogService; - - @PreAuthorize("hasAuthority('shop:payment:list')") - @ApiOperation("分页查询商城支付方式记录表") - @GetMapping("/page") - public ApiResult> page(PaymentParam param) { - PageParam page = new PageParam<>(param); - return success(paymentService.page(page, page.getWrapper())); - // 使用关联查询 - //return success(paymentService.pageRel(param)); - } - - @PreAuthorize("hasAuthority('shop:payment:list')") - @ApiOperation("查询全部商城支付方式记录表") - @GetMapping() - public ApiResult> list(PaymentParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(paymentService.list(page.getOrderWrapper())); - // 使用关联查询 - //return success(paymentService.listRel(param)); - } - - @PreAuthorize("hasAuthority('shop:payment:list')") - @ApiOperation("根据id查询商城支付方式记录表") - @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { - return success(paymentService.getById(id)); - // 使用关联查询 - //return success(paymentService.getByIdRel(id)); - } - - @PreAuthorize("hasAuthority('shop:payment:save')") - @ApiOperation("添加商城支付方式记录表") - @PostMapping() - public ApiResult save(@RequestBody Payment payment) { - if (paymentService.count(new LambdaQueryWrapper() - .eq(Payment::getMethod, payment.getMethod())) > 0) { - return fail("该支付方式已存在"); - } - if (paymentService.save(payment)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @PreAuthorize("hasAuthority('shop:payment:update')") - @OperationLog - @ApiOperation("修改商城支付方式记录表") - @PutMapping() - public ApiResult update(@RequestBody Payment payment) { - if (paymentService.updateById(payment)) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @PreAuthorize("hasAuthority('shop:payment:remove')") - @OperationLog - @ApiOperation("删除商城支付方式记录表") - @DeleteMapping("/{id}") - public ApiResult remove(@PathVariable("id") Integer id) { - if (paymentService.removeById(id)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @PreAuthorize("hasAuthority('shop:payment:save')") - @OperationLog - @ApiOperation("批量添加商城支付方式记录表") - @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (paymentService.saveBatch(list)) { - return success("添加成功"); - } - return fail("添加失败"); - } - - @PreAuthorize("hasAuthority('shop:payment:update')") - @OperationLog - @ApiOperation("批量修改商城支付方式记录表") - @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(paymentService, "payment_id")) { - return success("修改成功"); - } - return fail("修改失败"); - } - - @PreAuthorize("hasAuthority('shop:payment:remove')") - @OperationLog - @ApiOperation("批量删除商城支付方式记录表") - @DeleteMapping("/batch") - public ApiResult removeBatch(@RequestBody List ids) { - if (paymentService.removeByIds(ids)) { - return success("删除成功"); - } - return fail("删除失败"); - } - - @OperationLog - @ApiModelProperty("余额支付") - @GetMapping("/balance/{id}") - @Transactional(rollbackFor = {Exception.class}) - public ApiResult balance(@PathVariable("id") Integer id){ - // 1. 验证签名 - isCheckSign(); - // 订单数据 - Order order = orderService.getByIdRel(id); - // 当前登录用户id - User user = new User(); - // 代付款情况 - if(!order.getUserId().equals(getLoginUserId())){ - user = userService.getById(order.getUserId()); - }else{ - user = getLoginUser(); - } - final Integer userId = user.getUserId(); - final BigDecimal balance = user.getBalance(); - final BigDecimal payPrice = order.getPayPrice(); - if(balance.compareTo(payPrice) < 0){ - return fail("余额不足 = " + balance.compareTo(payPrice)); - } - // 2. 扣除余额操作 - BigDecimal subtract = balance.subtract(payPrice); - user.setBalance(subtract); - userService.updateById(user); - // 3. 记录余额明细 - UserBalanceLog userBalanceLog = new UserBalanceLog(); - userBalanceLog.setUserId(userId); - userBalanceLog.setScene(BALANCE_USE); - userBalanceLog.setMoney(payPrice); - userBalanceLog.setBalance(subtract); - userBalanceLog.setComments(order.getOrderNo().toString()); - userBalanceLog.setMerchantCode(order.getMerchantCode()); - userBalanceLogService.save(userBalanceLog); - // 4. 修改支付状态 - order.setPayStatus(PAY_STATUS_SUCCESS); - order.setPayMethod(PAY_METHOD_BALANCE); - order.setReceiptAmount(payPrice); - order.setPayTime(DateUtil.date()); - order.setSubject(order.getMerchantName()); - orderService.updateByIdRel(order); - // 5. 续租订单 - if(order.getRentOrderId() > 0){ - // 主订单 - Order parentOrder = orderService.getById(order.getRentOrderId()); - // 更新过期时间延长一个月 - Date expirationTime = parentOrder.getExpirationTime(); - DateTime nextMonthTime = DateUtil.offsetMonth(expirationTime, 1); - parentOrder.setExpirationTime(nextMonthTime); - orderService.updateById(parentOrder); - // 保存续费订单状态 - order.setDeliveryStatus(DELIVERY_STATUS_YES); - order.setReceiptStatus(RECEIPT_STATUS_YES); - order.setOrderStatus(ORDER_STATUS_COMPLETED); - order.setStartTime(expirationTime); - order.setExpirationTime(nextMonthTime); - orderService.updateById(order); - } - - return success("支付成功",user); - } - - @OperationLog - @ApiModelProperty("余额支付批量") - @PostMapping("/balanceBatch") - @Transactional(rollbackFor = {Exception.class}) - public ApiResult balanceBatch(@RequestBody List orderIds) { - // 1. 验证签名 - isCheckSign(); - // 订单数据 - final List list = orderService.listByIds(orderIds); - final StringBuilder sb = new StringBuilder(); - - list.forEach(d -> { - // 当前登录用户id - User user = new User(); - // 代付款情况 - if(!d.getUserId().equals(getLoginUserId())){ - user = userService.getById(d.getUserId()); - }else{ - user = getLoginUser(); - } - final Integer userId = user.getUserId(); - final BigDecimal balance = user.getBalance(); - final BigDecimal payPrice = d.getPayPrice(); - if(balance.compareTo(payPrice) < 0){ - sb.append("下单失败:").append(user.getNickname()).append("余额不足"); - throw new BusinessException("余额不足"); - } - // 2. 扣除余额操作 - BigDecimal subtract = balance.subtract(payPrice); - user.setBalance(subtract); - userService.updateById(user); - // 3. 记录余额明细 - UserBalanceLog userBalanceLog = new UserBalanceLog(); - userBalanceLog.setUserId(userId); - userBalanceLog.setScene(BALANCE_USE); - userBalanceLog.setMoney(payPrice); - userBalanceLog.setBalance(subtract); - userBalanceLog.setComments(d.getOrderNo().toString()); - userBalanceLog.setMerchantCode(d.getMerchantCode()); - userBalanceLogService.save(userBalanceLog); - // 4. 修改支付状态 - d.setPayStatus(PAY_STATUS_SUCCESS); - d.setPayMethod(PAY_METHOD_BALANCE); - d.setReceiptAmount(payPrice); - d.setPayTime(DateUtil.date()); - d.setSubject(d.getMerchantName()); - orderService.updateByIdRel(d); - // 5. 续租订单 - if(d.getRentOrderId() > 0){ - // 主订单 - Order parentOrder = orderService.getById(d.getRentOrderId()); - // 更新过期时间延长一个月 - Date expirationTime = parentOrder.getExpirationTime(); - DateTime nextMonthTime = DateUtil.offsetMonth(expirationTime, 1); - parentOrder.setExpirationTime(nextMonthTime); - orderService.updateById(parentOrder); - // 保存续费订单状态 - d.setDeliveryStatus(DELIVERY_STATUS_YES); - d.setReceiptStatus(RECEIPT_STATUS_YES); - d.setOrderStatus(ORDER_STATUS_COMPLETED); - d.setStartTime(expirationTime); - d.setExpirationTime(nextMonthTime); - orderService.updateById(d); - } - }); - return success("支付成功",sb); - } - -} diff --git a/src/main/java/com/gxwebsoft/shop/controller/TestController.java b/src/main/java/com/gxwebsoft/shop/controller/TestController.java deleted file mode 100644 index fc3c8d0..0000000 --- a/src/main/java/com/gxwebsoft/shop/controller/TestController.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.gxwebsoft.shop.controller; - -import com.gxwebsoft.common.core.annotation.OperationLog; -import com.gxwebsoft.common.core.constants.RedisConstants; -import com.gxwebsoft.common.core.web.ApiResult; -import com.gxwebsoft.common.core.web.BaseController; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@Api(tags = "测试控制器") -@RequestMapping("/api/shop/test") -public class TestController extends BaseController { - - @GetMapping() - @OperationLog - @ApiOperation("测试方法") - public ApiResult test(){ - return null; - } -} diff --git a/src/main/java/com/gxwebsoft/shop/controller/UserAddressController.java b/src/main/java/com/gxwebsoft/shop/controller/UserAddressController.java index 71b88e1..68ad8d4 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/UserAddressController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/UserAddressController.java @@ -1,7 +1,6 @@ package com.gxwebsoft.shop.controller; import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.shop.service.UserAddressService; import com.gxwebsoft.shop.entity.UserAddress; import com.gxwebsoft.shop.param.UserAddressParam; @@ -10,6 +9,7 @@ import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -19,61 +19,48 @@ import javax.annotation.Resource; import java.util.List; /** - * 用户收货地址表控制器 + * 收货地址控制器 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 21:17:34 */ -@Api(tags = "用户收货地址表管理") +@Api(tags = "收货地址管理") @RestController @RequestMapping("/api/shop/user-address") public class UserAddressController extends BaseController { @Resource private UserAddressService userAddressService; - @PreAuthorize("hasAuthority('shop:userAddress:list')") - @OperationLog - @ApiOperation("分页查询用户收货地址表") + @ApiOperation("分页查询收货地址") @GetMapping("/page") public ApiResult> page(UserAddressParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(userAddressService.page(page, page.getWrapper())); // 使用关联查询 - //return success(userAddressService.pageRel(param)); + return success(userAddressService.pageRel(param)); } - @PreAuthorize("hasAuthority('shop:userAddress:list')") - @OperationLog - @ApiOperation("查询全部用户收货地址表") + @ApiOperation("查询全部收货地址") @GetMapping() public ApiResult> list(UserAddressParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(userAddressService.list(page.getOrderWrapper())); // 使用关联查询 - //return success(userAddressService.listRel(param)); + param.setUserId(getLoginUserId()); + return success(userAddressService.listRel(param)); } @PreAuthorize("hasAuthority('shop:userAddress:list')") - @OperationLog - @ApiOperation("根据id查询用户收货地址表") + @ApiOperation("根据id查询收货地址") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { - return success(userAddressService.getById(id)); // 使用关联查询 - //return success(userAddressService.getByIdRel(id)); + return success(userAddressService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:userAddress:save')") - @OperationLog - @ApiOperation("添加用户收货地址表") + @ApiOperation("添加收货地址") @PostMapping() public ApiResult save(@RequestBody UserAddress userAddress) { - // 记录当前登录用户id、租户id + // 记录当前登录用户id User loginUser = getLoginUser(); if (loginUser != null) { - userAddress.setUserId(loginUser.getUserId()); + userAddress.setUserId(loginUser.getUserId()); } if (userAddressService.save(userAddress)) { return success("添加成功"); @@ -81,9 +68,7 @@ public class UserAddressController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:userAddress:update')") - @OperationLog - @ApiOperation("修改用户收货地址表") + @ApiOperation("修改收货地址") @PutMapping() public ApiResult update(@RequestBody UserAddress userAddress) { if (userAddressService.updateById(userAddress)) { @@ -92,9 +77,7 @@ public class UserAddressController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:userAddress:remove')") - @OperationLog - @ApiOperation("删除用户收货地址表") + @ApiOperation("删除收货地址") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { if (userAddressService.removeById(id)) { @@ -103,9 +86,7 @@ public class UserAddressController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:userAddress:save')") - @OperationLog - @ApiOperation("批量添加用户收货地址表") + @ApiOperation("批量添加收货地址") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { if (userAddressService.saveBatch(list)) { @@ -114,20 +95,16 @@ public class UserAddressController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:userAddress:update')") - @OperationLog - @ApiOperation("批量修改用户收货地址表") + @ApiOperation("批量修改收货地址") @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(userAddressService, "address_id")) { + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(userAddressService, "id")) { return success("修改成功"); } return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:userAddress:remove')") - @OperationLog - @ApiOperation("批量删除用户收货地址表") + @ApiOperation("批量删除收货地址") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { if (userAddressService.removeByIds(ids)) { diff --git a/src/main/java/com/gxwebsoft/shop/controller/UserBalanceLogController.java b/src/main/java/com/gxwebsoft/shop/controller/UserBalanceLogController.java index ca71691..acd97aa 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/UserBalanceLogController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/UserBalanceLogController.java @@ -1,17 +1,14 @@ package com.gxwebsoft.shop.controller; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.common.core.utils.ExcelExportUtil; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.system.entity.FileRecord; import com.gxwebsoft.common.system.entity.User; -import com.gxwebsoft.common.system.service.FileRecordService; import com.gxwebsoft.common.system.service.UserService; -import com.gxwebsoft.shop.constants.OrderConstants; -import com.gxwebsoft.shop.entity.Goods; import com.gxwebsoft.shop.entity.Order; -import com.gxwebsoft.shop.param.OrderParam; -import com.gxwebsoft.shop.service.GoodsPriceService; import com.gxwebsoft.shop.service.GoodsService; import com.gxwebsoft.shop.service.OrderService; import com.gxwebsoft.shop.service.UserBalanceLogService; @@ -24,19 +21,18 @@ import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.annotation.OperationLog; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.poi.hssf.usermodel.HSSFRow; -import org.apache.poi.hssf.usermodel.HSSFSheet; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.springframework.beans.factory.annotation.Value; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import java.io.FileOutputStream; import java.io.IOException; -import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 用户余额变动明细表控制器 @@ -53,19 +49,9 @@ public class UserBalanceLogController extends BaseController { @Resource private OrderService orderService; @Resource - private GoodsService goodsService; - @Resource - private GoodsPriceService goodsPriceService; - @Resource private UserService userService; @Resource - private FileRecordService fileRecordService; - - @Value("${config.upload-path}") - private String uploadPath; - - @Value("${config.server-url}") - private String requestURL; + private ExcelExportUtil excelExportUtil; @PostMapping("/list") public ApiResult> listForFront(@RequestBody UserBalanceLogParam param) { @@ -73,14 +59,13 @@ public class UserBalanceLogController extends BaseController { User loginUser = getLoginUser(); param.setUserId(getLoginUserId()); List userBalanceLogList = userBalanceLogService.listRel(param); - userBalanceLogList.forEach(userBalanceLog -> { - Order order = orderService.getByIdRel(userBalanceLog.getOrderId()); - userBalanceLog.setOrder(order); - }); +// userBalanceLogList.forEach(userBalanceLog -> { +// Order order = orderService.getByIdRel(userBalanceLog.getOrderId()); +// userBalanceLog.setOrder(order); +// }); return success(userBalanceLogList); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:list')") @OperationLog @ApiOperation("分页查询用户余额变动明细表") @GetMapping("/page") @@ -93,7 +78,6 @@ public class UserBalanceLogController extends BaseController { return success(list); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:list')") @OperationLog @ApiOperation("查询全部用户余额变动明细表") @GetMapping() @@ -105,7 +89,6 @@ public class UserBalanceLogController extends BaseController { //return success(userBalanceLogService.listRel(param)); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:list')") @OperationLog @ApiOperation("根据id查询用户余额变动明细表") @GetMapping("/{id}") @@ -115,7 +98,6 @@ public class UserBalanceLogController extends BaseController { //return success(userBalanceLogService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:save')") @OperationLog @ApiOperation("添加用户余额变动明细表") @PostMapping() @@ -132,7 +114,6 @@ public class UserBalanceLogController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:update')") @OperationLog @ApiOperation("修改用户余额变动明细表") @PutMapping() @@ -143,7 +124,6 @@ public class UserBalanceLogController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:remove')") @OperationLog @ApiOperation("删除用户余额变动明细表") @DeleteMapping("/{id}") @@ -154,7 +134,6 @@ public class UserBalanceLogController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:save')") @OperationLog @ApiOperation("批量添加用户余额变动明细表") @PostMapping("/batch") @@ -165,7 +144,6 @@ public class UserBalanceLogController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:update')") @OperationLog @ApiOperation("批量修改用户余额变动明细表") @PutMapping("/batch") @@ -176,7 +154,6 @@ public class UserBalanceLogController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:remove')") @OperationLog @ApiOperation("批量删除用户余额变动明细表") @DeleteMapping("/batch") @@ -187,55 +164,80 @@ public class UserBalanceLogController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:userBalanceLog:list')") @OperationLog @ApiOperation("导出") @PostMapping("/export") - public ApiResult export(@RequestBody UserBalanceLogParam param, HttpServletRequest request) throws IOException { - User loginUser = getLoginUser(); - String filename = "file/excel/佣金表" + new Date().getTime() + ".xls"; - String path = uploadPath + filename; - HSSFWorkbook workbook = new HSSFWorkbook(); - //创建工作表单 - HSSFSheet sheet = workbook.createSheet(); + public ApiResult export(@RequestBody(required = false) UserBalanceLogParam param) throws IOException { + if (param == null) { + param = new UserBalanceLogParam(); + } + param.normalizeStringFields(); List list = userBalanceLogService.listRel(param); - HSSFRow row = sheet.createRow(0); - row.createCell(0).setCellValue("订单号"); - row.createCell(1).setCellValue("手机号"); - row.createCell(2).setCellValue("姓名"); - row.createCell(3).setCellValue("订单金额"); - row.createCell(4).setCellValue("收/支"); - row.createCell(5).setCellValue("佣金"); - row.createCell(6).setCellValue("说明"); - row.createCell(7).setCellValue("下单时间"); + Set orderIds = list.stream() + .map(UserBalanceLog::getOrderId) + .filter(orderId -> orderId != null && orderId > 0) + .collect(Collectors.toSet()); + Map orderMap = orderIds.isEmpty() ? java.util.Collections.emptyMap() : + orderService.listByIds(orderIds).stream().collect(Collectors.toMap(Order::getOrderId, Function.identity())); + Set userIds = list.stream() + .map(UserBalanceLog::getUserId) + .filter(userId -> userId != null && userId > 0) + .collect(Collectors.toSet()); + Map userMap = userIds.isEmpty() ? java.util.Collections.emptyMap() : + userService.listByIds(userIds).stream().collect(Collectors.toMap(User::getUserId, Function.identity())); + + XSSFWorkbook workbook = excelExportUtil.createWorkbook("用户余额变动明细", + "流水ID", "订单号", "手机号", "姓名", "订单金额", "变动场景", "变动金额", "变动后余额", "说明", "创建时间"); + Sheet sheet = workbook.getSheetAt(0); int rowNum = 1; for (UserBalanceLog log : list) { - HSSFRow orderRow = sheet.createRow(rowNum); - Order order = orderService.getById(log.getOrderId()); - User user = userService.getById(order.getUserId()); - orderRow.createCell(0).setCellValue(order.getOrderNo()); - orderRow.createCell(1).setCellValue(user.getPhone()); - orderRow.createCell(2).setCellValue(user.getRealName()); - orderRow.createCell(3).setCellValue(order.getTotalPrice().toString()); - orderRow.createCell(4).setCellValue(log.getScene().equals(1) ? "退款" : "收入"); - orderRow.createCell(5).setCellValue((log.getScene().equals(1) ? "-" : "") + log.getMoney().toString()); - orderRow.createCell(6).setCellValue(log.getRemark()); - orderRow.createCell(7).setCellValue(DateUtil.formatDateTime(order.getCreateTime()) + " "); + Order order = orderMap.get(log.getOrderId()); + User user = userMap.get(log.getUserId()); + excelExportUtil.writeRow(sheet, rowNum, + log.getLogId(), + order == null ? "" : order.getOrderNo(), + user == null ? "" : user.getPhone(), + user == null ? "" : user.getRealName(), + order == null || order.getTotalPrice() == null ? "" : order.getTotalPrice(), + getSceneText(log.getScene()), + log.getMoney(), + log.getBalance(), + log.getRemark(), + DateUtil.format(log.getCreateTime(), "yyyy-MM-dd HH:mm:ss")); rowNum++; } - FileOutputStream output = new FileOutputStream(path); - workbook.write(output); - output.flush(); - - FileRecord result = new FileRecord(); - result.setCreateUserId(getLoginUserId()); - result.setName(filename); - result.setPath(path); - result.setUrl(requestURL + "/" + filename); -// result.setMerchantCode(getMerchantCode()); - fileRecordService.save(result); + excelExportUtil.autoSizeColumns(sheet, 10); + FileRecord result = excelExportUtil.saveWorkbook(workbook, "用户余额变动明细", getLoginUserId()); return success(result); } + private String getSceneText(Integer scene) { + if (scene == null) { + return ""; + } + switch (scene) { + case 0: + return "药动销收入"; + case 1: + return "药分享收入"; + case 2: + return "提现申请"; + case 3: + return "提现驳回返还"; + case 10: + return "用户充值"; + case 20: + return "用户消费"; + case 21: + return "续租"; + case 30: + return "管理员操作"; + case 40: + return "订单退款"; + default: + return String.valueOf(scene); + } + } + } diff --git a/src/main/java/com/gxwebsoft/shop/controller/UserCouponController.java b/src/main/java/com/gxwebsoft/shop/controller/UserCouponController.java index a4cd739..c34cc6e 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/UserCouponController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/UserCouponController.java @@ -1,7 +1,6 @@ package com.gxwebsoft.shop.controller; import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.shop.service.UserCouponService; import com.gxwebsoft.shop.entity.UserCoupon; import com.gxwebsoft.shop.param.UserCouponParam; @@ -10,6 +9,7 @@ import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -19,61 +19,58 @@ import javax.annotation.Resource; import java.util.List; /** - * 用户优惠券记录表控制器 + * 控制器 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-19 17:54:12 */ -@Api(tags = "用户优惠券记录表管理") +@Api(tags = "管理") @RestController @RequestMapping("/api/shop/user-coupon") public class UserCouponController extends BaseController { @Resource private UserCouponService userCouponService; - @PreAuthorize("hasAuthority('shop:userCoupon:list')") - @OperationLog - @ApiOperation("分页查询用户优惠券记录表") + @ApiOperation("分页查询") @GetMapping("/page") public ApiResult> page(UserCouponParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(userCouponService.page(page, page.getWrapper())); // 使用关联查询 - //return success(userCouponService.pageRel(param)); + return success(userCouponService.pageRel(param)); } - @PreAuthorize("hasAuthority('shop:userCoupon:list')") - @OperationLog - @ApiOperation("查询全部用户优惠券记录表") + @ApiOperation("查询全部") @GetMapping() public ApiResult> list(UserCouponParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - return success(userCouponService.list(page.getOrderWrapper())); // 使用关联查询 - //return success(userCouponService.listRel(param)); + return success(userCouponService.listRel(param)); + } + + @GetMapping("/userList") + public ApiResult> userList(UserCouponParam param) { + // 使用关联查询 + param.setUserId(getLoginUserId()); + return success(userCouponService.listRel(param)); } @PreAuthorize("hasAuthority('shop:userCoupon:list')") - @OperationLog - @ApiOperation("根据id查询用户优惠券记录表") + @ApiOperation("根据id查询") @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { - return success(userCouponService.getById(id)); // 使用关联查询 - //return success(userCouponService.getByIdRel(id)); + return success(userCouponService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('shop:userCoupon:save')") - @OperationLog - @ApiOperation("添加用户优惠券记录表") + @ApiOperation("添加") @PostMapping() public ApiResult save(@RequestBody UserCoupon userCoupon) { - // 记录当前登录用户id、租户id + // 记录当前登录用户id User loginUser = getLoginUser(); if (loginUser != null) { - userCoupon.setUserId(loginUser.getUserId()); + userCoupon.setUserId(loginUser.getUserId()); + } + UserCoupon check = userCouponService.cehck(userCoupon.getCouponId(), loginUser.getUserId()); + if (check != null) { + return fail("已领取"); } if (userCouponService.save(userCoupon)) { return success("添加成功"); @@ -81,9 +78,17 @@ public class UserCouponController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:userCoupon:update')") - @OperationLog - @ApiOperation("修改用户优惠券记录表") + @ApiOperation("添加") + @PostMapping("/send") + public ApiResult send(@RequestBody UserCoupon userCoupon) { + for (int i = 0; i < userCoupon.getNum(); i++) { + userCouponService.save(userCoupon); + } + return success("添加成功"); + } + + + @ApiOperation("修改") @PutMapping() public ApiResult update(@RequestBody UserCoupon userCoupon) { if (userCouponService.updateById(userCoupon)) { @@ -92,9 +97,7 @@ public class UserCouponController extends BaseController { return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:userCoupon:remove')") - @OperationLog - @ApiOperation("删除用户优惠券记录表") + @ApiOperation("删除") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { if (userCouponService.removeById(id)) { @@ -103,9 +106,7 @@ public class UserCouponController extends BaseController { return fail("删除失败"); } - @PreAuthorize("hasAuthority('shop:userCoupon:save')") - @OperationLog - @ApiOperation("批量添加用户优惠券记录表") + @ApiOperation("批量添加") @PostMapping("/batch") public ApiResult saveBatch(@RequestBody List list) { if (userCouponService.saveBatch(list)) { @@ -114,20 +115,16 @@ public class UserCouponController extends BaseController { return fail("添加失败"); } - @PreAuthorize("hasAuthority('shop:userCoupon:update')") - @OperationLog - @ApiOperation("批量修改用户优惠券记录表") + @ApiOperation("批量修改") @PutMapping("/batch") - public ApiResult removeBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(userCouponService, "user_coupon_id")) { + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(userCouponService, "id")) { return success("修改成功"); } return fail("修改失败"); } - @PreAuthorize("hasAuthority('shop:userCoupon:remove')") - @OperationLog - @ApiOperation("批量删除用户优惠券记录表") + @ApiOperation("批量删除") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { if (userCouponService.removeByIds(ids)) { diff --git a/src/main/java/com/gxwebsoft/shop/controller/UserParentListController.java b/src/main/java/com/gxwebsoft/shop/controller/UserParentListController.java new file mode 100644 index 0000000..5a37dfa --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/UserParentListController.java @@ -0,0 +1,111 @@ +package com.gxwebsoft.shop.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.UserParentListService; +import com.gxwebsoft.shop.entity.UserParentList; +import com.gxwebsoft.shop.param.UserParentListParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 控制器 + * + * @author LX + * @since 2026-04-10 22:05:26 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/shop/user-parent-list") +public class UserParentListController extends BaseController { + @Resource + private UserParentListService userParentListService; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(UserParentListParam param) { + // 使用关联查询 + return success(userParentListService.pageRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(UserParentListParam param) { + // 使用关联查询 + return success(userParentListService.listRel(param)); + } + + @PreAuthorize("hasAuthority('shop:userParentList:list')") + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(userParentListService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody UserParentList userParentList) { + + if (userParentListService.save(userParentList)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody UserParentList userParentList) { + if (userParentListService.updateById(userParentList)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (userParentListService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (userParentListService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(userParentListService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (userParentListService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/controller/UserPointLogController.java b/src/main/java/com/gxwebsoft/shop/controller/UserPointLogController.java new file mode 100644 index 0000000..c3faf8a --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/controller/UserPointLogController.java @@ -0,0 +1,123 @@ +package com.gxwebsoft.shop.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.service.UserPointLogService; +import com.gxwebsoft.shop.entity.UserPointLog; +import com.gxwebsoft.shop.param.UserPointLogParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 控制器 + * + * @author LX + * @since 2026-04-11 19:49:40 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/shop/user-point-log") +public class UserPointLogController extends BaseController { + @Resource + private UserPointLogService userPointLogService; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(UserPointLogParam param) { + // 使用关联查询 + return success(userPointLogService.pageRel(param)); + } + + @ApiOperation("分页查询") + @GetMapping("/userList") + public ApiResult> userList(UserPointLogParam param) { + // 使用关联查询 + param.setUserId(getLoginUserId()); + return success(userPointLogService.listRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(UserPointLogParam param) { + // 使用关联查询 + return success(userPointLogService.listRel(param)); + } + + @PreAuthorize("hasAuthority('shop:userPointLog:list')") + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(userPointLogService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody UserPointLog userPointLog) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + userPointLog.setUserId(loginUser.getUserId()); + } + if (userPointLogService.save(userPointLog)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody UserPointLog userPointLog) { + if (userPointLogService.updateById(userPointLog)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (userPointLogService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (userPointLogService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(userPointLogService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (userPointLogService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/controller/WxLoginController.java b/src/main/java/com/gxwebsoft/shop/controller/WxLoginController.java index c12f92f..d24acf7 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/WxLoginController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/WxLoginController.java @@ -47,7 +47,7 @@ import java.util.stream.Collectors; import static com.gxwebsoft.common.core.constants.RedisConstants.ACCESS_TOKEN_KEY; @RestController -@RequestMapping("/api/shop/wx-login") +@RequestMapping("/api/wx-login") @Api(tags = "微信小程序登录API") public class WxLoginController extends BaseController { @Resource @@ -109,6 +109,8 @@ public class WxLoginController extends BaseController { @PostMapping("/loginByMpWxPhone") public ApiResult loginByMpWxPhone(@RequestBody UserParam userParam, HttpServletRequest request) throws WxErrorException { // 获取手机号码 + JSONObject result = getOpenIdByCode(userParam); + String openid = result.getString("openid"); String phone = getPhoneByCode(userParam); System.out.println("phone:" + phone); @@ -117,7 +119,20 @@ public class WxLoginController extends BaseController { System.out.println("用户:" + user); // 不存在 if (user == null) { - return fail("该用户不存在", new LoginResult()); + user = addUser(userParam); + user.setPhone(phone); + user.setOpenId(openid); + if (userParam.getParentId() != null) { + user.setParentId(userParam.getParentId()); + } + userService.updateById(user); + // 添加第三方用户信息 + UserOauth uo = new UserOauth(); + uo.setUserId(user.getUserId()); + uo.setTenantId(user.getTenantId()); + uo.setOauthType("MP-WEIXIN"); + uo.setOauthId(openid); + userOauthService.save(uo); } // 签发token String access_token = JwtUtil.buildToken(new JwtSubject(user.getUsername(), user.getTenantId()), @@ -222,9 +237,10 @@ public class WxLoginController extends BaseController { public String getAccessToken() { System.out.println(getTenantId()); // 获取微信小程序配置信息 + JSONObject setting = settingService.getBySettingKey("mp-weixin"); // JSONObject setting = settingService.getBySettingKey("mp-weixin"); - String appid = "wx7bdcb7c68d53062b"; - String secret = "8d747742fa81da3211da1d504e494531"; + String appid = setting.getString("appId"); + String secret = setting.getString("appSecret"); // 从缓存获取access_token String value = redisTemplate.opsForValue().get(ACCESS_TOKEN_KEY.concat(getTenantId().toString())); // if (value != null) { diff --git a/src/main/java/com/gxwebsoft/shop/controller/WxPayController.java b/src/main/java/com/gxwebsoft/shop/controller/WxPayController.java index e511e22..2c81044 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/WxPayController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/WxPayController.java @@ -1,34 +1,34 @@ package com.gxwebsoft.shop.controller; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.gxwebsoft.common.core.utils.JSONUtil; import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.system.entity.DictData; +import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.common.system.service.DictDataService; import com.gxwebsoft.common.system.service.UserService; -import com.gxwebsoft.shop.constants.OrderConstants; import com.gxwebsoft.shop.entity.*; import com.gxwebsoft.shop.service.*; -import com.wechat.pay.java.core.RSAAutoCertificateConfig; -import com.wechat.pay.java.core.RSAConfig; +import com.wechat.pay.java.core.RSAPublicKeyConfig; +import com.wechat.pay.java.core.exception.ServiceException; +import com.wechat.pay.java.core.exception.ValidationException; +import com.wechat.pay.java.core.http.*; import com.wechat.pay.java.core.notification.NotificationConfig; import com.wechat.pay.java.core.notification.NotificationParser; import com.wechat.pay.java.core.notification.RequestParam; -import com.wechat.pay.java.service.partnerpayments.nativepay.model.Amount; -import com.wechat.pay.java.service.partnerpayments.nativepay.model.PrepayRequest; import com.wechat.pay.java.service.partnerpayments.nativepay.model.Transaction; import com.wechat.pay.java.service.partnerpayments.model.TransactionAmount; -import com.wechat.pay.java.service.partnerpayments.nativepay.NativePayService; -import com.wechat.pay.java.service.partnerpayments.nativepay.model.PrepayResponse; -import com.wechat.pay.java.service.refund.RefundService; -import com.wechat.pay.java.service.refund.model.AmountReq; -import com.wechat.pay.java.service.refund.model.CreateRequest; -import com.wechat.pay.java.service.refund.model.RefundNotification; -import com.wechat.pay.java.service.refund.model.Status; +import com.wechat.pay.java.service.payments.jsapi.JsapiServiceExtension; +import com.wechat.pay.java.service.payments.jsapi.model.Payer; +import com.wechat.pay.java.service.payments.jsapi.model.PrepayWithRequestPaymentResponse; import io.swagger.annotations.Api; -import org.springframework.beans.factory.annotation.Autowired; +import okhttp3.OkHttpClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @@ -37,8 +37,13 @@ import org.springframework.web.bind.annotation.RequestHeader; import com.wechat.pay.java.core.Config; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.math.BigDecimal; import java.text.ParseException; +import java.util.Base64; +import java.util.HashMap; import java.util.Map; @RestController @@ -46,14 +51,12 @@ import java.util.Map; @Api(tags = "微信支付API") @Configuration public class WxPayController extends BaseController { + @Resource + private UserService userService; @Resource private OrderService orderService; @Resource - private DictDataService dictDataService; - @Resource - private OrderRefundService orderRefundService; - @Autowired - private UserBalanceLogController userBalanceLogController; + private DealerWithdrawService dealerWithdrawService; private final Integer tenantId = 10036; @@ -63,88 +66,72 @@ public class WxPayController extends BaseController { * 商户号 */ @Value("${wxpay.mch-id}") - public String merchantId; + public String mchId; /** * 商户API私钥路径 */ @Value("${wxpay.private-key-path}") public String privateKeyPath; - /** - * 商户证书序列号 - */ + + @Value("${wxpay.pub-key-path}") + public String publicKeyPath; + + @Value("${wxpay.pub-key-id}") + public String publicKeyId; + @Value("${wxpay.mch-serial-no}") - public String merchantSerialNumber; + public String serialNo; + + /** * 商户APIV3密钥 */ @Value("${wxpay.api-v3-key}") public String apiV3key; - @Value("${wxpay.notify-domain}") - public String notifyUrl; - - @Value("${wxpay.cert-path}") - public String wechatPayCertificatePath; - - private final String spAppId = "wxa67c676fc445590e"; - private final String spMerchantId = "1615739384"; - - public String nativePay(String orderNo, Integer payAmount, String title) { - Config config = new RSAAutoCertificateConfig.Builder() - .merchantId(spMerchantId) - .privateKeyFromPath(privateKeyPath) - .merchantSerialNumber(merchantSerialNumber) - .apiV3Key(apiV3key) - .build(); - // 构建service - NativePayService service = new NativePayService.Builder().config(config).build(); - PrepayRequest request = new PrepayRequest(); - Amount amount = new Amount(); - DictData dictData = dictDataService.getByDictCodeAndName("PAY_TEST_MODE", "模式"); - if (Integer.valueOf(dictData.getDictDataCode()).equals(0)) { - amount.setTotal(1); - }else { + public HashMap makePay(String openId, String orderNo, Integer payAmount, String title, String notifyUrl) { + if (notifyUrl == null || notifyUrl.isEmpty()) + notifyUrl = "https://yxe-api.gxwebsoft.com/api/shop/wx-pay/notify"; + try { + Config config = new RSAPublicKeyConfig.Builder() + .merchantId(mchId) + .privateKeyFromPath(privateKeyPath) + .publicKeyFromPath(publicKeyPath) + .publicKeyId(publicKeyId) + .apiV3Key(apiV3key) + .merchantSerialNumber(serialNo) + .build(); + JsapiServiceExtension service = new JsapiServiceExtension.Builder().config(config).build(); + // 跟之前下单示例一样,填充预下单参数 + com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest request = new com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest(); + com.wechat.pay.java.service.payments.jsapi.model.Amount amount = new com.wechat.pay.java.service.payments.jsapi.model.Amount(); amount.setTotal(payAmount); + amount.setCurrency("CNY"); + request.setAmount(amount); + request.setAppid(appId); + request.setMchid(mchId); + request.setDescription(title); + request.setOutTradeNo(orderNo); + request.setAttach(getTenantId().toString()); + final Payer payer = new Payer(); + payer.setOpenid(openId); + request.setPayer(payer); + request.setNotifyUrl(notifyUrl); + System.out.println("request = " + request); + PrepayWithRequestPaymentResponse response = service.prepayWithRequestPayment(request); + final HashMap orderInfo = new HashMap<>(); + orderInfo.put("provider", "wxpay"); + orderInfo.put("timeStamp", response.getTimeStamp()); + orderInfo.put("nonceStr", response.getNonceStr()); + orderInfo.put("package", response.getPackageVal()); + orderInfo.put("signType", "RSA"); + orderInfo.put("paySign", response.getPaySign()); + return orderInfo; + } catch (Exception e) { + System.out.println(e); + System.out.println(e.getMessage()); } - request.setSpAppid(spAppId); - request.setSpMchid(spMerchantId); - request.setSubAppid(appId); - request.setSubMchid(merchantId); - request.setAmount(amount); - request.setDescription(title); - request.setNotifyUrl(notifyUrl); - request.setOutTradeNo(orderNo); - PrepayResponse response = service.prepay(request); - // 调用下单方法,得到应答 - return response.getCodeUrl(); - } - - /*** - * 退款申请 - * @param orderRefund - */ - public void refund(OrderRefund orderRefund) { - Config config = new RSAAutoCertificateConfig.Builder() - .merchantId(spMerchantId) - .privateKeyFromPath(privateKeyPath) - .merchantSerialNumber(merchantSerialNumber) - .apiV3Key(apiV3key) - .build(); - RefundService service = new RefundService.Builder().config(config).build(); - CreateRequest request = new CreateRequest(); - // 金额 - AmountReq amount = new AmountReq(); - amount.setTotal(orderRefund.getRefundMoney().multiply(BigDecimal.valueOf(100)).longValue()); - amount.setRefund(orderRefund.getRefundMoney().multiply(BigDecimal.valueOf(100)).longValue()); - amount.setCurrency("CNY"); - request.setSubMchid(merchantId); - request.setAmount(amount); - request.setOutTradeNo(orderRefund.getOrder().getOrderNo()); - request.setOutRefundNo("R" + orderRefund.getOrder().getOrderNo()); - String wechatRefundNotifyUrl = "https://vivo-server.gxwebsoft.com/api/shop/wx-pay/refund-notify"; - request.setNotifyUrl(wechatRefundNotifyUrl); - service.create(request); - + return null; } @PostMapping("/notify") @@ -156,11 +143,13 @@ public class WxPayController extends BaseController { .timestamp(header.get("wechatpay-timestamp").toString()) .body(body) .build(); - NotificationConfig config = new RSAAutoCertificateConfig.Builder() - .merchantId(spMerchantId) + NotificationConfig config = new RSAPublicKeyConfig.Builder() + .merchantId(mchId) .privateKeyFromPath(privateKeyPath) - .merchantSerialNumber(merchantSerialNumber) + .publicKeyFromPath(publicKeyPath) + .publicKeyId(publicKeyId) .apiV3Key(apiV3key) + .merchantSerialNumber(serialNo) .build(); // 初始化 NotificationParser NotificationParser parser = new NotificationParser(config); @@ -178,45 +167,139 @@ public class WxPayController extends BaseController { Transaction.TradeStateEnum tradeStateEnum = transaction.getTradeState(); System.out.println("支付结果:" + transaction); if (tradeStateEnum == Transaction.TradeStateEnum.SUCCESS) { - Order order = orderService.getByOutTradeNo(orderNo); - order.setOrderStatus(OrderConstants.ORDER_STATUS_PAID); - order.setPayMethod(OrderConstants.ORDER_PAY_METHOD_WECHAT.toString()); - order.setTradeId(transactionId); - order.setReceiptAmount(userPaid); - order.setPayTime(DateUtil.date()); - orderService.updateById(order); - - } - return success(); - } - - @PostMapping("/refund-notify") - public ApiResult refundNotify(@RequestBody String body, @RequestHeader Map header) throws ParseException { - RequestParam requestParam = new RequestParam.Builder() - .serialNumber(header.get("wechatpay-serial").toString()) - .nonce(header.get("wechatpay-nonce").toString()) - .signature(header.get("wechatpay-signature").toString()) - .timestamp(header.get("wechatpay-timestamp").toString()) - .body(body) - .build(); - NotificationConfig config = new RSAAutoCertificateConfig.Builder() - .merchantId(spMerchantId) - .privateKeyFromPath(privateKeyPath) - .merchantSerialNumber(merchantSerialNumber) - .apiV3Key(apiV3key) - .build(); - // 初始化 NotificationParser - NotificationParser parser = new NotificationParser(config); - RefundNotification notification = parser.parse(requestParam, RefundNotification.class); - String orderNo = notification.getOutTradeNo(); - if (notification.getRefundStatus().equals(Status.SUCCESS)) { - Order order = orderService.getByOutTradeNo(orderNo); - OrderRefund orderRefund = orderRefundService.getByOrderId(order.getOrderId()); - if (orderRefund.getRefundStatus().equals(0)) { - orderRefund.setRefundStatus(1); - orderRefundService.updateById(orderRefund); + Order order = orderService.getByOrderNo(orderNo); + if (order != null && order.getPayStatus().equals(10)) { + order.setOrderStatus(2); + order.setPayPrice(userPaid); + order.setTransactionId(transactionId); + orderService.updateById(order); } } return success(); } + + public JSONObject transferBill(DealerWithdraw dealerWithdraw) { + OkHttpClient okHttpClient = new OkHttpClient(); + Config config = new RSAPublicKeyConfig.Builder() + .merchantId(mchId) + .privateKeyFromPath(privateKeyPath) + .publicKeyFromPath(publicKeyPath) + .publicKeyId(publicKeyId) + .apiV3Key(apiV3key) + .merchantSerialNumber(serialNo) + .build(); + HttpClient httpClient = new DefaultHttpClientBuilder() + .config(config) + .okHttpClient(okHttpClient) + .build(); + HttpHeaders headers = new HttpHeaders(); + headers.addHeader("Accept", MediaType.APPLICATION_JSON.getValue()); + headers.addHeader("Content-Type", MediaType.APPLICATION_JSON.getValue()); + headers.addHeader("Wechatpay-Serial", serialNo); // 商户证书序列号 + + Long totalAmount = dealerWithdraw.getMoney().multiply(new BigDecimal(100)).longValue(); + HashMap map = new HashMap<>(); + map.put("appid", appId); //小程序 appId + map.put("out_bill_no", dealerWithdraw.getOrderNo()); // 订单编号 + map.put("transfer_scene_id", "1005"); // 转账场景ID + map.put("openid", dealerWithdraw.getOpenId()); // openid + map.put("transfer_amount", totalAmount); //金额(分) + map.put("transfer_remark", "结算"); // 转账备注 + map.put("notify_url", "https://yxe-api.gxwebsoft.com/api/shop/wx-pay/cash-notify"); //回调地址: 商家转账回调地址 + // 转账场景报备信息 + JSONArray jsonArray = new JSONArray(); + jsonArray.add(new JSONObject().fluentPut("info_type", "岗位类型").fluentPut("info_content", "促销员")); + jsonArray.add(new JSONObject().fluentPut("info_type", "报酬说明").fluentPut("info_content", "佣金提现")); + map.put("transfer_scene_report_infos", jsonArray); + + JsonRequestBody build = new JsonRequestBody.Builder() + .body(JSONObject.toJSONString(map)) + .build(); + HttpRequest executeSendGetHttpRequest = new HttpRequest.Builder() + .httpMethod(HttpMethod.POST) + .url("https://api.mch.weixin.qq.com/v3/fund-app/mch-transfer/transfer-bills") + .headers(headers) + .body(build) + .build(); + try { + HttpResponse execute = httpClient.execute(executeSendGetHttpRequest, JSONObject.class); + dealerWithdraw.setApplyStatus(1); + dealerWithdraw.setAuditTime((int) DateUtil.currentSeconds()); + dealerWithdrawService.updateById(dealerWithdraw); + return execute.getServiceResponse(); + } catch (ServiceException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @PostMapping("/cash-notify") + public void transferNotify(@RequestBody String data, HttpServletRequest request, HttpServletResponse response) throws IOException { + + String wechatPaySerial = request.getHeader("Wechatpay-Serial"); + String wechatpayNonce = request.getHeader("Wechatpay-Nonce"); + String wechatSignature = request.getHeader("Wechatpay-Signature"); + String wechatTimestamp = request.getHeader("Wechatpay-Timestamp"); + try { + byte[] decodedSignature = Base64.getDecoder().decode(wechatSignature); + RequestParam requestParam = new RequestParam.Builder() + .serialNumber(wechatPaySerial) + .nonce(wechatpayNonce) + .signature(wechatSignature) + .timestamp(wechatTimestamp) + .body(data) + .build(); + + NotificationConfig config = new RSAPublicKeyConfig.Builder() + .merchantId(mchId) + .privateKeyFromPath(privateKeyPath) + .publicKeyFromPath(publicKeyPath) + .publicKeyId(publicKeyId) + .apiV3Key(apiV3key) + .merchantSerialNumber(serialNo) + .build(); + NotificationParser parser = new NotificationParser(config); + System.out.println("cash notify:" + requestParam); + try { + Map transaction = parser.parse(requestParam, Map.class); + if (transaction.get("state").equals("SUCCESS") || transaction.get("state").equals("FAIL")) { + String orderNo = (String) transaction.get("out_bill_no"); + DealerWithdraw dealerWithdraw = dealerWithdrawService.getByOrderNo(orderNo); + if (dealerWithdraw != null && (dealerWithdraw.getApplyStatus().equals(0) || dealerWithdraw.getApplyStatus().equals(1))) { + User user = userService.getById(dealerWithdraw.getUserId()); + if (transaction.get("state").equals("SUCCESS")) { + dealerWithdraw.setApplyStatus(3); + dealerWithdrawService.updateById(dealerWithdraw); + }else if (transaction.get("state").equals("FAIL")) { + dealerWithdraw.setApplyStatus(2); + dealerWithdraw.setRejectReason("提现失败,请联系客服"); + dealerWithdrawService.updateById(dealerWithdraw); + user.setBalance(user.getBalance().add(dealerWithdraw.getMoney())); + userService.updateById(user); + } + } + } + } catch (ValidationException e) { + response.setStatus(HttpStatus.BAD_REQUEST.value()); + JSONObject json = new JSONObject(); + json.put("code", "ERROR"); + json.put("message", "验签失败"); + response.getWriter().append(JSONUtil.toJSONString(json)); + } + } catch (IllegalArgumentException e) { + response.setStatus(HttpStatus.BAD_REQUEST.value()); + JSONObject json = new JSONObject(); + json.put("code", "ERROR"); + json.put("message", "验签失败"); + response.getWriter().append(JSONUtil.toJSONString(json)); + System.out.println("decode err: " + e.getMessage()); + + } + + + response.setStatus(HttpStatus.OK.value()); + response.getWriter().append("SUCCESS"); + } } diff --git a/src/main/java/com/gxwebsoft/shop/entity/Cart.java b/src/main/java/com/gxwebsoft/shop/entity/Cart.java index a7c507f..7774388 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Cart.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Cart.java @@ -1,64 +1,35 @@ package com.gxwebsoft.shop.entity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableLogic; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; - /** - * 购物车记录表 + * * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 18:42:38 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "Cart对象", description = "购物车记录表") +@ApiModel(value = "Cart对象", description = "") @TableName("shop_cart") public class Cart implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "主键ID") @TableId(value = "id", type = IdType.AUTO) private Integer id; - @ApiModelProperty(value = "商品ID") - private Integer goodsId; - - @ApiModelProperty(value = "商品sku唯一标识") - private String goodsSkuId; - - @ApiModelProperty(value = "商品数量") - private Integer goodsNum; - - @ApiModelProperty(value = "商品价格") - private BigDecimal goodsPrice; - - @ApiModelProperty(value = "商品封面图") - private String image; - - @ApiModelProperty(value = "状态, 0正常, 1冻结") - private Integer status; - - @ApiModelProperty(value = "所属门店ID") - private Integer shopId; - - @ApiModelProperty(value = "用户ID") private Integer userId; - @ApiModelProperty(value = "排序(数字越小越靠前)") - private Integer sortNumber; + private Integer goodsId; - @ApiModelProperty(value = "备注") - private String comments; + private Integer num; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic @@ -68,9 +39,11 @@ public class Cart implements Serializable { private Integer tenantId; @ApiModelProperty(value = "注册时间") - private Date createTime; + private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") - private Date updateTime; + private LocalDateTime updateTime; + @TableField(exist = false) + private Goods goods; } diff --git a/src/main/java/com/gxwebsoft/shop/entity/Coupon.java b/src/main/java/com/gxwebsoft/shop/entity/Coupon.java index e9cf655..6c6ee88 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Coupon.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Coupon.java @@ -7,83 +7,49 @@ import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableLogic; import java.io.Serializable; -import java.util.Date; - import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; /** - * 优惠券记录表 + * * - * @author 科技小王子 - * @since 2022-11-28 18:26:05 + * @author LX + * @since 2026-01-19 17:54:12 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "Coupon对象", description = "优惠券记录表") +@ApiModel(value = "Coupon对象", description = "") @TableName("shop_coupon") public class Coupon implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "优惠券ID") - @TableId(value = "coupon_id", type = IdType.AUTO) - private Integer couponId; + @TableId(value = "id", type = IdType.AUTO) + private Integer id; - @ApiModelProperty(value = "优惠券名称") - private String name; + private String title; - @ApiModelProperty(value = "优惠券类型(10满减券 20折扣券)") - private Integer couponType; + @ApiModelProperty(value = "0满减 1折扣") + private Integer type; - @ApiModelProperty(value = "满减券-减免金额") - private BigDecimal reducePrice; - - @ApiModelProperty(value = "折扣券-折扣率(0-100)") - private Integer discount; - - @ApiModelProperty(value = "最低消费金额") - private BigDecimal minPrice; - - @ApiModelProperty(value = "到期类型(10领取后生效 20固定时间)") + @ApiModelProperty(value = "过期类型0领取计算 1固定时间") private Integer expireType; - @ApiModelProperty(value = "领取后生效-有效天数") + @ApiModelProperty(value = "起始金额") + private BigDecimal startAmount; + + @ApiModelProperty(value = "抵扣金额") + private BigDecimal reduceAmount; + + @ApiModelProperty(value = "折扣比例") + private BigDecimal reduceRate; + + @ApiModelProperty(value = "过期天数") private Integer expireDay; - @ApiModelProperty(value = "固定时间-开始时间") - private Integer startTime; - - @ApiModelProperty(value = "固定时间-结束时间") - private Integer endTime; - - @ApiModelProperty(value = "适用范围(10全部商品 20指定商品 30排除商品)") - private Integer applyRange; - - @ApiModelProperty(value = "适用范围配置(json格式)") - private String applyRangeConfig; - - @ApiModelProperty(value = "发放总数量(-1为不限制)") - private Integer totalNum; - - @ApiModelProperty(value = "已领取数量") - private Integer receiveNum; - - @ApiModelProperty(value = "优惠券描述") - private String describe; - - @ApiModelProperty(value = "用户ID") - private Integer userId; - - @ApiModelProperty(value = "所属门店ID") - private Integer shopId; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - private Integer sortNumber; - - @ApiModelProperty(value = "备注") - private String comments; + @ApiModelProperty(value = "过期时间(固定)") + private String expireEndDate; @ApiModelProperty(value = "状态, 0正常, 1冻结") private Integer status; @@ -92,13 +58,16 @@ public class Coupon implements Serializable { @TableLogic private Integer deleted; + @ApiModelProperty(value = "用户ID") + private Integer userId; + @ApiModelProperty(value = "租户id") private Integer tenantId; @ApiModelProperty(value = "注册时间") - private Date createTime; + private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") - private Date updateTime; + private LocalDateTime updateTime; } diff --git a/src/main/java/com/gxwebsoft/shop/entity/DealerWithdraw.java b/src/main/java/com/gxwebsoft/shop/entity/DealerWithdraw.java new file mode 100644 index 0000000..3b09c14 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/entity/DealerWithdraw.java @@ -0,0 +1,87 @@ +package com.gxwebsoft.shop.entity; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; + +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 分销商提现明细表 + * + * @author LX + * @since 2026-01-27 11:43:44 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "DealerWithdraw对象", description = "分销商提现明细表") +@TableName("shop_dealer_withdraw") +public class DealerWithdraw implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private String orderNo; + + @ApiModelProperty(value = "分销商用户ID") + private Integer userId; + + @ApiModelProperty(value = "提现金额") + private BigDecimal money; + + @ApiModelProperty(value = "打款方式 (10微信 20支付宝 30银行卡)") + private Integer payType; + + @ApiModelProperty(value = "支付宝姓名") + private String alipayName; + + @ApiModelProperty(value = "支付宝账号") + private String alipayAccount; + + @ApiModelProperty(value = "开户行名称") + private String bankName; + + @ApiModelProperty(value = "银行开户名") + private String bankAccount; + + @ApiModelProperty(value = "银行卡号") + private String bankCard; + + @ApiModelProperty(value = "申请状态 (10待审核 20审核通过 30驳回 40已打款)") + private Integer applyStatus; + + @ApiModelProperty(value = "审核时间") + private Integer auditTime; + + @ApiModelProperty(value = "驳回原因") + private String rejectReason; + + @ApiModelProperty(value = "来源客户端(APP、H5、小程序等)") + private String platform; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + @TableField(exist = false) + private User user; + + @TableField(exist = false) + private String openId; +} diff --git a/src/main/java/com/gxwebsoft/shop/entity/Goods.java b/src/main/java/com/gxwebsoft/shop/entity/Goods.java index 49a00d6..66797f9 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Goods.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Goods.java @@ -68,6 +68,14 @@ public class Goods implements Serializable { @ApiModelProperty(value = "划线价格(最低)") private BigDecimal linePriceMin; + private BigDecimal originPrice; + + private BigDecimal salePrice; + + private Integer isShow; + + private Integer sales; + @ApiModelProperty(value = "划线价格(最高)") private BigDecimal linePriceMax; @@ -196,10 +204,4 @@ public class Goods implements Serializable { @TableField(exist = false) private Integer noDeliveryTimes; - @TableField(exist = false) - private List goodsPhoneModelList; - - @TableField(exist = false) - private GoodsPrice goodsPrice; - } diff --git a/src/main/java/com/gxwebsoft/shop/entity/GoodsPrice.java b/src/main/java/com/gxwebsoft/shop/entity/GoodsPrice.java deleted file mode 100644 index c243d87..0000000 --- a/src/main/java/com/gxwebsoft/shop/entity/GoodsPrice.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.gxwebsoft.shop.entity; - -import java.math.BigDecimal; - -import com.baomidou.mybatisplus.annotation.*; - -import java.time.LocalDateTime; -import java.io.Serializable; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 商品价格() - * - * @author 科技小王子 - * @since 2024-03-12 01:35:40 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "GoodsPrice对象", description = "商品价格()") -@TableName("shop_goods_price") -public class GoodsPrice implements Serializable { - private static final long serialVersionUID = 1L; - - @TableId(value = "id", type = IdType.AUTO) - private Integer id; - - private Integer goodsId; - - @ApiModelProperty(value = "售价") - private BigDecimal amount; - - @ApiModelProperty(value = "零售商店长返利比例") - @TableField(value = "level_3_commission_rate") - private BigDecimal level3commissionRate; - - @ApiModelProperty(value = "零售商店长返利模式(0金额1比例)") - @TableField(value = "level_3_commission_mode") - private Integer level3commissionMode; - - @ApiModelProperty(value = "导购返利比例") - @TableField(value = "level_4_commission_rate") - private BigDecimal level4commissionRate; - - @ApiModelProperty(value = "导购返利模式(0金额1比例)") - @TableField(value = "level_4_commission_mode") - private Integer level4commissionMode; - - @ApiModelProperty(value = "售后返利比例") - @TableField(value = "level_5_commission_rate") - private BigDecimal level5commissionRate; - - @ApiModelProperty(value = "散户返利比例") - @TableField(value = "level_6_commission_rate") - private BigDecimal level6commissionRate; - - @ApiModelProperty(value = "散户返利模式(0金额1比例)") - @TableField(value = "level_6_commission_mode") - private Integer level6commissionMode; - - @ApiModelProperty(value = "编外合伙人返利比例") - @TableField(value = "level_7_commission_rate") - private BigDecimal level7commissionRate; - - @ApiModelProperty(value = "编外合伙人返利模式(0金额1比例)") - @TableField(value = "level_7_commission_mode") - private Integer level7commissionMode; - - @ApiModelProperty(value = "售后店长返利比例") - @TableField(value = "level_8_commission_rate") - private BigDecimal level8commissionRate; - - @ApiModelProperty(value = "售后店长全店返利比例") - private BigDecimal fixStoreLeaderCommissionRate; - - @ApiModelProperty(value = "状态, 0上架, 1下架") - private Integer status; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - private Integer province; - - private Integer city; - - @ApiModelProperty(value = "区代ID") - private Integer userId; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "注册时间") - private LocalDateTime createTime; - - @ApiModelProperty(value = "修改时间") - private LocalDateTime updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/shop/entity/GoodsService.java b/src/main/java/com/gxwebsoft/shop/entity/GoodsService.java deleted file mode 100644 index 6dcf75b..0000000 --- a/src/main/java/com/gxwebsoft/shop/entity/GoodsService.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.gxwebsoft.shop.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import java.util.Date; -import java.util.List; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 商品服务与承诺记录表 - * - * @author 科技小王子 - * @since 2022-11-23 21:57:50 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@ApiModel(value = "GoodsService对象", description = "商品服务与承诺记录表") -@TableName("shop_goods_service") -public class GoodsService implements Serializable { - private static final long serialVersionUID = 1L; - - @ApiModelProperty(value = "商品服务ID") - @TableId(value = "service_id", type = IdType.AUTO) - private Integer serviceId; - - @ApiModelProperty(value = "服务名称") - private String name; - - @ApiModelProperty(value = "概述") - private String summary; - - @ApiModelProperty(value = "是否默认(新增商品时)") - private Integer isDefault; - - @ApiModelProperty(value = "用户ID") - private Integer userId; - - @ApiModelProperty(value = "所属门店ID") - private Integer shopId; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - private Integer sortNumber; - - @ApiModelProperty(value = "备注") - private String comments; - - @ApiModelProperty(value = "状态, 0正常, 1冻结") - private Integer status; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - - @ApiModelProperty(value = "租户id") - private Integer tenantId; - - @ApiModelProperty(value = "注册时间") - private Date createTime; - - @ApiModelProperty(value = "修改时间") - private Date updateTime; - -} diff --git a/src/main/java/com/gxwebsoft/shop/entity/Merchant.java b/src/main/java/com/gxwebsoft/shop/entity/Merchant.java index 8e2f54b..00fd1c3 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Merchant.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Merchant.java @@ -1,64 +1,57 @@ package com.gxwebsoft.shop.entity; -import java.math.BigDecimal; - -import cn.hutool.core.convert.Convert; -import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.annotation.*; +import java.time.LocalDateTime; import java.io.Serializable; -import java.util.Date; +import java.util.List; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import static java.lang.Character.isDigit; - /** - * 商户管理 + * 商户 * - * @author 科技小王子 - * @since 2022-11-30 15:10:54 + * @author LX + * @since 2026-01-17 16:21:37 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "Merchant对象", description = "商户管理") +@ApiModel(value = "Merchant对象", description = "商户") @TableName("shop_merchant") public class Merchant implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "商户ID") - @TableId(value = "merchant_id", type = IdType.AUTO) - private Integer merchantId; + @ApiModelProperty(value = "ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; @ApiModelProperty(value = "商户名称") - private String merchantName; + private String name; - @ApiModelProperty(value = "商户编码") - private String merchantCode; + private String code; - @ApiModelProperty(value = "商户类型") - private String merchantType; + private String areaName; - @ApiModelProperty(value = "当前可提现金额") - private BigDecimal money; + private String chain; - @ApiModelProperty(value = "已冻结金额") - private BigDecimal freezeMoney; + @ApiModelProperty(value = "商户图标") + private String image; - @ApiModelProperty(value = "累积提现金额") - private BigDecimal totalMoney; + @ApiModelProperty(value = "商户手机号") + private String phone; - @ApiModelProperty(value = "商户logo") - private String logo; + @ApiModelProperty(value = "商户姓名") + private String realName; - @ApiModelProperty(value = "商户背景图片") - private String background; + @ApiModelProperty(value = "经纬度") + private String lngAndLat; - @ApiModelProperty(value = "营业时间") - private String merchantHours; + private String lng; + + private String lat; @ApiModelProperty(value = "所在省份") private String province; @@ -72,105 +65,31 @@ public class Merchant implements Serializable { @ApiModelProperty(value = "详细地址") private String address; - @ApiModelProperty(value = "商户详情") - private String content; - - @ApiModelProperty(value = "商户坐标经纬度") - private String lngAndLat; - - @ApiModelProperty(value = "geohash") - private String geohash; - - @ApiModelProperty(value = "商户简介") - private String summary; - - @ApiModelProperty(value = "打款方式 (10微信 20支付宝 30银行卡)") - private Integer payType; - - @ApiModelProperty(value = "支付宝姓名") - private String alipayName; - - @ApiModelProperty(value = "支付宝账号") - private String alipayAccount; - - @ApiModelProperty(value = "开户行名称") - private String bankName; - - @ApiModelProperty(value = "银行开户名") - private String bankAccount; - - @ApiModelProperty(value = "银行卡号") - private String bankCard; - - @ApiModelProperty(value = "是否可编辑 0 商户可编辑 1 管理员可编辑") - private Integer isEdit; - - @ApiModelProperty(value = "是否支持自提核销(0否 1支持)") - private Integer isCheck; - - @ApiModelProperty(value = "店主") - private Integer merchantOwner; - - @ApiModelProperty(value = "门店联系电话") - private String merchantPhone; - - @ApiModelProperty(value = "用户ID") - private Integer userId; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - private Integer sortNumber; + @TableField(exist = false) + private String addressFull; @ApiModelProperty(value = "备注") private String comments; - @ApiModelProperty(value = "状态, 0正常, 1冻结") - private Integer status; + @ApiModelProperty(value = "所有人") + private Integer userId; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic private Integer deleted; - @ApiModelProperty(value = "客户ID") - private Integer customerId; + @ApiModelProperty(value = "状态") + private Integer status; + + @ApiModelProperty(value = "排序号") + private Integer sortNumber; @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "注册时间") - private Date createTime; + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; - @ApiModelProperty(value = "修改时间") - private Date updateTime; - - @ApiModelProperty("登录账号") @TableField(exist = false) - private String username; - - @ApiModelProperty("用户昵称") - @TableField(exist = false) - private String nickname; - - @ApiModelProperty(value = "联系电话") - @TableField(exist = false) - private String phone; - - @ApiModelProperty(value = "距离") - @TableField(exist = false) - private Double distance; - - @ApiModelProperty(value = "店铺ID") - @TableField(exist = false) - private Long shopId; - - @ApiModelProperty(value = "哗啦啦店铺信息") - @TableField(exist = false) - private Object shopInfo; - - public Long getShopId(){ - if(NumberUtil.isLong(this.merchantCode)){ - return Long.parseLong(merchantCode); - } - return null; - } - + private List children; } diff --git a/src/main/java/com/gxwebsoft/shop/entity/Order.java b/src/main/java/com/gxwebsoft/shop/entity/Order.java index 7ef94af..53a411f 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Order.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Order.java @@ -1,22 +1,23 @@ package com.gxwebsoft.shop.entity; +import java.math.BigDecimal; + import com.baomidou.mybatisplus.annotation.*; -import com.gxwebsoft.common.system.entity.User; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.List; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; -import java.util.List; - /** * 订单记录表 * - * @author WebSoft - * @since 2022-11-16 11:25:58 + * @author LX + * @since 2026-01-18 14:38:08 */ @Data @EqualsAndHashCode(callSuper = false) @@ -68,26 +69,14 @@ public class Order implements Serializable { @ApiModelProperty(value = "支付方式(废弃)") private Integer payType; - @ApiModelProperty(value = "支付方式(余额/微信/支付宝)") + @ApiModelProperty(value = "支付方式(0付款码1微信支付)") private String payMethod; @ApiModelProperty(value = "付款状态(10未付款 20已付款)") private Integer payStatus; @ApiModelProperty(value = "付款时间") - private Date payTime; - - @ApiModelProperty(value = "服务开始时间") - private Date startTime; - - @ApiModelProperty(value = "服务到期时间") - private Date expirationTime; - - @ApiModelProperty(value = "购买月份数量") - private Integer month; - - @ApiModelProperty(value = "0星期日 1星期一 2星期二 3星期三 4星期四 5星期五 6星期六") - private Integer week; + private LocalDateTime payTime; @ApiModelProperty(value = "第三方交易记录ID") private String tradeId; @@ -114,20 +103,17 @@ public class Order implements Serializable { private Integer deliveryStatus; @ApiModelProperty(value = "发货时间") - private Date deliveryTime; + private LocalDateTime deliveryTime; - @ApiModelProperty(value = "收货状态(10未收货 20已收货)") + @ApiModelProperty(value = "收货状态(10未收货 20已收货 30已退货)") private Integer receiptStatus; @ApiModelProperty(value = "收货时间") - private Date receiptTime; + private LocalDateTime receiptTime; - @ApiModelProperty(value = "订单状态(10进行中 20取消 21待取消 30已完成)") + @ApiModelProperty(value = "订单状态(0已取消1待支付2已支付3已结束4退款审核中5退款成功6退款失败)") private Integer orderStatus; - @ApiModelProperty(value = "赠送的积分数量") - private Integer pointsBonus; - @ApiModelProperty(value = "商家备注") private String merchantRemark; @@ -135,10 +121,7 @@ public class Order implements Serializable { private Integer isSettled; @ApiModelProperty(value = "最后结算时间") - private Date settledTime; - - @ApiModelProperty(value = "续租订单的关联单号") - private Integer rentOrderId; + private LocalDateTime settledTime; @ApiModelProperty(value = "微信支付交易号(废弃)") private String transactionId; @@ -146,123 +129,22 @@ public class Order implements Serializable { @ApiModelProperty(value = "是否已评价(0否 1是)") private Integer isComment; - @ApiModelProperty(value = "订单来源(10普通订单 20砍价订单 30秒杀订单)") - private Integer orderSource; + private String name; - @ApiModelProperty(value = "来源记录ID") - private Integer orderSourceId; + private String phone; - @ApiModelProperty(value = "来源记录的参数 (json格式)") - private String orderSourceData; + private String address; - @ApiModelProperty(value = "电池租金") - private BigDecimal batteryRent; + private String photo; - @ApiModelProperty(value = "电池押金") - private BigDecimal batteryDeposit; - - @ApiModelProperty(value = "保险") - private BigDecimal batteryInsurance; - - @ApiModelProperty(value = "来源客户端 (APP、H5、小程序等)") - private String platform; - - @ApiModelProperty(value = "是否续费订单") - private Integer isRenew; - - @ApiModelProperty(value = "是否临时报餐") - private Integer isTemporary; + private String video; @ApiModelProperty(value = "用户ID") private Integer userId; - @ApiModelProperty(value = "所属城市") - private Integer cityId; - - @ApiModelProperty(value = "所属门店ID") - private Integer storeId; - - @ApiModelProperty(value = "所属门店ID") - private Integer fixStoreId; - - @ApiModelProperty(value = "所属零售商ID") - private Integer orgId; - - @ApiModelProperty(value = "商品ID") - private Integer goodsId; - - @ApiModelProperty(value = "商品名称") - @TableField(exist = false) - private String goodsName; - - @ApiModelProperty(value = "设备ID") - private Integer equipmentId; - - @ApiModelProperty(value = "商户编号") - private String merchantCode; - - @ApiModelProperty(value = "商户名称") - @TableField(exist = false) - private String merchantName; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - private Integer sortNumber; - @ApiModelProperty(value = "备注") private String comments; - @ApiModelProperty(value = "姓名") - private String name; - - @ApiModelProperty(value = "手机号") - private String phone; - - @ApiModelProperty(value = "照片") - private String photo; - - @ApiModelProperty(value = "视频") - private String video; - - @ApiModelProperty(value = "支付凭证") - private String payVoucher; - - @ApiModelProperty(value = "分佣") - private BigDecimal commission; - - @ApiModelProperty(value = "区代毛利") - private BigDecimal agentCommission; - - @ApiModelProperty(value = "店长门店返利") - private BigDecimal fixStoreLeaderCommission; - - @ApiModelProperty(value = "退款码") - private String refundCode; - - @ApiModelProperty(value = "型号") - private String modelName; - - @ApiModelProperty(value = "RAM+ROM") - private String productMemory; - - private String imei; - - private String skuCode; - - private String skuName; - - private String skuColor; - - @ApiModelProperty("门店") - private String storeName; - - @ApiModelProperty("二级区域名称") - private String secondAreaName; - - @ApiModelProperty("零售商名称") - private String retailerName; - - @ApiModelProperty("好/坏") - private String goodOrBad; @ApiModelProperty(value = "状态, 0正常, 1冻结") private Integer status; @@ -275,69 +157,11 @@ public class Order implements Serializable { private Integer tenantId; @ApiModelProperty(value = "注册时间") - private Date createTime; + private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") - private Date updateTime; + private LocalDateTime updateTime; - @ApiModelProperty(value = "出险时间") - private Date useTime; - - @ApiModelProperty("账号") - @TableField(exist = false) - private String username; - - @ApiModelProperty("用户别名") - @TableField(exist = false) - private String alias; - - @ApiModelProperty("用户昵称") - @TableField(exist = false) - private String nickname; - - @ApiModelProperty(value = "头像") - @TableField(exist = false) - private String avatar; - - @ApiModelProperty(value = "所属部门") - @TableField(exist = false) - private Integer organizationId; - - @ApiModelProperty(value = "部门名称") - @TableField(exist = false) - private String organizationName; - - @ApiModelProperty("商品列表") @TableField(exist = false) private List goodsList; - - @ApiModelProperty("商品列表") - @TableField(exist = false) - private OrderGoods orderGoods; - - @ApiModelProperty("推荐人ID") - @TableField(exist = false) - private Integer dealerId; - - @TableField(exist = false) - private Goods goods; - - @ApiModelProperty("上报人姓名") - private String sellerName; - - @ApiModelProperty("上报人工号") - private String sellerCode; - - @ApiModelProperty("后台状态:已激活/未激活") - private String activeState; - - @ApiModelProperty("后台激活日期") - private String activeDate; - - @TableField(exist = false) - private BigDecimal totalAmount; - - @TableField(exist = false) - private User user; - } diff --git a/src/main/java/com/gxwebsoft/shop/entity/OrderGoods.java b/src/main/java/com/gxwebsoft/shop/entity/OrderGoods.java index 89fc252..2f830d5 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/OrderGoods.java +++ b/src/main/java/com/gxwebsoft/shop/entity/OrderGoods.java @@ -1,20 +1,19 @@ package com.gxwebsoft.shop.entity; import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; - /** * 订单商品记录表 * - * @author 科技小王子 - * @since 2022-12-09 17:15:31 + * @author LX + * @since 2026-01-18 22:39:33 */ @Data @EqualsAndHashCode(callSuper = false) @@ -24,122 +23,14 @@ public class OrderGoods implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "订单商品ID") - @TableId(value = "order_goods_id", type = IdType.AUTO) - private Integer orderGoodsId; + @TableId(value = "id", type = IdType.AUTO) + private Integer id; @ApiModelProperty(value = "商品ID") private Integer goodsId; - @ApiModelProperty(value = "商品名称") - private String goodsName; - - @ApiModelProperty(value = "商品分类ID") - private Integer categoryId; - - @ApiModelProperty(value = "分类名称") - @TableField(exist = false) - private String categoryName; - - @ApiModelProperty(value = "商品封面图") - private String imageUrl; - - @ApiModelProperty(value = "商品封面图ID") - private Integer imageId; - - @ApiModelProperty(value = "库存计算方式(10下单减库存 20付款减库存)") - private Integer deductStockType; - - @ApiModelProperty(value = "规格类型(10单规格 20多规格)") - private Integer specType; - - @ApiModelProperty(value = "商品sku唯一标识") - private String goodsSkuId; - - @ApiModelProperty(value = "SKU的规格属性(json格式)") - private String goodsProps; - - @ApiModelProperty(value = "商品详情") - private String content; - - @ApiModelProperty(value = "商品编码") - private String goodsNo; - - @ApiModelProperty(value = "商品价格(单价)") - private BigDecimal goodsPrice; - - @ApiModelProperty(value = "商品划线价") - private BigDecimal linePrice; - - @ApiModelProperty(value = "商品重量(Kg)") - private Double goodsWeight; - - @ApiModelProperty(value = "是否存在会员等级折扣") - private Integer isUserGrade; - - @ApiModelProperty(value = "会员折扣比例(0-10)") - private Integer gradeRatio; - - @ApiModelProperty(value = "会员折扣的商品单价") - private BigDecimal gradeGoodsPrice; - - @ApiModelProperty(value = "会员折扣的总额差") - private BigDecimal gradeTotalMoney; - - @ApiModelProperty(value = "优惠券折扣金额") - private BigDecimal couponMoney; - - @ApiModelProperty(value = "积分金额") - private BigDecimal pointsMoney; - - @ApiModelProperty(value = "积分抵扣数量") - private Integer pointsNum; - - @ApiModelProperty(value = "赠送的积分数量") - private Integer pointsBonus; - - @ApiModelProperty(value = "付款状态(10未付款 20已付款)") - @TableField(exist = false) - private Integer payStatus; - @ApiModelProperty(value = "购买数量") - private Integer totalNum; - - @ApiModelProperty(value = "商品总价(数量×单价)") - private BigDecimal totalPrice; - - @ApiModelProperty(value = "实际付款价(折扣和优惠后)") - private BigDecimal totalPayPrice; - - @ApiModelProperty(value = "发货状态(10未发货 20已发货 30部分发货)") - private Integer deliveryStatus; - - @ApiModelProperty(value = "发货时间") - @TableField(exist = false) - private Date deliveryTime; - - @ApiModelProperty(value = "已发货数量") - private Integer deliveryNum; - - @ApiModelProperty(value = "所属档口") - private Integer gear; - - @ApiModelProperty(value = "是否开启单独分销(0关闭 1开启)") - private Integer isIndDealer; - - @ApiModelProperty(value = "分销佣金类型(10百分比 20固定金额)") - private Integer dealerMoneyType; - - @ApiModelProperty(value = "分销佣金(一级)") - private BigDecimal firstMoney; - - @ApiModelProperty(value = "分销佣金(二级)") - private BigDecimal secondMoney; - - @ApiModelProperty(value = "分销佣金(三级)") - private BigDecimal thirdMoney; - - @ApiModelProperty(value = "是否已评价(0否 1是)") - private Integer isComment; + private Integer num; @ApiModelProperty(value = "订单ID") private Integer orderId; @@ -147,47 +38,19 @@ public class OrderGoods implements Serializable { @ApiModelProperty(value = "用户ID") private Integer userId; - @ApiModelProperty(value = "来源记录ID") - private Integer goodsSourceId; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - private Integer sortNumber; - - @ApiModelProperty(value = "备注") - private String comments; - - @ApiModelProperty(value = "状态, 0正常, 1冻结") - private Integer status; - @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic private Integer deleted; - @ApiModelProperty(value = "商户编码") - private String merchantCode; - @ApiModelProperty(value = "租户id") private Integer tenantId; @ApiModelProperty(value = "注册时间") - private Date createTime; + private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") - private Date updateTime; + private LocalDateTime updateTime; - @ApiModelProperty(value = "用户昵称") @TableField(exist = false) - private String nickname; - - @ApiModelProperty(value = "订单状态") - @TableField(exist = false) - private Integer orderStatus; - - @ApiModelProperty("是否允许取消") - @TableField(exist = false) - private Boolean isCancel; - - @ApiModelProperty("导出数据") - @TableField(exist = false) - private Object exportData; + private Goods goods; } diff --git a/src/main/java/com/gxwebsoft/shop/entity/UserAddress.java b/src/main/java/com/gxwebsoft/shop/entity/UserAddress.java index 184b276..30742cd 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/UserAddress.java +++ b/src/main/java/com/gxwebsoft/shop/entity/UserAddress.java @@ -4,73 +4,67 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; import java.io.Serializable; -import java.util.Date; - import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; /** - * 用户收货地址表 + * 收货地址 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 21:17:34 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "UserAddress对象", description = "用户收货地址表") +@ApiModel(value = "UserAddress对象", description = "收货地址") @TableName("shop_user_address") public class UserAddress implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键ID") - @TableId(value = "address_id", type = IdType.AUTO) - private Integer addressId; + @TableId(value = "id", type = IdType.AUTO) + private Integer id; - @ApiModelProperty(value = "收货人姓名") + @ApiModelProperty(value = "姓名") private String name; - @ApiModelProperty(value = "联系电话") + @ApiModelProperty(value = "手机号码") private String phone; - @ApiModelProperty(value = "省份ID") - private Integer provinceId; + @ApiModelProperty(value = "所在省份") + private String province; - @ApiModelProperty(value = "城市ID") - private Integer cityId; + @ApiModelProperty(value = "所在城市") + private String city; - @ApiModelProperty(value = "区/县ID") - private Integer regionId; + @ApiModelProperty(value = "所在辖区") + private String region; - @ApiModelProperty(value = "详细地址") - private String detail; + @ApiModelProperty(value = "收货地址") + private String address; + + @ApiModelProperty(value = "收货地址") + private String fullAddress; + + private String lat; + + private String lng; + + @ApiModelProperty(value = "1先生 2女士") + private Integer gender; + + @ApiModelProperty(value = "默认收货地址") + private Boolean isDefault; @ApiModelProperty(value = "用户ID") private Integer userId; - @ApiModelProperty(value = "排序(数字越小越靠前)") - private Integer sortNumber; - - @ApiModelProperty(value = "备注") - private String comments; - - @ApiModelProperty(value = "状态, 0正常, 1冻结") - private Integer status; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @TableLogic - private Integer deleted; - @ApiModelProperty(value = "租户id") private Integer tenantId; @ApiModelProperty(value = "注册时间") - private Date createTime; - - @ApiModelProperty(value = "修改时间") - private Date updateTime; + private LocalDateTime createTime; } diff --git a/src/main/java/com/gxwebsoft/shop/entity/UserBalanceLog.java b/src/main/java/com/gxwebsoft/shop/entity/UserBalanceLog.java index 0bfa1ff..c5b2df1 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/UserBalanceLog.java +++ b/src/main/java/com/gxwebsoft/shop/entity/UserBalanceLog.java @@ -39,6 +39,7 @@ public class UserBalanceLog implements Serializable { @ApiModelProperty(value = "订单") + @TableField(exist = false) private Order order; @ApiModelProperty(value = "余额变动场景余额变动场景(0分佣 1订单退款)") diff --git a/src/main/java/com/gxwebsoft/shop/entity/UserCoupon.java b/src/main/java/com/gxwebsoft/shop/entity/UserCoupon.java index 9b3b83c..82a7bce 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/UserCoupon.java +++ b/src/main/java/com/gxwebsoft/shop/entity/UserCoupon.java @@ -1,86 +1,40 @@ package com.gxwebsoft.shop.entity; -import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; -import java.util.Date; +import com.baomidou.mybatisplus.annotation.*; +import java.time.LocalDateTime; +import java.io.Serializable; + +import com.gxwebsoft.common.system.entity.User; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; /** - * 用户优惠券记录表 + * * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-19 17:54:12 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "UserCoupon对象", description = "用户优惠券记录表") +@ApiModel(value = "UserCoupon对象", description = "") @TableName("shop_user_coupon") public class UserCoupon implements Serializable { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "主键ID") - @TableId(value = "user_coupon_id", type = IdType.AUTO) - private Integer userCouponId; + @TableId(value = "id", type = IdType.AUTO) + private Integer id; - @ApiModelProperty(value = "优惠券ID") private Integer couponId; - @ApiModelProperty(value = "优惠券名称") - private String name; + private Integer orderId; - @ApiModelProperty(value = "优惠券类型(10满减券 20折扣券)") - private Integer couponType; + private Integer used; - @ApiModelProperty(value = "满减券-减免金额") - private BigDecimal reducePrice; - - @ApiModelProperty(value = "折扣券-折扣率(0-100)") - private Integer discount; - - @ApiModelProperty(value = "最低消费金额") - private BigDecimal minPrice; - - @ApiModelProperty(value = "到期类型(10领取后生效 20固定时间)") - private Integer expireType; - - @ApiModelProperty(value = "领取后生效-有效天数") - private Integer expireDay; - - @ApiModelProperty(value = "有效期开始时间") - private Integer startTime; - - @ApiModelProperty(value = "有效期结束时间") - private Integer endTime; - - @ApiModelProperty(value = "适用范围(10全部商品 20指定商品)") - private Integer applyRange; - - @ApiModelProperty(value = "适用范围配置(json格式)") - private String applyRangeConfig; - - @ApiModelProperty(value = "是否过期(0未过期 1已过期)") - private Integer isExpire; - - @ApiModelProperty(value = "是否已使用(0未使用 1已使用)") - private Integer isUse; - - @ApiModelProperty(value = "用户ID") - private Integer userId; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - private Integer sortNumber; - - @ApiModelProperty(value = "备注") - private String comments; + @ApiModelProperty(value = "使用时间") + private LocalDateTime usedTime; @ApiModelProperty(value = "状态, 0正常, 1冻结") private Integer status; @@ -89,13 +43,24 @@ public class UserCoupon implements Serializable { @TableLogic private Integer deleted; + @ApiModelProperty(value = "用户ID") + private Integer userId; + @ApiModelProperty(value = "租户id") private Integer tenantId; @ApiModelProperty(value = "注册时间") - private Date createTime; + private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") - private Date updateTime; + private LocalDateTime updateTime; + @TableField(exist = false) + private Integer num; + + @TableField(exist = false) + private Coupon coupon; + + @TableField(exist = false) + private User user; } diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalDocType.java b/src/main/java/com/gxwebsoft/shop/entity/UserParentList.java similarity index 64% rename from src/main/java/com/gxwebsoft/law/entity/LawLegalDocType.java rename to src/main/java/com/gxwebsoft/shop/entity/UserParentList.java index fde8df7..9f122a4 100644 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalDocType.java +++ b/src/main/java/com/gxwebsoft/shop/entity/UserParentList.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.entity; +package com.gxwebsoft.shop.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; @@ -12,35 +12,33 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 法律文书配置 + * * * @author LX - * @since 2025-04-17 19:06:41 + * @since 2026-04-10 22:05:26 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalDocType对象", description = "法律文书配置") -@TableName("law_legal_doc_type") -public class LawLegalDocType implements Serializable { +@ApiModel(value = "UserParentList对象", description = "") +@TableName("shop_user_parent_list") +public class UserParentList implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private String icon; + private Integer uid; - private String title; + private Integer parentId; - private String topContent; + @ApiModelProperty(value = "管理员备注") + private String remark; - private String extraContent; - - private String comment; - - @ApiModelProperty(value = "类型") + @ApiModelProperty(value = "排序(数字越小越靠前)") private Integer sortNumber; - private Integer userId; + @ApiModelProperty(value = "备注") + private String comments; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic @@ -49,7 +47,7 @@ public class LawLegalDocType implements Serializable { @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "创建时间") + @ApiModelProperty(value = "注册时间") private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckTypeSuggest.java b/src/main/java/com/gxwebsoft/shop/entity/UserPointLog.java similarity index 61% rename from src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckTypeSuggest.java rename to src/main/java/com/gxwebsoft/shop/entity/UserPointLog.java index ab66312..586a0e1 100644 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckTypeSuggest.java +++ b/src/main/java/com/gxwebsoft/shop/entity/UserPointLog.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.entity; +package com.gxwebsoft.shop.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; @@ -12,39 +12,38 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 法律意见书配置 + * * * @author LX - * @since 2025-04-17 18:55:31 + * @since 2026-04-11 19:49:40 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalOrgCheckTypeSuggest对象", description = "法律意见书配置") -@TableName("law_legal_org_check_type_suggest") -public class LawLegalOrgCheckTypeSuggest implements Serializable { +@ApiModel(value = "UserPointLog对象", description = "") +@TableName("shop_user_point_log") +public class UserPointLog implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private String icon; + private Integer userId; - private String title; + private Integer point; - private String fileList; + private String msg; - private String tips; + @ApiModelProperty(value = "管理员备注") + private String remark; - private String methods; - - private String urls; - - private Integer articleCateId; - - @ApiModelProperty(value = "类型") + @ApiModelProperty(value = "排序(数字越小越靠前)") private Integer sortNumber; - private Integer userId; + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic @@ -53,7 +52,7 @@ public class LawLegalOrgCheckTypeSuggest implements Serializable { @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "创建时间") + @ApiModelProperty(value = "注册时间") private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") diff --git a/src/main/java/com/gxwebsoft/shop/mapper/CartMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/CartMapper.java index 8889fcd..ffaa744 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/CartMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/CartMapper.java @@ -9,10 +9,10 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 购物车记录表Mapper + * Mapper * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 18:42:38 */ public interface CartMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/shop/mapper/CouponMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/CouponMapper.java index bd393cb..2e33bc0 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/CouponMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/CouponMapper.java @@ -9,10 +9,10 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 优惠券记录表Mapper + * Mapper * - * @author 科技小王子 - * @since 2022-11-28 18:26:05 + * @author LX + * @since 2026-01-19 17:54:12 */ public interface CouponMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/shop/mapper/DealerWithdrawMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/DealerWithdrawMapper.java new file mode 100644 index 0000000..a05e6c7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/DealerWithdrawMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.shop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.shop.entity.DealerWithdraw; +import com.gxwebsoft.shop.param.DealerWithdrawParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 分销商提现明细表Mapper + * + * @author LX + * @since 2026-01-27 11:43:44 + */ +public interface DealerWithdrawMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") DealerWithdrawParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") DealerWithdrawParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/GoodsPhoneModelMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/GoodsPhoneModelMapper.java deleted file mode 100644 index 1ca2971..0000000 --- a/src/main/java/com/gxwebsoft/shop/mapper/GoodsPhoneModelMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.shop.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.shop.entity.GoodsPhoneModel; -import com.gxwebsoft.shop.param.GoodsPhoneModelParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 商品匹配机型Mapper - * - * @author 科技小王子 - * @since 2024-03-12 01:30:55 - */ -public interface GoodsPhoneModelMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") GoodsPhoneModelParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") GoodsPhoneModelParam param); - -} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/GoodsPriceMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/GoodsPriceMapper.java deleted file mode 100644 index d2dfff3..0000000 --- a/src/main/java/com/gxwebsoft/shop/mapper/GoodsPriceMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.shop.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.shop.entity.GoodsPrice; -import com.gxwebsoft.shop.param.GoodsPriceParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 商品价格()Mapper - * - * @author 科技小王子 - * @since 2024-03-12 01:35:40 - */ -public interface GoodsPriceMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") GoodsPriceParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") GoodsPriceParam param); - -} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/GoodsServiceMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/GoodsServiceMapper.java deleted file mode 100644 index 821e516..0000000 --- a/src/main/java/com/gxwebsoft/shop/mapper/GoodsServiceMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.gxwebsoft.shop.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.gxwebsoft.shop.entity.GoodsService; -import com.gxwebsoft.shop.param.GoodsServiceParam; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * 商品服务与承诺记录表Mapper - * - * @author 科技小王子 - * @since 2022-11-23 21:57:50 - */ -public interface GoodsServiceMapper extends BaseMapper { - - /** - * 分页查询 - * - * @param page 分页对象 - * @param param 查询参数 - * @return List - */ - List selectPageRel(@Param("page") IPage page, - @Param("param") GoodsServiceParam param); - - /** - * 查询全部 - * - * @param param 查询参数 - * @return List - */ - List selectListRel(@Param("param") GoodsServiceParam param); - -} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/MerchantMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/MerchantMapper.java index aeaf966..9ee351c 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/MerchantMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/MerchantMapper.java @@ -9,10 +9,10 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 商户管理Mapper + * 商户Mapper * - * @author 科技小王子 - * @since 2022-11-30 15:10:54 + * @author LX + * @since 2026-01-17 16:21:37 */ public interface MerchantMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/shop/mapper/OrderGoodsMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/OrderGoodsMapper.java index 090562a..9872f57 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/OrderGoodsMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/OrderGoodsMapper.java @@ -1,20 +1,18 @@ package com.gxwebsoft.shop.mapper; -import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.gxwebsoft.shop.entity.OrderGoods; import com.gxwebsoft.shop.param.OrderGoodsParam; import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; import java.util.List; /** * 订单商品记录表Mapper * - * @author 科技小王子 - * @since 2022-12-09 17:15:31 + * @author LX + * @since 2026-01-18 22:39:33 */ public interface OrderGoodsMapper extends BaseMapper { @@ -36,13 +34,4 @@ public interface OrderGoodsMapper extends BaseMapper { */ List selectListRel(@Param("param") OrderGoodsParam param); - - List selectByOrderIds(List orderIds); - - @InterceptorIgnore(tenantLine = "true") - @Select("SELECT * FROM shop_order_goods WHERE order_id = #{param.orderId}") - List selectByOrderId(Integer orderId); - - @InterceptorIgnore(tenantLine = "true") - int selectCountBySettled(@Param("param") OrderGoodsParam param); } diff --git a/src/main/java/com/gxwebsoft/shop/mapper/OrderMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/OrderMapper.java index bf6f3ec..059748d 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/OrderMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/OrderMapper.java @@ -1,23 +1,20 @@ package com.gxwebsoft.shop.mapper; -import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.github.yulichang.base.MPJBaseMapper; import com.gxwebsoft.shop.entity.Order; import com.gxwebsoft.shop.param.OrderParam; import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; import java.util.List; /** * 订单记录表Mapper * - * @author WebSoft - * @since 2022-11-16 11:25:58 + * @author LX + * @since 2026-01-18 14:38:08 */ -public interface OrderMapper extends MPJBaseMapper { +public interface OrderMapper extends BaseMapper { /** * 分页查询 @@ -37,24 +34,4 @@ public interface OrderMapper extends MPJBaseMapper { */ List selectListRel(@Param("param") OrderParam param); - - @InterceptorIgnore(tenantLine = "true") - List getOne(@Param("param") OrderParam param); - - @InterceptorIgnore(tenantLine = "true") - boolean updatePayStatus(@Param("param") OrderParam param); - - @InterceptorIgnore(tenantLine = "true") - @Select("UPDATE shop_order SET pay_status = #{param.payStatus} where order_no = #{param.orderNo}") - List getAll(@Param("param") OrderParam param); - -// @InterceptorIgnore(tenantLine = "true") - boolean updateByIdRel(@Param("param") Order order); - - @InterceptorIgnore(tenantLine = "true") - List selectPageSettled(@Param("page") IPage page, - @Param("param") OrderParam param); - - @InterceptorIgnore(tenantLine = "true") - void updateByIdSettled(@Param("param") Order order); } diff --git a/src/main/java/com/gxwebsoft/shop/mapper/UserAddressMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/UserAddressMapper.java index c2864e3..e9d933d 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/UserAddressMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/UserAddressMapper.java @@ -9,10 +9,10 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 用户收货地址表Mapper + * 收货地址Mapper * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 21:17:34 */ public interface UserAddressMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/shop/mapper/UserCouponMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/UserCouponMapper.java index 3f29906..efac1ec 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/UserCouponMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/UserCouponMapper.java @@ -9,10 +9,10 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 用户优惠券记录表Mapper + * Mapper * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-19 17:54:12 */ public interface UserCouponMapper extends BaseMapper { diff --git a/src/main/java/com/gxwebsoft/shop/mapper/UserParentListMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/UserParentListMapper.java new file mode 100644 index 0000000..15f1769 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/UserParentListMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.shop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.shop.entity.UserParentList; +import com.gxwebsoft.shop.param.UserParentListParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-04-10 22:05:26 + */ +public interface UserParentListMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") UserParentListParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") UserParentListParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/UserPointLogMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/UserPointLogMapper.java new file mode 100644 index 0000000..1ddc3c6 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/UserPointLogMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.shop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.shop.entity.UserPointLog; +import com.gxwebsoft.shop.param.UserPointLogParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-04-11 19:49:40 + */ +public interface UserPointLogMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") UserPointLogParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") UserPointLogParam param); + +} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/CartMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/CartMapper.xml index 5f0bd18..8ad3005 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/CartMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/CartMapper.xml @@ -10,26 +10,14 @@ AND a.id = #{param.id} - - AND a.goods_id = #{param.goodsId} - - - AND a.goods_sku_id LIKE CONCAT('%', #{param.goodsSkuId}, '%') - - - AND a.goods_num = #{param.goodsNum} - - - AND a.status = #{param.status} - AND a.user_id = #{param.userId} - - AND a.sort_number = #{param.sortNumber} + + AND a.goods_id = #{param.goodsId} - - AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + AND a.num = #{param.num} AND a.deleted = #{param.deleted} @@ -43,6 +31,10 @@ AND a.create_time <= #{param.createTimeEnd} + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/CouponMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/CouponMapper.xml index a35abc5..1eabba4 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/CouponMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/CouponMapper.xml @@ -7,62 +7,32 @@ SELECT a.* FROM shop_coupon a - - AND a.coupon_id = #{param.couponId} + + AND a.id = #{param.id} - - AND a.name LIKE CONCAT('%', #{param.name}, '%') + + AND a.title LIKE CONCAT('%', #{param.title}, '%') - - AND a.coupon_type = #{param.couponType} - - - AND a.reduce_price = #{param.reducePrice} - - - AND a.discount = #{param.discount} - - - AND a.min_price = #{param.minPrice} + + AND a.type = #{param.type} AND a.expire_type = #{param.expireType} + + AND a.start_amount = #{param.startAmount} + + + AND a.reduce_amount = #{param.reduceAmount} + + + AND a.reduce_rate = #{param.reduceRate} + AND a.expire_day = #{param.expireDay} - - AND a.start_time = #{param.startTime} - - - AND a.end_time = #{param.endTime} - - - AND a.apply_range = #{param.applyRange} - - - AND a.apply_range_config LIKE CONCAT('%', #{param.applyRangeConfig}, '%') - - - AND a.total_num = #{param.totalNum} - - - AND a.receive_num = #{param.receiveNum} - - - AND a.describe LIKE CONCAT('%', #{param.describe}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.shop_id = #{param.shopId} - - - AND a.sort_number = #{param.sortNumber} - - - AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + AND a.expire_end_date LIKE CONCAT('%', #{param.expireEndDate}, '%') AND a.status = #{param.status} @@ -73,12 +43,19 @@ AND a.deleted = 0 + + AND a.user_id = #{param.userId} + AND a.create_time >= #{param.createTimeStart} AND a.create_time <= #{param.createTimeEnd} + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/DealerWithdrawMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/DealerWithdrawMapper.xml new file mode 100644 index 0000000..689b96b --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/DealerWithdrawMapper.xml @@ -0,0 +1,76 @@ + + + + + + + SELECT a.* + FROM shop_dealer_withdraw a + + + AND a.id = #{param.id} + + + AND a.order_no LIKE CONCAT('%', #{param.orderNo}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.money = #{param.money} + + + AND a.pay_type = #{param.payType} + + + AND a.alipay_name LIKE CONCAT('%', #{param.alipayName}, '%') + + + AND a.alipay_account LIKE CONCAT('%', #{param.alipayAccount}, '%') + + + AND a.bank_name LIKE CONCAT('%', #{param.bankName}, '%') + + + AND a.bank_account LIKE CONCAT('%', #{param.bankAccount}, '%') + + + AND a.bank_card LIKE CONCAT('%', #{param.bankCard}, '%') + + + AND a.apply_status = #{param.applyStatus} + + + AND a.audit_time = #{param.auditTime} + + + AND a.reject_reason LIKE CONCAT('%', #{param.rejectReason}, '%') + + + AND a.platform LIKE CONCAT('%', #{param.platform}, '%') + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + ORDER BY a.create_time desc + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml index 82c6dda..a5a14d1 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsMapper.xml @@ -12,6 +12,12 @@ AND a.goods_id = #{param.goodsId} + + AND a.goods_id IN + + #{item} + + AND a.goods_name LIKE CONCAT('%', #{param.goodsName}, '%') @@ -21,6 +27,9 @@ AND a.goods_type = #{param.goodsType} + + AND a.is_show = #{param.isShow} + AND a.category_id = #{param.categoryId} @@ -139,14 +148,14 @@ AND a.create_time <= #{param.createTimeEnd} - AND a.merchant_code = #{param.merchantCode} + AND a.merchant_code = #{param.merchantCode} - AND a.period = #{param.period} + AND a.period = #{param.period} - AND a.gear = #{param.gear} + AND a.gear = #{param.gear} diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsPriceMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsPriceMapper.xml deleted file mode 100644 index bbefbde..0000000 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsPriceMapper.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - SELECT a.* - FROM shop_goods_price a - - - AND a.id = #{param.id} - - - AND a.goods_id = #{param.goodsId} - - - AND a.amount = #{param.amount} - - - AND a.commission_rate = #{param.commissionRate} - - - AND a.status = #{param.status} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - - - AND a.province LIKE CONCAT('%', #{param.province}, '%') - - - AND a.city LIKE CONCAT('%', #{param.city}, '%') - - - AND a.user_id = #{param.userId} - - - AND a.create_time >= #{param.createTimeStart} - - - AND a.create_time <= #{param.createTimeEnd} - - - - - - - - - - - diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantMapper.xml index 95c2697..f46559e 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/MerchantMapper.xml @@ -4,37 +4,38 @@ - SELECT a.*, - b.username, b.nickname, b.phone + SELECT a.* FROM shop_merchant a - LEFT JOIN sys_user b ON a.merchant_owner = b.user_id - - AND a.merchant_id = #{param.merchantId} + + AND a.id = #{param.id} - - AND a.merchant_name LIKE CONCAT('%', #{param.merchantName}, '%') + + AND a.areaName = #{param.areaName} - - AND a.merchant_code LIKE CONCAT('%', #{param.merchantCode}, '%') + + AND a.name LIKE CONCAT('%', #{param.name}, '%') - - AND a.money = #{param.money} + + AND a.chain LIKE CONCAT('%', #{param.chain}, '%') - - AND a.freeze_money = #{param.freezeMoney} + + AND a.image LIKE CONCAT('%', #{param.image}, '%') - - AND a.total_money = #{param.totalMoney} + + AND a.phone LIKE CONCAT('%', #{param.phone}, '%') - - AND a.logo LIKE CONCAT('%', #{param.logo}, '%') + + AND a.real_name LIKE CONCAT('%', #{param.realName}, '%') - - AND a.background LIKE CONCAT('%', #{param.background}, '%') + + AND a.lng_and_lat LIKE CONCAT('%', #{param.lngAndLat}, '%') - - AND a.merchant_hours LIKE CONCAT('%', #{param.merchantHours}, '%') + + AND a.lng LIKE CONCAT('%', #{param.lng}, '%') + + + AND a.lat LIKE CONCAT('%', #{param.lat}, '%') AND a.province LIKE CONCAT('%', #{param.province}, '%') @@ -48,56 +49,11 @@ AND a.address LIKE CONCAT('%', #{param.address}, '%') - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.lng_and_lat LIKE CONCAT('%', #{param.lngAndLat}, '%') - - - AND a.geohash LIKE CONCAT('%', #{param.geohash}, '%') - - - AND a.summary LIKE CONCAT('%', #{param.summary}, '%') - - - AND a.pay_type = #{param.payType} - - - AND a.alipay_name LIKE CONCAT('%', #{param.alipayName}, '%') - - - AND a.alipay_account LIKE CONCAT('%', #{param.alipayAccount}, '%') - - - AND a.bank_name LIKE CONCAT('%', #{param.bankName}, '%') - - - AND a.bank_account LIKE CONCAT('%', #{param.bankAccount}, '%') - - - AND a.bank_card LIKE CONCAT('%', #{param.bankCard}, '%') - - - AND a.is_edit = #{param.isEdit} - - - AND a.is_check = #{param.isCheck} - - - AND a.merchant_owner = #{param.merchantOwner} - - - AND a.user_id = #{param.userId} - - - AND a.sort_number = #{param.sortNumber} - AND a.comments LIKE CONCAT('%', #{param.comments}, '%') - - AND a.status = #{param.status} + + AND a.user_id = #{param.userId} AND a.deleted = #{param.deleted} @@ -105,8 +61,11 @@ AND a.deleted = 0 - - AND a.customer_id = #{param.customerId} + + AND a.status = #{param.status} + + + AND a.sort_number = #{param.sortNumber} AND a.create_time >= #{param.createTimeStart} @@ -114,19 +73,13 @@ AND a.create_time <= #{param.createTimeEnd} - - AND b.username = #{param.username} - - - AND b.nickname LIKE CONCAT('%', #{param.nickname}, '%') - - - AND b.phone = #{param.phone} - - - AND a.tenant_id = #{param.tenantId} - + + AND (a.name LIKE CONCAT('%', #{param.keywords}, '%') + OR a.code LIKE CONCAT('%', #{param.keywords}, '%') + ) + + ORDER BY a.sort_number DESC, a.id DESC diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderGoodsMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderGoodsMapper.xml index 9d661b3..4715077 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderGoodsMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderGoodsMapper.xml @@ -4,118 +4,17 @@ - SELECT a.*,b.nickname,c.order_status,c.pay_status,c.is_temporary,c.order_status,c.deleted,c.delivery_time as deliveryTime + SELECT a.* FROM shop_order_goods a - LEFT JOIN sys_user b ON a.user_id = b.user_id - LEFT JOIN shop_order c ON a.order_id = c.order_id - - AND a.order_goods_id = #{param.orderGoodsId} + + AND a.id = #{param.id} AND a.goods_id = #{param.goodsId} - - AND a.goods_name LIKE CONCAT('%', #{param.goodsName}, '%') - - - AND a.category_id LIKE CONCAT('%', #{param.categoryId}, '%') - - - AND c.pay_status = #{param.payStatus} - - - AND a.image_id = #{param.imageId} - - - AND a.deduct_stock_type = #{param.deductStockType} - - - AND a.spec_type = #{param.specType} - - - AND a.goods_sku_id LIKE CONCAT('%', #{param.goodsSkuId}, '%') - - - AND a.goods_props LIKE CONCAT('%', #{param.goodsProps}, '%') - - - AND a.content LIKE CONCAT('%', #{param.content}, '%') - - - AND a.goods_no LIKE CONCAT('%', #{param.goodsNo}, '%') - - - AND a.goods_price = #{param.goodsPrice} - - - AND a.line_price = #{param.linePrice} - - - AND a.goods_weight LIKE CONCAT('%', #{param.goodsWeight}, '%') - - - AND a.is_user_grade = #{param.isUserGrade} - - - AND a.grade_ratio = #{param.gradeRatio} - - - AND a.grade_goods_price = #{param.gradeGoodsPrice} - - - AND a.grade_total_money = #{param.gradeTotalMoney} - - - AND a.coupon_money = #{param.couponMoney} - - - AND a.points_money = #{param.pointsMoney} - - - AND a.points_num = #{param.pointsNum} - - - AND a.points_bonus = #{param.pointsBonus} - - - AND a.total_num = #{param.totalNum} - - - AND a.total_num > 0 - - - AND a.total_price = #{param.totalPrice} - - - AND a.total_pay_price = #{param.totalPayPrice} - - - AND a.delivery_status = #{param.deliveryStatus} - - - AND c.delivery_time = #{param.deliveryTime} - - - AND a.delivery_num = #{param.deliveryNum} - - - AND a.is_ind_dealer = #{param.isIndDealer} - - - AND a.dealer_money_type = #{param.dealerMoneyType} - - - AND a.first_money = #{param.firstMoney} - - - AND a.second_money = #{param.secondMoney} - - - AND a.third_money = #{param.thirdMoney} - - - AND a.is_comment = #{param.isComment} + + AND a.num = #{param.num} AND a.order_id = #{param.orderId} @@ -123,26 +22,11 @@ AND a.user_id = #{param.userId} - - AND a.goods_source_id = #{param.goodsSourceId} - - - AND a.sort_number = #{param.sortNumber} - - - AND a.comments LIKE CONCAT('%', #{param.comments}, '%') - - - AND a.status = #{param.status} - AND a.deleted = #{param.deleted} - AND a.deleted = 0 AND c.deleted = 0 - - - AND a.merchant_code LIKE CONCAT('%', #{param.merchantCode}, '%') + AND a.deleted = 0 AND a.create_time >= #{param.createTimeStart} @@ -150,31 +34,10 @@ AND a.create_time <= #{param.createTimeEnd} - - AND c.delivery_time >= #{param.deliveryTimeStart} - - - AND c.delivery_time <= #{param.deliveryTimeEnd} - - - AND c.order_status = #{param.orderStatus} - - - AND a.gear = #{param.gear} - - - AND a.nickname LIKE CONCAT('%', #{param.nickname}, '%') - - - AND c.user_id IN (SELECT user_id FROM sys_user WHERE organization_id = #{param.organizationId}) - - AND ( - a.order_goods_id = #{param.keywords} - OR a.order_id = #{param.keywords} - OR b.nickname = #{param.keywords} - ) - + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + @@ -188,26 +51,4 @@ - - - - diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml index d8f13ca..d5dc4a4 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/OrderMapper.xml @@ -4,17 +4,15 @@ - SELECT a.*, - b.nickname,b.alias,b.username,b.user_id,b.avatar,b.phone,b.real_name, - c.goods_name + SELECT a.* FROM shop_order a - LEFT JOIN sys_user b ON a.user_id = b.user_id - LEFT JOIN shop_goods c ON c.goods_id = a.goods_id - AND a.order_status != 0 AND a.order_id = #{param.orderId} + + AND a.subject LIKE CONCAT('%', #{param.subject}, '%') + AND a.order_no LIKE CONCAT('%', #{param.orderNo}, '%') @@ -39,6 +37,9 @@ AND a.pay_price = #{param.payPrice} + + AND a.receipt_amount = #{param.receiptAmount} + AND a.update_price = #{param.updatePrice} @@ -55,10 +56,10 @@ AND a.pay_status = #{param.payStatus} - AND a.pay_time = #{param.payTime} + AND a.pay_time LIKE CONCAT('%', #{param.payTime}, '%') - AND a.trade_id = #{param.tradeId} + AND a.trade_id LIKE CONCAT('%', #{param.tradeId}, '%') AND a.delivery_type = #{param.deliveryType} @@ -82,20 +83,17 @@ AND a.delivery_status = #{param.deliveryStatus} - AND a.delivery_time = #{param.deliveryTime} + AND a.delivery_time LIKE CONCAT('%', #{param.deliveryTime}, '%') AND a.receipt_status = #{param.receiptStatus} - AND a.receipt_time = #{param.receiptTime} + AND a.receipt_time LIKE CONCAT('%', #{param.receiptTime}, '%') AND a.order_status = #{param.orderStatus} - - AND a.rent_order_id = #{param.rentOrderId} - AND a.points_bonus = #{param.pointsBonus} @@ -105,12 +103,15 @@ AND a.is_settled = #{param.isSettled} + + AND a.settled_time LIKE CONCAT('%', #{param.settledTime}, '%') + + + AND a.rent_order_id = #{param.rentOrderId} + AND a.transaction_id LIKE CONCAT('%', #{param.transactionId}, '%') - - AND a.imei LIKE CONCAT('%', #{param.imei}, '%') - AND a.is_comment = #{param.isComment} @@ -123,48 +124,135 @@ AND a.order_source_data LIKE CONCAT('%', #{param.orderSourceData}, '%') + + AND a.battery_rent = #{param.batteryRent} + + + AND a.battery_deposit = #{param.batteryDeposit} + + + AND a.battery_insurance = #{param.batteryInsurance} + + + AND a.month = #{param.month} + + + AND a.week = #{param.week} + + + AND a.start_time LIKE CONCAT('%', #{param.startTime}, '%') + + + AND a.expiration_time LIKE CONCAT('%', #{param.expirationTime}, '%') + AND a.platform LIKE CONCAT('%', #{param.platform}, '%') - AND a.is_renew = #{param.isRenew} - - - AND a.week = #{param.week} + AND a.is_renew = #{param.isRenew} - AND a.is_temporary = #{param.isTemporary} + AND a.is_temporary = #{param.isTemporary} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.phone LIKE CONCAT('%', #{param.phone}, '%') + + + AND a.photo LIKE CONCAT('%', #{param.photo}, '%') + + + AND a.video LIKE CONCAT('%', #{param.video}, '%') + + + AND a.pay_voucher LIKE CONCAT('%', #{param.payVoucher}, '%') AND a.user_id = #{param.userId} - - AND a.user_id IN - - #{item} - + + AND a.city_id = #{param.cityId} AND a.store_id = #{param.storeId} - - AND a.fix_store_id = #{param.fixStoreId} - - - AND a.fix_store_id != 0 - AND a.org_id = #{param.orgId} - - AND a.city_id = #{param.cityId} + + AND a.fix_store_id = #{param.fixStoreId} + + + AND a.goods_id = #{param.goodsId} + + + AND a.equipment_id = #{param.equipmentId} AND a.sort_number = #{param.sortNumber} + + AND a.commission = #{param.commission} + + + AND a.agent_commission = #{param.agentCommission} + + + AND a.fix_store_leader_commission = #{param.fixStoreLeaderCommission} + + + AND a.imei LIKE CONCAT('%', #{param.imei}, '%') + + + AND a.sku_code LIKE CONCAT('%', #{param.skuCode}, '%') + + + AND a.sku_name LIKE CONCAT('%', #{param.skuName}, '%') + + + AND a.sku_color LIKE CONCAT('%', #{param.skuColor}, '%') + + + AND a.seller_name LIKE CONCAT('%', #{param.sellerName}, '%') + + + AND a.seller_code LIKE CONCAT('%', #{param.sellerCode}, '%') + + + AND a.active_state LIKE CONCAT('%', #{param.activeState}, '%') + + + AND a.active_date LIKE CONCAT('%', #{param.activeDate}, '%') + + + AND a.second_area_name LIKE CONCAT('%', #{param.secondAreaName}, '%') + + + AND a.retailer_name LIKE CONCAT('%', #{param.retailerName}, '%') + + + AND a.store_name LIKE CONCAT('%', #{param.storeName}, '%') + + + AND a.model_name LIKE CONCAT('%', #{param.modelName}, '%') + + + AND a.product_memory LIKE CONCAT('%', #{param.productMemory}, '%') + + + AND a.good_or_bad LIKE CONCAT('%', #{param.goodOrBad}, '%') + + + AND a.use_time LIKE CONCAT('%', #{param.useTime}, '%') + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + AND a.refund_code LIKE CONCAT('%', #{param.refundCode}, '%') + AND a.status = #{param.status} @@ -174,43 +262,19 @@ AND a.deleted = 0 + + AND a.merchant_code LIKE CONCAT('%', #{param.merchantCode}, '%') + AND a.create_time >= #{param.createTimeStart} AND a.create_time <= #{param.createTimeEnd} - - AND a.merchant_name LIKE CONCAT('%', #{param.merchantName}, '%') - - - AND a.merchant_code = #{param.merchantCode} - - - AND b.user_level = #{param.userLevel} - - - AND b.user_level IN - - #{item} - - - - AND a.city_id IN - - #{item} - - - AND ( - a.order_no LIKE CONCAT('%', #{param.keywords}, '%') - OR a.phone LIKE CONCAT('%', #{param.keywords}, '%') - OR a.sku_name LIKE CONCAT('%', #{param.keywords}, '%') - OR a.imei LIKE CONCAT('%', #{param.keywords}, '%') - OR b.phone LIKE CONCAT('%', #{param.keywords}, '%') - OR b.real_name LIKE CONCAT('%', #{param.keywords}, '%') - ) - + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + @@ -224,26 +288,4 @@ - - - - - - - UPDATE shop_order SET pay_status = #{param.payStatus},pay_method = #{param.payMethod},receipt_amount = #{param.receiptAmount},pay_time = #{param.payTime},trade_id = #{param.tradeId},subject = #{param.subject},expiration_time = #{param.expirationTime} WHERE order_id = #{param.orderId} - - - - - - UPDATE shop_order SET is_settled = #{param.isSettled},settled_time = #{param.settledTime} WHERE order_id = #{param.orderId} - - - diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/UserAddressMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserAddressMapper.xml index 6d27ce6..b8f6736 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/UserAddressMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserAddressMapper.xml @@ -7,8 +7,8 @@ SELECT a.* FROM shop_user_address a - - AND a.address_id = #{param.addressId} + + AND a.id = #{param.id} AND a.name LIKE CONCAT('%', #{param.name}, '%') @@ -16,42 +16,46 @@ AND a.phone LIKE CONCAT('%', #{param.phone}, '%') - - AND a.province_id = #{param.provinceId} + + AND a.province LIKE CONCAT('%', #{param.province}, '%') - - AND a.city_id = #{param.cityId} + + AND a.city LIKE CONCAT('%', #{param.city}, '%') - - AND a.region_id = #{param.regionId} + + AND a.region LIKE CONCAT('%', #{param.region}, '%') - - AND a.detail LIKE CONCAT('%', #{param.detail}, '%') + + AND a.address LIKE CONCAT('%', #{param.address}, '%') + + + AND a.full_address LIKE CONCAT('%', #{param.fullAddress}, '%') + + + AND a.lat LIKE CONCAT('%', #{param.lat}, '%') + + + AND a.lng LIKE CONCAT('%', #{param.lng}, '%') + + + AND a.gender = #{param.gender} + + + AND a.is_default = #{param.isDefault} AND a.user_id = #{param.userId} - - AND a.sort_number = #{param.sortNumber} - - - AND a.comments LIKE CONCAT('%', #{param.comments}, '%') - - - AND a.status = #{param.status} - - - AND a.deleted = #{param.deleted} - - - AND a.deleted = 0 - AND a.create_time >= #{param.createTimeStart} AND a.create_time <= #{param.createTimeEnd} + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/UserCouponMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserCouponMapper.xml index 59fad13..4fdf367 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/UserCouponMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserCouponMapper.xml @@ -7,59 +7,20 @@ SELECT a.* FROM shop_user_coupon a - - AND a.user_coupon_id = #{param.userCouponId} + + AND a.id = #{param.id} AND a.coupon_id = #{param.couponId} - - AND a.name LIKE CONCAT('%', #{param.name}, '%') + + AND a.order_id = #{param.orderId} - - AND a.coupon_type = #{param.couponType} + + AND a.used = #{param.used} - - AND a.reduce_price = #{param.reducePrice} - - - AND a.discount = #{param.discount} - - - AND a.min_price = #{param.minPrice} - - - AND a.expire_type = #{param.expireType} - - - AND a.expire_day = #{param.expireDay} - - - AND a.start_time = #{param.startTime} - - - AND a.end_time = #{param.endTime} - - - AND a.apply_range = #{param.applyRange} - - - AND a.apply_range_config LIKE CONCAT('%', #{param.applyRangeConfig}, '%') - - - AND a.is_expire = #{param.isExpire} - - - AND a.is_use = #{param.isUse} - - - AND a.user_id = #{param.userId} - - - AND a.sort_number = #{param.sortNumber} - - - AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + AND a.used_time LIKE CONCAT('%', #{param.usedTime}, '%') AND a.status = #{param.status} @@ -70,12 +31,19 @@ AND a.deleted = 0 + + AND a.user_id = #{param.userId} + AND a.create_time >= #{param.createTimeStart} AND a.create_time <= #{param.createTimeEnd} + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalDocTypeMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserParentListMapper.xml similarity index 65% rename from src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalDocTypeMapper.xml rename to src/main/java/com/gxwebsoft/shop/mapper/xml/UserParentListMapper.xml index 0fa11f0..eeca628 100644 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalDocTypeMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserParentListMapper.xml @@ -1,26 +1,29 @@ - + SELECT a.* - FROM law_legal_doc_type a + FROM shop_user_parent_list a AND a.id = #{param.id} - - AND a.icon LIKE CONCAT('%', #{param.icon}, '%') + + AND a.uid = #{param.uid} - - AND a.title LIKE CONCAT('%', #{param.title}, '%') + + AND a.parent_id = #{param.parentId} + + + AND a.remark LIKE CONCAT('%', #{param.remark}, '%') AND a.sort_number = #{param.sortNumber} - - AND a.user_id = #{param.userId} + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') AND a.deleted = #{param.deleted} @@ -42,12 +45,12 @@ - - diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsServiceMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserPointLogMapper.xml similarity index 69% rename from src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsServiceMapper.xml rename to src/main/java/com/gxwebsoft/shop/mapper/xml/UserPointLogMapper.xml index ae2f5da..c39836a 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsServiceMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/UserPointLogMapper.xml @@ -1,29 +1,23 @@ - + SELECT a.* - FROM shop_goods_service a + FROM shop_user_point_log a - - AND a.service_id = #{param.serviceId} - - - AND a.name LIKE CONCAT('%', #{param.name}, '%') - - - AND a.summary LIKE CONCAT('%', #{param.summary}, '%') - - - AND a.is_default = #{param.isDefault} + + AND a.id = #{param.id} AND a.user_id = #{param.userId} - - AND a.shop_id = #{param.shopId} + + AND a.msg LIKE CONCAT('%', #{param.msg}, '%') + + + AND a.remark LIKE CONCAT('%', #{param.remark}, '%') AND a.sort_number = #{param.sortNumber} @@ -46,16 +40,20 @@ AND a.create_time <= #{param.createTimeEnd} + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + - - diff --git a/src/main/java/com/gxwebsoft/shop/param/CartParam.java b/src/main/java/com/gxwebsoft/shop/param/CartParam.java index 1a534fc..5e01db9 100644 --- a/src/main/java/com/gxwebsoft/shop/param/CartParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/CartParam.java @@ -1,6 +1,6 @@ package com.gxwebsoft.shop.param; -import com.baomidou.mybatisplus.annotation.TableField; +import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -10,91 +10,33 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; -import java.util.Date; - /** - * 购物车记录表查询参数 + * 查询参数 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 18:42:38 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "CartParam对象", description = "购物车记录表查询参数") +@ApiModel(value = "CartParam对象", description = "查询参数") public class CartParam extends BaseParam { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "主键ID") @QueryField(type = QueryType.EQ) private Integer id; - @ApiModelProperty(value = "商品ID") - @QueryField(type = QueryType.EQ) - private Integer goodsId; - - @ApiModelProperty(value = "商品sku唯一标识") - private String goodsSkuId; - - @ApiModelProperty(value = "商品数量") - @QueryField(type = QueryType.EQ) - private Integer goodsNum; - - @ApiModelProperty(value = "商品价格") - private BigDecimal goodsPrice; - - @ApiModelProperty(value = "商品封面图") - private String image; - - @ApiModelProperty(value = "状态, 0正常, 1冻结") - @QueryField(type = QueryType.EQ) - private Integer status; - - @ApiModelProperty(value = "所属门店ID") - @QueryField(type = QueryType.EQ) - private Integer shopId; - - @ApiModelProperty(value = "用户ID") @QueryField(type = QueryType.EQ) private Integer userId; - @ApiModelProperty(value = "排序(数字越小越靠前)") @QueryField(type = QueryType.EQ) - private Integer sortNumber; + private Integer goodsId; - @ApiModelProperty(value = "是否临时报餐") - private Integer isTemporary; - - @ApiModelProperty(value = "备注") - private String comments; + @QueryField(type = QueryType.EQ) + private Integer num; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) private Integer deleted; - @ApiModelProperty(value = "商品总数量") - @TableField(exist = false) - private Integer totalNum; - - @ApiModelProperty(value = "订单总金额") - @TableField(exist = false) - private BigDecimal totalPrice; - - @ApiModelProperty(value = "发货时间") - @TableField(exist = false) - private String deliveryTime; - - @ApiModelProperty(value = "代报餐方式") - @TableField(exist = false) - private Integer agentUserId; - - @ApiModelProperty(value = "代取餐人") - @TableField(exist = false) - private Integer dealerId; - - @ApiModelProperty(value = "是否按餐段查询") - @TableField(exist = false) - private Boolean isPeriod; - } diff --git a/src/main/java/com/gxwebsoft/shop/param/CouponParam.java b/src/main/java/com/gxwebsoft/shop/param/CouponParam.java index 4a5431e..22e8d92 100644 --- a/src/main/java/com/gxwebsoft/shop/param/CouponParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/CouponParam.java @@ -1,5 +1,6 @@ package com.gxwebsoft.shop.param; +import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -9,92 +10,50 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; - /** - * 优惠券记录表查询参数 + * 查询参数 * - * @author 科技小王子 - * @since 2022-11-28 18:26:05 + * @author LX + * @since 2026-01-19 17:54:12 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "CouponParam对象", description = "优惠券记录表查询参数") +@ApiModel(value = "CouponParam对象", description = "查询参数") public class CouponParam extends BaseParam { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "优惠券ID") @QueryField(type = QueryType.EQ) - private Integer couponId; + private Integer id; - @ApiModelProperty(value = "优惠券名称") - private String name; + private String title; - @ApiModelProperty(value = "优惠券类型(10满减券 20折扣券)") + @ApiModelProperty(value = "0满减 1折扣") @QueryField(type = QueryType.EQ) - private Integer couponType; + private Integer type; - @ApiModelProperty(value = "满减券-减免金额") - @QueryField(type = QueryType.EQ) - private BigDecimal reducePrice; - - @ApiModelProperty(value = "折扣券-折扣率(0-100)") - @QueryField(type = QueryType.EQ) - private Integer discount; - - @ApiModelProperty(value = "最低消费金额") - @QueryField(type = QueryType.EQ) - private BigDecimal minPrice; - - @ApiModelProperty(value = "到期类型(10领取后生效 20固定时间)") + @ApiModelProperty(value = "过期类型0领取计算 1固定时间") @QueryField(type = QueryType.EQ) private Integer expireType; - @ApiModelProperty(value = "领取后生效-有效天数") + @ApiModelProperty(value = "起始金额") + @QueryField(type = QueryType.EQ) + private BigDecimal startAmount; + + @ApiModelProperty(value = "抵扣金额") + @QueryField(type = QueryType.EQ) + private BigDecimal reduceAmount; + + @ApiModelProperty(value = "折扣比例") + @QueryField(type = QueryType.EQ) + private BigDecimal reduceRate; + + @ApiModelProperty(value = "过期天数") @QueryField(type = QueryType.EQ) private Integer expireDay; - @ApiModelProperty(value = "固定时间-开始时间") - @QueryField(type = QueryType.EQ) - private Integer startTime; - - @ApiModelProperty(value = "固定时间-结束时间") - @QueryField(type = QueryType.EQ) - private Integer endTime; - - @ApiModelProperty(value = "适用范围(10全部商品 20指定商品 30排除商品)") - @QueryField(type = QueryType.EQ) - private Integer applyRange; - - @ApiModelProperty(value = "适用范围配置(json格式)") - private String applyRangeConfig; - - @ApiModelProperty(value = "发放总数量(-1为不限制)") - @QueryField(type = QueryType.EQ) - private Integer totalNum; - - @ApiModelProperty(value = "已领取数量") - @QueryField(type = QueryType.EQ) - private Integer receiveNum; - - @ApiModelProperty(value = "优惠券描述") - private String describe; - - @ApiModelProperty(value = "用户ID") - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "所属门店ID") - @QueryField(type = QueryType.EQ) - private Integer shopId; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - @QueryField(type = QueryType.EQ) - private Integer sortNumber; - - @ApiModelProperty(value = "备注") - private String comments; + @ApiModelProperty(value = "过期时间(固定)") + private String expireEndDate; @ApiModelProperty(value = "状态, 0正常, 1冻结") @QueryField(type = QueryType.EQ) @@ -104,4 +63,8 @@ public class CouponParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer deleted; + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + } diff --git a/src/main/java/com/gxwebsoft/shop/param/DealerWithdrawParam.java b/src/main/java/com/gxwebsoft/shop/param/DealerWithdrawParam.java new file mode 100644 index 0000000..edd0425 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/param/DealerWithdrawParam.java @@ -0,0 +1,73 @@ +package com.gxwebsoft.shop.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 分销商提现明细表查询参数 + * + * @author LX + * @since 2026-01-27 11:43:44 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "DealerWithdrawParam对象", description = "分销商提现明细表查询参数") +public class DealerWithdrawParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键ID") + @QueryField(type = QueryType.EQ) + private Integer id; + + private String orderNo; + + @ApiModelProperty(value = "分销商用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "提现金额") + @QueryField(type = QueryType.EQ) + private BigDecimal money; + + @ApiModelProperty(value = "打款方式 (10微信 20支付宝 30银行卡)") + @QueryField(type = QueryType.EQ) + private Integer payType; + + @ApiModelProperty(value = "支付宝姓名") + private String alipayName; + + @ApiModelProperty(value = "支付宝账号") + private String alipayAccount; + + @ApiModelProperty(value = "开户行名称") + private String bankName; + + @ApiModelProperty(value = "银行开户名") + private String bankAccount; + + @ApiModelProperty(value = "银行卡号") + private String bankCard; + + @ApiModelProperty(value = "申请状态 (10待审核 20审核通过 30驳回 40已打款)") + @QueryField(type = QueryType.EQ) + private Integer applyStatus; + + @ApiModelProperty(value = "审核时间") + @QueryField(type = QueryType.EQ) + private Integer auditTime; + + @ApiModelProperty(value = "驳回原因") + private String rejectReason; + + @ApiModelProperty(value = "来源客户端(APP、H5、小程序等)") + private String platform; + +} diff --git a/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java b/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java index 8c50d55..4155e24 100644 --- a/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/GoodsParam.java @@ -1,5 +1,6 @@ package com.gxwebsoft.shop.param; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonInclude; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; @@ -10,6 +11,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.math.BigDecimal; +import java.util.List; /** * 商品记录表查询参数 @@ -51,6 +53,8 @@ public class GoodsParam extends BaseParam { @ApiModelProperty(value = "主图视频路径") private String videoUrl; + private Integer isShow; + @ApiModelProperty(value = "商品卖点") private String sellingPoint; @@ -197,4 +201,7 @@ public class GoodsParam extends BaseParam { @ApiModelProperty(value = "商户名称") @QueryField(type = QueryType.EQ) private String merchantName; + + @TableField(exist = false) + private String ids; } diff --git a/src/main/java/com/gxwebsoft/shop/param/MerchantParam.java b/src/main/java/com/gxwebsoft/shop/param/MerchantParam.java index d480a80..735fb3c 100644 --- a/src/main/java/com/gxwebsoft/shop/param/MerchantParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/MerchantParam.java @@ -1,6 +1,6 @@ package com.gxwebsoft.shop.param; -import com.baomidou.mybatisplus.annotation.TableField; +import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -10,54 +10,45 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; - /** - * 商户管理查询参数 + * 商户查询参数 * - * @author 科技小王子 - * @since 2022-11-30 15:10:54 + * @author LX + * @since 2026-01-17 16:21:37 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "MerchantParam对象", description = "商户管理查询参数") +@ApiModel(value = "MerchantParam对象", description = "商户查询参数") public class MerchantParam extends BaseParam { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "商户ID") + @ApiModelProperty(value = "ID") @QueryField(type = QueryType.EQ) - private Integer merchantId; + private Integer id; @ApiModelProperty(value = "商户名称") - private String merchantName; + private String name; - @ApiModelProperty(value = "商户编码") - private String merchantCode; + @ApiModelProperty(value = "商户图标") + private String image; - @ApiModelProperty(value = "商户类型") - private String merchantType; + private String areaName; - @ApiModelProperty(value = "当前可提现金额") - @QueryField(type = QueryType.EQ) - private BigDecimal money; + private String chain; - @ApiModelProperty(value = "已冻结金额") - @QueryField(type = QueryType.EQ) - private BigDecimal freezeMoney; + @ApiModelProperty(value = "商户手机号") + private String phone; - @ApiModelProperty(value = "累积提现金额") - @QueryField(type = QueryType.EQ) - private BigDecimal totalMoney; + @ApiModelProperty(value = "商户姓名") + private String realName; - @ApiModelProperty(value = "商户logo") - private String logo; + @ApiModelProperty(value = "经纬度") + private String lngAndLat; - @ApiModelProperty(value = "商户背景图片") - private String background; + private String lng; - @ApiModelProperty(value = "营业时间") - private String merchantHours; + private String lat; @ApiModelProperty(value = "所在省份") private String province; @@ -71,89 +62,23 @@ public class MerchantParam extends BaseParam { @ApiModelProperty(value = "详细地址") private String address; - @ApiModelProperty(value = "商户详情") - private String content; - - @ApiModelProperty(value = "商户坐标经纬度") - private String lngAndLat; - - @ApiModelProperty(value = "geohash") - private String geohash; - - @ApiModelProperty(value = "商户简介") - private String summary; - - @ApiModelProperty(value = "打款方式 (10微信 20支付宝 30银行卡)") - @QueryField(type = QueryType.EQ) - private Integer payType; - - @ApiModelProperty(value = "支付宝姓名") - private String alipayName; - - @ApiModelProperty(value = "支付宝账号") - private String alipayAccount; - - @ApiModelProperty(value = "开户行名称") - private String bankName; - - @ApiModelProperty(value = "银行开户名") - private String bankAccount; - - @ApiModelProperty(value = "银行卡号") - private String bankCard; - - @ApiModelProperty(value = "是否可编辑 0 商户可编辑 1 管理员可编辑") - @QueryField(type = QueryType.EQ) - private Integer isEdit; - - @ApiModelProperty(value = "是否支持自提核销(0否 1支持)") - @QueryField(type = QueryType.EQ) - private Integer isCheck; - - @ApiModelProperty(value = "商户主") - @QueryField(type = QueryType.EQ) - private Integer merchantOwner; - - @ApiModelProperty(value = "门店联系电话") - @QueryField(type = QueryType.EQ) - private String merchantPhone; - - @ApiModelProperty(value = "用户ID") - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - @QueryField(type = QueryType.EQ) - private Integer sortNumber; - @ApiModelProperty(value = "备注") private String comments; - @ApiModelProperty(value = "状态, 0正常, 1冻结") + @ApiModelProperty(value = "所有人") @QueryField(type = QueryType.EQ) - private Integer status; + private Integer userId; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) private Integer deleted; - @ApiModelProperty(value = "客户ID") + @ApiModelProperty(value = "状态") @QueryField(type = QueryType.EQ) - private Integer customerId; + private Integer status; - @ApiModelProperty("登录账号") - @TableField(exist = false) - private String username; - - @ApiModelProperty("用户昵称") - @TableField(exist = false) - private String nickname; - - @ApiModelProperty(value = "联系电话") - @TableField(exist = false) - private String phone; - - @ApiModelProperty(value = "租户ID") - private Integer tenantId; + @ApiModelProperty(value = "排序号") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; } diff --git a/src/main/java/com/gxwebsoft/shop/param/OrderGoodsParam.java b/src/main/java/com/gxwebsoft/shop/param/OrderGoodsParam.java index 5444d92..aefe08d 100644 --- a/src/main/java/com/gxwebsoft/shop/param/OrderGoodsParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/OrderGoodsParam.java @@ -1,22 +1,20 @@ package com.gxwebsoft.shop.param; -import com.baomidou.mybatisplus.annotation.TableField; -import com.fasterxml.jackson.annotation.JsonInclude; +import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; - /** * 订单商品记录表查询参数 * - * @author 科技小王子 - * @since 2022-12-09 17:15:31 + * @author LX + * @since 2026-01-18 22:39:33 */ @Data @EqualsAndHashCode(callSuper = false) @@ -27,139 +25,15 @@ public class OrderGoodsParam extends BaseParam { @ApiModelProperty(value = "订单商品ID") @QueryField(type = QueryType.EQ) - private Integer orderGoodsId; - - @ApiModelProperty(value = "商品分类") - private Integer categoryId; + private Integer id; @ApiModelProperty(value = "商品ID") @QueryField(type = QueryType.EQ) private Integer goodsId; - @ApiModelProperty(value = "商品名称") - private String goodsName; - - @ApiModelProperty(value = "商品封面图ID") - @QueryField(type = QueryType.EQ) - private Integer imageId; - - @ApiModelProperty(value = "库存计算方式(10下单减库存 20付款减库存)") - @QueryField(type = QueryType.EQ) - private Integer deductStockType; - - @ApiModelProperty(value = "规格类型(10单规格 20多规格)") - @QueryField(type = QueryType.EQ) - private Integer specType; - - @ApiModelProperty(value = "商品sku唯一标识") - private String goodsSkuId; - - @ApiModelProperty(value = "SKU的规格属性(json格式)") - private String goodsProps; - - @ApiModelProperty(value = "商品详情") - private String content; - - @ApiModelProperty(value = "商品编码") - private String goodsNo; - - @ApiModelProperty(value = "商品价格(单价)") - @QueryField(type = QueryType.EQ) - private BigDecimal goodsPrice; - - @ApiModelProperty(value = "商品划线价") - @QueryField(type = QueryType.EQ) - private BigDecimal linePrice; - - @ApiModelProperty(value = "商品重量(Kg)") - private Double goodsWeight; - - @ApiModelProperty(value = "所属档口") - private Integer gear; - - @ApiModelProperty(value = "是否存在会员等级折扣") - @QueryField(type = QueryType.EQ) - private Integer isUserGrade; - - @ApiModelProperty(value = "会员折扣比例(0-10)") - @QueryField(type = QueryType.EQ) - private Integer gradeRatio; - - @ApiModelProperty(value = "会员折扣的商品单价") - @QueryField(type = QueryType.EQ) - private BigDecimal gradeGoodsPrice; - - @ApiModelProperty(value = "会员折扣的总额差") - @QueryField(type = QueryType.EQ) - private BigDecimal gradeTotalMoney; - - @ApiModelProperty(value = "优惠券折扣金额") - @QueryField(type = QueryType.EQ) - private BigDecimal couponMoney; - - @ApiModelProperty(value = "积分金额") - @QueryField(type = QueryType.EQ) - private BigDecimal pointsMoney; - - @ApiModelProperty(value = "积分抵扣数量") - @QueryField(type = QueryType.EQ) - private Integer pointsNum; - - @ApiModelProperty(value = "赠送的积分数量") - @QueryField(type = QueryType.EQ) - private Integer pointsBonus; - - @ApiModelProperty(value = "付款状态(10未付款 20已付款)") - @QueryField(type = QueryType.EQ) - private Integer payStatus; - @ApiModelProperty(value = "购买数量") @QueryField(type = QueryType.EQ) - private Integer totalNum; - - @ApiModelProperty(value = "商品总价(数量×单价)") - @QueryField(type = QueryType.EQ) - private BigDecimal totalPrice; - - @ApiModelProperty(value = "实际付款价(折扣和优惠后)") - @QueryField(type = QueryType.EQ) - private BigDecimal totalPayPrice; - - @ApiModelProperty(value = "发货状态(10未发货 20已发货 30部分发货)") - @QueryField(type = QueryType.EQ) - private Integer deliveryStatus; - - @ApiModelProperty(value = "已发货数量") - @QueryField(type = QueryType.EQ) - private Integer deliveryNum; - - @ApiModelProperty(value = "发货时间") - @TableField(exist = false) - private String deliveryTime; - - @ApiModelProperty(value = "是否开启单独分销(0关闭 1开启)") - @QueryField(type = QueryType.EQ) - private Integer isIndDealer; - - @ApiModelProperty(value = "分销佣金类型(10百分比 20固定金额)") - @QueryField(type = QueryType.EQ) - private Integer dealerMoneyType; - - @ApiModelProperty(value = "分销佣金(一级)") - @QueryField(type = QueryType.EQ) - private BigDecimal firstMoney; - - @ApiModelProperty(value = "分销佣金(二级)") - @QueryField(type = QueryType.EQ) - private BigDecimal secondMoney; - - @ApiModelProperty(value = "分销佣金(三级)") - @QueryField(type = QueryType.EQ) - private BigDecimal thirdMoney; - - @ApiModelProperty(value = "是否已评价(0否 1是)") - @QueryField(type = QueryType.EQ) - private Integer isComment; + private Integer num; @ApiModelProperty(value = "订单ID") @QueryField(type = QueryType.EQ) @@ -169,52 +43,8 @@ public class OrderGoodsParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer userId; - @ApiModelProperty(value = "来源记录ID") - @QueryField(type = QueryType.EQ) - private Integer goodsSourceId; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - @QueryField(type = QueryType.EQ) - private Integer sortNumber; - - @ApiModelProperty(value = "备注") - private String comments; - - @ApiModelProperty(value = "状态, 0正常, 1冻结") - @QueryField(type = QueryType.EQ) - private Integer status; - @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) private Integer deleted; - @ApiModelProperty(value = "商户编码") - private String merchantCode; - - @ApiModelProperty(value = "用户昵称") - @TableField(exist = false) - private String nickname; - - @ApiModelProperty(value = "订购份数是否大于0") - @TableField(exist = false) - private Boolean hasNum; - - @ApiModelProperty(value = "订单状态") - @TableField(exist = false) - private Integer orderStatus; - - @QueryField(value = "delivery_time", type = QueryType.GE) - @TableField(exist = false) - @ApiModelProperty("报餐时间起始值") - private String deliveryTimeStart; - - @QueryField(value = "delivery_time", type = QueryType.LE) - @TableField(exist = false) - @ApiModelProperty("报餐时间结束值") - private String deliveryTimeEnd; - - @ApiModelProperty(value = "按部门查询") - @TableField(exist = false) - private Integer organizationId; - } diff --git a/src/main/java/com/gxwebsoft/shop/param/OrderParam.java b/src/main/java/com/gxwebsoft/shop/param/OrderParam.java index fa02b2f..83c84bc 100644 --- a/src/main/java/com/gxwebsoft/shop/param/OrderParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/OrderParam.java @@ -1,25 +1,20 @@ package com.gxwebsoft.shop.param; -import com.baomidou.mybatisplus.annotation.TableField; -import com.fasterxml.jackson.annotation.JsonInclude; +import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; -import java.util.Date; -import java.util.List; -import java.util.Set; - /** * 订单记录表查询参数 * - * @author WebSoft - * @since 2022-11-16 11:25:58 + * @author LX + * @since 2026-01-18 14:38:08 */ @Data @EqualsAndHashCode(callSuper = false) @@ -32,6 +27,9 @@ public class OrderParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer orderId; + @ApiModelProperty(value = "订单标题") + private String subject; + @ApiModelProperty(value = "订单号") private String orderNo; @@ -63,6 +61,10 @@ public class OrderParam extends BaseParam { @QueryField(type = QueryType.EQ) private BigDecimal payPrice; + @ApiModelProperty(value = "第三方支付实收金额") + @QueryField(type = QueryType.EQ) + private BigDecimal receiptAmount; + @ApiModelProperty(value = "后台修改的订单金额(差价)") @QueryField(type = QueryType.EQ) private BigDecimal updatePrice; @@ -70,13 +72,11 @@ public class OrderParam extends BaseParam { @ApiModelProperty(value = "买家留言") private String buyerRemark; - private String imei; - @ApiModelProperty(value = "支付方式(废弃)") @QueryField(type = QueryType.EQ) private Integer payType; - @ApiModelProperty(value = "支付方式(余额/微信/支付宝)") + @ApiModelProperty(value = "支付方式(0付款码1微信支付)") private String payMethod; @ApiModelProperty(value = "付款状态(10未付款 20已付款)") @@ -84,20 +84,10 @@ public class OrderParam extends BaseParam { private Integer payStatus; @ApiModelProperty(value = "付款时间") - @QueryField(type = QueryType.EQ) - private Date payTime; - - @ApiModelProperty("购买月份数量") - @QueryField(type = QueryType.EQ) - private Integer month; - - @ApiModelProperty(value = "星期几") - @QueryField(type = QueryType.EQ) - private Integer week; + private String payTime; @ApiModelProperty(value = "第三方交易记录ID") - @QueryField(type = QueryType.EQ) - private Integer tradeId; + private String tradeId; @ApiModelProperty(value = "配送方式(10快递配送 20门店自提)") @QueryField(type = QueryType.EQ) @@ -127,18 +117,16 @@ public class OrderParam extends BaseParam { private Integer deliveryStatus; @ApiModelProperty(value = "发货时间") - @QueryField(type = QueryType.EQ) private String deliveryTime; - @ApiModelProperty(value = "收货状态(10未收货 20已收货)") + @ApiModelProperty(value = "收货状态(10未收货 20已收货 30已退货)") @QueryField(type = QueryType.EQ) private Integer receiptStatus; @ApiModelProperty(value = "收货时间") - @QueryField(type = QueryType.EQ) - private Date receiptTime; + private String receiptTime; - @ApiModelProperty(value = "订单状态(10进行中 20取消 21待取消 30已完成)") + @ApiModelProperty(value = "订单状态(0已取消1待支付2已支付3已结束4退款审核中5退款成功6退款失败)") @QueryField(type = QueryType.EQ) private Integer orderStatus; @@ -153,7 +141,11 @@ public class OrderParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer isSettled; - @ApiModelProperty(value = "续租订单原单号") + @ApiModelProperty(value = "最后结算时间") + private String settledTime; + + @ApiModelProperty(value = "续租订单的关联单号") + @QueryField(type = QueryType.EQ) private Integer rentOrderId; @ApiModelProperty(value = "微信支付交易号(废弃)") @@ -174,56 +166,144 @@ public class OrderParam extends BaseParam { @ApiModelProperty(value = "来源记录的参数 (json格式)") private String orderSourceData; + @ApiModelProperty(value = "电池租金") + @QueryField(type = QueryType.EQ) + private BigDecimal batteryRent; + + @ApiModelProperty(value = "电池押金") + @QueryField(type = QueryType.EQ) + private BigDecimal batteryDeposit; + + @ApiModelProperty(value = "保险") + @QueryField(type = QueryType.EQ) + private BigDecimal batteryInsurance; + + @ApiModelProperty(value = "购买月份数量") + @QueryField(type = QueryType.EQ) + private Integer month; + + @ApiModelProperty(value = "0星期日 1星期一 2星期二 3星期三 4星期四 5星期五 6星期六") + @QueryField(type = QueryType.EQ) + private Integer week; + + @ApiModelProperty(value = "服务开始时间") + private String startTime; + + @ApiModelProperty(value = "服务到期时间") + private String expirationTime; + @ApiModelProperty(value = "来源客户端 (APP、H5、小程序等)") private String platform; @ApiModelProperty(value = "是否续费订单") + @QueryField(type = QueryType.EQ) private Integer isRenew; @ApiModelProperty(value = "是否临时报餐") + @QueryField(type = QueryType.EQ) private Integer isTemporary; + private String name; + + private String phone; + + private String photo; + + private String video; + + @ApiModelProperty(value = "支付凭证") + private String payVoucher; + @ApiModelProperty(value = "用户ID") @QueryField(type = QueryType.EQ) private Integer userId; + @QueryField(type = QueryType.EQ) + private Integer cityId; + @ApiModelProperty(value = "所属门店ID") @QueryField(type = QueryType.EQ) private Integer storeId; - @ApiModelProperty(value = "所属门店ID") - @QueryField(type = QueryType.EQ) - private Integer fixStoreId; - - @ApiModelProperty(value = "所属零售商ID") + @ApiModelProperty(value = "门店所属二级区域ID") @QueryField(type = QueryType.EQ) private Integer orgId; @ApiModelProperty(value = "所属门店ID") @QueryField(type = QueryType.EQ) - private Integer cityId; + private Integer fixStoreId; @ApiModelProperty(value = "商品ID") + @QueryField(type = QueryType.EQ) private Integer goodsId; - @ApiModelProperty(value = "设备ID") - private Integer equipmentId; - - @ApiModelProperty(value = "商户编号") + @ApiModelProperty(value = "电池商品ID") @QueryField(type = QueryType.EQ) - private String merchantCode; - - @ApiModelProperty(value = "商户名称") - @QueryField(type = QueryType.LIKE) - private String merchantName; + private Integer equipmentId; @ApiModelProperty(value = "排序(数字越小越靠前)") @QueryField(type = QueryType.EQ) private Integer sortNumber; + @ApiModelProperty(value = "分佣") + @QueryField(type = QueryType.EQ) + private BigDecimal commission; + + @ApiModelProperty(value = "代理毛利") + @QueryField(type = QueryType.EQ) + private BigDecimal agentCommission; + + @ApiModelProperty(value = "售后店长返利") + @QueryField(type = QueryType.EQ) + private BigDecimal fixStoreLeaderCommission; + + private String imei; + + private String skuCode; + + private String skuName; + + private String skuColor; + + @ApiModelProperty(value = "上报人姓名") + private String sellerName; + + @ApiModelProperty(value = "上报人工号") + private String sellerCode; + + @ApiModelProperty(value = "激活状态") + private String activeState; + + @ApiModelProperty(value = "激活时间") + private String activeDate; + + @ApiModelProperty(value = "二级区域名称") + private String secondAreaName; + + @ApiModelProperty(value = "零售商名称") + private String retailerName; + + @ApiModelProperty(value = "门店") + private String storeName; + + @ApiModelProperty(value = "型号") + private String modelName; + + @ApiModelProperty(value = "RAM+ROM") + private String productMemory; + + @ApiModelProperty(value = "好/坏机") + private String goodOrBad; + + @ApiModelProperty(value = "出险时间") + private String useTime; + @ApiModelProperty(value = "备注") private String comments; + @ApiModelProperty(value = "退款码") + private String refundCode; + @ApiModelProperty(value = "状态, 0正常, 1冻结") @QueryField(type = QueryType.EQ) private Integer status; @@ -232,42 +312,7 @@ public class OrderParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer deleted; - @ApiModelProperty(value = "租户ID") - @QueryField(type = QueryType.EQ) - private Integer tenantId; - - @ApiModelProperty("搜索关键字") - @TableField(exist = false) - private String keywords; - - @ApiModelProperty(value = "签名") - @TableField(exist = false) - private String sign; - - @ApiModelProperty(value = "是否查询订单商品") - @TableField(exist = false) - private Boolean showGoodsList; - - @ApiModelProperty(value = "用户id集合") - @TableField(exist = false) - private Set userIds; - - @ApiModelProperty(value = "仅显示售后店订单") - @TableField(exist = false) - private Integer fixOnly; - - @ApiModelProperty(value = "用户等级集合") - @TableField(exist = false) - private List userLevelList; - - @TableField(exist = false) - private List cityIdList; - - @ApiModelProperty(value = "用户等级") - @TableField(exist = false) - private Integer userLevel; - - @TableField(exist = false) - private Boolean watchAll; + @ApiModelProperty(value = "商户编码") + private String merchantCode; } diff --git a/src/main/java/com/gxwebsoft/shop/param/UserAddressParam.java b/src/main/java/com/gxwebsoft/shop/param/UserAddressParam.java index 252b940..4f6bd4a 100644 --- a/src/main/java/com/gxwebsoft/shop/param/UserAddressParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/UserAddressParam.java @@ -1,5 +1,6 @@ package com.gxwebsoft.shop.param; +import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -10,60 +11,57 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 用户收货地址表查询参数 + * 收货地址查询参数 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 21:17:34 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "UserAddressParam对象", description = "用户收货地址表查询参数") +@ApiModel(value = "UserAddressParam对象", description = "收货地址查询参数") public class UserAddressParam extends BaseParam { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "主键ID") @QueryField(type = QueryType.EQ) - private Integer addressId; + private Integer id; - @ApiModelProperty(value = "收货人姓名") + @ApiModelProperty(value = "姓名") private String name; - @ApiModelProperty(value = "联系电话") + @ApiModelProperty(value = "手机号码") private String phone; - @ApiModelProperty(value = "省份ID") - @QueryField(type = QueryType.EQ) - private Integer provinceId; + @ApiModelProperty(value = "所在省份") + private String province; - @ApiModelProperty(value = "城市ID") - @QueryField(type = QueryType.EQ) - private Integer cityId; + @ApiModelProperty(value = "所在城市") + private String city; - @ApiModelProperty(value = "区/县ID") - @QueryField(type = QueryType.EQ) - private Integer regionId; + @ApiModelProperty(value = "所在辖区") + private String region; - @ApiModelProperty(value = "详细地址") - private String detail; + @ApiModelProperty(value = "收货地址") + private String address; + + @ApiModelProperty(value = "收货地址") + private String fullAddress; + + private String lat; + + private String lng; + + @ApiModelProperty(value = "1先生 2女士") + @QueryField(type = QueryType.EQ) + private Integer gender; + + @ApiModelProperty(value = "默认收货地址") + @QueryField(type = QueryType.EQ) + private Boolean isDefault; @ApiModelProperty(value = "用户ID") @QueryField(type = QueryType.EQ) private Integer userId; - @ApiModelProperty(value = "排序(数字越小越靠前)") - @QueryField(type = QueryType.EQ) - private Integer sortNumber; - - @ApiModelProperty(value = "备注") - private String comments; - - @ApiModelProperty(value = "状态, 0正常, 1冻结") - @QueryField(type = QueryType.EQ) - private Integer status; - - @ApiModelProperty(value = "是否删除, 0否, 1是") - @QueryField(type = QueryType.EQ) - private Integer deleted; - } diff --git a/src/main/java/com/gxwebsoft/shop/param/UserCouponParam.java b/src/main/java/com/gxwebsoft/shop/param/UserCouponParam.java index e0ad943..bcc216a 100644 --- a/src/main/java/com/gxwebsoft/shop/param/UserCouponParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/UserCouponParam.java @@ -1,5 +1,6 @@ package com.gxwebsoft.shop.param; +import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -9,89 +10,33 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; - /** - * 用户优惠券记录表查询参数 + * 查询参数 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-19 17:54:12 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "UserCouponParam对象", description = "用户优惠券记录表查询参数") +@ApiModel(value = "UserCouponParam对象", description = "查询参数") public class UserCouponParam extends BaseParam { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "主键ID") @QueryField(type = QueryType.EQ) - private Integer userCouponId; + private Integer id; - @ApiModelProperty(value = "优惠券ID") @QueryField(type = QueryType.EQ) private Integer couponId; - @ApiModelProperty(value = "优惠券名称") - private String name; - - @ApiModelProperty(value = "优惠券类型(10满减券 20折扣券)") @QueryField(type = QueryType.EQ) - private Integer couponType; + private Integer orderId; - @ApiModelProperty(value = "满减券-减免金额") @QueryField(type = QueryType.EQ) - private BigDecimal reducePrice; + private Integer used; - @ApiModelProperty(value = "折扣券-折扣率(0-100)") - @QueryField(type = QueryType.EQ) - private Integer discount; - - @ApiModelProperty(value = "最低消费金额") - @QueryField(type = QueryType.EQ) - private BigDecimal minPrice; - - @ApiModelProperty(value = "到期类型(10领取后生效 20固定时间)") - @QueryField(type = QueryType.EQ) - private Integer expireType; - - @ApiModelProperty(value = "领取后生效-有效天数") - @QueryField(type = QueryType.EQ) - private Integer expireDay; - - @ApiModelProperty(value = "有效期开始时间") - @QueryField(type = QueryType.EQ) - private Integer startTime; - - @ApiModelProperty(value = "有效期结束时间") - @QueryField(type = QueryType.EQ) - private Integer endTime; - - @ApiModelProperty(value = "适用范围(10全部商品 20指定商品)") - @QueryField(type = QueryType.EQ) - private Integer applyRange; - - @ApiModelProperty(value = "适用范围配置(json格式)") - private String applyRangeConfig; - - @ApiModelProperty(value = "是否过期(0未过期 1已过期)") - @QueryField(type = QueryType.EQ) - private Integer isExpire; - - @ApiModelProperty(value = "是否已使用(0未使用 1已使用)") - @QueryField(type = QueryType.EQ) - private Integer isUse; - - @ApiModelProperty(value = "用户ID") - @QueryField(type = QueryType.EQ) - private Integer userId; - - @ApiModelProperty(value = "排序(数字越小越靠前)") - @QueryField(type = QueryType.EQ) - private Integer sortNumber; - - @ApiModelProperty(value = "备注") - private String comments; + @ApiModelProperty(value = "使用时间") + private String usedTime; @ApiModelProperty(value = "状态, 0正常, 1冻结") @QueryField(type = QueryType.EQ) @@ -101,4 +46,8 @@ public class UserCouponParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer deleted; + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + } diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalDocTypeParam.java b/src/main/java/com/gxwebsoft/shop/param/UserParentListParam.java similarity index 62% rename from src/main/java/com/gxwebsoft/law/param/LawLegalDocTypeParam.java rename to src/main/java/com/gxwebsoft/shop/param/UserParentListParam.java index a27374b..acf5769 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalDocTypeParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/UserParentListParam.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.shop.param; import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; @@ -11,31 +11,36 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 法律文书配置查询参数 + * 查询参数 * * @author LX - * @since 2025-04-17 19:06:41 + * @since 2026-04-10 22:05:26 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalDocTypeParam对象", description = "法律文书配置查询参数") -public class LawLegalDocTypeParam extends BaseParam { +@ApiModel(value = "UserParentListParam对象", description = "查询参数") +public class UserParentListParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; - private String icon; + @QueryField(type = QueryType.EQ) + private Integer uid; - private String title; + @QueryField(type = QueryType.EQ) + private Integer parentId; - @ApiModelProperty(value = "类型") + @ApiModelProperty(value = "管理员备注") + private String remark; + + @ApiModelProperty(value = "排序(数字越小越靠前)") @QueryField(type = QueryType.EQ) private Integer sortNumber; - @QueryField(type = QueryType.EQ) - private Integer userId; + @ApiModelProperty(value = "备注") + private String comments; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckTypeSuggestParam.java b/src/main/java/com/gxwebsoft/shop/param/UserPointLogParam.java similarity index 60% rename from src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckTypeSuggestParam.java rename to src/main/java/com/gxwebsoft/shop/param/UserPointLogParam.java index 5fd5c5d..fee22a7 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckTypeSuggestParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/UserPointLogParam.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.shop.param; import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; @@ -11,31 +11,39 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 法律意见书配置查询参数 + * 查询参数 * * @author LX - * @since 2025-04-17 18:55:31 + * @since 2026-04-11 19:49:40 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalOrgCheckTypeSuggestParam对象", description = "法律意见书配置查询参数") -public class LawLegalOrgCheckTypeSuggestParam extends BaseParam { +@ApiModel(value = "UserPointLogParam对象", description = "查询参数") +public class UserPointLogParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; - private String icon; + @QueryField(type = QueryType.EQ) + private Integer userId; - private String title; + private String msg; - @ApiModelProperty(value = "类型") + @ApiModelProperty(value = "管理员备注") + private String remark; + + @ApiModelProperty(value = "排序(数字越小越靠前)") @QueryField(type = QueryType.EQ) private Integer sortNumber; + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") @QueryField(type = QueryType.EQ) - private Integer userId; + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) diff --git a/src/main/java/com/gxwebsoft/shop/service/CartService.java b/src/main/java/com/gxwebsoft/shop/service/CartService.java index 6aa40c3..6a9164c 100644 --- a/src/main/java/com/gxwebsoft/shop/service/CartService.java +++ b/src/main/java/com/gxwebsoft/shop/service/CartService.java @@ -8,10 +8,10 @@ import com.gxwebsoft.shop.param.CartParam; import java.util.List; /** - * 购物车记录表Service + * Service * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 18:42:38 */ public interface CartService extends IService { @@ -34,9 +34,10 @@ public interface CartService extends IService { /** * 根据id查询 * - * @param id 主键ID + * @param id * @return Cart */ Cart getByIdRel(Integer id); + Cart check(Integer goodsId, Integer userId); } diff --git a/src/main/java/com/gxwebsoft/shop/service/CouponService.java b/src/main/java/com/gxwebsoft/shop/service/CouponService.java index 328b8c0..3491991 100644 --- a/src/main/java/com/gxwebsoft/shop/service/CouponService.java +++ b/src/main/java/com/gxwebsoft/shop/service/CouponService.java @@ -8,10 +8,10 @@ import com.gxwebsoft.shop.param.CouponParam; import java.util.List; /** - * 优惠券记录表Service + * Service * - * @author 科技小王子 - * @since 2022-11-28 18:26:05 + * @author LX + * @since 2026-01-19 17:54:12 */ public interface CouponService extends IService { @@ -34,9 +34,9 @@ public interface CouponService extends IService { /** * 根据id查询 * - * @param couponId 优惠券ID + * @param id * @return Coupon */ - Coupon getByIdRel(Integer couponId); + Coupon getByIdRel(Integer id); } diff --git a/src/main/java/com/gxwebsoft/shop/service/DealerWithdrawService.java b/src/main/java/com/gxwebsoft/shop/service/DealerWithdrawService.java new file mode 100644 index 0000000..b90c836 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/DealerWithdrawService.java @@ -0,0 +1,43 @@ +package com.gxwebsoft.shop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.shop.entity.DealerWithdraw; +import com.gxwebsoft.shop.param.DealerWithdrawParam; + +import java.util.List; + +/** + * 分销商提现明细表Service + * + * @author LX + * @since 2026-01-27 11:43:44 + */ +public interface DealerWithdrawService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(DealerWithdrawParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(DealerWithdrawParam param); + + /** + * 根据id查询 + * + * @param id 主键ID + * @return DealerWithdraw + */ + DealerWithdraw getByIdRel(Integer id); + + DealerWithdraw getByOrderNo(String orderNo); +} diff --git a/src/main/java/com/gxwebsoft/shop/service/GoodsPhoneModelService.java b/src/main/java/com/gxwebsoft/shop/service/GoodsPhoneModelService.java deleted file mode 100644 index 087e821..0000000 --- a/src/main/java/com/gxwebsoft/shop/service/GoodsPhoneModelService.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.gxwebsoft.shop.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.shop.entity.GoodsPhoneModel; -import com.gxwebsoft.shop.param.GoodsPhoneModelParam; - -import java.util.List; - -/** - * 商品匹配机型Service - * - * @author 科技小王子 - * @since 2024-03-12 01:30:55 - */ -public interface GoodsPhoneModelService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(GoodsPhoneModelParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(GoodsPhoneModelParam param); - - /** - * 根据id查询 - * - * @param id - * @return GoodsPhoneModel - */ - GoodsPhoneModel getByIdRel(Integer id); - - List getByModelId(Integer modelId); - - void delByGoodsId(Integer goodsId); - -} diff --git a/src/main/java/com/gxwebsoft/shop/service/GoodsPriceService.java b/src/main/java/com/gxwebsoft/shop/service/GoodsPriceService.java deleted file mode 100644 index ff144ff..0000000 --- a/src/main/java/com/gxwebsoft/shop/service/GoodsPriceService.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.gxwebsoft.shop.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.shop.entity.GoodsPrice; -import com.gxwebsoft.shop.param.GoodsPriceParam; - -import java.util.List; - -/** - * 商品价格()Service - * - * @author 科技小王子 - * @since 2024-03-12 01:35:40 - */ -public interface GoodsPriceService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(GoodsPriceParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(GoodsPriceParam param); - - /** - * 根据id查询 - * - * @param id - * @return GoodsPrice - */ - GoodsPrice getByIdRel(Integer id); - - GoodsPrice getByGoodsIdNCity(Integer id, Integer cityId); - -} diff --git a/src/main/java/com/gxwebsoft/shop/service/GoodsService.java b/src/main/java/com/gxwebsoft/shop/service/GoodsService.java index 1f8e304..30348f8 100644 --- a/src/main/java/com/gxwebsoft/shop/service/GoodsService.java +++ b/src/main/java/com/gxwebsoft/shop/service/GoodsService.java @@ -40,5 +40,4 @@ public interface GoodsService extends IService { */ Goods getByIdRel(Integer goodsId); - void setData(List goodsList, User loginUser ); } diff --git a/src/main/java/com/gxwebsoft/shop/service/GoodsServiceService.java b/src/main/java/com/gxwebsoft/shop/service/GoodsServiceService.java deleted file mode 100644 index c2f2212..0000000 --- a/src/main/java/com/gxwebsoft/shop/service/GoodsServiceService.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.gxwebsoft.shop.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.shop.entity.GoodsService; -import com.gxwebsoft.shop.param.GoodsServiceParam; - -import java.util.List; - -/** - * 商品服务与承诺记录表Service - * - * @author 科技小王子 - * @since 2022-11-23 21:57:50 - */ -public interface GoodsServiceService extends IService { - - /** - * 分页关联查询 - * - * @param param 查询参数 - * @return PageResult - */ - PageResult pageRel(GoodsServiceParam param); - - /** - * 关联查询全部 - * - * @param param 查询参数 - * @return List - */ - List listRel(GoodsServiceParam param); - - /** - * 根据id查询 - * - * @param serviceId 商品服务ID - * @return GoodsService - */ - GoodsService getByIdRel(Integer serviceId); - -} diff --git a/src/main/java/com/gxwebsoft/shop/service/MerchantService.java b/src/main/java/com/gxwebsoft/shop/service/MerchantService.java index dfe3c1f..c3f9964 100644 --- a/src/main/java/com/gxwebsoft/shop/service/MerchantService.java +++ b/src/main/java/com/gxwebsoft/shop/service/MerchantService.java @@ -6,12 +6,13 @@ import com.gxwebsoft.shop.entity.Merchant; import com.gxwebsoft.shop.param.MerchantParam; import java.util.List; +import java.util.Map; /** - * 商户管理Service + * 商户Service * - * @author 科技小王子 - * @since 2022-11-30 15:10:54 + * @author LX + * @since 2026-01-17 16:21:37 */ public interface MerchantService extends IService { @@ -34,21 +35,16 @@ public interface MerchantService extends IService { /** * 根据id查询 * - * @param merchantId 商户ID + * @param id ID * @return Merchant */ - Merchant getByIdRel(Integer merchantId); + Merchant getByIdRel(Integer id); - /** - * - * @param merchantOwner 店主绑定的userId - * @return 商户编号 - */ - String getMerchantCodeByOwner(Integer merchantOwner); + Merchant getByName(String merchantName); - Merchant getMerchantByCode(String merchantCode); + Merchant getByCode(String merchantCode); - List listByGeo(MerchantParam param); + Merchant getByIdNChain(Integer id, String chain); - void saveGeoPointToRedis(); + List> groupByChain(); } diff --git a/src/main/java/com/gxwebsoft/shop/service/OrderGoodsService.java b/src/main/java/com/gxwebsoft/shop/service/OrderGoodsService.java index 8d116da..0aa40b4 100644 --- a/src/main/java/com/gxwebsoft/shop/service/OrderGoodsService.java +++ b/src/main/java/com/gxwebsoft/shop/service/OrderGoodsService.java @@ -10,13 +10,11 @@ import java.util.List; /** * 订单商品记录表Service * - * @author 科技小王子 - * @since 2022-12-09 17:15:31 + * @author LX + * @since 2026-01-18 22:39:33 */ public interface OrderGoodsService extends IService { - List listByOrderIds(List orderIds); - /** * 分页关联查询 * @@ -36,10 +34,10 @@ public interface OrderGoodsService extends IService { /** * 根据id查询 * - * @param orderGoodsId 订单商品ID + * @param id 订单商品ID * @return OrderGoods */ - OrderGoods getByIdRel(Integer orderGoodsId); + OrderGoods getByIdRel(Integer id); - int countBySettled(OrderGoodsParam param); + List listByOrderId(Integer orderId); } diff --git a/src/main/java/com/gxwebsoft/shop/service/OrderService.java b/src/main/java/com/gxwebsoft/shop/service/OrderService.java index f33c636..2af603a 100644 --- a/src/main/java/com/gxwebsoft/shop/service/OrderService.java +++ b/src/main/java/com/gxwebsoft/shop/service/OrderService.java @@ -1,21 +1,17 @@ package com.gxwebsoft.shop.service; -import com.baomidou.mybatisplus.annotation.InterceptorIgnore; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.shop.entity.Order; import com.gxwebsoft.shop.param.OrderParam; -import java.math.BigDecimal; import java.util.List; -import java.util.Map; /** * 订单记录表Service * - * @author WebSoft - * @since 2022-11-16 11:25:58 + * @author LX + * @since 2026-01-18 14:38:08 */ public interface OrderService extends IService { @@ -27,8 +23,6 @@ public interface OrderService extends IService { */ PageResult pageRel(OrderParam param); - Page getByPage(OrderParam param); - /** * 关联查询全部 * @@ -37,6 +31,8 @@ public interface OrderService extends IService { */ List listRel(OrderParam param); + void setData(Order order); + /** * 根据id查询 * @@ -45,23 +41,5 @@ public interface OrderService extends IService { */ Order getByIdRel(Integer orderId); - Order getByOutTradeNo(String outTradeNo); - - boolean allinPay(Map params); - - @InterceptorIgnore(tenantLine = "true") - void removeOrderByTimeOut(); - - @InterceptorIgnore(tenantLine = "true") - boolean updateByIdRel(Order order); - - PageResult selectPageSettled(OrderParam param); - - Integer countNum(OrderParam param); - - List sumTotalPrice(OrderParam param); - - BigDecimal sumData(OrderParam param, String field); - - BigDecimal sumIncome(OrderParam param); + Order getByOrderNo(String orderNo); } diff --git a/src/main/java/com/gxwebsoft/shop/service/UserAddressService.java b/src/main/java/com/gxwebsoft/shop/service/UserAddressService.java index 2d0ed35..4e63477 100644 --- a/src/main/java/com/gxwebsoft/shop/service/UserAddressService.java +++ b/src/main/java/com/gxwebsoft/shop/service/UserAddressService.java @@ -8,10 +8,10 @@ import com.gxwebsoft.shop.param.UserAddressParam; import java.util.List; /** - * 用户收货地址表Service + * 收货地址Service * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 21:17:34 */ public interface UserAddressService extends IService { @@ -34,9 +34,9 @@ public interface UserAddressService extends IService { /** * 根据id查询 * - * @param addressId 主键ID + * @param id 主键ID * @return UserAddress */ - UserAddress getByIdRel(Integer addressId); + UserAddress getByIdRel(Integer id); } diff --git a/src/main/java/com/gxwebsoft/shop/service/UserCouponService.java b/src/main/java/com/gxwebsoft/shop/service/UserCouponService.java index 49766e7..916745d 100644 --- a/src/main/java/com/gxwebsoft/shop/service/UserCouponService.java +++ b/src/main/java/com/gxwebsoft/shop/service/UserCouponService.java @@ -8,10 +8,10 @@ import com.gxwebsoft.shop.param.UserCouponParam; import java.util.List; /** - * 用户优惠券记录表Service + * Service * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-19 17:54:12 */ public interface UserCouponService extends IService { @@ -34,9 +34,10 @@ public interface UserCouponService extends IService { /** * 根据id查询 * - * @param userCouponId 主键ID + * @param id * @return UserCoupon */ - UserCoupon getByIdRel(Integer userCouponId); + UserCoupon getByIdRel(Integer id); + UserCoupon cehck(Integer couponId, Integer userId); } diff --git a/src/main/java/com/gxwebsoft/shop/service/UserParentListService.java b/src/main/java/com/gxwebsoft/shop/service/UserParentListService.java new file mode 100644 index 0000000..36f2a8c --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/UserParentListService.java @@ -0,0 +1,43 @@ +package com.gxwebsoft.shop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.shop.entity.UserParentList; +import com.gxwebsoft.shop.param.UserParentListParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-04-10 22:05:26 + */ +public interface UserParentListService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(UserParentListParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(UserParentListParam param); + + /** + * 根据id查询 + * + * @param id + * @return UserParentList + */ + UserParentList getByIdRel(Integer id); + + UserParentList check(Integer userId, Integer parentId); +} diff --git a/src/main/java/com/gxwebsoft/shop/service/UserPointLogService.java b/src/main/java/com/gxwebsoft/shop/service/UserPointLogService.java new file mode 100644 index 0000000..961fd50 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/UserPointLogService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.shop.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.shop.entity.UserPointLog; +import com.gxwebsoft.shop.param.UserPointLogParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-04-11 19:49:40 + */ +public interface UserPointLogService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(UserPointLogParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(UserPointLogParam param); + + /** + * 根据id查询 + * + * @param id + * @return UserPointLog + */ + UserPointLog getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/CartServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/CartServiceImpl.java index 9f8cb47..9ef074e 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/CartServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/CartServiceImpl.java @@ -1,29 +1,37 @@ package com.gxwebsoft.shop.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.entity.Goods; import com.gxwebsoft.shop.mapper.CartMapper; import com.gxwebsoft.shop.service.CartService; import com.gxwebsoft.shop.entity.Cart; import com.gxwebsoft.shop.param.CartParam; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.shop.service.GoodsService; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.HashSet; import java.util.List; +import java.util.Set; /** - * 购物车记录表Service实现 + * Service实现 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 18:42:38 */ @Service public class CartServiceImpl extends ServiceImpl implements CartService { + @Resource + private GoodsService goodsService; @Override public PageResult pageRel(CartParam param) { PageParam page = new PageParam<>(param); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc, create_time desc"); List list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } @@ -33,7 +41,20 @@ public class CartServiceImpl extends ServiceImpl implements Ca List list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc, create_time desc"); + Set goodsIds = new HashSet<>(); + for (Cart cart : list) { + goodsIds.add(cart.getGoodsId()); + } + List goodsList = goodsService.listByIds(goodsIds); + for (Cart cart : list) { + for (Goods goods : goodsList) { + if (goods.getGoodsId().equals(cart.getGoodsId())) { + cart.setGoods(goods); + break; + } + } + } return page.sortRecords(list); } @@ -44,4 +65,13 @@ public class CartServiceImpl extends ServiceImpl implements Ca return param.getOne(baseMapper.selectListRel(param)); } + @Override + public Cart check(Integer goodsId, Integer userId) { + return getOne( + new LambdaQueryWrapper() + .eq(Cart::getGoodsId, goodsId) + .eq(Cart::getUserId, userId) + .last("limit 1") + ); + } } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/CouponServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/CouponServiceImpl.java index 76bf727..e60628f 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/CouponServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/CouponServiceImpl.java @@ -12,10 +12,10 @@ import org.springframework.stereotype.Service; import java.util.List; /** - * 优惠券记录表Service实现 + * Service实现 * - * @author 科技小王子 - * @since 2022-11-28 18:26:05 + * @author LX + * @since 2026-01-19 17:54:12 */ @Service public class CouponServiceImpl extends ServiceImpl implements CouponService { @@ -23,7 +23,7 @@ public class CouponServiceImpl extends ServiceImpl impleme @Override public PageResult pageRel(CouponParam param) { PageParam page = new PageParam<>(param); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc, create_time desc"); List list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } @@ -33,14 +33,14 @@ public class CouponServiceImpl extends ServiceImpl impleme List list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc, create_time desc"); return page.sortRecords(list); } @Override - public Coupon getByIdRel(Integer couponId) { + public Coupon getByIdRel(Integer id) { CouponParam param = new CouponParam(); - param.setCouponId(couponId); + param.setId(id); return param.getOne(baseMapper.selectListRel(param)); } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/DealerWithdrawServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/DealerWithdrawServiceImpl.java new file mode 100644 index 0000000..bb77aea --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/DealerWithdrawServiceImpl.java @@ -0,0 +1,62 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.mapper.DealerWithdrawMapper; +import com.gxwebsoft.shop.service.DealerWithdrawService; +import com.gxwebsoft.shop.entity.DealerWithdraw; +import com.gxwebsoft.shop.param.DealerWithdrawParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 分销商提现明细表Service实现 + * + * @author LX + * @since 2026-01-27 11:43:44 + */ +@Service +public class DealerWithdrawServiceImpl extends ServiceImpl implements DealerWithdrawService { + @Resource + private UserService userService; + @Override + public PageResult pageRel(DealerWithdrawParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + for (DealerWithdraw item : list) { + item.setUser(userService.getById(item.getUserId())); + } + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(DealerWithdrawParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public DealerWithdraw getByIdRel(Integer id) { + DealerWithdrawParam param = new DealerWithdrawParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public DealerWithdraw getByOrderNo(String orderNo) { + return getOne( + new LambdaQueryWrapper() + .eq(DealerWithdraw::getOrderNo, orderNo) + ); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsPhoneModelServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsPhoneModelServiceImpl.java deleted file mode 100644 index 9785c06..0000000 --- a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsPhoneModelServiceImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.gxwebsoft.shop.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.shop.mapper.GoodsPhoneModelMapper; -import com.gxwebsoft.shop.service.GoodsPhoneModelService; -import com.gxwebsoft.shop.entity.GoodsPhoneModel; -import com.gxwebsoft.shop.param.GoodsPhoneModelParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 商品匹配机型Service实现 - * - * @author 科技小王子 - * @since 2024-03-12 01:30:55 - */ -@Service -public class GoodsPhoneModelServiceImpl extends ServiceImpl implements GoodsPhoneModelService { - - @Override - public PageResult pageRel(GoodsPhoneModelParam param) { - PageParam page = new PageParam<>(param); - //page.setDefaultOrder("create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(GoodsPhoneModelParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - //page.setDefaultOrder("create_time desc"); - return page.sortRecords(list); - } - - @Override - public GoodsPhoneModel getByIdRel(Integer id) { - GoodsPhoneModelParam param = new GoodsPhoneModelParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - - @Override - public List getByModelId(Integer modelId) { - return list( - new LambdaQueryWrapper() - .eq(GoodsPhoneModel::getModelId, modelId) - .eq(GoodsPhoneModel::getDeleted, 0) - ); - } - - @Override - public void delByGoodsId(Integer goodsId) { - remove( - new LambdaQueryWrapper() - .eq(GoodsPhoneModel::getGoodsId, goodsId) - ); - } - -} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsPriceServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsPriceServiceImpl.java deleted file mode 100644 index 0de1ce0..0000000 --- a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsPriceServiceImpl.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.gxwebsoft.shop.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.shop.entity.GoodsService; -import com.gxwebsoft.shop.mapper.GoodsPriceMapper; -import com.gxwebsoft.shop.service.GoodsPriceService; -import com.gxwebsoft.shop.entity.GoodsPrice; -import com.gxwebsoft.shop.param.GoodsPriceParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 商品价格()Service实现 - * - * @author 科技小王子 - * @since 2024-03-12 01:35:40 - */ -@Service -public class GoodsPriceServiceImpl extends ServiceImpl implements GoodsPriceService { - - @Override - public PageResult pageRel(GoodsPriceParam param) { - PageParam page = new PageParam<>(param); - //page.setDefaultOrder("create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(GoodsPriceParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - //page.setDefaultOrder("create_time desc"); - return page.sortRecords(list); - } - - @Override - public GoodsPrice getByIdRel(Integer id) { - GoodsPriceParam param = new GoodsPriceParam(); - param.setId(id); - return param.getOne(baseMapper.selectListRel(param)); - } - - @Override - public GoodsPrice getByGoodsIdNCity(Integer id, Integer cityId) { - return getOne( - new LambdaQueryWrapper() - .eq(GoodsPrice::getGoodsId, id) - .eq(GoodsPrice::getCity, cityId) - ); - } - -} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java index 7ead20d..a5416c7 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java @@ -1,24 +1,17 @@ package com.gxwebsoft.shop.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.system.entity.User; import com.gxwebsoft.shop.entity.Goods; -import com.gxwebsoft.shop.entity.GoodsPhoneModel; -import com.gxwebsoft.shop.entity.GoodsPrice; import com.gxwebsoft.shop.mapper.GoodsMapper; import com.gxwebsoft.shop.param.GoodsParam; -import com.gxwebsoft.shop.param.GoodsPhoneModelParam; -import com.gxwebsoft.shop.service.GoodsPhoneModelService; -import com.gxwebsoft.shop.service.GoodsPriceService; import com.gxwebsoft.shop.service.GoodsService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; -import java.util.stream.Collectors; /** * 商品记录表Service实现 @@ -29,11 +22,6 @@ import java.util.stream.Collectors; @Service public class GoodsServiceImpl extends ServiceImpl implements GoodsService { - @Resource - private GoodsPhoneModelService goodsPhoneModelService; - @Resource - private GoodsPriceService goodsPriceService; - @Override public PageResult pageRel(GoodsParam param) { PageParam page = new PageParam<>(param); @@ -57,15 +45,4 @@ public class GoodsServiceImpl extends ServiceImpl implements param.setGoodsId(goodsId); return param.getOne(baseMapper.selectListRel(param)); } - - - @Override - public void setData(List goodsList, User loginUser ) { - goodsList.forEach(goods -> { - goods.setGoodsPhoneModelList(goodsPhoneModelService.listRel( - new GoodsPhoneModelParam() {{ - setGoodsId(goods.getGoodsId()); - }})); - }); - } } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceServiceImpl.java deleted file mode 100644 index f0e33cf..0000000 --- a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.gxwebsoft.shop.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.shop.mapper.GoodsServiceMapper; -import com.gxwebsoft.shop.service.GoodsServiceService; -import com.gxwebsoft.shop.entity.GoodsService; -import com.gxwebsoft.shop.param.GoodsServiceParam; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 商品服务与承诺记录表Service实现 - * - * @author 科技小王子 - * @since 2022-11-23 21:57:50 - */ -@Service -public class GoodsServiceServiceImpl extends ServiceImpl implements GoodsServiceService { - - @Override - public PageResult pageRel(GoodsServiceParam param) { - PageParam page = new PageParam<>(param); - //page.setDefaultOrder("create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(GoodsServiceParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - //page.setDefaultOrder("create_time desc"); - return page.sortRecords(list); - } - - @Override - public GoodsService getByIdRel(Integer serviceId) { - GoodsServiceParam param = new GoodsServiceParam(); - param.setServiceId(serviceId); - return param.getOne(baseMapper.selectListRel(param)); - } - -} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/MerchantServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/MerchantServiceImpl.java index ea35961..fa3b653 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/MerchantServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/MerchantServiceImpl.java @@ -1,145 +1,115 @@ package com.gxwebsoft.shop.service.impl; -import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.common.core.utils.CacheClient; +import com.gxwebsoft.shop.mapper.MerchantMapper; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.shop.entity.Merchant; +import com.gxwebsoft.shop.param.MerchantParam; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.shop.entity.Merchant; -import com.gxwebsoft.shop.mapper.MerchantMapper; -import com.gxwebsoft.shop.param.MerchantParam; -import com.gxwebsoft.shop.service.MerchantService; -import org.springframework.data.geo.*; -import org.springframework.data.redis.connection.RedisGeoCommands; -import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; - -import static com.gxwebsoft.common.core.constants.RedisConstants.MERCHANT_GEO_KEY; /** - * 商户管理Service实现 + * 商户Service实现 * - * @author 科技小王子 - * @since 2022-11-30 15:10:54 + * @author LX + * @since 2026-01-17 16:21:37 */ @Service public class MerchantServiceImpl extends ServiceImpl implements MerchantService { - @Resource - private StringRedisTemplate stringRedisTemplate; - @Resource - private CacheClient cacheClient; - @Override - public PageResult pageRel(MerchantParam param) { - PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); - List list = baseMapper.selectPageRel(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public List listRel(MerchantParam param) { - List list = baseMapper.selectListRel(param); - // 排序 - PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time desc"); - return page.sortRecords(list); - } - - @Override - public Merchant getByIdRel(Integer merchantId) { - MerchantParam param = new MerchantParam(); - param.setMerchantId(merchantId); - return param.getOne(baseMapper.selectListRel(param)); - } - - @Override - public String getMerchantCodeByOwner(Integer merchantOwner) { - Merchant merchant = query().eq("merchant_owner", merchantOwner).one(); - if (merchant == null) { - return null; + @Override + public PageResult pageRel(MerchantParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); } - return merchant.getMerchantCode(); - } - @Override - public Merchant getMerchantByCode(String merchantCode) { - return query().eq("merchant_code", merchantCode).one(); - } + @Override + public List listRel(MerchantParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } - @Override - public List listByGeo(MerchantParam param) { - System.out.println("param = " + param); - // 1. 是否按距离排序 - if (param.getLngAndLat() == null) { - // 无定位信息 - return list(); + @Override + public Merchant getByIdRel(Integer id) { + MerchantParam param = new MerchantParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); } - // 2. 查询10公里内的10家店铺 - final String lngAndLat = param.getLngAndLat(); - final String[] split = lngAndLat.split(","); - final Point point = new Point(Double.parseDouble(split[0]), Double.parseDouble(split[1])); - RedisGeoCommands.GeoRadiusCommandArgs geoRadiusCommandArgs = RedisGeoCommands.GeoRadiusCommandArgs.newGeoRadiusArgs(); -// final Distance distance1 = new Distance(5, Metrics.KILOMETERS); - GeoResults> results = stringRedisTemplate.opsForGeo().radius(MERCHANT_GEO_KEY, new Circle(point, 10000), geoRadiusCommandArgs.includeDistance().limit(10)); - assert results != null; - final List>> list = results.getContent(); - if (list.size() == 0) { - return null; + @Override + public Merchant getByName(String merchantName) { + return getOne( + new LambdaQueryWrapper() + .eq(Merchant::getName, merchantName) + .last("limit 1") + ); } - List ids = new ArrayList<>(list.size()); - Map distanceMap = new HashMap<>(list.size()); - list.forEach(d -> { - // 获取店铺ID - String merchantId = d.getContent().getName(); - ids.add(merchantId); - // 获取距离 - Distance distance = d.getDistance(); -// System.out.println("distance = " + distance); - distanceMap.put(merchantId, distance); - }); -// System.out.println("ids = " + ids); -// System.out.println("distanceMap = " + distanceMap); - final List merchants = query().in("merchant_id", ids).last("ORDER BY FIELD(merchant_id," + StrUtil.join(",", ids) + ")").list(); - for (Merchant shop : merchants) { - shop.setDistance(distanceMap.get(StrUtil.toString(shop.getMerchantId())).getValue()); - } -// System.out.println("merchants = " + merchants); - // 定时更新geo商户点位信息 -// this.saveGeoPointToRedis(); - return merchants; - } - /** - * 更新所有商户点位信息 - */ - @Override - public void saveGeoPointToRedis() { - // 1.查询所有商户 - final List list = list(); - // 2.然后按品牌分组,把品牌id一致的放到一个集合 - final Map> map = list.stream().collect(Collectors.groupingBy(Merchant::getMerchantId)); - // 3.分批完成写入Redis - for (Map.Entry> entry : map.entrySet()) { - // 3.1 获取商户的集合 - List value = entry.getValue(); - List> locatioins = new ArrayList<>(value.size()); - // 3.2 写入redis GEOADD key 经度 维度 member - for (Merchant merchant : value) { - String lngAndLat = merchant.getLngAndLat(); - final String[] split = lngAndLat.split(","); - locatioins.add(new RedisGeoCommands.GeoLocation<>(merchant.getMerchantId().toString(), new Point(Double.parseDouble(split[0]), Double.parseDouble(split[1])))); - } -// System.out.println("locatioins = " + locatioins); - stringRedisTemplate.opsForGeo().add(MERCHANT_GEO_KEY, locatioins); + @Override + public Merchant getByCode(String merchantCode) { + return getOne( + new LambdaQueryWrapper() + .eq(Merchant::getCode, merchantCode) + .last("limit 1") + ); + } + + @Override + public Merchant getByIdNChain(Integer id, String chain) { + return getOne( + new LambdaQueryWrapper() + .eq(Merchant::getChain, chain) + .eq(Merchant::getId, id) + .last("limit 1") + ); + } + + @Override + public List> groupByChain() { + List merchantList = list( + new LambdaQueryWrapper() + .isNotNull(Merchant::getChain) + .groupBy(Merchant::getChain) + ); + List> miniList = new ArrayList<>(); + + for (Merchant merchant : merchantList) { + Map map = new HashMap<>(); + map.put("chain", merchant.getChain()); + List childrenMerchant = list( + new LambdaQueryWrapper() + .eq(Merchant::getChain, merchant.getChain()) + ); + List> childrenList = new ArrayList<>(); + for (Merchant merchantChild : childrenMerchant) { + Map mapChild = new HashMap<>(); + mapChild.put("id", merchantChild.getId()); + mapChild.put("name", merchantChild.getName()); + mapChild.put("code", merchantChild.getCode()); + mapChild.put("lat", merchantChild.getLat()); + mapChild.put("lng", merchantChild.getLng()); + mapChild.put("lngAndLat", merchantChild.getLngAndLat()); + mapChild.put("province", merchantChild.getProvince()); + mapChild.put("city", merchantChild.getCity()); + mapChild.put("region", merchantChild.getRegion()); + mapChild.put("areaName", merchantChild.getAreaName()); + childrenList.add(mapChild); + } + map.put("children", childrenList); + miniList.add(map); + } + return miniList; } - } } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/OrderGoodsServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/OrderGoodsServiceImpl.java index 6b555de..97b3c17 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/OrderGoodsServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/OrderGoodsServiceImpl.java @@ -1,7 +1,9 @@ package com.gxwebsoft.shop.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gxwebsoft.shop.mapper.OrderGoodsMapper; +import com.gxwebsoft.shop.service.GoodsService; import com.gxwebsoft.shop.service.OrderGoodsService; import com.gxwebsoft.shop.entity.OrderGoods; import com.gxwebsoft.shop.param.OrderGoodsParam; @@ -9,26 +11,24 @@ import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; /** * 订单商品记录表Service实现 * - * @author 科技小王子 - * @since 2022-12-09 17:15:31 + * @author LX + * @since 2026-01-18 22:39:33 */ @Service public class OrderGoodsServiceImpl extends ServiceImpl implements OrderGoodsService { - - @Override - public List listByOrderIds(List orderIds) { - return baseMapper.selectByOrderIds(orderIds); - } + @Resource + private GoodsService goodsService; @Override public PageResult pageRel(OrderGoodsParam param) { PageParam page = new PageParam<>(param); - page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc, create_time desc"); List list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } @@ -38,19 +38,27 @@ public class OrderGoodsServiceImpl extends ServiceImpl list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("sort_number asc, create_time desc"); return page.sortRecords(list); } @Override - public OrderGoods getByIdRel(Integer orderGoodsId) { + public OrderGoods getByIdRel(Integer id) { OrderGoodsParam param = new OrderGoodsParam(); - param.setOrderGoodsId(orderGoodsId); + param.setId(id); return param.getOne(baseMapper.selectListRel(param)); } @Override - public int countBySettled(OrderGoodsParam param) { - return baseMapper.selectCountBySettled(param); + public List listByOrderId(Integer orderId) { + List list = list( + new LambdaQueryWrapper() + .eq(OrderGoods::getOrderId, orderId) + ); + for (OrderGoods orderGoods : list) { + orderGoods.setGoods(goodsService.getById(orderGoods.getGoodsId())); + } + return list; } + } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java index 53ff92e..98e5a71 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java @@ -1,123 +1,59 @@ package com.gxwebsoft.shop.service.impl; -import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.github.yulichang.query.MPJQueryWrapper; -import com.gxwebsoft.common.core.utils.CacheClient; -import com.gxwebsoft.common.core.web.PageParam; -import com.gxwebsoft.common.core.web.PageResult; -import com.gxwebsoft.common.system.entity.User; -import com.gxwebsoft.common.system.service.UserService; -import com.gxwebsoft.shop.entity.*; import com.gxwebsoft.shop.mapper.OrderMapper; -import com.gxwebsoft.shop.param.OrderParam; -import com.gxwebsoft.shop.service.GoodsService; import com.gxwebsoft.shop.service.OrderGoodsService; import com.gxwebsoft.shop.service.OrderService; -import com.gxwebsoft.shop.service.UserBalanceLogService; +import com.gxwebsoft.shop.entity.Order; +import com.gxwebsoft.shop.param.OrderParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.math.BigDecimal; -import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static com.gxwebsoft.common.core.constants.OrderConstants.*; /** * 订单记录表Service实现 * - * @author WebSoft - * @since 2022-11-16 11:25:58 + * @author LX + * @since 2026-01-18 14:38:08 */ @Service public class OrderServiceImpl extends ServiceImpl implements OrderService { - - @Resource - private OrderService orderService; @Resource private OrderGoodsService orderGoodsService; - @Resource - private CacheClient cacheClient; - @Resource - private UserService userService; - @Resource - private UserBalanceLogService userBalanceLogService; - @Resource - private GoodsService goodsService; + @Override public PageResult pageRel(OrderParam param) { PageParam page = new PageParam<>(param); -// param.setOrder("desc"); -// param.setSort("create_time"); - page.setDefaultOrder("create_time desc, order_id desc"); + page.setDefaultOrder(" create_time desc"); List list = baseMapper.selectPageRel(page, param); + for (Order order : list) { + setData(order); + } return new PageResult<>(list, page.getTotal()); } - @Override - public Page getByPage(OrderParam param) { - Page pageParam = new Page<>(param.getPage(), param.getLimit()); - MPJQueryWrapper wrapper = new MPJQueryWrapper<>(); - wrapper.setAlias("o"); - wrapper.leftJoin(true, " shop_goods as goods ON goods.goods_id = o.goods_id"); - wrapper.leftJoin(true, " sys_user as user ON user.user_id = o.user_id"); - wrapper.select("o.*, goods.goods_name"); - if (param.getOrderStatus() != null) { - wrapper.eq("order_status", param.getOrderStatus()); - } - if (param.getCreateTimeStart() != null && !param.getCreateTimeStart().isEmpty()) { - wrapper.between("o.create_time", param.getCreateTimeStart(), param.getCreateTimeEnd()); - } - if (param.getStoreId() != null) { - wrapper.eq("o.store_id", param.getStoreId()); - } - if (param.getOrgId() != null) { - wrapper.eq("o.org_id", param.getOrgId()); - } - if (param.getCityId() != null) { - wrapper.eq("o.city_id", param.getCityId()); - } - if (param.getUserId() != null) { - wrapper.eq("o.user_id", param.getUserId()); - } - if (param.getKeywords() != null && !param.getKeywords().isEmpty()) { - wrapper.like("order_no", param.getKeywords()) - .or().like("user.phone", param.getKeywords()) - .or().like("user.real_name", param.getKeywords()) - .or().like("o.sku_name", param.getKeywords()) - .or().like("o.imei", param.getKeywords()) - ; - } - if (param.getSort() == null && param.getOrder() == null) { - wrapper.orderByDesc("o.order_id"); - } else { - wrapper.orderBy(true, param.getOrder().equals("asc"), param.getSort()); - } - if (param.getUserLevelList() != null && !param.getUserLevelList().isEmpty()) { - wrapper.in("user.user_level", param.getUserLevelList()); - } - if (param.getCityIdList() != null && !param.getCityIdList().isEmpty()) { - wrapper.in("o.city_id", param.getCityIdList()); - } - return page(pageParam, wrapper); - } - @Override public List listRel(OrderParam param) { List list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - page.setDefaultOrder("create_time desc"); + page.setDefaultOrder(" create_time desc"); + for (Order order : list) { + setData(order); + } return page.sortRecords(list); } + @Override + public void setData(Order order) { + order.setGoodsList(orderGoodsService.listByOrderId(order.getOrderId())); + } + @Override public Order getByIdRel(Integer orderId) { OrderParam param = new OrderParam(); @@ -126,161 +62,12 @@ public class OrderServiceImpl extends ServiceImpl implements } @Override - public Order getByOutTradeNo(String outTradeNo) { - OrderParam param = new OrderParam(); - param.setOrderNo(outTradeNo); - return param.getOne(baseMapper.getOne(param)); - } - - /** - * 支付成功后处理的业务(通联支付) - */ - @Override - public boolean allinPay(Map params) { - cacheClient.set(":payInfo", params.toString()); - final String outTradeNo = params.get("merchantOrderNo"); - final String trxamt = params.get("trxamt"); - final String merchantNo = params.get("merchantNo"); - final String chnltrxid = params.get("chnltrxid"); - final String payTime = params.get("payTime"); - final String fee = params.get("fee"); - final String trxStatus = params.get("trxstatus"); - - // 1.是否为商城订单 - Order order = orderService.getByOutTradeNo(outTradeNo); - if (order == null) { - return false; - } - - // 2.订单金额是否一致 - final BigDecimal payPrice = new BigDecimal(trxamt).divide(new BigDecimal(100)); - - // 3.订单商户是否一致 -// if (!merchantNo.equals(order.getMerchantCode())) { -// return false; -// } - - // 4.验证appId是否一致 -// String appId = params.get("app_id"); -// System.out.println("验证appId是否一致"+appId); -// String appIdPro = "2021003156628508"; -// if (!appId.equals(appIdPro)) { -// System.out.println("验证appId校验失败"); -// return false; -// } - // 5.判断交易状态 - if (!"2".equals(trxStatus)) { - return false; - } - // 6.修改订单状态 - OrderParam orderParam = new OrderParam(); - orderParam.setOrderNo(outTradeNo); - orderParam.setPayStatus(PAY_STATUS_SUCCESS); - orderParam.setPayPrice(payPrice); - // - return baseMapper.updatePayStatus(orderParam); - } - - @Override - public void removeOrderByTimeOut() { - final Integer pay_status = query().eq("order_no", "2023121205993791").count(); - System.out.println("处理过期订单 = " + pay_status); - } - - @Override - public boolean updateByIdRel(Order order) { - return baseMapper.updateByIdRel(order); - } - - @Override - public PageResult selectPageSettled(OrderParam param) { - PageParam page = new PageParam<>(param); - //page.setDefaultOrder("create_time desc"); - List list = baseMapper.selectPageSettled(page, param); - return new PageResult<>(list, page.getTotal()); - } - - @Override - public Integer countNum(OrderParam param) { - return count( + public Order getByOrderNo(String orderNo) { + return getOne( new LambdaQueryWrapper() -// .in(Order::getOrderStatus, 2, 3) - .between(Order::getCreateTime, param.getCreateTimeStart(), param.getCreateTimeEnd()) + .eq(Order::getOrderNo, orderNo) + .last(" limit 1") ); } - @Override - public List sumTotalPrice(OrderParam param) { - MPJQueryWrapper wrapper = new MPJQueryWrapper<>(); - wrapper.leftJoin("sys_user user ON user.user_id = t.user_id"); - wrapper.select("t.*"); - if (param.getOrderStatus() != null) { - wrapper.eq("order_status", param.getOrderStatus()); - } else { - wrapper.in("order_status", new ArrayList() {{ - add(2); - add(3); - add(4); - add(6); - }}); - } - if (param.getCreateTimeStart() != null && !param.getCreateTimeStart().isEmpty()) { - wrapper.between("t.create_time", param.getCreateTimeStart(), param.getCreateTimeEnd()); - } - if (param.getCityId() != null) { - wrapper.eq("t.city_id", param.getCityId()); - } - if (param.getUserLevelList() != null) { - wrapper.in("user.user_level", param.getUserLevelList()); - } - if (param.getKeywords() != null && !param.getKeywords().isEmpty()) { - wrapper.like("user.real_name", param.getKeywords()) - .or().like("user.phone", param.getKeywords()) - .or().like("t.sku_name", param.getKeywords()) - .or().like("order_no", param.getKeywords()) - .or().like("t.imei", param.getKeywords()); - } - - return list(wrapper); - } - - @Override - public BigDecimal sumData(OrderParam param, String field) { - Order data = getOne( - new QueryWrapper() - .select("SUM(`" + field + "`) AS total_amount") -// .in("order_status", 2, 3) - .between("create_time", param.getCreateTimeStart(), param.getCreateTimeEnd()) - ); - return data == null ? BigDecimal.ZERO : data.getTotalAmount(); - } - - @Override - public BigDecimal sumIncome(OrderParam param) { - Order data = getOne( - new QueryWrapper() - .select("SUM(`total_price`) AS total_amount") - .in("order_status", 2, 3) - .between("create_time", param.getCreateTimeStart(), param.getCreateTimeEnd()) - ); - return data == null ? BigDecimal.ZERO : data.getTotalAmount(); - } - - /** - * 批量查询订单的关联商品 - * - * @param orders 商品集合 - */ - private void selectOrderGoods(List orders) { - if (orders != null && orders.size() > 0) { - List orderIds = orders.stream().map(Order::getOrderId).collect(Collectors.toList()); - List orderGoods = orderGoodsService.listByOrderIds(orderIds); - for (Order order : orders) { - List goodsList = orderGoods.stream().filter(d -> order.getOrderId().equals(d.getOrderId())) - .collect(Collectors.toList()); - order.setGoodsList(goodsList); - } - } - } - } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/UserAddressServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/UserAddressServiceImpl.java index ab187ca..3fb5000 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/UserAddressServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/UserAddressServiceImpl.java @@ -12,10 +12,10 @@ import org.springframework.stereotype.Service; import java.util.List; /** - * 用户收货地址表Service实现 + * 收货地址Service实现 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-18 21:17:34 */ @Service public class UserAddressServiceImpl extends ServiceImpl implements UserAddressService { @@ -23,7 +23,7 @@ public class UserAddressServiceImpl extends ServiceImpl pageRel(UserAddressParam param) { PageParam page = new PageParam<>(param); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("create_time desc"); List list = baseMapper.selectPageRel(page, param); return new PageResult<>(list, page.getTotal()); } @@ -33,14 +33,14 @@ public class UserAddressServiceImpl extends ServiceImpl list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("create_time desc"); return page.sortRecords(list); } @Override - public UserAddress getByIdRel(Integer addressId) { + public UserAddress getByIdRel(Integer id) { UserAddressParam param = new UserAddressParam(); - param.setAddressId(addressId); + param.setId(id); return param.getOne(baseMapper.selectListRel(param)); } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/UserCouponServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/UserCouponServiceImpl.java index 3c4239a..4adab69 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/UserCouponServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/UserCouponServiceImpl.java @@ -1,7 +1,10 @@ package com.gxwebsoft.shop.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.system.service.UserService; import com.gxwebsoft.shop.mapper.UserCouponMapper; +import com.gxwebsoft.shop.service.CouponService; import com.gxwebsoft.shop.service.UserCouponService; import com.gxwebsoft.shop.entity.UserCoupon; import com.gxwebsoft.shop.param.UserCouponParam; @@ -9,22 +12,31 @@ import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; /** - * 用户优惠券记录表Service实现 + * Service实现 * - * @author 科技小王子 - * @since 2022-11-25 19:04:43 + * @author LX + * @since 2026-01-19 17:54:12 */ @Service public class UserCouponServiceImpl extends ServiceImpl implements UserCouponService { + @Resource + private CouponService couponService; + @Resource + private UserService userService; @Override public PageResult pageRel(UserCouponParam param) { PageParam page = new PageParam<>(param); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("create_time desc"); List list = baseMapper.selectPageRel(page, param); + for (UserCoupon userCoupon : list) { + userCoupon.setCoupon(couponService.getByIdRel(userCoupon.getCouponId())); + userCoupon.setUser(userService.getById(userCoupon.getUserId())); + } return new PageResult<>(list, page.getTotal()); } @@ -33,15 +45,29 @@ public class UserCouponServiceImpl extends ServiceImpl list = baseMapper.selectListRel(param); // 排序 PageParam page = new PageParam<>(); - //page.setDefaultOrder("create_time desc"); + page.setDefaultOrder("create_time desc"); + for (UserCoupon userCoupon : list) { + userCoupon.setCoupon(couponService.getByIdRel(userCoupon.getCouponId())); + userCoupon.setUser(userService.getById(userCoupon.getUserId())); + } return page.sortRecords(list); } @Override - public UserCoupon getByIdRel(Integer userCouponId) { + public UserCoupon getByIdRel(Integer id) { UserCouponParam param = new UserCouponParam(); - param.setUserCouponId(userCouponId); + param.setId(id); return param.getOne(baseMapper.selectListRel(param)); } + @Override + public UserCoupon cehck(Integer couponId, Integer userId) { + return getOne( + new LambdaQueryWrapper() + .eq(UserCoupon::getCouponId, couponId) + .eq(UserCoupon::getUserId, userId) + .last("limit 1") + ); + } + } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/UserParentListServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/UserParentListServiceImpl.java new file mode 100644 index 0000000..214745c --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/UserParentListServiceImpl.java @@ -0,0 +1,58 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.mapper.UserParentListMapper; +import com.gxwebsoft.shop.service.UserParentListService; +import com.gxwebsoft.shop.entity.UserParentList; +import com.gxwebsoft.shop.param.UserParentListParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2026-04-10 22:05:26 + */ +@Service +public class UserParentListServiceImpl extends ServiceImpl implements UserParentListService { + + @Override + public PageResult pageRel(UserParentListParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(UserParentListParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public UserParentList getByIdRel(Integer id) { + UserParentListParam param = new UserParentListParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public UserParentList check(Integer userId, Integer parentId) { + return getOne( + new LambdaQueryWrapper() + .eq(UserParentList::getUid, userId) + .eq(UserParentList::getParentId, parentId) + .last("limit 1") + ); + } + +} diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/UserPointLogServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/UserPointLogServiceImpl.java new file mode 100644 index 0000000..6be0863 --- /dev/null +++ b/src/main/java/com/gxwebsoft/shop/service/impl/UserPointLogServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.shop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.mapper.UserPointLogMapper; +import com.gxwebsoft.shop.service.UserPointLogService; +import com.gxwebsoft.shop.entity.UserPointLog; +import com.gxwebsoft.shop.param.UserPointLogParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2026-04-11 19:49:40 + */ +@Service +public class UserPointLogServiceImpl extends ServiceImpl implements UserPointLogService { + + @Override + public PageResult pageRel(UserPointLogParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(UserPointLogParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public UserPointLog getByIdRel(Integer id) { + UserPointLogParam param = new UserPointLogParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/sys/controller/SysAreaController.java b/src/main/java/com/gxwebsoft/sys/controller/SysAreaController.java new file mode 100644 index 0000000..5f94f3d --- /dev/null +++ b/src/main/java/com/gxwebsoft/sys/controller/SysAreaController.java @@ -0,0 +1,110 @@ +package com.gxwebsoft.sys.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.sys.service.SysAreaService; +import com.gxwebsoft.sys.entity.SysArea; +import com.gxwebsoft.sys.param.SysAreaParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 控制器 + * + * @author LX + * @since 2025-12-02 11:36:29 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/sys/sys-area") +public class SysAreaController extends BaseController { + @Resource + private SysAreaService sysAreaService; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(SysAreaParam param) { + // 使用关联查询 + return success(sysAreaService.pageRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(SysAreaParam param) { + // 使用关联查询 + return success(sysAreaService.listRel(param)); + } + + @PreAuthorize("hasAuthority('sys:sysArea:list')") + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(sysAreaService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody SysArea sysArea) { + if (sysAreaService.save(sysArea)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody SysArea sysArea) { + if (sysAreaService.updateById(sysArea)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (sysAreaService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (sysAreaService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(sysAreaService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (sysAreaService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/sys/entity/SysArea.java b/src/main/java/com/gxwebsoft/sys/entity/SysArea.java new file mode 100644 index 0000000..eb1f352 --- /dev/null +++ b/src/main/java/com/gxwebsoft/sys/entity/SysArea.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.sys.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * + * + * @author LX + * @since 2025-12-02 11:36:29 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "SysArea对象", description = "") +@TableName("sys_area") +public class SysArea implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private String name; + + private Integer fid; + + private Integer levelId; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + +} diff --git a/src/main/java/com/gxwebsoft/sys/mapper/SysAreaMapper.java b/src/main/java/com/gxwebsoft/sys/mapper/SysAreaMapper.java new file mode 100644 index 0000000..8f0e8a1 --- /dev/null +++ b/src/main/java/com/gxwebsoft/sys/mapper/SysAreaMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.sys.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.sys.entity.SysArea; +import com.gxwebsoft.sys.param.SysAreaParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2025-12-02 11:36:29 + */ +public interface SysAreaMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") SysAreaParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") SysAreaParam param); + +} diff --git a/src/main/java/com/gxwebsoft/sys/mapper/xml/SysAreaMapper.xml b/src/main/java/com/gxwebsoft/sys/mapper/xml/SysAreaMapper.xml new file mode 100644 index 0000000..2fc2e28 --- /dev/null +++ b/src/main/java/com/gxwebsoft/sys/mapper/xml/SysAreaMapper.xml @@ -0,0 +1,39 @@ + + + + + + + SELECT a.* + FROM sys_area a + + + AND a.id = #{param.id} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.fid = #{param.fid} + + + AND a.level_id = #{param.levelId} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/law/param/LawFeedbackParam.java b/src/main/java/com/gxwebsoft/sys/param/SysAreaParam.java similarity index 58% rename from src/main/java/com/gxwebsoft/law/param/LawFeedbackParam.java rename to src/main/java/com/gxwebsoft/sys/param/SysAreaParam.java index 221e390..ca45846 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawFeedbackParam.java +++ b/src/main/java/com/gxwebsoft/sys/param/SysAreaParam.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.sys.param; import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; @@ -14,37 +14,24 @@ import lombok.EqualsAndHashCode; * 查询参数 * * @author LX - * @since 2025-05-06 10:27:16 + * @since 2025-12-02 11:36:29 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawFeedbackParam对象", description = "查询参数") -public class LawFeedbackParam extends BaseParam { +@ApiModel(value = "SysAreaParam对象", description = "查询参数") +public class SysAreaParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; + private String name; + @QueryField(type = QueryType.EQ) - private Integer userId; + private Integer fid; - private String title; - - private String company; - - private String address; - - private String date; - - private String pics; - - private String video; - - private String content; - - @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) - private Integer deleted; + private Integer levelId; } diff --git a/src/main/java/com/gxwebsoft/sys/service/SysAreaService.java b/src/main/java/com/gxwebsoft/sys/service/SysAreaService.java new file mode 100644 index 0000000..d025f8c --- /dev/null +++ b/src/main/java/com/gxwebsoft/sys/service/SysAreaService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.sys.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.sys.entity.SysArea; +import com.gxwebsoft.sys.param.SysAreaParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2025-12-02 11:36:29 + */ +public interface SysAreaService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(SysAreaParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(SysAreaParam param); + + /** + * 根据id查询 + * + * @param id + * @return SysArea + */ + SysArea getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/sys/service/impl/SysAreaServiceImpl.java b/src/main/java/com/gxwebsoft/sys/service/impl/SysAreaServiceImpl.java new file mode 100644 index 0000000..0afe984 --- /dev/null +++ b/src/main/java/com/gxwebsoft/sys/service/impl/SysAreaServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.sys.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.sys.mapper.SysAreaMapper; +import com.gxwebsoft.sys.service.SysAreaService; +import com.gxwebsoft.sys.entity.SysArea; +import com.gxwebsoft.sys.param.SysAreaParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2025-12-02 11:36:29 + */ +@Service +public class SysAreaServiceImpl extends ServiceImpl implements SysAreaService { + + @Override + public PageResult pageRel(SysAreaParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("id asc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(SysAreaParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("id asc"); + return page.sortRecords(list); + } + + @Override + public SysArea getByIdRel(Integer id) { + SysAreaParam param = new SysAreaParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/transport/controller/MaintenancePlanController.java b/src/main/java/com/gxwebsoft/transport/controller/MaintenancePlanController.java new file mode 100644 index 0000000..5d20c5d --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/controller/MaintenancePlanController.java @@ -0,0 +1,134 @@ +package com.gxwebsoft.transport.controller; + +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.transport.entity.MaintenancePlan; +import com.gxwebsoft.transport.param.MaintenancePlanParam; +import com.gxwebsoft.transport.service.MaintenancePlanService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 保养记录控制器 + * + * @author WebSoft + * @since 2026-07-08 + */ +@Api(tags = "保养记录管理") +@RestController +@RequestMapping("/api/transport/maintenance-plan") +public class MaintenancePlanController extends BaseController { + @Resource + private MaintenancePlanService maintenancePlanService; + + @OperationLog + @ApiOperation("分页查询保养记录") + @GetMapping("/page") + public ApiResult> page(MaintenancePlanParam param) { + param.normalizeStringFields(); + return success(maintenancePlanService.pageRel(param)); + } + + @OperationLog + @ApiOperation("查询全部保养记录") + @GetMapping() + public ApiResult> list(MaintenancePlanParam param) { + param.normalizeStringFields(); + return success(maintenancePlanService.listRel(param)); + } + + @OperationLog + @ApiOperation("根据id查询保养记录") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(maintenancePlanService.getByIdRel(id)); + } + + @OperationLog + @ApiOperation("添加保养记录") + @PostMapping() + public ApiResult save(@RequestBody MaintenancePlan maintenancePlan) { + fillCreateInfo(maintenancePlan); + if (maintenancePlanService.save(maintenancePlan)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @OperationLog + @ApiOperation("修改保养记录") + @PutMapping() + public ApiResult update(@RequestBody MaintenancePlan maintenancePlan) { + if (maintenancePlanService.updateById(maintenancePlan)) { + return success("保存成功"); + } + return fail("保存失败"); + } + + @OperationLog + @ApiOperation("删除保养记录") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (maintenancePlanService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @OperationLog + @ApiOperation("批量添加保养记录") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + list.forEach(this::fillCreateInfo); + if (maintenancePlanService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @OperationLog + @ApiOperation("批量修改保养记录") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(maintenancePlanService, "maintenance_plan_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @OperationLog + @ApiOperation("批量删除保养记录") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (maintenancePlanService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + private void fillCreateInfo(MaintenancePlan maintenancePlan) { + User loginUser = getLoginUser(); + if (loginUser != null) { + maintenancePlan.setUserId(loginUser.getUserId()); + maintenancePlan.setTenantId(loginUser.getTenantId()); + } else { + maintenancePlan.setTenantId(getTenantId()); + } + } + +} diff --git a/src/main/java/com/gxwebsoft/transport/controller/MaintenanceRecordController.java b/src/main/java/com/gxwebsoft/transport/controller/MaintenanceRecordController.java new file mode 100644 index 0000000..532b539 --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/controller/MaintenanceRecordController.java @@ -0,0 +1,135 @@ +package com.gxwebsoft.transport.controller; + +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.transport.entity.MaintenanceRecord; +import com.gxwebsoft.transport.param.MaintenanceRecordParam; +import com.gxwebsoft.transport.service.MaintenanceRecordService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 维修记录控制器 + * + * @author WebSoft + * @since 2026-07-08 + */ +@Api(tags = "维修记录管理") +@RestController +@RequestMapping("/api/transport/maintenance-record") +public class MaintenanceRecordController extends BaseController { + @Resource + private MaintenanceRecordService maintenanceRecordService; + + @OperationLog + @ApiOperation("分页查询维修记录") + @GetMapping("/page") + public ApiResult> page(MaintenanceRecordParam param) { + param.normalizeStringFields(); + return success(maintenanceRecordService.pageRel(param)); + } + + @OperationLog + @ApiOperation("查询全部维修记录") + @GetMapping() + public ApiResult> list(MaintenanceRecordParam param) { + param.normalizeStringFields(); + return success(maintenanceRecordService.listRel(param)); + } + + @OperationLog + @ApiOperation("根据id查询维修记录") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(maintenanceRecordService.getByIdRel(id)); + } + + @OperationLog + @ApiOperation("添加维修记录") + @PostMapping() + public ApiResult save(@RequestBody MaintenanceRecord maintenanceRecord) { + fillCreateInfo(maintenanceRecord); + if (maintenanceRecordService.save(maintenanceRecord)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @OperationLog + @ApiOperation("修改维修记录") + @PutMapping() + public ApiResult update(@RequestBody MaintenanceRecord maintenanceRecord) { + if (maintenanceRecordService.updateById(maintenanceRecord)) { + return success("保存成功"); + } + return fail("保存失败"); + } + + @OperationLog + @ApiOperation("删除维修记录") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (maintenanceRecordService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @OperationLog + @ApiOperation("批量添加维修记录") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + list.forEach(this::fillCreateInfo); + if (maintenanceRecordService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @OperationLog + @ApiOperation("批量修改维修记录") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(maintenanceRecordService, "maintenance_record_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @OperationLog + @ApiOperation("批量删除维修记录") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (maintenanceRecordService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + private void fillCreateInfo(MaintenanceRecord maintenanceRecord) { + User loginUser = getLoginUser(); + if (loginUser != null) { + maintenanceRecord.setUserId(loginUser.getUserId()); + maintenanceRecord.setTenantId(loginUser.getTenantId()); + } else { + maintenanceRecord.setTenantId(getTenantId()); + } + } + +} diff --git a/src/main/java/com/gxwebsoft/transport/entity/MaintenancePlan.java b/src/main/java/com/gxwebsoft/transport/entity/MaintenancePlan.java new file mode 100644 index 0000000..84ce058 --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/entity/MaintenancePlan.java @@ -0,0 +1,103 @@ +package com.gxwebsoft.transport.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 保养记录 + * + * @author WebSoft + * @since 2026-07-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "MaintenancePlan对象", description = "保养记录") +@TableName("transport_maintenance_plan") +public class MaintenancePlan implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "保养记录ID") + @TableId(value = "maintenance_plan_id", type = IdType.AUTO) + private Integer maintenancePlanId; + + @ApiModelProperty(value = "车船类型: 车辆, 船舶") + private String vehicleType; + + @ApiModelProperty(value = "车牌号/船号") + private String vehicleNo; + + @ApiModelProperty(value = "保养人") + private String maintainer; + + @ApiModelProperty(value = "保养时间") + private Date maintenanceTime; + + @ApiModelProperty(value = "里程/航程数") + private BigDecimal mileage; + + @ApiModelProperty(value = "里程/航程单位: 公里, 海里") + private String mileageUnit; + + @ApiModelProperty(value = "保养项目") + private String maintenanceItem; + + @ApiModelProperty(value = "费用") + private BigDecimal cost; + + @ApiModelProperty(value = "店名") + private String storeName; + + @ApiModelProperty(value = "联系电话") + private String contactPhone; + + @ApiModelProperty(value = "地址") + private String address; + + @ApiModelProperty(value = "下次保养时间") + private Date nextMaintenanceTime; + + @ApiModelProperty(value = "下次保养里程/航程") + private BigDecimal nextMaintenanceMileage; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "附件, JSON或逗号分隔文件地址") + private String attachments; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1禁用") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "创建人ID") + private Integer userId; + + @ApiModelProperty(value = "组织ID") + private Integer organizationId; + + @ApiModelProperty(value = "租户ID") + private Integer tenantId; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/transport/entity/MaintenanceRecord.java b/src/main/java/com/gxwebsoft/transport/entity/MaintenanceRecord.java new file mode 100644 index 0000000..4df5dd8 --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/entity/MaintenanceRecord.java @@ -0,0 +1,103 @@ +package com.gxwebsoft.transport.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 维修记录 + * + * @author WebSoft + * @since 2026-07-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "MaintenanceRecord对象", description = "维修记录") +@TableName("transport_maintenance_record") +public class MaintenanceRecord implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "维修记录ID") + @TableId(value = "maintenance_record_id", type = IdType.AUTO) + private Integer maintenanceRecordId; + + @ApiModelProperty(value = "车船类型: 车辆, 船舶") + private String vehicleType; + + @ApiModelProperty(value = "车牌号/船号") + private String vehicleNo; + + @ApiModelProperty(value = "维修人") + private String maintainer; + + @ApiModelProperty(value = "维修时间") + private Date maintenanceTime; + + @ApiModelProperty(value = "维修位置") + private String location; + + @ApiModelProperty(value = "更换零件") + private String replacedPart; + + @ApiModelProperty(value = "费用") + private BigDecimal cost; + + @ApiModelProperty(value = "维修单位") + private String company; + + @ApiModelProperty(value = "联系方式") + private String contact; + + @ApiModelProperty(value = "地址") + private String address; + + @ApiModelProperty(value = "出厂时间") + private Date factoryTime; + + @ApiModelProperty(value = "里程/航程数") + private BigDecimal mileage; + + @ApiModelProperty(value = "里程/航程单位: 公里, 海里") + private String mileageUnit; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "附件, JSON或逗号分隔文件地址") + private String attachments; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1禁用") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "创建人ID") + private Integer userId; + + @ApiModelProperty(value = "组织ID") + private Integer organizationId; + + @ApiModelProperty(value = "租户ID") + private Integer tenantId; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/transport/mapper/MaintenancePlanMapper.java b/src/main/java/com/gxwebsoft/transport/mapper/MaintenancePlanMapper.java new file mode 100644 index 0000000..fc6b04b --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/mapper/MaintenancePlanMapper.java @@ -0,0 +1,24 @@ +package com.gxwebsoft.transport.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.transport.entity.MaintenancePlan; +import com.gxwebsoft.transport.param.MaintenancePlanParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 保养记录Mapper + * + * @author WebSoft + * @since 2026-07-08 + */ +public interface MaintenancePlanMapper extends BaseMapper { + + List selectPageRel(@Param("page") IPage page, + @Param("param") MaintenancePlanParam param); + + List selectListRel(@Param("param") MaintenancePlanParam param); + +} diff --git a/src/main/java/com/gxwebsoft/transport/mapper/MaintenanceRecordMapper.java b/src/main/java/com/gxwebsoft/transport/mapper/MaintenanceRecordMapper.java new file mode 100644 index 0000000..01d7924 --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/mapper/MaintenanceRecordMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.transport.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.transport.entity.MaintenanceRecord; +import com.gxwebsoft.transport.param.MaintenanceRecordParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 维修记录Mapper + * + * @author WebSoft + * @since 2026-07-08 + */ +public interface MaintenanceRecordMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") MaintenanceRecordParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") MaintenanceRecordParam param); + +} diff --git a/src/main/java/com/gxwebsoft/transport/mapper/xml/MaintenancePlanMapper.xml b/src/main/java/com/gxwebsoft/transport/mapper/xml/MaintenancePlanMapper.xml new file mode 100644 index 0000000..6252d57 --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/mapper/xml/MaintenancePlanMapper.xml @@ -0,0 +1,139 @@ + + + + + + SELECT + a.maintenance_plan_id, + a.vehicle_type, + a.vehicle_no, + a.maintainer, + a.maintenance_time, + a.mileage, + a.mileage_unit, + a.maintenance_item, + a.cost, + a.store_name, + a.contact_phone, + a.address, + a.next_maintenance_time, + a.next_maintenance_mileage, + a.remark, + a.attachments, + a.sort_number, + a.status, + a.deleted, + a.user_id, + a.organization_id, + a.tenant_id, + a.create_time, + a.update_time + FROM transport_maintenance_plan a + + + AND a.maintenance_plan_id = #{param.maintenancePlanId} + + + AND a.vehicle_type = #{param.vehicleType} + + + AND a.vehicle_no LIKE CONCAT('%', #{param.vehicleNo}, '%') + + + AND a.maintainer LIKE CONCAT('%', #{param.maintainer}, '%') + + + AND a.maintenance_time >= #{param.maintenanceTimeStart} + + + AND a.maintenance_time <= #{param.maintenanceTimeEnd} + + + AND a.mileage >= #{param.mileageStart} + + + AND a.mileage <= #{param.mileageEnd} + + + AND a.mileage_unit = #{param.mileageUnit} + + + AND a.maintenance_item LIKE CONCAT('%', #{param.maintenanceItem}, '%') + + + AND a.cost >= #{param.costStart} + + + AND a.cost <= #{param.costEnd} + + + AND a.store_name LIKE CONCAT('%', #{param.storeName}, '%') + + + AND a.contact_phone LIKE CONCAT('%', #{param.contactPhone}, '%') + + + AND a.address LIKE CONCAT('%', #{param.address}, '%') + + + AND a.next_maintenance_time >= #{param.nextMaintenanceTimeStart} + + + AND a.next_maintenance_time <= #{param.nextMaintenanceTimeEnd} + + + AND a.next_maintenance_mileage >= #{param.nextMaintenanceMileageStart} + + + AND a.next_maintenance_mileage <= #{param.nextMaintenanceMileageEnd} + + + AND a.remark LIKE CONCAT('%', #{param.remark}, '%') + + + AND a.status = #{param.status} + + + AND a.user_id = #{param.userId} + + + AND a.organization_id = #{param.organizationId} + + + AND a.tenant_id = #{param.tenantId} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND ( + a.vehicle_no LIKE CONCAT('%', #{param.keywords}, '%') + OR a.maintainer LIKE CONCAT('%', #{param.keywords}, '%') + OR a.maintenance_item LIKE CONCAT('%', #{param.keywords}, '%') + OR a.store_name LIKE CONCAT('%', #{param.keywords}, '%') + OR a.contact_phone LIKE CONCAT('%', #{param.keywords}, '%') + OR a.address LIKE CONCAT('%', #{param.keywords}, '%') + OR a.remark LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/transport/mapper/xml/MaintenanceRecordMapper.xml b/src/main/java/com/gxwebsoft/transport/mapper/xml/MaintenanceRecordMapper.xml new file mode 100644 index 0000000..154bdc3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/mapper/xml/MaintenanceRecordMapper.xml @@ -0,0 +1,136 @@ + + + + + + + SELECT + a.maintenance_record_id, + a.vehicle_type, + a.vehicle_no, + a.maintainer, + a.maintenance_time, + a.location, + a.replaced_part, + a.cost, + a.company, + a.contact, + a.address, + a.factory_time, + a.mileage, + a.mileage_unit, + a.remark, + a.attachments, + a.sort_number, + a.status, + a.deleted, + a.user_id, + a.organization_id, + a.tenant_id, + a.create_time, + a.update_time + FROM transport_maintenance_record a + + + AND a.maintenance_record_id = #{param.maintenanceRecordId} + + + AND a.vehicle_type = #{param.vehicleType} + + + AND a.vehicle_no LIKE CONCAT('%', #{param.vehicleNo}, '%') + + + AND a.maintainer LIKE CONCAT('%', #{param.maintainer}, '%') + + + AND a.maintenance_time >= #{param.maintenanceTimeStart} + + + AND a.maintenance_time <= #{param.maintenanceTimeEnd} + + + AND a.location LIKE CONCAT('%', #{param.location}, '%') + + + AND a.replaced_part LIKE CONCAT('%', #{param.replacedPart}, '%') + + + AND a.cost >= #{param.costStart} + + + AND a.cost <= #{param.costEnd} + + + AND a.company LIKE CONCAT('%', #{param.company}, '%') + + + AND a.contact LIKE CONCAT('%', #{param.contact}, '%') + + + AND a.address LIKE CONCAT('%', #{param.address}, '%') + + + AND a.factory_time >= #{param.factoryTimeStart} + + + AND a.factory_time <= #{param.factoryTimeEnd} + + + AND a.mileage >= #{param.mileageStart} + + + AND a.mileage <= #{param.mileageEnd} + + + AND a.mileage_unit = #{param.mileageUnit} + + + AND a.remark LIKE CONCAT('%', #{param.remark}, '%') + + + AND a.status = #{param.status} + + + AND a.user_id = #{param.userId} + + + AND a.organization_id = #{param.organizationId} + + + AND a.tenant_id = #{param.tenantId} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND ( + a.vehicle_no LIKE CONCAT('%', #{param.keywords}, '%') + OR a.maintainer LIKE CONCAT('%', #{param.keywords}, '%') + OR a.company LIKE CONCAT('%', #{param.keywords}, '%') + OR a.location LIKE CONCAT('%', #{param.keywords}, '%') + OR a.replaced_part LIKE CONCAT('%', #{param.keywords}, '%') + OR a.remark LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/transport/param/MaintenancePlanParam.java b/src/main/java/com/gxwebsoft/transport/param/MaintenancePlanParam.java new file mode 100644 index 0000000..91cba3b --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/param/MaintenancePlanParam.java @@ -0,0 +1,110 @@ +package com.gxwebsoft.transport.param; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +/** + * 保养记录查询参数 + * + * @author WebSoft + * @since 2026-07-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "MaintenancePlanParam对象", description = "保养记录查询参数") +public class MaintenancePlanParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "保养记录ID") + @QueryField(type = QueryType.EQ) + private Integer maintenancePlanId; + + @ApiModelProperty(value = "车船类型: 车辆, 船舶") + @QueryField(type = QueryType.EQ) + private String vehicleType; + + @ApiModelProperty(value = "车牌号/船号") + private String vehicleNo; + + @ApiModelProperty(value = "保养人") + private String maintainer; + + @ApiModelProperty(value = "保养时间起始值") + private String maintenanceTimeStart; + + @ApiModelProperty(value = "保养时间结束值") + private String maintenanceTimeEnd; + + @ApiModelProperty(value = "里程/航程数起始值") + private BigDecimal mileageStart; + + @ApiModelProperty(value = "里程/航程数结束值") + private BigDecimal mileageEnd; + + @ApiModelProperty(value = "里程/航程单位: 公里, 海里") + @QueryField(type = QueryType.EQ) + private String mileageUnit; + + @ApiModelProperty(value = "保养项目") + private String maintenanceItem; + + @ApiModelProperty(value = "费用起始值") + private BigDecimal costStart; + + @ApiModelProperty(value = "费用结束值") + private BigDecimal costEnd; + + @ApiModelProperty(value = "店名") + private String storeName; + + @ApiModelProperty(value = "联系电话") + private String contactPhone; + + @ApiModelProperty(value = "地址") + private String address; + + @ApiModelProperty(value = "下次保养时间起始值") + private String nextMaintenanceTimeStart; + + @ApiModelProperty(value = "下次保养时间结束值") + private String nextMaintenanceTimeEnd; + + @ApiModelProperty(value = "下次保养里程/航程起始值") + private BigDecimal nextMaintenanceMileageStart; + + @ApiModelProperty(value = "下次保养里程/航程结束值") + private BigDecimal nextMaintenanceMileageEnd; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "状态, 0正常, 1禁用") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @ApiModelProperty(value = "创建人ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "组织ID") + @QueryField(type = QueryType.EQ) + private Integer organizationId; + + @ApiModelProperty(value = "租户ID") + @QueryField(type = QueryType.EQ) + private Integer tenantId; + +} diff --git a/src/main/java/com/gxwebsoft/transport/param/MaintenanceRecordParam.java b/src/main/java/com/gxwebsoft/transport/param/MaintenanceRecordParam.java new file mode 100644 index 0000000..6ccba0f --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/param/MaintenanceRecordParam.java @@ -0,0 +1,107 @@ +package com.gxwebsoft.transport.param; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +/** + * 维修记录查询参数 + * + * @author WebSoft + * @since 2026-07-08 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "MaintenanceRecordParam对象", description = "维修记录查询参数") +public class MaintenanceRecordParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "维修记录ID") + @QueryField(type = QueryType.EQ) + private Integer maintenanceRecordId; + + @ApiModelProperty(value = "车船类型: 车辆, 船舶") + @QueryField(type = QueryType.EQ) + private String vehicleType; + + @ApiModelProperty(value = "车牌号/船号") + private String vehicleNo; + + @ApiModelProperty(value = "维修人") + private String maintainer; + + @ApiModelProperty(value = "维修时间起始值") + private String maintenanceTimeStart; + + @ApiModelProperty(value = "维修时间结束值") + private String maintenanceTimeEnd; + + @ApiModelProperty(value = "维修位置") + private String location; + + @ApiModelProperty(value = "更换零件") + private String replacedPart; + + @ApiModelProperty(value = "费用起始值") + private BigDecimal costStart; + + @ApiModelProperty(value = "费用结束值") + private BigDecimal costEnd; + + @ApiModelProperty(value = "维修单位") + private String company; + + @ApiModelProperty(value = "联系方式") + private String contact; + + @ApiModelProperty(value = "地址") + private String address; + + @ApiModelProperty(value = "出厂时间起始值") + private String factoryTimeStart; + + @ApiModelProperty(value = "出厂时间结束值") + private String factoryTimeEnd; + + @ApiModelProperty(value = "里程/航程数起始值") + private BigDecimal mileageStart; + + @ApiModelProperty(value = "里程/航程数结束值") + private BigDecimal mileageEnd; + + @ApiModelProperty(value = "里程/航程单位: 公里, 海里") + @QueryField(type = QueryType.EQ) + private String mileageUnit; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "状态, 0正常, 1禁用") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @ApiModelProperty(value = "创建人ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "组织ID") + @QueryField(type = QueryType.EQ) + private Integer organizationId; + + @ApiModelProperty(value = "租户ID") + @QueryField(type = QueryType.EQ) + private Integer tenantId; + +} diff --git a/src/main/java/com/gxwebsoft/transport/service/MaintenancePlanService.java b/src/main/java/com/gxwebsoft/transport/service/MaintenancePlanService.java new file mode 100644 index 0000000..d4c657e --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/service/MaintenancePlanService.java @@ -0,0 +1,24 @@ +package com.gxwebsoft.transport.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.transport.entity.MaintenancePlan; +import com.gxwebsoft.transport.param.MaintenancePlanParam; + +import java.util.List; + +/** + * 保养记录Service + * + * @author WebSoft + * @since 2026-07-08 + */ +public interface MaintenancePlanService extends IService { + + PageResult pageRel(MaintenancePlanParam param); + + List listRel(MaintenancePlanParam param); + + MaintenancePlan getByIdRel(Integer maintenancePlanId); + +} diff --git a/src/main/java/com/gxwebsoft/transport/service/MaintenanceRecordService.java b/src/main/java/com/gxwebsoft/transport/service/MaintenanceRecordService.java new file mode 100644 index 0000000..d4d87d1 --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/service/MaintenanceRecordService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.transport.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.transport.entity.MaintenanceRecord; +import com.gxwebsoft.transport.param.MaintenanceRecordParam; + +import java.util.List; + +/** + * 维修记录Service + * + * @author WebSoft + * @since 2026-07-08 + */ +public interface MaintenanceRecordService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(MaintenanceRecordParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(MaintenanceRecordParam param); + + /** + * 根据id查询 + * + * @param maintenanceRecordId 维修记录ID + * @return MaintenanceRecord + */ + MaintenanceRecord getByIdRel(Integer maintenanceRecordId); + +} diff --git a/src/main/java/com/gxwebsoft/transport/service/impl/MaintenancePlanServiceImpl.java b/src/main/java/com/gxwebsoft/transport/service/impl/MaintenancePlanServiceImpl.java new file mode 100644 index 0000000..4ab982f --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/service/impl/MaintenancePlanServiceImpl.java @@ -0,0 +1,48 @@ +package com.gxwebsoft.transport.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.transport.entity.MaintenancePlan; +import com.gxwebsoft.transport.mapper.MaintenancePlanMapper; +import com.gxwebsoft.transport.param.MaintenancePlanParam; +import com.gxwebsoft.transport.service.MaintenancePlanService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 保养记录Service实现 + * + * @author WebSoft + * @since 2026-07-08 + */ +@Service +public class MaintenancePlanServiceImpl + extends ServiceImpl + implements MaintenancePlanService { + + @Override + public PageResult pageRel(MaintenancePlanParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("maintenance_time desc,create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(MaintenancePlanParam param) { + List list = baseMapper.selectListRel(param); + PageParam page = new PageParam<>(); + page.setDefaultOrder("maintenance_time desc,create_time desc"); + return page.sortRecords(list); + } + + @Override + public MaintenancePlan getByIdRel(Integer maintenancePlanId) { + MaintenancePlanParam param = new MaintenancePlanParam(); + param.setMaintenancePlanId(maintenancePlanId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/transport/service/impl/MaintenanceRecordServiceImpl.java b/src/main/java/com/gxwebsoft/transport/service/impl/MaintenanceRecordServiceImpl.java new file mode 100644 index 0000000..dba81b9 --- /dev/null +++ b/src/main/java/com/gxwebsoft/transport/service/impl/MaintenanceRecordServiceImpl.java @@ -0,0 +1,48 @@ +package com.gxwebsoft.transport.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.transport.entity.MaintenanceRecord; +import com.gxwebsoft.transport.mapper.MaintenanceRecordMapper; +import com.gxwebsoft.transport.param.MaintenanceRecordParam; +import com.gxwebsoft.transport.service.MaintenanceRecordService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 维修记录Service实现 + * + * @author WebSoft + * @since 2026-07-08 + */ +@Service +public class MaintenanceRecordServiceImpl + extends ServiceImpl + implements MaintenanceRecordService { + + @Override + public PageResult pageRel(MaintenanceRecordParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("maintenance_time desc,create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(MaintenanceRecordParam param) { + List list = baseMapper.selectListRel(param); + PageParam page = new PageParam<>(); + page.setDefaultOrder("maintenance_time desc,create_time desc"); + return page.sortRecords(list); + } + + @Override + public MaintenanceRecord getByIdRel(Integer maintenanceRecordId) { + MaintenanceRecordParam param = new MaintenanceRecordParam(); + param.setMaintenanceRecordId(maintenanceRecordId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/AliAiController.java b/src/main/java/com/gxwebsoft/yxe/controller/AliAiController.java new file mode 100644 index 0000000..ad66be9 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/AliAiController.java @@ -0,0 +1,114 @@ +package com.gxwebsoft.yxe.controller; + +import cn.hutool.http.HttpUtil; +import com.alibaba.dashscope.aigc.generation.Generation; +import com.alibaba.dashscope.aigc.generation.GenerationParam; +import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation; +import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam; +import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult; +import com.alibaba.dashscope.common.Message; +import com.alibaba.dashscope.common.MultiModalMessage; +import com.alibaba.dashscope.common.Role; +import com.alibaba.dashscope.exception.InputRequiredException; +import com.alibaba.dashscope.exception.NoApiKeyException; +import com.alibaba.dashscope.exception.UploadFileException; +import com.aliyun.ocr_api20210707.Client; +import com.gxwebsoft.common.core.utils.JSONUtil; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +@RestController +@RequestMapping("/api/yxe/ai") +public class AliAiController extends BaseController { + private static final String DASHSCOPE_API_KEY = "sk-3696b844716d4205ad56ebe477b230ff"; + + @PostMapping() + public ApiResult ocr(@RequestBody Map mapData) throws NoApiKeyException, UploadFileException { + String imgUrl = mapData.get("imgUrl"); + MultiModalConversation conv = new MultiModalConversation(); +// Map map = new HashMap<>(); +// map.put("image", imgUrl); +// // 开启图像自动转正功能 +// map.put("enable_rotate", true); +// String prompt = "提取小票图像中的药店、药品名称、规格、编号/批次号、数量、金额、时间,小票中的各项使用空格分割。要求准确无误的提取上述关键信息、不要遗漏和捏造虚假信息,模糊或者强光遮挡的单个文字可以用英文问号?代替。"; +// prompt += "其中药店名称可能的名称有'定点机构名称'、'店名'、'门店名称'。"; +//// prompt += "药品编号/批次号是'11'、'10'开头,长度为10的数字。"; +// prompt += "返回数据格式以json字符串方式输出,格式为:{'merchantName':'xxx', 'date': xxx, 'amount': xxx,'list': [{'goodsName': 'xxx', 'num': xxx, 'spec': xxx, 'amount': xxx, 'goodsCode': xxx}]}。"; +// prompt += "最后将json字符串转为前端能直接转换的格式,去除```json。"; + String prompt = + "你是药店小票OCR提取专家,按以下规则提取信息并输出标准JSON:\n" + + "\n" + + "#### 提取字段\n" + + "- merchantName:门店名(优先定点机构名称/店名)\n" + + "- orderNo:单号/小票号(必提)\n" + + "- date:下单时间(格式YYYY-MM-DD HH:MM:SS,缺失用?补)\n" + + "- amount:总金额(实收/合计)\n" + + "- list:药品列表,子字段:goodsName(药品名)、num(数量)、spec(规格)、amount(单品金额)、goodsCode(批号/编号,一般为纯数字)、sourceCode(溯源码/追溯码/药品追溯码)\n" + + "\n" + + "#### 规则\n" + + "1. 仅提取图像内容,无则填?,单字符模糊用?替代\n" + + "2. 多小票返回JSON数组,单小票返回JSON对象\n" + + "3. 金额/数量保留原始格式,不修改\n" + + "4. 输出纯JSON字符串,无注释/说明\n" + + "\n" + + "#### 输出示例(单小票)\n" + + "```json\n" + + "{\"merchantName\":\"xxx\",\"orderNo\":\"xxx\",\"date\":\"xxx\",\"amount\":\"xxx\",\"list\":[{\"goodsName\":\"xxx\",\"num\":\"xxx\",\"spec\":\"xxx\",\"amount\":\"xxx\",\"goodsCode\":\"xxx\",\"sourceCode\":\"xxx\"}]}\n" + + "```\n"; + System.out.println("prompt: " + prompt); + MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue()) + .content(Arrays.asList( + Collections.singletonMap("image", imgUrl), + // 未设置内置任务时,支持在text字段中传入Prompt,若未传入则使用默认的Prompt:Please output only the text content from the image without any additional descriptions or formatting. + Collections.singletonMap("text", prompt))).build(); + MultiModalConversationParam param = MultiModalConversationParam.builder() + .apiKey(DASHSCOPE_API_KEY) + .model("qwen3-vl-plus") + .message(userMessage) + .build(); + MultiModalConversationResult result = conv.call(param); + return success(result); + } + + @PostMapping("/ali") + public ApiResult aliOcrInMarket(@RequestBody Map mapData) throws NoApiKeyException, UploadFileException { + String imgUrl = mapData.get("imgUrl"); + String url = "https://multcommon.market.alicloudapi.com/ocrservice/mixedMultiCommon?spm=5176.product-detail.debug.1.11204cc0Ojn4Br"; + url += "&AppCode=c93e38e5a49f47e69402a711d0cb9c80"; + Map map = new HashMap<>(); + map.put("url", imgUrl); + String response = HttpUtil.post(url, JSONUtil.toJSONString(map)); + return success(response); + } + + @PostMapping("/getAddress") + public ApiResult getAddress(@RequestBody Map mapData) throws NoApiKeyException, UploadFileException, InputRequiredException { + String address = mapData.get("address"); + String promote = address + ",将该地址的省市区提取出来,并获取对应的经纬度。只需要回答以下格式的数据:{'lat':'xxx', 'lng': xxx, 'province': xxx, 'city': xxx, 'region': xxx, 'detail': xxx}"; + Generation gen = new Generation(); + Message systemMsg = Message.builder() + .role(Role.SYSTEM.getValue()) + .content("You are a helpful assistant.") + .build(); + Message userMsg = Message.builder() + .role(Role.USER.getValue()) + .content(promote) + .build(); + GenerationParam param = GenerationParam.builder() + .apiKey(DASHSCOPE_API_KEY) + .model("qwen-flash") + .messages(Arrays.asList(systemMsg, userMsg)) + .resultFormat(GenerationParam.ResultFormat.MESSAGE) + .build(); + return success(gen.call(param)); + } +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/BaiduController.java b/src/main/java/com/gxwebsoft/yxe/controller/BaiduController.java new file mode 100644 index 0000000..4773aca --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/BaiduController.java @@ -0,0 +1,50 @@ +package com.gxwebsoft.yxe.controller; + +import cn.hutool.core.util.URLUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson2.JSONObject; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import okhttp3.MediaType; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.util.Map; + +@RestController +@RequestMapping("/api/yxe/baidu") +public class BaiduController extends BaseController { + String API_KEY = "UdlTsiDQZj3XToZM0hQumXRY"; + String SECRET_KEY = "LIPOhUht8SuzszJlaETvtO9PmmIOaqfx"; + + @PostMapping() + public ApiResult ocr(@RequestBody Map mapData) throws IOException { + String imgUrl = mapData.get("imgUrl"); + String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/medical_detail?access_token=" + getAccessToken(); + // image_url 编码 + url += "&url=" + URLUtil.encode(imgUrl); + url += "&probability=false&location=false"; + System.out.println(url); + String result = HttpRequest.post(url) + .header("Content-Type", "application/x-www-form-urlencoded") + .execute().body(); + JSONObject response = JSONObject.parseObject(result); + return success("success", response); + } + + private String getAccessToken() throws IOException { + String url = "https://aip.baidubce.com/oauth/2.0/token"; + url += "?grant_type=client_credentials&client_id=" + API_KEY + "&client_secret=" + SECRET_KEY; + String result = HttpRequest.post(url) + .header("Content-Type", "application/x-www-form-urlencoded") + .execute().body(); + JSONObject response = JSONObject.parseObject(result); + return response.getString("access_token"); + } +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeChronicDiseaseCollectionController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeChronicDiseaseCollectionController.java new file mode 100644 index 0000000..c57665b --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeChronicDiseaseCollectionController.java @@ -0,0 +1,270 @@ +package com.gxwebsoft.yxe.controller; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.gxwebsoft.common.core.utils.ExcelExportUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.yxe.service.YxeChronicDiseaseCollectionService; +import com.gxwebsoft.yxe.entity.YxeChronicDiseaseCollection; +import com.gxwebsoft.yxe.param.YxeChronicDiseaseCollectionParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.List; +import java.util.StringJoiner; + +/** + * 慢病收集控制器 + * + * @author LX + * @since 2026-01-19 15:15:02 + */ +@Api(tags = "慢病收集管理") +@RestController +@RequestMapping("/api/yxe/yxe-chronic-disease-collection") +public class YxeChronicDiseaseCollectionController extends BaseController { + @Resource + private YxeChronicDiseaseCollectionService yxeChronicDiseaseCollectionService; + @Resource + private ExcelExportUtil excelExportUtil; + + @ApiOperation("分页查询慢病收集") + @GetMapping("/page") + public ApiResult> page(YxeChronicDiseaseCollectionParam param) { + // 使用关联查询 + return success(yxeChronicDiseaseCollectionService.pageRel(param)); + } + + @ApiOperation("查询全部慢病收集") + @GetMapping() + public ApiResult> list(YxeChronicDiseaseCollectionParam param) { + // 使用关联查询 + return success(yxeChronicDiseaseCollectionService.listRel(param)); + } + + @ApiOperation("根据id查询慢病收集") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeChronicDiseaseCollectionService.getByIdRel(id)); + } + + @ApiOperation("添加慢病收集") + @PostMapping() + public ApiResult save(@RequestBody YxeChronicDiseaseCollection yxeChronicDiseaseCollection) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + yxeChronicDiseaseCollection.setUserId(loginUser.getUserId()); + } + if (yxeChronicDiseaseCollectionService.save(yxeChronicDiseaseCollection)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改慢病收集") + @PutMapping() + public ApiResult update(@RequestBody YxeChronicDiseaseCollection yxeChronicDiseaseCollection) { + if (yxeChronicDiseaseCollectionService.updateById(yxeChronicDiseaseCollection)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除慢病收集") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeChronicDiseaseCollectionService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加慢病收集") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeChronicDiseaseCollectionService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改慢病收集") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeChronicDiseaseCollectionService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除慢病收集") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeChronicDiseaseCollectionService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("导出慢病收集") + @PostMapping("/export") + public ApiResult export(@RequestBody(required = false) YxeChronicDiseaseCollectionParam param) throws IOException { + if (param == null) { + param = new YxeChronicDiseaseCollectionParam(); + } + param.normalizeStringFields(); + List list = yxeChronicDiseaseCollectionService.listRel(param); + XSSFWorkbook workbook = excelExportUtil.createWorkbook("慢病收集", + "ID", "姓名", "性别", "手机号", "生日", "高血压", "高血压值", "高血糖", "高血脂", "血红蛋白值", "贫血等级", + "地中海贫血类型", "收缩压", "舒张压", "空腹血糖", "餐后2小时血糖", "糖化血红蛋白", "总胆固醇", "甘油三酯", + "低密度脂蛋白", "高密度脂蛋白", "病史", "用药史", "用药追踪", "状态", "创建时间"); + Sheet sheet = workbook.getSheetAt(0); + int rowNum = 1; + for (YxeChronicDiseaseCollection item : list) { + excelExportUtil.writeRow(sheet, rowNum++, + item.getId(), + item.getName(), + item.getGender(), + item.getPhone(), + item.getBirthday(), + getYesNoText(item.getHighBloodPressure()), + item.getHighBloodPressureValue(), + getYesNoText(item.getHighBloodSugar()), + getYesNoText(item.getHyperlipidemia()), + item.getHemoglobinValue(), + item.getAnemiaLevel(), + item.getThalassemiaType(), + item.getSystolicPressure(), + item.getDiastolicPressure(), + item.getFastingBloodGlucose(), + item.getPostprandial2hBloodGlucose(), + item.getHba1c(), + item.getTotalCholesterol(), + item.getTriglyceride(), + item.getLdlC(), + item.getHdlC(), + item.getMedicalHistory(), + item.getMedicationHistory(), + formatTracking(item.getTracking()), + getStatusText(item.getStatus()), + item.getCreateTime()); + } + excelExportUtil.autoSizeColumns(sheet, 26); + return success(excelExportUtil.saveWorkbook(workbook, "慢病收集数据", getLoginUserId())); + } + + private String getYesNoText(Integer value) { + if (value == null) { + return ""; + } + return value.equals(1) ? "是" : "否"; + } + + private String getStatusText(Integer status) { + if (status == null) { + return ""; + } + switch (status) { + case 0: + return "待审核"; + case 1: + return "通过"; + case 2: + return "驳回"; + default: + return String.valueOf(status); + } + } + + private String formatTracking(String tracking) { + if (tracking == null || tracking.trim().isEmpty()) { + return ""; + } + try { + JSONArray jsonArray = JSONArray.parseArray(tracking); + if (jsonArray == null || jsonArray.isEmpty()) { + return ""; + } + StringJoiner recordJoiner = new StringJoiner(" | "); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject item = jsonArray.getJSONObject(i); + if (item == null) { + continue; + } + StringJoiner fieldJoiner = new StringJoiner(","); + appendField(fieldJoiner, item.getString("productName")); + appendField(fieldJoiner, buildGoodsCodeText(item.getString("goodsCode"))); + appendField(fieldJoiner, buildUsageText(item.getString("dailyUsageCount"), item.getString("dosagePerTime"))); + appendField(fieldJoiner, buildLabelText("1盒可用", item.getString("boxUsageDays"), "天")); + appendField(fieldJoiner, buildLabelText("购买日期", item.getString("purchaseTime"), "")); + appendField(fieldJoiner, buildLabelText("购买", item.getString("boxCount"), "盒")); + appendField(fieldJoiner, buildLabelText("预计用完", item.getString("estimatedFinishTime"), "")); + String record = fieldJoiner.toString(); + if (!record.isEmpty()) { + recordJoiner.add(record); + } + } + String result = recordJoiner.toString(); + return result.isEmpty() ? tracking : result; + } catch (Exception e) { + return tracking; + } + } + + private void appendField(StringJoiner joiner, String value) { + if (value != null && !value.trim().isEmpty()) { + joiner.add(value.trim()); + } + } + + private String buildGoodsCodeText(String goodsCode) { + if (goodsCode == null || goodsCode.trim().isEmpty()) { + return ""; + } + return "商品编码:" + goodsCode.trim(); + } + + private String buildUsageText(String dailyUsageCount, String dosagePerTime) { + boolean missingDailyUsage = dailyUsageCount == null || dailyUsageCount.trim().isEmpty(); + boolean missingDosagePerTime = dosagePerTime == null || dosagePerTime.trim().isEmpty(); + if (missingDailyUsage && missingDosagePerTime) { + return ""; + } + if (missingDailyUsage) { + return "每次" + dosagePerTime.trim() + "粒/片"; + } + if (missingDosagePerTime) { + return "每日" + dailyUsageCount.trim() + "次"; + } + return "每日" + dailyUsageCount.trim() + "次,每次" + dosagePerTime.trim() + "粒/片"; + } + + private String buildLabelText(String label, String value, String suffix) { + if (value == null || value.trim().isEmpty()) { + return ""; + } + if ("购买".equals(label)) { + return label + value.trim() + suffix; + } + if (suffix == null || suffix.isEmpty()) { + return label + ":" + value.trim(); + } + return label + ":" + value.trim() + suffix; + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeChronicDiseaseProductController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeChronicDiseaseProductController.java new file mode 100644 index 0000000..328490c --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeChronicDiseaseProductController.java @@ -0,0 +1,154 @@ +package com.gxwebsoft.yxe.controller; + +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.utils.ExcelExportUtil; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.yxe.entity.YxeChronicDiseaseProduct; +import com.gxwebsoft.yxe.param.YxeChronicDiseaseProductParam; +import com.gxwebsoft.yxe.service.YxeChronicDiseaseProductService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; + +/** + * 慢病产品控制器 + * + * @author Codex + * @since 2026-04-13 + */ +@Api(tags = "慢病产品管理") +@RestController +@RequestMapping("/api/yxe/yxe-chronic-disease-product") +public class YxeChronicDiseaseProductController extends BaseController { + @Resource + private YxeChronicDiseaseProductService yxeChronicDiseaseProductService; + @Resource + private ExcelExportUtil excelExportUtil; + + @ApiOperation("分页查询慢病产品") + @GetMapping("/page") + public ApiResult> page(YxeChronicDiseaseProductParam param) { + param.normalizeStringFields(); + return success(yxeChronicDiseaseProductService.pageRel(param)); + } + + @ApiOperation("查询全部慢病产品") + @GetMapping() + public ApiResult> list(YxeChronicDiseaseProductParam param) { + param.normalizeStringFields(); + return success(yxeChronicDiseaseProductService.listRel(param)); + } + + @PreAuthorize("hasAuthority('yxe:yxeChronicDiseaseProduct:list')") + @ApiOperation("根据id查询慢病产品") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(yxeChronicDiseaseProductService.getByIdRel(id)); + } + + @ApiOperation("添加慢病产品") + @PostMapping() + public ApiResult save(@RequestBody YxeChronicDiseaseProduct yxeChronicDiseaseProduct) { + fillBoxUsageDays(yxeChronicDiseaseProduct); + if (yxeChronicDiseaseProductService.save(yxeChronicDiseaseProduct)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改慢病产品") + @PutMapping() + public ApiResult update(@RequestBody YxeChronicDiseaseProduct yxeChronicDiseaseProduct) { + fillBoxUsageDays(yxeChronicDiseaseProduct); + if (yxeChronicDiseaseProductService.updateById(yxeChronicDiseaseProduct)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除慢病产品") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeChronicDiseaseProductService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加慢病产品") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + list.forEach(this::fillBoxUsageDays); + if (yxeChronicDiseaseProductService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改慢病产品") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeChronicDiseaseProductService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除慢病产品") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeChronicDiseaseProductService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("下载慢病产品导入模板") + @GetMapping("/import-template") + public ApiResult importTemplate() throws IOException { + XSSFWorkbook workbook = excelExportUtil.createWorkbook( + "慢病产品导入模板", + "连锁", + "产品名", + "规格粒/片", + "说明书每天使用/次", + "每次几粒/片" + ); + Sheet sheet = workbook.getSheetAt(0); + excelExportUtil.writeRow(sheet, 1, "示例连锁", "示例产品", "30", "3", "2"); + excelExportUtil.autoSizeColumns(sheet, 5); + return success(excelExportUtil.saveWorkbook(workbook, "慢病产品导入模板", getLoginUserId())); + } + + private void fillBoxUsageDays(YxeChronicDiseaseProduct product) { + if (product == null) { + return; + } + BigDecimal specCount = product.getSpecCount(); + BigDecimal dailyUsageCount = product.getDailyUsageCount(); + BigDecimal dosagePerTime = product.getDosagePerTime(); + if (specCount == null + || dailyUsageCount == null + || dosagePerTime == null + || specCount.compareTo(BigDecimal.ZERO) <= 0 + || dailyUsageCount.compareTo(BigDecimal.ZERO) <= 0 + || dosagePerTime.compareTo(BigDecimal.ZERO) <= 0) { + product.setBoxUsageDays(null); + return; + } + BigDecimal totalDailyDosage = dailyUsageCount.multiply(dosagePerTime); + product.setBoxUsageDays(specCount.divide(totalDailyDosage, 2, RoundingMode.HALF_UP)); + } +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeGoodsController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeGoodsController.java new file mode 100644 index 0000000..e16b1d2 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeGoodsController.java @@ -0,0 +1,264 @@ +package com.gxwebsoft.yxe.controller; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.config.ConfigProperties; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.yxe.entity.YxeProduct; +import com.gxwebsoft.yxe.entity.YxeProductExtraIncome; +import com.gxwebsoft.yxe.service.YxeGoodsService; +import com.gxwebsoft.yxe.entity.YxeGoods; +import com.gxwebsoft.yxe.param.YxeGoodsParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.BatchParam; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +/** + * 控制器 + * + * @author LX + * @since 2026-03-25 19:33:28 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/yxe/yxe-goods") +public class YxeGoodsController extends BaseController { + @Resource + private YxeGoodsService yxeGoodsService; + + @Resource + private ConfigProperties config; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(YxeGoodsParam param) { + // 使用关联查询 + return success(yxeGoodsService.pageRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(YxeGoodsParam param) { + // 使用关联查询 + return success(yxeGoodsService.listRel(param)); + } + + @PreAuthorize("hasAuthority('yxe:yxeGoods:list')") + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeGoodsService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody YxeGoods yxeGoods) { + + if (yxeGoodsService.save(yxeGoods)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody YxeGoods yxeGoods) { + if (yxeGoodsService.updateById(yxeGoods)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeGoodsService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeGoodsService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeGoodsService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeGoodsService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("上传zip批量更新商品封面") + @PostMapping("/cover/zip") + public ApiResult uploadCoverZip(@RequestParam("file") MultipartFile file) { + if (file == null || file.isEmpty()) { + return fail("请上传zip文件"); + } + String originalFilename = file.getOriginalFilename(); + if (StrUtil.isBlank(originalFilename) || !StrUtil.endWithIgnoreCase(originalFilename, ".zip")) { + return fail("仅支持上传zip文件"); + } + + String dateDir = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); + File targetDir = new File(getUploadDir(), dateDir); + if (!targetDir.exists() && !targetDir.mkdirs()) { + return fail("创建解压目录失败"); + } + + int totalFiles = 0; + int updatedCount = 0; + int skippedCount = 0; + List notFoundTitles = new ArrayList<>(); + + try (InputStream inputStream = file.getInputStream(); + ZipInputStream zipInputStream = new ZipInputStream(inputStream)) { + ZipEntry entry; + byte[] buffer = new byte[8192]; + while ((entry = zipInputStream.getNextEntry()) != null) { + if (entry.isDirectory()) { + zipInputStream.closeEntry(); + continue; + } + + String entryName = getEntryFileName(entry.getName()); + if (shouldSkipZipEntry(entryName)) { + skippedCount++; + zipInputStream.closeEntry(); + continue; + } + + String title = getBaseName(entryName); + String extension = getExtension(entryName); + if (StrUtil.isBlank(title) || !isImageFile(extension)) { + skippedCount++; + zipInputStream.closeEntry(); + continue; + } + + List products = yxeGoodsService.list( + new LambdaQueryWrapper() + .eq(YxeGoods::getTitle, title) + ); + if (products.isEmpty()) { + notFoundTitles.add(title); + zipInputStream.closeEntry(); + continue; + } + + totalFiles++; + String storedFileName = buildStoredFileName(title, extension); + File outputFile = new File(targetDir, storedFileName); + writeZipEntry(zipInputStream, outputFile, buffer); + + String relativePath = "/" + dateDir + "/" + storedFileName; + String coverUrl = buildFileUrl(relativePath); + for (YxeGoods product : products) { + product.setCover(coverUrl); + if (yxeGoodsService.updateById(product)) { + updatedCount++; + } + } + zipInputStream.closeEntry(); + } + } catch (Exception e) { + e.printStackTrace(); + return fail("处理zip文件失败: " + e.getMessage()); + } + + Map result = new LinkedHashMap<>(); + result.put("totalFiles", totalFiles); + result.put("updatedCount", updatedCount); + result.put("skippedCount", skippedCount); + result.put("notFoundTitles", notFoundTitles); + return success("处理成功", result); + } + + private String getUploadDir() { + return config.getUploadPath() + "file/"; + } + + private String buildFileUrl(String relativePath) { + return StrUtil.removeSuffix(config.getFileServer(), "/") + "/api/file" + relativePath; + } + + private String getEntryFileName(String entryName) { + String normalized = entryName.replace("\\", "/"); + return normalized.substring(normalized.lastIndexOf("/") + 1); + } + + private boolean shouldSkipZipEntry(String fileName) { + return StrUtil.isBlank(fileName) + || StrUtil.startWith(fileName, ".") + || StrUtil.containsIgnoreCase(fileName, "__macosx"); + } + + private String getBaseName(String fileName) { + int dotIndex = fileName.lastIndexOf("."); + return dotIndex > 0 ? fileName.substring(0, dotIndex) : fileName; + } + + private String getExtension(String fileName) { + int dotIndex = fileName.lastIndexOf("."); + return dotIndex > -1 ? fileName.substring(dotIndex + 1) : ""; + } + + private boolean isImageFile(String extension) { + return StrUtil.equalsAnyIgnoreCase(extension, "jpg", "jpeg", "png", "gif", "webp", "bmp"); + } + + private String buildStoredFileName(String code, String extension) { + String safeCode = code.replaceAll("[^a-zA-Z0-9._-]", "_"); + if (StrUtil.isBlank(safeCode)) { + safeCode = String.valueOf(System.currentTimeMillis()); + } + return safeCode + "_" + System.currentTimeMillis() + "." + extension.toLowerCase(); + } + + private void writeZipEntry(ZipInputStream zipInputStream, File outputFile, byte[] buffer) throws IOException { + try (FileOutputStream outputStream = new FileOutputStream(outputFile)) { + int len; + while ((len = zipInputStream.read(buffer)) > 0) { + outputStream.write(buffer, 0, len); + } + } + } +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeProductController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeProductController.java new file mode 100644 index 0000000..bd98323 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeProductController.java @@ -0,0 +1,493 @@ +package com.gxwebsoft.yxe.controller; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.config.ConfigProperties; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.shop.entity.Merchant; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.yxe.entity.YxeProductExtraIncome; +import com.gxwebsoft.yxe.entity.YxeProductMerchantExtraIncome; +import com.gxwebsoft.yxe.service.YxeProductExtraIncomeService; +import com.gxwebsoft.yxe.service.YxeProductMerchantExtraIncomeService; +import com.gxwebsoft.yxe.service.YxeProductService; +import com.gxwebsoft.yxe.entity.YxeProduct; +import com.gxwebsoft.yxe.param.YxeProductParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.util.*; +import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +/** + * 控制器 + * + * @author LX + * @since 2026-01-22 15:18:14 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/yxe/yxe-product") +public class YxeProductController extends BaseController { + private static final DateTimeFormatter DATE_TIME_MINUTE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + private static final DateTimeFormatter DATE_TIME_SECOND_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + @Resource + private YxeProductService yxeProductService; + @Resource + private MerchantService merchantService; + @Resource + private YxeProductExtraIncomeService yxeProductExtraIncomeService; + @Resource + private YxeProductMerchantExtraIncomeService yxeProductMerchantExtraIncomeService; + @Resource + private ConfigProperties config; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(YxeProductParam param) { + // 使用关联查询 + return success(yxeProductService.pageRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(YxeProductParam param) { + // 使用关联查询 + return success(yxeProductService.listRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping("/group") + public ApiResult> group(YxeProductParam param) { + return success(yxeProductService.listByGroup(param)); + } + + @ApiOperation("查询全部") + @GetMapping("/groupByChain") + public ApiResult> groupByChain(YxeProductParam param) { + List products = yxeProductService.listByChain(); + for (YxeProduct parent : products) { + List extraIncomesAll = yxeProductExtraIncomeService.list(); + for (YxeProduct product : parent.getChildren()) { + List extraIncomes = extraIncomesAll.stream().filter(e -> e.getProductId().equals(product.getId())).collect(Collectors.toList()); + BigDecimal extraIncomeAmount = BigDecimal.ZERO; + if (!extraIncomes.isEmpty()) { + for (YxeProductExtraIncome extraIncomeData : extraIncomes) { + LocalDateTime startTime = parseDateTime(extraIncomeData.getStartTime()); + LocalDateTime endTime = parseDateTime(extraIncomeData.getEndTime()); + if (startTime == null || endTime == null) { + continue; + } + if (LocalDateTime.now().isAfter(startTime) && LocalDateTime.now().isBefore(endTime)) { + extraIncomeAmount = extraIncomeData.getIncome(); + } + } + } + product.setExtraIncome(extraIncomeAmount); + product.setExtraIncomeList(extraIncomes); + } + } + return success(products); + } + + @ApiOperation("查询全部") + @GetMapping("/groupByCate") + public ApiResult>> groupByCate(YxeProductParam param) { + List> list = new ArrayList<>(); + List products = yxeProductService.listByCate(param); + List extraIncomesAll = yxeProductExtraIncomeService.list(); + Map> extraIncomeMap = extraIncomesAll.stream() + .filter(item -> item.getProductId() != null) + .collect(Collectors.groupingBy(YxeProductExtraIncome::getProductId)); + Map merchantIncomeMap = resolveMerchantIncomeMap(param.getMerchantId(), products); + + for (YxeProduct parent : products) { + List children = parent.getChildren() == null ? Collections.emptyList() : parent.getChildren(); + for (YxeProduct product : children) { + List extraIncomes = extraIncomeMap.getOrDefault(product.getId(), Collections.emptyList()); + BigDecimal extraIncomeAmount = BigDecimal.ZERO; + if (!extraIncomes.isEmpty()) { + for (YxeProductExtraIncome extraIncomeData : extraIncomes) { + LocalDateTime startTime = parseDateTime(extraIncomeData.getStartTime()); + LocalDateTime endTime = parseDateTime(extraIncomeData.getEndTime()); + if (startTime == null || endTime == null) { + continue; + } + if (LocalDateTime.now().isAfter(startTime) && LocalDateTime.now().isBefore(endTime)) { + extraIncomeAmount = extraIncomeData.getIncome(); + } + } + } + product.setExtraIncome(extraIncomeAmount); + product.setExtraIncomeList(extraIncomes); + } + } + for (YxeProduct parent : products) { + Map map = new HashMap<>(); + map.put("cate", parent.getCate()); + List> children = new ArrayList<>(); + List productChildren = parent.getChildren() == null ? Collections.emptyList() : parent.getChildren(); + for (YxeProduct product : productChildren) { + Map child = new HashMap<>(); + child.put("id", product.getId()); + child.put("type", product.getType()); + child.put("code", product.getCode()); + child.put("cage", product.getCate()); + child.put("chain", product.getChain()); + child.put("title", product.getTitle()); + child.put("maker", product.getMaker()); + child.put("makerAbb", product.getMakerAbb()); + child.put("spec", product.getSpec()); + child.put("cover", product.getCover()); + child.put("income", product.getIncome()); + child.put("extraIncome", product.getExtraIncome()); + child.put("taskIncome", product.getTaskIncome()); + child.put("extraIncomeList", product.getExtraIncomeList()); + BigDecimal merchantIncome = merchantIncomeMap.get(product.getId()); + if (merchantIncome != null) { + child.put("merchantIncome", merchantIncome); + } + + children.add(child); + } + map.put("children", children); + list.add(map); + } + return success(list); + } + + @PreAuthorize("hasAuthority('yxe:yxeProduct:list')") + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeProductService.getByIdRel(id)); + } + + @GetMapping("/byCode/{code}/{merchantName}") + public ApiResult getByCode(@PathVariable("code") String code, @PathVariable("merchantName") String merchantName) { + return success(yxeProductService.getByCode(code, merchantName)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody YxeProduct yxeProduct) { + Merchant merchant = null; + if (yxeProduct.getMerchantCode() != null || yxeProduct.getMerchantId() != null) { + merchant = merchantService.getByName(yxeProduct.getMerchantCode()); + if (merchant == null) { + merchant = merchantService.getByCode(yxeProduct.getMerchantCode()); + if (merchant == null) { + merchant = merchantService.getByIdRel(yxeProduct.getMerchantId()); + } + } + } + if (merchant != null) yxeProduct.setMerchantId(merchant.getId()); + YxeProduct check = yxeProductService.getByCodeNChain(yxeProduct.getCode(), yxeProduct.getChain(), yxeProduct.getSpec(), + yxeProduct.getType()); + if (check != null) { + yxeProduct.setId(check.getId()); + yxeProductService.updateById(yxeProduct); + return success("修改成功"); + } else { + if (yxeProductService.save(yxeProduct)) { + if (yxeProduct.getExtraIncomeList() != null) { + for (YxeProductExtraIncome extraIncome : yxeProduct.getExtraIncomeList()) { + extraIncome.setProductId(yxeProduct.getId()); + } + yxeProductExtraIncomeService.saveBatch(yxeProduct.getExtraIncomeList()); + } + return success("添加成功"); + } + } + return fail("添加失败"); + } + + @ApiOperation("上传zip批量更新商品封面") + @PostMapping("/cover/zip") + public ApiResult uploadCoverZip(@RequestParam("file") MultipartFile file) { + if (file == null || file.isEmpty()) { + return fail("请上传zip文件"); + } + String originalFilename = file.getOriginalFilename(); + if (StrUtil.isBlank(originalFilename) || !StrUtil.endWithIgnoreCase(originalFilename, ".zip")) { + return fail("仅支持上传zip文件"); + } + + String dateDir = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); + File targetDir = new File(getUploadDir(), dateDir); + if (!targetDir.exists() && !targetDir.mkdirs()) { + return fail("创建解压目录失败"); + } + + int totalFiles = 0; + int updatedCount = 0; + int skippedCount = 0; + List notFoundTitles = new ArrayList<>(); + + try (InputStream inputStream = file.getInputStream(); + ZipInputStream zipInputStream = new ZipInputStream(inputStream)) { + ZipEntry entry; + byte[] buffer = new byte[8192]; + while ((entry = zipInputStream.getNextEntry()) != null) { + if (entry.isDirectory()) { + zipInputStream.closeEntry(); + continue; + } + + String entryName = getEntryFileName(entry.getName()); + if (shouldSkipZipEntry(entryName)) { + skippedCount++; + zipInputStream.closeEntry(); + continue; + } + + String title = getBaseName(entryName); + String extension = getExtension(entryName); + if (StrUtil.isBlank(title) || !isImageFile(extension)) { + skippedCount++; + zipInputStream.closeEntry(); + continue; + } + + List products = yxeProductService.list( + new LambdaQueryWrapper() + .eq(YxeProduct::getTitle, title) + ); + if (products.isEmpty()) { + notFoundTitles.add(title); + zipInputStream.closeEntry(); + continue; + } + + totalFiles++; + String storedFileName = buildStoredFileName(title, extension); + File outputFile = new File(targetDir, storedFileName); + writeZipEntry(zipInputStream, outputFile, buffer); + + String relativePath = "/" + dateDir + "/" + storedFileName; + String coverUrl = buildFileUrl(relativePath); + for (YxeProduct product : products) { + product.setCover(coverUrl); + if (yxeProductService.updateById(product)) { + updatedCount++; + } + } + zipInputStream.closeEntry(); + } + } catch (Exception e) { + e.printStackTrace(); + return fail("处理zip文件失败: " + e.getMessage()); + } + + Map result = new LinkedHashMap<>(); + result.put("totalFiles", totalFiles); + result.put("updatedCount", updatedCount); + result.put("skippedCount", skippedCount); + result.put("notFoundTitles", notFoundTitles); + return success("处理成功", result); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody YxeProduct yxeProduct) { + if (yxeProductService.updateById(yxeProduct)) { + yxeProductExtraIncomeService.removeByProduct(yxeProduct.getId()); + if (yxeProduct.getExtraIncomeList() != null) { + for (YxeProductExtraIncome extraIncome : yxeProduct.getExtraIncomeList()) { + extraIncome.setProductId(yxeProduct.getId()); + } + yxeProductExtraIncomeService.saveBatch(yxeProduct.getExtraIncomeList()); + } + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeProductService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + List filterList = new ArrayList<>(); + for (YxeProduct entity : list) { + Merchant merchant = merchantService.getByCode(entity.getMerchantCode()); + entity.setMerchantId(merchant.getId()); + filterList.add(entity); + } + if (filterList.isEmpty()) return fail("没有可导入数据"); + if (yxeProductService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeProductService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeProductService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + private Map resolveMerchantIncomeMap(Integer merchantId, List products) { + if (merchantId == null || products == null || products.isEmpty()) { + return Collections.emptyMap(); + } + List productIds = products.stream() + .filter(Objects::nonNull) + .map(YxeProduct::getChildren) + .filter(Objects::nonNull) + .flatMap(List::stream) + .filter(Objects::nonNull) + .map(YxeProduct::getId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + if (productIds.isEmpty()) { + return Collections.emptyMap(); + } + + List merchantExtraIncomes = yxeProductMerchantExtraIncomeService.list( + new LambdaQueryWrapper() + .eq(YxeProductMerchantExtraIncome::getMerchantId, merchantId) + .and(wrapper -> wrapper.eq(YxeProductMerchantExtraIncome::getStatus, 0) + .or() + .isNull(YxeProductMerchantExtraIncome::getStatus)) + .in(YxeProductMerchantExtraIncome::getProductId, productIds) + .orderByDesc(YxeProductMerchantExtraIncome::getUpdateTime) + .orderByDesc(YxeProductMerchantExtraIncome::getCreateTime) + .orderByDesc(YxeProductMerchantExtraIncome::getId) + ); + if (merchantExtraIncomes.isEmpty()) { + return Collections.emptyMap(); + } + + Map merchantIncomeMap = new HashMap<>(); + LocalDateTime now = LocalDateTime.now(); + for (YxeProductMerchantExtraIncome item : merchantExtraIncomes) { + Integer productId = item.getProductId(); + if (productId == null || merchantIncomeMap.containsKey(productId)) { + continue; + } + if (!isDateTimeInRange(item.getStartTime(), item.getEndTime(), now)) { + continue; + } + merchantIncomeMap.put(productId, item.getIncome()); + } + return merchantIncomeMap; + } + + private boolean isDateTimeInRange(String startTimeValue, String endTimeValue, LocalDateTime now) { + LocalDateTime startTime = parseDateTime(startTimeValue); + LocalDateTime endTime = parseDateTime(endTimeValue); + if (startTime == null || endTime == null) { + return false; + } + return !now.isBefore(startTime) && !now.isAfter(endTime); + } + + private LocalDateTime parseDateTime(String value) { + if (StrUtil.isBlank(value)) { + return null; + } + try { + return LocalDateTime.parse(value, DATE_TIME_SECOND_FORMATTER); + } catch (DateTimeParseException ex) { + try { + return LocalDateTime.parse(value, DATE_TIME_MINUTE_FORMATTER); + } catch (DateTimeParseException ignored) { + return null; + } + } + } + + private String getUploadDir() { + return config.getUploadPath() + "file/"; + } + + private String buildFileUrl(String relativePath) { + return StrUtil.removeSuffix(config.getFileServer(), "/") + "/api/file" + relativePath; + } + + private String getEntryFileName(String entryName) { + String normalized = entryName.replace("\\", "/"); + return normalized.substring(normalized.lastIndexOf("/") + 1); + } + + private boolean shouldSkipZipEntry(String fileName) { + return StrUtil.isBlank(fileName) + || StrUtil.startWith(fileName, ".") + || StrUtil.containsIgnoreCase(fileName, "__macosx"); + } + + private String getBaseName(String fileName) { + int dotIndex = fileName.lastIndexOf("."); + return dotIndex > 0 ? fileName.substring(0, dotIndex) : fileName; + } + + private String getExtension(String fileName) { + int dotIndex = fileName.lastIndexOf("."); + return dotIndex > -1 ? fileName.substring(dotIndex + 1) : ""; + } + + private boolean isImageFile(String extension) { + return StrUtil.equalsAnyIgnoreCase(extension, "jpg", "jpeg", "png", "gif", "webp", "bmp"); + } + + private String buildStoredFileName(String code, String extension) { + String safeCode = code.replaceAll("[^a-zA-Z0-9._-]", "_"); + if (StrUtil.isBlank(safeCode)) { + safeCode = String.valueOf(System.currentTimeMillis()); + } + return safeCode + "_" + System.currentTimeMillis() + "." + extension.toLowerCase(); + } + + private void writeZipEntry(ZipInputStream zipInputStream, File outputFile, byte[] buffer) throws IOException { + try (FileOutputStream outputStream = new FileOutputStream(outputFile)) { + int len; + while ((len = zipInputStream.read(buffer)) > 0) { + outputStream.write(buffer, 0, len); + } + } + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeProductExtraIncomeController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeProductExtraIncomeController.java new file mode 100644 index 0000000..62091ea --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeProductExtraIncomeController.java @@ -0,0 +1,110 @@ +package com.gxwebsoft.yxe.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.yxe.service.YxeProductExtraIncomeService; +import com.gxwebsoft.yxe.entity.YxeProductExtraIncome; +import com.gxwebsoft.yxe.param.YxeProductExtraIncomeParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 控制器 + * + * @author LX + * @since 2026-03-04 09:18:42 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/yxe/yxe-product-extra-income") +public class YxeProductExtraIncomeController extends BaseController { + @Resource + private YxeProductExtraIncomeService yxeProductExtraIncomeService; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(YxeProductExtraIncomeParam param) { + // 使用关联查询 + return success(yxeProductExtraIncomeService.pageRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(YxeProductExtraIncomeParam param) { + // 使用关联查询 + return success(yxeProductExtraIncomeService.listRel(param)); + } + + @PreAuthorize("hasAuthority('yxe:yxeProductExtraIncome:list')") + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeProductExtraIncomeService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody YxeProductExtraIncome yxeProductExtraIncome) { + if (yxeProductExtraIncomeService.save(yxeProductExtraIncome)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody YxeProductExtraIncome yxeProductExtraIncome) { + if (yxeProductExtraIncomeService.updateById(yxeProductExtraIncome)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeProductExtraIncomeService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeProductExtraIncomeService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeProductExtraIncomeService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeProductExtraIncomeService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeProductMerchantExtraIncomeController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeProductMerchantExtraIncomeController.java new file mode 100644 index 0000000..2b1f92f --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeProductMerchantExtraIncomeController.java @@ -0,0 +1,110 @@ +package com.gxwebsoft.yxe.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.yxe.service.YxeProductMerchantExtraIncomeService; +import com.gxwebsoft.yxe.entity.YxeProductMerchantExtraIncome; +import com.gxwebsoft.yxe.param.YxeProductMerchantExtraIncomeParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 控制器 + * + * @author LX + * @since 2026-04-15 21:46:51 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/yxe/yxe-product-merchant-extra-income") +public class YxeProductMerchantExtraIncomeController extends BaseController { + @Resource + private YxeProductMerchantExtraIncomeService yxeProductMerchantExtraIncomeService; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(YxeProductMerchantExtraIncomeParam param) { + // 使用关联查询 + return success(yxeProductMerchantExtraIncomeService.pageRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(YxeProductMerchantExtraIncomeParam param) { + // 使用关联查询 + return success(yxeProductMerchantExtraIncomeService.listRel(param)); + } + + @PreAuthorize("hasAuthority('yxe:yxeProductMerchantExtraIncome:list')") + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeProductMerchantExtraIncomeService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody YxeProductMerchantExtraIncome yxeProductMerchantExtraIncome) { + if (yxeProductMerchantExtraIncomeService.save(yxeProductMerchantExtraIncome)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody YxeProductMerchantExtraIncome yxeProductMerchantExtraIncome) { + if (yxeProductMerchantExtraIncomeService.updateById(yxeProductMerchantExtraIncome)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeProductMerchantExtraIncomeService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeProductMerchantExtraIncomeService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeProductMerchantExtraIncomeService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeProductMerchantExtraIncomeService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeReimburseController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeReimburseController.java new file mode 100644 index 0000000..68d9691 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeReimburseController.java @@ -0,0 +1,211 @@ +package com.gxwebsoft.yxe.controller; + +import com.gxwebsoft.common.core.utils.ExcelExportUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.yxe.service.YxeReimburseService; +import com.gxwebsoft.yxe.entity.YxeReimburse; +import com.gxwebsoft.yxe.param.YxeReimburseParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.system.service.UserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 报销控制器 + * + * @author LX + * @since 2026-01-19 13:53:23 + */ +@Api(tags = "报销管理") +@RestController +@RequestMapping("/api/yxe/yxe-reimburse") +public class YxeReimburseController extends BaseController { + @Resource + private YxeReimburseService yxeReimburseService; + @Resource + private UserService userService; + @Resource + private ExcelExportUtil excelExportUtil; + + @ApiOperation("分页查询报销") + @GetMapping("/page") + public ApiResult> page(YxeReimburseParam param) { + // 使用关联查询 + return success(yxeReimburseService.pageRel(param)); + } + + @ApiOperation("查询全部报销") + @GetMapping() + public ApiResult> list(YxeReimburseParam param) { + // 使用关联查询 + return success(yxeReimburseService.listRel(param)); + } + + @ApiOperation("查询全部报销") + @GetMapping("/userList") + public ApiResult> userList(YxeReimburseParam param) { + param.setUserId(getLoginUserId()); + return success(yxeReimburseService.listRel(param)); + } + + @PreAuthorize("hasAuthority('yxe:yxeReimburse:list')") + @ApiOperation("根据id查询报销") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeReimburseService.getByIdRel(id)); + } + + @ApiOperation("添加报销") + @PostMapping() + public ApiResult save(@RequestBody YxeReimburse yxeReimburse) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + yxeReimburse.setUserId(loginUser.getUserId()); + } + if (yxeReimburseService.save(yxeReimburse)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改报销") + @PutMapping() + public ApiResult update(@RequestBody YxeReimburse yxeReimburse) { + if (yxeReimburseService.updateById(yxeReimburse)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除报销") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeReimburseService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加报销") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeReimburseService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改报销") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeReimburseService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除报销") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeReimburseService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("导出报销") + @PostMapping("/export") + public ApiResult export(@RequestBody(required = false) YxeReimburseParam param) throws IOException { + if (param == null) { + param = new YxeReimburseParam(); + } + param.normalizeStringFields(); + List list = yxeReimburseService.listRel(param); + Set userIds = list.stream() + .map(YxeReimburse::getUserId) + .filter(userId -> userId != null && userId > 0) + .collect(Collectors.toSet()); + Map userMap = userIds.isEmpty() ? java.util.Collections.emptyMap() : + userService.listByIds(userIds).stream().collect(Collectors.toMap(User::getUserId, Function.identity())); + + XSSFWorkbook workbook = excelExportUtil.createWorkbook("报销", + "报销ID", "用户ID", "姓名", "手机号", "开始日期", "结束日期", "出发地", "目的地", "交通费", "住宿费", "其他费用", "费用合计", "状态", "备注", "创建时间"); + Sheet sheet = workbook.getSheetAt(0); + int rowNum = 1; + for (YxeReimburse item : list) { + User user = userMap.get(item.getUserId()); + excelExportUtil.writeRow(sheet, rowNum++, + item.getId(), + item.getUserId(), + user == null ? "" : user.getRealName(), + user == null ? "" : user.getPhone(), + item.getStartDate(), + item.getEndDate(), + joinArea(item.getFromProvince(), item.getFromCity(), item.getFromRegion()), + joinArea(item.getToProvince(), item.getToCity(), item.getToRegion()), + item.getTransportCosts(), + item.getLiveCosts(), + item.getOtherCosts(), + sumMoney(item.getTransportCosts(), item.getLiveCosts(), item.getOtherCosts()), + getStatusText(item.getStatus()), + item.getRemark(), + item.getCreateTime()); + } + excelExportUtil.autoSizeColumns(sheet, 15); + return success(excelExportUtil.saveWorkbook(workbook, "报销数据", getLoginUserId())); + } + + private BigDecimal sumMoney(BigDecimal... amounts) { + BigDecimal total = BigDecimal.ZERO; + for (BigDecimal amount : amounts) { + if (amount != null) { + total = total.add(amount); + } + } + return total; + } + + private String joinArea(String province, String city, String region) { + return java.util.Arrays.asList(province, city, region).stream() + .filter(item -> item != null && item.length() > 0) + .collect(Collectors.joining("/")); + } + + private String getStatusText(Integer status) { + if (status == null) { + return ""; + } + switch (status) { + case 0: + return "待审核"; + case 1: + return "通过"; + case 2: + return "驳回"; + default: + return String.valueOf(status); + } + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeSelfReportController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeSelfReportController.java new file mode 100644 index 0000000..6cfcbfe --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeSelfReportController.java @@ -0,0 +1,450 @@ +package com.gxwebsoft.yxe.controller; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.core.utils.ExcelExportUtil; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.entity.Merchant; +import com.gxwebsoft.shop.entity.UserBalanceLog; +import com.gxwebsoft.shop.service.UserBalanceLogService; +import com.gxwebsoft.yxe.entity.YxeSelfReport; +import com.gxwebsoft.yxe.param.YxeSelfReportParam; +import com.gxwebsoft.yxe.service.YxeSelfReportService; +import com.gxwebsoft.yxe.utils.YxeSalesExportUtil; +import com.gxwebsoft.yxe.vo.AuditSelfReportSummaryVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 自主填报控制器 + * + * @author Codex + * @since 2026-04-10 + */ +@Api(tags = "自主填报管理") +@RestController +@RequestMapping("/api/yxe/yxe-self-report") +public class YxeSelfReportController extends BaseController { + @Resource + private YxeSelfReportService yxeSelfReportService; + @Resource + private UserService userService; + @Resource + private ExcelExportUtil excelExportUtil; + @Resource + private UserBalanceLogService userBalanceLogService; + + @ApiOperation("分页查询自主填报") + @GetMapping("/page") + public ApiResult> page(YxeSelfReportParam param) { + PageResult pageResult = yxeSelfReportService.pageRel(param); + if (param != null && Integer.valueOf(1).equals(param.getAuditLite())) { + trimAuditPage(pageResult); + } + return success(pageResult); + } + + @ApiOperation("审核页摘要分页查询自主填报") + @GetMapping("/audit/page") + public ApiResult> auditPage(YxeSelfReportParam param) { + PageResult pageResult = yxeSelfReportService.pageAuditSummary(param); + List list = pageResult.getList() == null ? new java.util.ArrayList<>() : pageResult.getList().stream() + .map(this::toAuditSelfReportSummaryVO) + .collect(java.util.stream.Collectors.toList()); + return success(new PageResult<>(list, pageResult.getCount())); + } + + @ApiOperation("查询全部自主填报") + @GetMapping() + public ApiResult> list(YxeSelfReportParam param) { + return success(yxeSelfReportService.listRel(param)); + } + + @ApiOperation("查询当前用户自主填报") + @GetMapping("/userList") + public ApiResult> userList(YxeSelfReportParam param) { + param.setUserId(getLoginUserId()); + return success(yxeSelfReportService.listRel(param)); + } + + @ApiOperation("根据id查询自主填报") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(yxeSelfReportService.getByIdRel(id)); + } + + @ApiOperation("审核页详情查询自主填报") + @GetMapping("/audit/{id}") + public ApiResult auditDetail(@PathVariable("id") Integer id) { + return success(yxeSelfReportService.getByIdRel(id)); + } + + @ApiOperation("添加自主填报") + @PostMapping() + public ApiResult save(@RequestBody YxeSelfReport yxeSelfReport) { + User loginUser = getLoginUser(); + if (loginUser == null) { + return fail("请先登录"); + } + if (!Integer.valueOf(2).equals(loginUser.getAuthStatus())) { + return fail("请先完成认证"); + } + yxeSelfReport.setUserId(loginUser.getUserId()); + if (yxeSelfReport.getStatus() == null) { + yxeSelfReport.setStatus(0); + } + if (yxeSelfReportService.save(yxeSelfReport)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改自主填报") + @PutMapping() + public ApiResult update(@RequestBody YxeSelfReport yxeSelfReport) { + YxeSelfReport current = yxeSelfReport.getId() == null ? null : yxeSelfReportService.getById(yxeSelfReport.getId()); + boolean approving = current != null + && Integer.valueOf(1).equals(yxeSelfReport.getStatus()) + && !Integer.valueOf(1).equals(current.getStatus()); + if (approving) { + if (yxeSelfReport.getReward() == null) { + return fail("请填写奖金金额"); + } + if (yxeSelfReport.getReward().compareTo(BigDecimal.ZERO) < 0) { + return fail("奖金金额不能小于0"); + } + yxeSelfReport.setRejectReason(""); + } + if (yxeSelfReportService.updateById(yxeSelfReport)) { + if (approving) { + YxeSelfReport latest = yxeSelfReportService.getById(yxeSelfReport.getId()); + User user = userService.getById(latest.getUserId()); + BigDecimal reward = latest.getReward() == null ? BigDecimal.ZERO : latest.getReward(); + UserBalanceLog userBalanceLog = new UserBalanceLog(); + userBalanceLog.setUserId(latest.getUserId()); + userBalanceLog.setOrderId(latest.getId()); + userBalanceLog.setScene(6); + userBalanceLog.setMoney(reward); + userBalanceLog.setBalance(user.getBalance().add(reward)); + userBalanceLog.setRemark("自主填报审核通过获得收入"); + userBalanceLogService.save(userBalanceLog); + + user.setBalance(user.getBalance().add(reward)); + userService.updateById(user); + } + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除自主填报") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeSelfReportService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加自主填报") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeSelfReportService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改自主填报") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeSelfReportService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除自主填报") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeSelfReportService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("导出自主填报") + @PostMapping("/export") + public ApiResult export(@RequestBody(required = false) YxeSelfReportParam param) throws IOException { + if (param == null) { + param = new YxeSelfReportParam(); + } + param.normalizeStringFields(); + List list = yxeSelfReportService.listRel(param); + YxeSalesExportUtil.SalesExportResult salesExport = YxeSalesExportUtil.build( + list.stream().map(YxeSelfReport::getSalesGroups).collect(java.util.stream.Collectors.toList()) + ); + List headers = new ArrayList<>(); + headers.add("ID"); + headers.add("提交人ID"); + headers.add("提交人姓名"); + headers.add("提交人手机号"); + headers.add("用户分组"); + headers.add("连锁"); + headers.add("门店"); + headers.add("日期"); + headers.add("活动时间"); + headers.add("活动小计"); + headers.add("打卡上班时间"); + headers.add("打卡下班时间"); + headers.add("奖金金额"); + headers.add("位置"); + headers.add("门店评分"); + headers.add("状态"); + headers.add("驳回原因"); +// headers.add("创建时间"); + for (YxeSalesExportUtil.SalesColumn column : salesExport.getColumns()) { + headers.add(column.getTitle()); + } + XSSFWorkbook workbook = excelExportUtil.createWorkbook("自主填报", headers.toArray(new String[0])); + Sheet sheet = workbook.getSheetAt(0); + int rowNum = 1; + for (int i = 0; i < list.size(); i++) { + YxeSelfReport item = list.get(i); + User user = userService.getById(item.getUserId()); + List rowValues = new ArrayList<>(); + rowValues.add(item.getId()); + rowValues.add(item.getUserId()); + rowValues.add(getUserName(user)); + rowValues.add(getUserPhone(user)); + rowValues.add(user == null ? "" : user.getUserGroup()); + rowValues.add(item.getChainName()); + rowValues.add(item.getMerchantName()); + rowValues.add(item.getDate()); + rowValues.add(item.getActivityTime()); + rowValues.add(getSummaryText(item.getSummary())); + rowValues.add(getClockTimeText(item.getClockPhotos(), true)); + rowValues.add(getClockTimeText(item.getClockPhotos(), false)); + rowValues.add(item.getReward()); + rowValues.add(item.getLocation()); + rowValues.add(item.getRating()); + rowValues.add(getStatusText(item.getStatus())); + rowValues.add(item.getRejectReason()); +// rowValues.add(item.getCreateTime()); + Map qtyMap = salesExport.getRowQtyMaps().get(i); + for (YxeSalesExportUtil.SalesColumn column : salesExport.getColumns()) { + rowValues.add(YxeSalesExportUtil.formatQty(qtyMap.get(column.getKey()))); + } + excelExportUtil.writeRow(sheet, rowNum++, rowValues.toArray()); + } + excelExportUtil.autoSizeColumns(sheet, headers.size()); + return success(excelExportUtil.saveWorkbook(workbook, "自主填报数据", getLoginUserId())); + } + + private String getSummaryText(String summary) { + if (StrUtil.isBlank(summary)) { + return ""; + } + String text = summary.trim(); + try { + Object parsed = JSON.parse(text); + if (parsed == null) { + return ""; + } + if (parsed instanceof String) { + return ((String) parsed).trim(); + } + return parsed.toString(); + } catch (Exception ignored) { + return text; + } + } + + private String getClockTimeText(String clockPhotos, boolean startClock) { + JSONArray photos = parseClockPhotos(clockPhotos); + if (photos.isEmpty()) { + return ""; + } + JSONObject matched = findClockPhoto(photos, startClock); + if (matched == null) { + Object fallback = photos.get(startClock ? 0 : 1); + if (fallback instanceof JSONObject) { + matched = (JSONObject) fallback; + } + } + if (matched == null) { + return ""; + } + return firstNonBlank( + matched.getString("time"), + matched.getString("date"), + matched.getString("clockTime"), + matched.getString("clockAt"), + matched.getString("createTime"), + matched.getString("createdTime"), + matched.getString("createdAt"), + matched.getString("submitTime"), + matched.getString("timestamp") + ); + } + + private JSONArray parseClockPhotos(String clockPhotos) { + if (StrUtil.isBlank(clockPhotos)) { + return new JSONArray(); + } + try { + JSONArray parsed = JSONArray.parseArray(clockPhotos); + return parsed == null ? new JSONArray() : parsed; + } catch (Exception ignored) { + return new JSONArray(); + } + } + + private JSONObject findClockPhoto(JSONArray photos, boolean startClock) { + String[] keywords = startClock + ? new String[]{"上班", "签到", "clockin", "start", "in"} + : new String[]{"下班", "签退", "clockout", "end", "out"}; + for (Object photo : photos) { + if (!(photo instanceof JSONObject)) { + continue; + } + JSONObject item = (JSONObject) photo; + String marker = (StrUtil.blankToDefault(item.getString("type"), "") + + StrUtil.blankToDefault(item.getString("title"), "") + + StrUtil.blankToDefault(item.getString("label"), "") + + StrUtil.blankToDefault(item.getString("name"), "") + + StrUtil.blankToDefault(item.getString("key"), "")).toLowerCase(); + if (StrUtil.isBlank(marker)) { + continue; + } + for (String keyword : keywords) { + if (marker.contains(keyword)) { + return item; + } + } + } + return null; + } + + private String firstNonBlank(String... values) { + if (values == null) { + return ""; + } + for (String value : values) { + if (StrUtil.isNotBlank(value)) { + return value.trim(); + } + } + return ""; + } + + private String getUserName(User user) { + if (user == null) { + return ""; + } + if (user.getRealName() != null && !user.getRealName().trim().isEmpty()) { + return user.getRealName(); + } + return user.getNickname(); + } + + private String getUserPhone(User user) { + return user == null ? "" : user.getPhone(); + } + + private void trimAuditPage(PageResult pageResult) { + if (pageResult == null || pageResult.getList() == null || pageResult.getList().isEmpty()) { + return; + } + for (YxeSelfReport item : pageResult.getList()) { + trimAuditSelfReport(item); + } + } + + private void trimAuditSelfReport(YxeSelfReport item) { + if (item == null) { + return; + } + User user = item.getUser(); + if (user != null) { + User liteUser = new User(); + liteUser.setUserId(user.getUserId()); + liteUser.setRealName(user.getRealName()); + liteUser.setNickname(user.getNickname()); + liteUser.setPhone(user.getPhone()); + item.setUser(liteUser); + } + Merchant merchant = item.getMerchant(); + if (merchant != null) { + Merchant liteMerchant = new Merchant(); + liteMerchant.setId(merchant.getId()); + liteMerchant.setName(merchant.getName()); + liteMerchant.setChain(merchant.getChain()); + item.setMerchant(liteMerchant); + } + item.setLat(null); + item.setLng(null); + item.setComments(null); + } + + private AuditSelfReportSummaryVO toAuditSelfReportSummaryVO(YxeSelfReport item) { + AuditSelfReportSummaryVO vo = new AuditSelfReportSummaryVO(); + if (item == null) { + return vo; + } + vo.setId(item.getId()); + vo.setUserId(item.getUserId()); + vo.setMerchantId(item.getMerchantId()); + vo.setStatus(item.getStatus()); + vo.setMerchantName(item.getMerchantName()); + vo.setChainName(item.getChainName()); + vo.setDate(item.getDate()); + vo.setSummary(item.getSummary()); + vo.setRejectReason(item.getRejectReason()); + vo.setRating(item.getRating()); + vo.setLocation(item.getLocation()); + vo.setReward(item.getReward()); + User user = item.getUser(); + if (user != null) { + String ownerName = user.getRealName() != null && !user.getRealName().trim().isEmpty() ? user.getRealName() : user.getNickname(); + String phone = user.getPhone() == null ? "" : user.getPhone(); + vo.setOwner((ownerName == null ? "-" : ownerName) + "," + phone); + } + return vo; + } + + private String getStatusText(Integer status) { + if (status == null) { + return ""; + } + switch (status) { + case 0: + return "待审核"; + case 1: + return "通过"; + case 2: + return "拒绝"; + default: + return String.valueOf(status); + } + } +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeServiceController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeServiceController.java new file mode 100644 index 0000000..271ddcc --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeServiceController.java @@ -0,0 +1,110 @@ +package com.gxwebsoft.yxe.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.yxe.service.YxeServiceService; +import com.gxwebsoft.yxe.entity.YxeService; +import com.gxwebsoft.yxe.param.YxeServiceParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 客服控制器 + * + * @author LX + * @since 2026-03-25 02:56:05 + */ +@Api(tags = "客服管理") +@RestController +@RequestMapping("/api/yxe/yxe-service") +public class YxeServiceController extends BaseController { + @Resource + private YxeServiceService yxeServiceService; + + @ApiOperation("分页查询客服") + @GetMapping("/page") + public ApiResult> page(YxeServiceParam param) { + // 使用关联查询 + return success(yxeServiceService.pageRel(param)); + } + + @ApiOperation("查询全部客服") + @GetMapping() + public ApiResult> list(YxeServiceParam param) { + // 使用关联查询 + return success(yxeServiceService.listRel(param)); + } + + @PreAuthorize("hasAuthority('yxe:yxeService:list')") + @ApiOperation("根据id查询客服") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeServiceService.getByIdRel(id)); + } + + @ApiOperation("添加客服") + @PostMapping() + public ApiResult save(@RequestBody YxeService yxeService) { + if (yxeServiceService.save(yxeService)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改客服") + @PutMapping() + public ApiResult update(@RequestBody YxeService yxeService) { + if (yxeServiceService.updateById(yxeService)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除客服") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeServiceService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加客服") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeServiceService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改客服") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeServiceService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除客服") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeServiceService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeShareController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeShareController.java new file mode 100644 index 0000000..f3864bb --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeShareController.java @@ -0,0 +1,643 @@ +package com.gxwebsoft.yxe.controller; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.utils.ExcelExportUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.entity.Merchant; +import com.gxwebsoft.shop.entity.UserBalanceLog; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.shop.service.UserBalanceLogService; +import com.gxwebsoft.yxe.entity.YxeProduct; +import com.gxwebsoft.yxe.entity.YxeProductExtraIncome; +import com.gxwebsoft.yxe.entity.YxeProductMerchantExtraIncome; +import com.gxwebsoft.yxe.entity.YxeShareDetail; +import com.gxwebsoft.yxe.service.YxeProductExtraIncomeService; +import com.gxwebsoft.yxe.service.YxeProductMerchantExtraIncomeService; +import com.gxwebsoft.yxe.service.YxeProductService; +import com.gxwebsoft.yxe.service.YxeShareDetailService; +import com.gxwebsoft.yxe.service.YxeShareService; +import com.gxwebsoft.yxe.entity.YxeShare; +import com.gxwebsoft.yxe.param.YxeShareParam; +import com.gxwebsoft.yxe.vo.AuditShareSummaryVO; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.BeanUtils; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.io.IOException; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/yxe/yxe-share") +public class YxeShareController extends BaseController { + private static final DateTimeFormatter DATE_TIME_MINUTE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + private static final DateTimeFormatter DATE_TIME_SECOND_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + @Resource + private YxeShareService yxeShareService; + @Resource + private YxeShareDetailService yxeShareDetailService; + @Resource + private UserBalanceLogService userBalanceLogService; + @Resource + private UserService userService; + @Resource + private MerchantService merchantService; + @Resource + private YxeProductService yxeProductService; + @Resource + private YxeProductExtraIncomeService yxeProductExtraIncomeService; + @Resource + private YxeProductMerchantExtraIncomeService yxeProductMerchantExtraIncomeService; + @Resource + private ExcelExportUtil excelExportUtil; + + @GetMapping("/data") + public ApiResult data(YxeShareParam param) { + List shareListByMerchant = yxeShareService.listByMerchant(param); + for (YxeShare share : shareListByMerchant) { + BigDecimal income = BigDecimal.ZERO; + List yxeShareList = yxeShareService.listByMerchantName(share.getMerchantName()); + for (YxeShare s : yxeShareList) { + if (s.getIncome() != null) income = income.add(s.getIncome()); + } + share.setShareList(yxeShareList); + share.setIncome(income); + } + return success(shareListByMerchant); + } + + @GetMapping("/userData") + public ApiResult userData(YxeShareParam param) { + List shareList = new ArrayList<>(); + Map data = new HashMap<>(); + int num = 0; + BigDecimal income = BigDecimal.ZERO; + int totalNum = 0; + BigDecimal totalIncome = BigDecimal.ZERO; + if (getLoginUser() != null) { + User user = getLoginUser(); + shareList = yxeShareService.listByUser(user.getUserId(), param); + for (YxeShare share : shareList) { + if (share.getIncome() != null) income = income.add(share.getIncome()); + } + num = shareList.size(); + + List totalShareList = new ArrayList<>(); + if (user.getCanAuth().equals(1)) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + if (param.getProvince() != null && param.getCity() != null) { + query.eq(YxeShare::getProvince, param.getProvince()); + query.eq(YxeShare::getCity, param.getCity()); + } + totalShareList = yxeShareService.list(query); + } + totalNum = totalShareList.size(); + for (YxeShare share : totalShareList) { + if (share.getIncome() != null) totalIncome = totalIncome.add(share.getIncome()); + } + } + data.put("num", num); + data.put("income", income); + data.put("totalNum", totalNum); + data.put("totalIncome", totalIncome); + return success(data); + } + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(YxeShareParam param) { + PageResult pageResult = yxeShareService.pageRel(param); + if (param != null && Integer.valueOf(1).equals(param.getAuditLite())) { + trimAuditPage(pageResult); + } + return success(pageResult); + } + + @ApiOperation("审核页摘要分页查询") + @GetMapping("/audit/page") + public ApiResult> auditPage(YxeShareParam param) { + PageResult pageResult = yxeShareService.pageAuditSummary(param); + List list = pageResult.getList() == null ? new ArrayList<>() : pageResult.getList().stream() + .map(this::toAuditShareSummaryVO) + .collect(java.util.stream.Collectors.toList()); + return success(new PageResult<>(list, pageResult.getCount())); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(YxeShareParam param) { + // 使用关联查询 + if (getLoginUser() == null) { + return success(new ArrayList<>()); + }else { + if (getLoginUser().getAuthStatus() != 2) { + return success(new ArrayList<>()); + } + } + return success(yxeShareService.listRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping("/userList") + public ApiResult> userList(YxeShareParam param) { + // 使用关联查询 + param.setUserId(getLoginUserId()); + return success(yxeShareService.listRel(param)); + } + + @PreAuthorize("hasAuthority('yxe:yxeShare:list')") + @ApiOperation("根据id查询") +// @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeShareService.getByIdRel(id)); + } + + @ApiOperation("审核页详情查询") + @GetMapping("/audit/{id}") + public ApiResult auditDetail(@PathVariable("id") Integer id) { + return success(yxeShareService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody YxeShare yxeShare) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser == null) { + return fail("请先登录"); + } + yxeShare.setUserId(loginUser.getUserId()); + if (!loginUser.getAuthStatus().equals(2)) { + return fail("请先完成认证"); + } +// YxeShare check = yxeShareService.getByOrderNo(yxeShare.getOrderNo()); +// if (check != null) { +// return fail("该分享已存在"); +// } + yxeShare.setOrderNo(LocalDateTimeUtil.format(LocalDateTimeUtil.now(), "yyyyMMddHHmmss") + RandomUtil.randomNumbers(6)); +// Merchant merchant = merchantService.getByName(yxeShare.getMerchantName()); +// if (merchant != null) { +// yxeShare.setMerchantId(merchant.getId()); +// } + if (yxeShareService.save(yxeShare)) { + BigDecimal amount = BigDecimal.ZERO; + BigDecimal extraIncome = BigDecimal.ZERO; + List detailList = yxeShare.getDetailList(); + Map merchantIncomeMap = resolveMerchantIncomeMap(yxeShare.getMerchantId(), detailList); + for (YxeShareDetail detail : detailList) { + detail.setShareId(yxeShare.getId()); + detail.setProvince(yxeShare.getProvince()); + detail.setCity(yxeShare.getCity()); + YxeProduct product = yxeProductService.getById(detail.getGoodsId()); + BigDecimal amountOne = BigDecimal.ZERO; + BigDecimal amountSingle = BigDecimal.ZERO; + BigDecimal extraIncomeOne = BigDecimal.ZERO; + BigDecimal extraIncomeSingle = BigDecimal.ZERO; + if (product != null) { + BigDecimal incomeSingle = getEffectiveIncome(product, merchantIncomeMap.get(product.getId())); + if (incomeSingle != null) { + amountOne = incomeSingle.multiply(new BigDecimal(detail.getNum())); + amountSingle = incomeSingle; + amount = amount.add(amountOne); + } + List productExtraIncomeList = yxeProductExtraIncomeService.listByProduct(product.getId()); + if (!productExtraIncomeList.isEmpty()) { + for (YxeProductExtraIncome extraIncomeData : productExtraIncomeList) { + if (isDateTimeInRange(extraIncomeData.getStartTime(), extraIncomeData.getEndTime(), LocalDateTime.now())) { + amount = amount.add(extraIncomeData.getIncome().multiply(new BigDecimal(detail.getNum()))); + extraIncome = extraIncome.add(extraIncomeData.getIncome().multiply(new BigDecimal(detail.getNum()))); + extraIncomeOne = extraIncomeData.getIncome().multiply(new BigDecimal(detail.getNum())); + extraIncomeSingle = extraIncomeData.getIncome(); + + } + } + } + } + detail.setIncome(amountOne); + detail.setExtraIncome(extraIncomeOne); + detail.setIncomeSingle(amountSingle); + detail.setExtraIncomeSingle(extraIncomeSingle); + } + yxeShare.setIncome(amount); + yxeShare.setExtraIncome(extraIncome); +// yxeShare.setAmount(amount); + yxeShareDetailService.saveBatch(detailList); +// if (!yxeShare.getHasChange()) { +// yxeShare.setStatus(1); +// setIncome(yxeShare); +// } + yxeShareService.updateById(yxeShare); + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("导出") + @PostMapping("/export") + public ApiResult export(@RequestBody(required = false) YxeShareParam param) throws IOException { + if (param == null) { + param = new YxeShareParam(); + } + param.normalizeStringFields(); + List list = yxeShareService.listRel(param); + XSSFWorkbook workbook = excelExportUtil.createWorkbook("铺货分享", + "ID", "提交人ID", "提交人姓名", "提交人手机号", "连锁", "门店", "订单号", "小票金额", "奖金金额", "额外加提", "状态", "提交时间"); + Sheet sheet = workbook.getSheetAt(0); + int rowNum = 1; + for (YxeShare item : list) { + User user = userService.getById(item.getUserId()); + Merchant merchant = item.getMerchantId() == null ? null : merchantService.getById(item.getMerchantId()); + excelExportUtil.writeRow(sheet, rowNum++, + item.getId(), + item.getUserId(), + getUserName(user), + getUserPhone(user), + merchant == null ? item.getMerchantName() : merchant.getChain(), + item.getMerchantName(), + item.getOrderNo(), + item.getAmount(), + item.getIncome(), + item.getExtraIncome(), + getStatusText(item.getStatus()), + item.getCreateTime()); + } + excelExportUtil.autoSizeColumns(sheet, 12); + return success(excelExportUtil.saveWorkbook(workbook, "铺货分享数据", getLoginUserId())); + } + + private String getUserName(User user) { + if (user == null) { + return ""; + } + if (user.getRealName() != null && !user.getRealName().trim().isEmpty()) { + return user.getRealName(); + } + return user.getNickname(); + } + + private String getUserPhone(User user) { + return user == null ? "" : user.getPhone(); + } + + private void trimAuditPage(PageResult pageResult) { + if (pageResult == null || pageResult.getList() == null || pageResult.getList().isEmpty()) { + return; + } + for (YxeShare item : pageResult.getList()) { + trimAuditShare(item); + } + } + + private void trimAuditShare(YxeShare item) { + if (item == null) { + return; + } + User user = item.getUser(); + if (user != null) { + User liteUser = new User(); + liteUser.setUserId(user.getUserId()); + liteUser.setRealName(user.getRealName()); + liteUser.setNickname(user.getNickname()); + liteUser.setPhone(user.getPhone()); + item.setUser(liteUser); + } + Merchant merchant = item.getMerchant(); + if (merchant != null) { + Merchant liteMerchant = new Merchant(); + liteMerchant.setId(merchant.getId()); + liteMerchant.setName(merchant.getName()); + liteMerchant.setChain(merchant.getChain()); + item.setMerchant(liteMerchant); + } + List detailList = item.getDetailList(); + if (detailList == null || detailList.isEmpty()) { + item.setDetailList(Collections.emptyList()); + return; + } + List liteDetails = new ArrayList<>(); + for (YxeShareDetail detail : detailList) { + if (detail == null) { + continue; + } + YxeShareDetail liteDetail = new YxeShareDetail(); + liteDetail.setId(detail.getId()); + liteDetail.setGoodsId(detail.getGoodsId()); + liteDetail.setShareId(detail.getShareId()); + liteDetail.setGoodsCode(detail.getGoodsCode()); + liteDetail.setSourceCode(detail.getSourceCode()); + liteDetail.setGoodsName(detail.getGoodsName()); + liteDetail.setSpec(detail.getSpec()); + liteDetail.setNum(detail.getNum()); + liteDetail.setIncome(detail.getIncome()); + liteDetail.setIncomeSingle(detail.getIncomeSingle()); + liteDetail.setExtraIncome(detail.getExtraIncome()); + liteDetail.setExtraIncomeSingle(detail.getExtraIncomeSingle()); + YxeProduct product = detail.getProduct(); + if (product != null) { + YxeProduct liteProduct = new YxeProduct(); + liteProduct.setId(product.getId()); + liteProduct.setCode(product.getCode()); + liteProduct.setTitle(product.getTitle()); + liteProduct.setSpec(product.getSpec()); + liteProduct.setMakerAbb(product.getMakerAbb()); + liteProduct.setIncome(product.getIncome()); + liteProduct.setExtraIncome(product.getExtraIncome()); + liteProduct.setStartTime(product.getStartTime()); + liteProduct.setEndTime(product.getEndTime()); + liteProduct.setExtraStartTime(product.getExtraStartTime()); + liteProduct.setExtraEndTime(product.getExtraEndTime()); + liteProduct.setExtraIncomeList(product.getExtraIncomeList()); + liteDetail.setProduct(liteProduct); + } + liteDetails.add(liteDetail); + } + item.setDetailList(liteDetails); + } + + private AuditShareSummaryVO toAuditShareSummaryVO(YxeShare item) { + AuditShareSummaryVO vo = new AuditShareSummaryVO(); + if (item == null) { + return vo; + } + vo.setId(item.getId()); + vo.setUserId(item.getUserId()); + vo.setMerchantId(item.getMerchantId()); + vo.setStatus(item.getStatus()); + vo.setMerchantName(item.getMerchantName()); + if (item.getMerchant() != null) { + vo.setChainName(item.getMerchant().getChain()); + } + vo.setOrderNo(item.getOrderNo()); + vo.setDate(item.getCreateTime() == null ? item.getDate() : item.getCreateTime().toString()); + vo.setRemark(item.getRemark()); + vo.setImage(item.getImage()); + vo.setAmount(item.getAmount()); + vo.setIncome(item.getIncome()); + vo.setExtraIncome(item.getExtraIncome()); + User user = item.getUser(); + if (user != null) { + String ownerName = user.getRealName() != null && !user.getRealName().trim().isEmpty() ? user.getRealName() : user.getNickname(); + String phone = user.getPhone() == null ? "" : user.getPhone(); + vo.setOwner((ownerName == null ? "-" : ownerName) + "," + phone); + } + return vo; + } + + private String getStatusText(Integer status) { + if (status == null) { + return ""; + } + switch (status) { + case 0: + return "待审核"; + case 1: + return "通过"; + case 2: + return "拒绝"; + default: + return String.valueOf(status); + } + } + + @ApiOperation("抄送") + @PostMapping("/copy") + public ApiResult copy(@RequestBody YxeShare yxeShare) { + YxeShare yxeShareSource = yxeShareService.getById(yxeShare.getId()); + YxeShare yxeShare1 = new YxeShare(); + BeanUtils.copyProperties(yxeShareSource, yxeShare1); + yxeShare1.setUserId(yxeShare.getUserId()); + if (yxeShareService.save(yxeShare1)) { + List detailList = yxeShareDetailService.listByShareId(yxeShare.getId()); + for (YxeShareDetail detail : detailList) { + detail.setShareId(yxeShare1.getId()); + } + yxeShareDetailService.saveBatch(detailList); + return success("添加成功"); + } + return fail("添加失败"); + } + + private void setIncome(YxeShare yxeShare) { + User user = userService.getById(yxeShare.getUserId()); + UserBalanceLog userBalanceLog = new UserBalanceLog(); + userBalanceLog.setUserId(yxeShare.getUserId()); + userBalanceLog.setOrderId(yxeShare.getId()); + userBalanceLog.setScene(1); + userBalanceLog.setMoney(yxeShare.getIncome()); + userBalanceLog.setBalance(user.getBalance().add(yxeShare.getIncome())); + userBalanceLog.setRemark("药分享审核通过获得收入"); + userBalanceLogService.save(userBalanceLog); + + user.setBalance(user.getBalance().add(yxeShare.getIncome())); + userService.updateById(user); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody YxeShare yxeShare) { + if (yxeShareService.updateById(yxeShare)) { + if (yxeShare.getStatus().equals(1)) { + YxeShare yxeShare1 = yxeShareService.getById(yxeShare.getId()); + setIncome(yxeShare1); + } else if (yxeShare.getStatus().equals(0)) { + YxeShare yxeShare1 = yxeShareService.getById(yxeShare.getId()); + yxeShareDetailService.removeByShareId(yxeShare.getId()); + List detailList = yxeShare.getDetailList(); + BigDecimal amount = BigDecimal.ZERO; + BigDecimal extraIncome = BigDecimal.ZERO; + Integer merchantId = yxeShare.getMerchantId() == null ? yxeShare1.getMerchantId() : yxeShare.getMerchantId(); + Map merchantIncomeMap = resolveMerchantIncomeMap(merchantId, detailList); + + for (YxeShareDetail detail : detailList) { + BigDecimal amountOne = BigDecimal.ZERO; + BigDecimal extraIncomeOne = BigDecimal.ZERO; + BigDecimal amountSingle = BigDecimal.ZERO; + BigDecimal extraIncomeSingle = BigDecimal.ZERO; + + detail.setShareId(yxeShare.getId()); + detail.setProvince(yxeShare1.getProvince()); + detail.setCity(yxeShare1.getCity()); + + YxeProduct product = yxeProductService.getById(detail.getGoodsId()); + if (product != null) { + BigDecimal incomeSingle = getEffectiveIncome(product, merchantIncomeMap.get(product.getId())); + if (incomeSingle != null) { + amountOne = incomeSingle.multiply(new BigDecimal(detail.getNum())); + amountSingle = incomeSingle; + amount = amount.add(amountOne); + } + List productExtraIncomeList = yxeProductExtraIncomeService.listByProduct(product.getId()); + if (!productExtraIncomeList.isEmpty()) { + for (YxeProductExtraIncome extraIncomeData : productExtraIncomeList) { + if (isDateTimeInRange(extraIncomeData.getStartTime(), extraIncomeData.getEndTime(), LocalDateTime.now())) { + amount = amount.add(extraIncomeData.getIncome().multiply(new BigDecimal(detail.getNum()))); + extraIncome = extraIncome.add(extraIncomeData.getIncome().multiply(new BigDecimal(detail.getNum()))); + extraIncomeOne = extraIncomeData.getIncome().multiply(new BigDecimal(detail.getNum())); + extraIncomeSingle = extraIncomeData.getIncome(); + } + } + } + } + detail.setIncome(amountOne); + detail.setExtraIncome(extraIncomeOne); + detail.setIncomeSingle(amountSingle); + detail.setExtraIncomeSingle(extraIncomeSingle); + } + yxeShare.setIncome(amount); + yxeShare.setExtraIncome(extraIncome); + yxeShareService.updateById(yxeShare); + yxeShareDetailService.saveBatch(detailList); + } + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeShareService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeShareService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeShareService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeShareService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + private BigDecimal getEffectiveIncome(YxeProduct product, BigDecimal merchantIncome) { + if (merchantIncome != null) { + return merchantIncome; + } + if (product.getIncome() == null) { + return null; + } + if (ObjectUtil.isEmpty(product.getStartTime()) || ObjectUtil.isEmpty(product.getEndTime())) { + return product.getIncome(); + } + return isDateTimeInRange(product.getStartTime(), product.getEndTime(), LocalDateTime.now()) ? product.getIncome() : null; + } + + private Map resolveMerchantIncomeMap(Integer merchantId, List detailList) { + if (merchantId == null || detailList == null || detailList.isEmpty()) { + return Collections.emptyMap(); + } + List productIds = new ArrayList<>(); + for (YxeShareDetail detail : detailList) { + if (detail.getGoodsId() != null && !productIds.contains(detail.getGoodsId())) { + productIds.add(detail.getGoodsId()); + } + } + if (productIds.isEmpty()) { + return Collections.emptyMap(); + } + List merchantExtraIncomes = yxeProductMerchantExtraIncomeService.list( + new LambdaQueryWrapper() + .eq(YxeProductMerchantExtraIncome::getMerchantId, merchantId) + .and(wrapper -> wrapper.eq(YxeProductMerchantExtraIncome::getStatus, 0) + .or() + .isNull(YxeProductMerchantExtraIncome::getStatus)) + .in(YxeProductMerchantExtraIncome::getProductId, productIds) + .orderByDesc(YxeProductMerchantExtraIncome::getUpdateTime) + .orderByDesc(YxeProductMerchantExtraIncome::getCreateTime) + .orderByDesc(YxeProductMerchantExtraIncome::getId) + ); + if (merchantExtraIncomes.isEmpty()) { + return Collections.emptyMap(); + } + Map merchantIncomeMap = new HashMap<>(); + LocalDateTime now = LocalDateTime.now(); + for (YxeProductMerchantExtraIncome item : merchantExtraIncomes) { + Integer productId = item.getProductId(); + if (productId == null || item.getIncome() == null || merchantIncomeMap.containsKey(productId)) { + continue; + } + if (!isDateTimeInRange(item.getStartTime(), item.getEndTime(), now)) { + continue; + } + merchantIncomeMap.put(productId, item.getIncome()); + } + return merchantIncomeMap; + } + + private boolean isDateTimeInRange(String startTimeValue, String endTimeValue, LocalDateTime now) { + LocalDateTime startTime = parseDateTime(startTimeValue); + LocalDateTime endTime = parseDateTime(endTimeValue); + if (startTime == null || endTime == null) { + return false; + } + return !now.isBefore(startTime) && !now.isAfter(endTime); + } + + private LocalDateTime parseDateTime(String value) { + if (ObjectUtil.isEmpty(value)) { + return null; + } + try { + return LocalDateTime.parse(value, DATE_TIME_SECOND_FORMATTER); + } catch (DateTimeParseException ex) { + try { + return LocalDateTime.parse(value, DATE_TIME_MINUTE_FORMATTER); + } catch (DateTimeParseException ignored) { + return null; + } + } + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeShareDetailController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeShareDetailController.java new file mode 100644 index 0000000..040d3cb --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeShareDetailController.java @@ -0,0 +1,110 @@ +package com.gxwebsoft.yxe.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.yxe.service.YxeShareDetailService; +import com.gxwebsoft.yxe.entity.YxeShareDetail; +import com.gxwebsoft.yxe.param.YxeShareDetailParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 控制器 + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/yxe/yxe-share-detail") +public class YxeShareDetailController extends BaseController { + @Resource + private YxeShareDetailService yxeShareDetailService; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(YxeShareDetailParam param) { + // 使用关联查询 + return success(yxeShareDetailService.pageRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(YxeShareDetailParam param) { + // 使用关联查询 + return success(yxeShareDetailService.listRel(param)); + } + + @PreAuthorize("hasAuthority('yxe:yxeShareDetail:list')") + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeShareDetailService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody YxeShareDetail yxeShareDetail) { + if (yxeShareDetailService.save(yxeShareDetail)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody YxeShareDetail yxeShareDetail) { + if (yxeShareDetailService.updateById(yxeShareDetail)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeShareDetailService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeShareDetailService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeShareDetailService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeShareDetailService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/law/controller/LawOrgPeopleController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeTaskCateController.java similarity index 58% rename from src/main/java/com/gxwebsoft/law/controller/LawOrgPeopleController.java rename to src/main/java/com/gxwebsoft/yxe/controller/YxeTaskCateController.java index 0aaa6cd..4dbe022 100644 --- a/src/main/java/com/gxwebsoft/law/controller/LawOrgPeopleController.java +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeTaskCateController.java @@ -1,9 +1,9 @@ -package com.gxwebsoft.law.controller; +package com.gxwebsoft.yxe.controller; import com.gxwebsoft.common.core.web.BaseController; -import com.gxwebsoft.law.service.LawOrgPeopleService; -import com.gxwebsoft.law.entity.LawOrgPeople; -import com.gxwebsoft.law.param.LawOrgPeopleParam; +import com.gxwebsoft.yxe.service.YxeTaskCateService; +import com.gxwebsoft.yxe.entity.YxeTaskCate; +import com.gxwebsoft.yxe.param.YxeTaskCateParam; import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageParam; @@ -22,46 +22,46 @@ import java.util.List; * 控制器 * * @author LX - * @since 2025-04-14 01:31:54 + * @since 2026-01-17 14:11:56 */ @Api(tags = "管理") @RestController -@RequestMapping("/api/law/law-org-people") -public class LawOrgPeopleController extends BaseController { +@RequestMapping("/api/yxe/yxe-task-cate") +public class YxeTaskCateController extends BaseController { @Resource - private LawOrgPeopleService lawOrgPeopleService; + private YxeTaskCateService yxeTaskCateService; @ApiOperation("分页查询") @GetMapping("/page") - public ApiResult> page(LawOrgPeopleParam param) { + public ApiResult> page(YxeTaskCateParam param) { // 使用关联查询 - return success(lawOrgPeopleService.pageRel(param)); + return success(yxeTaskCateService.pageRel(param)); } @ApiOperation("查询全部") @GetMapping() - public ApiResult> list(LawOrgPeopleParam param) { + public ApiResult> list(YxeTaskCateParam param) { // 使用关联查询 - return success(lawOrgPeopleService.listRel(param)); + return success(yxeTaskCateService.listRel(param)); } - @PreAuthorize("hasAuthority('law:lawOrgPeople:list')") + @PreAuthorize("hasAuthority('yxe:yxeTaskCate:list')") @ApiOperation("根据id查询") @GetMapping("/{id}") - public ApiResult get(@PathVariable("id") Integer id) { + public ApiResult get(@PathVariable("id") Integer id) { // 使用关联查询 - return success(lawOrgPeopleService.getByIdRel(id)); + return success(yxeTaskCateService.getByIdRel(id)); } @ApiOperation("添加") @PostMapping() - public ApiResult save(@RequestBody LawOrgPeople lawOrgPeople) { + public ApiResult save(@RequestBody YxeTaskCate yxeTaskCate) { // 记录当前登录用户id User loginUser = getLoginUser(); if (loginUser != null) { - lawOrgPeople.setUserId(loginUser.getUserId()); + yxeTaskCate.setUserId(loginUser.getUserId()); } - if (lawOrgPeopleService.save(lawOrgPeople)) { + if (yxeTaskCateService.save(yxeTaskCate)) { return success("添加成功"); } return fail("添加失败"); @@ -69,8 +69,8 @@ public class LawOrgPeopleController extends BaseController { @ApiOperation("修改") @PutMapping() - public ApiResult update(@RequestBody LawOrgPeople lawOrgPeople) { - if (lawOrgPeopleService.updateById(lawOrgPeople)) { + public ApiResult update(@RequestBody YxeTaskCate yxeTaskCate) { + if (yxeTaskCateService.updateById(yxeTaskCate)) { return success("修改成功"); } return fail("修改失败"); @@ -79,7 +79,7 @@ public class LawOrgPeopleController extends BaseController { @ApiOperation("删除") @DeleteMapping("/{id}") public ApiResult remove(@PathVariable("id") Integer id) { - if (lawOrgPeopleService.removeById(id)) { + if (yxeTaskCateService.removeById(id)) { return success("删除成功"); } return fail("删除失败"); @@ -87,8 +87,8 @@ public class LawOrgPeopleController extends BaseController { @ApiOperation("批量添加") @PostMapping("/batch") - public ApiResult saveBatch(@RequestBody List list) { - if (lawOrgPeopleService.saveBatch(list)) { + public ApiResult saveBatch(@RequestBody List list) { + if (yxeTaskCateService.saveBatch(list)) { return success("添加成功"); } return fail("添加失败"); @@ -96,8 +96,8 @@ public class LawOrgPeopleController extends BaseController { @ApiOperation("批量修改") @PutMapping("/batch") - public ApiResult updateBatch(@RequestBody BatchParam batchParam) { - if (batchParam.update(lawOrgPeopleService, "id")) { + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeTaskCateService, "id")) { return success("修改成功"); } return fail("修改失败"); @@ -106,7 +106,7 @@ public class LawOrgPeopleController extends BaseController { @ApiOperation("批量删除") @DeleteMapping("/batch") public ApiResult removeBatch(@RequestBody List ids) { - if (lawOrgPeopleService.removeByIds(ids)) { + if (yxeTaskCateService.removeByIds(ids)) { return success("删除成功"); } return fail("删除失败"); diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeTaskController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeTaskController.java new file mode 100644 index 0000000..d593b5a --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeTaskController.java @@ -0,0 +1,519 @@ +package com.gxwebsoft.yxe.controller; + +import cn.hutool.core.date.LocalDateTimeUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.core.utils.ExcelExportUtil; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.entity.Merchant; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.yxe.entity.*; +import com.gxwebsoft.yxe.service.*; +import com.gxwebsoft.yxe.param.YxeTaskParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import java.io.IOException; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 控制器 + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/yxe/yxe-task") +public class YxeTaskController extends BaseController { + private static final DateTimeFormatter TASK_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + + @Resource + private YxeTaskService yxeTaskService; + @Resource + private YxeUserTaskService yxeUserTaskService; + @Resource + private YxeTaskProductService yxeTaskProductService; + @Resource + private UserService userService; + @Resource + private YxeProductService yxeProductService; + @Resource + private YxeTaskCateService yxeTaskCateService; + @Resource + private MerchantService merchantService; + @Resource + private ExcelExportUtil excelExportUtil; + + @GetMapping("/doneList") + public ApiResult doneList() { + List taskList = yxeTaskService.getDoneList(); + for (YxeTask task : taskList) { + YxeUserTask userTask = yxeUserTaskService.check(task.getId()); + if (userTask != null) { + task.setUser(userService.getById(userTask.getUserId())); + } + } + return success(taskList); + } + + @GetMapping("/data") + public ApiResult data() { + int taskNum = 0; + int doneNum = 0; + BigDecimal income = BigDecimal.ZERO; + BigDecimal doneRate = BigDecimal.ZERO; + + int totalDoneNum = 0; + int totalTaskNum = 0; + BigDecimal totalIncome = BigDecimal.ZERO; + BigDecimal totalDoneRate = BigDecimal.ZERO; + List taskList = yxeTaskService.list( + new LambdaQueryWrapper() + .in(YxeTask::getStatus, 1, 2) + ); + taskNum = taskList.size(); + if (!taskList.isEmpty()) { + List taskIds = taskList.stream().map(YxeTask::getId).collect(Collectors.toList()); + List userTaskList = new ArrayList<>(); + if (getLoginUser() != null) { + userTaskList = yxeUserTaskService.listByTaskIds(taskIds, getLoginUserId()); + taskNum = userTaskList.size(); + for (YxeTask task : taskList) { + YxeUserTask userTask = userTaskList.stream().filter(u -> u.getTaskId().equals(task.getId())).findFirst().orElse(null); + if (userTask != null) { + if (userTask.getStatus().equals(2)) { + doneNum++; + income = income.add(task.getReward()); + } + } + } + if (getLoginUser().getCanAuth().equals(1)) { + List allUserTaskList = yxeUserTaskService.listByTaskIds(taskIds); + totalTaskNum = allUserTaskList.size(); + for (YxeTask task : taskList) { + YxeUserTask userTask = allUserTaskList.stream().filter(u -> u.getTaskId().equals(task.getId())).findFirst().orElse(null); + if (userTask != null) { + if (userTask.getStatus().equals(2)) { + totalDoneNum++; + totalIncome = totalIncome.add(task.getReward()); + } + } + } + if (totalTaskNum > 0) { + totalDoneRate = new BigDecimal(totalDoneNum).divide(BigDecimal.valueOf(totalTaskNum), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + } + } else { + taskNum = 0; + } + if (taskNum > 0) + doneRate = new BigDecimal(doneNum).divide(BigDecimal.valueOf(taskNum), 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } + Map data = new HashMap<>(); + data.put("taskNum", taskNum); + data.put("doneNum", doneNum); + data.put("income", income); + data.put("doneRate", doneRate); + data.put("totalDoneNum", totalDoneNum); + data.put("totalTaskNum", totalTaskNum); + data.put("totalIncome", totalIncome); + data.put("totalDoneRate", totalDoneRate); + return success(data); + } + + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(YxeTaskParam param) { + // 使用关联查询 + return success(yxeTaskService.pageRel(param)); + } + + @ApiOperation("导出任务") + @PostMapping("/export") + public ApiResult export(@RequestBody(required = false) YxeTaskParam param) throws IOException { + if (param == null) { + param = new YxeTaskParam(); + } + param.normalizeStringFields(); + List list = yxeTaskService.listRel(param); + String[] headers = {"ID", "分类ID", "名称", "金额", "指定人员ID", "指定人员姓名", "指定人员手机号", "用户分组", "连锁", "省份", "城市", "任务开始时间", "任务结束时间", "状态", "创建时间"}; + XSSFWorkbook workbook = excelExportUtil.createWorkbook("任务", headers); + Sheet sheet = workbook.getSheetAt(0); + int rowNum = 1; + for (YxeTask item : list) { + User user = item.getAppointUser(); + excelExportUtil.writeRow(sheet, rowNum++, item.getId(), item.getCateId(), item.getTitle(), item.getReward(), + item.getAppointUserId(), user == null ? "" : (user.getRealName() != null ? user.getRealName() : user.getNickname()), + user == null ? "" : user.getPhone(), user == null ? "" : user.getUserGroup(), item.getChain(), item.getProvince(), + item.getCity(), item.getTaskStartTime(), item.getTaskEndTime(), item.getStatus(), item.getCreateTime()); + } + excelExportUtil.autoSizeColumns(sheet, headers.length); + return success(excelExportUtil.saveWorkbook(workbook, "任务数据", getLoginUserId())); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(YxeTaskParam param) { + if (getLoginUser() == null && param.getUserTaskStatus() != null) { + if (param.getUserTaskStatus().equals(-1)) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(YxeTask::getStatus, 0); + if (param.getProvince() != null && param.getCity() != null) { + wrapper.eq(YxeTask::getProvince, param.getProvince()) + .eq(YxeTask::getCity, param.getCity()); + } + if (param.getNotExpired() != null) { + wrapper.gt(YxeTask::getDate, LocalDateTimeUtil.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + } + wrapper.orderByDesc(YxeTask::getDate); + List allTask = yxeTaskService.list(wrapper); + if (!allTask.isEmpty()) { + yxeTaskService.setListData(allTask); + } + return success(allTask); + } else { + return success(new ArrayList<>()); + } + } + if (getLoginUser() != null && param.getUserTaskStatus() != null) { +// System.out.println(getLoginUser()); + if (getLoginUser().getAuthStatus() != 2) { + return success(new ArrayList<>()); + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(YxeTask::getCateId, 1, 3); + if (param.getProvince() != null && param.getCity() != null) { + wrapper.eq(YxeTask::getCity, param.getCity()); + } + if (param.getNotExpired() != null && param.getUserTaskStatus() == -1) { + wrapper.gt(YxeTask::getDate, LocalDateTimeUtil.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + } + if (param.getNotExpired() != null && param.getUserTaskStatus() == 0) { + String currentTime = LocalDateTimeUtil.now().format(TASK_TIME_FORMATTER); + wrapper.apply("CONCAT(DATE_FORMAT(STR_TO_DATE(task_end_time, '%Y-%m-%d %H:%i'), '%Y-%m-%d'), ' 23:59') > {0}", currentTime); + } + wrapper.orderByAsc(YxeTask::getDate); + List allTask = yxeTaskService.list(wrapper); + + LambdaQueryWrapper wrapperCate4 = new LambdaQueryWrapper<>(); + wrapperCate4.eq(YxeTask::getCateId, 4); + if (param.getNotExpired() != null && param.getUserTaskStatus() == -1) { + wrapperCate4.gt(YxeTask::getDate, LocalDateTimeUtil.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + } + + List allTaskCate4 = yxeTaskService.list(wrapperCate4); + allTask.addAll(allTaskCate4); + + List allUserTask = yxeUserTaskService.listByUserId(getLoginUserId()); + List taskFilter = new ArrayList<>(); + if (param.getUserTaskStatus().equals(-1)) { + // 筛选差集 + for (YxeTask task : allTask.stream().filter(task -> task.getStatus().equals(0)).collect(Collectors.toList())) { + if (allUserTask.stream().noneMatch(userTask -> userTask.getTaskId().equals(task.getId()))) { + taskFilter.add(task); + } + } + } else if (param.getUserTaskStatus().equals(0)) { + // 筛选交集,且allUserTask的status为0 + for (YxeTask task : allTask) { + if (allUserTask.stream().anyMatch(userTask -> userTask.getTaskId().equals(task.getId()) && userTask.getStatus().equals(0))) { + taskFilter.add(task); + } + } + } else if (param.getUserTaskStatus().equals(1)) { + // 筛选交集,且allUserTask的status为1 + for (YxeTask task : allTask) { + if (allUserTask.stream().anyMatch(userTask -> userTask.getTaskId().equals(task.getId()) + && (userTask.getStatus().equals(1) || userTask.getStatus().equals(2) || userTask.getStatus().equals(3)))) { + taskFilter.add(task); + } + } + } + if (!taskFilter.isEmpty()) { + yxeTaskService.setListData(taskFilter); + } + return success(taskFilter); + } + return success(yxeTaskService.listRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping("/listForData") + public ApiResult> listForData(YxeTaskParam param) { + if (getLoginUser() == null) { + return success(new ArrayList<>()); + } else { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(YxeTask::getStatus, 1, 2); + if (param.getProvince() != null && param.getCity() != null) { + wrapper.eq(YxeTask::getProvince, param.getProvince()) + .eq(YxeTask::getCity, param.getCity()); + } + if (param.getMerchantId() != null) { + wrapper.eq(YxeTask::getMerchantId, param.getMerchantId()); + } + if (param.getMarkAbb() != null) { + List productList = yxeProductService.listByMakerAbb(param.getMarkAbb()); + if (productList.isEmpty()) return success(new ArrayList<>()); + List taskIds = yxeTaskProductService.taskIdlistByProcuctIds( + productList.stream().map(YxeProduct::getId).collect(Collectors.toList()) + ); + if (!taskIds.isEmpty()) { + wrapper.in(YxeTask::getId, taskIds); + } + } + wrapper.orderByDesc(YxeTask::getDate); + List taskList = yxeTaskService.list(wrapper); + List userTaskList = new ArrayList<>(); + List taskFilter = new ArrayList<>(); + if (!taskList.isEmpty()) { + List taskIds = taskList.stream().map(YxeTask::getId).collect(Collectors.toList()); + if (getLoginUser().getCanAuth().equals(1)) { + userTaskList = yxeUserTaskService.listByTaskIds(taskIds); + } else { + userTaskList = yxeUserTaskService.listByTaskIds(taskIds, getLoginUserId()); + } + if (!userTaskList.isEmpty()) { + for (YxeTask task : taskList) { + for (YxeUserTask userTask : userTaskList) { + if (userTask.getTaskId().equals(task.getId())) { + taskFilter.add(task); + break; + } + } + } + } + if (!taskFilter.isEmpty()) { + yxeTaskService.setListData(taskFilter); + } + } + + return success(taskFilter); + } + } + + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + YxeTask task = yxeTaskService.getByIdRel(id); + yxeTaskService.setData(task); + return success(task); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody YxeTask yxeTask) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + yxeTask.setUserId(loginUser.getUserId()); + } + if (yxeTask.getMerchantId() != null) { + Merchant merchant = merchantService.getByIdNChain(yxeTask.getMerchantId(), yxeTask.getChain()); + if (merchant == null) { + return fail("该连锁下无指定门店"); + } + } + if (yxeTaskService.save(yxeTask)) { + if (yxeTask.getCateId() != 4 && yxeTask.getProductList() != null && !yxeTask.getProductList().isEmpty()) { + for (YxeTaskProduct taskProduct : yxeTask.getProductList()) { + taskProduct.setTaskId(yxeTask.getId()); + } + yxeTaskProductService.saveBatch(yxeTask.getProductList()); + } + User user = null; + if (yxeTask.getRealName() != null) { + List userList = userService.listByRealName(yxeTask.getRealName()); + if (userList.size() == 1) user = userList.get(0); + else if (userList.size() > 1) { + if (yxeTask.getUserPhone() != null) { + for (User value : userList) { + if (value.getPhone().equals(yxeTask.getUserPhone())) + user = value; + } + } + } + } + if (user == null && yxeTask.getUserPhone() != null) { + user = userService.getByPhone(yxeTask.getUserPhone()); + } + if (user != null) { + yxeTask.setAppointUserId(user.getUserId()); + yxeTask.setStatus(1); + + YxeUserTask yxeUserTask = new YxeUserTask(); + yxeUserTask.setTaskId(yxeTask.getId()); + yxeUserTask.setCateId(yxeTask.getCateId()); + yxeUserTask.setUserId(user.getUserId()); + yxeUserTaskService.save(yxeUserTask); + } + yxeTaskService.updateById(yxeTask); + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody YxeTask yxeTask) { + if (yxeTaskService.updateById(yxeTask)) { + yxeTaskProductService.removeByTask(yxeTask.getId()); + if (yxeTask.getProductList() != null && !yxeTask.getProductList().isEmpty()) { + for (YxeTaskProduct product : yxeTask.getProductList()) { + product.setTaskId(yxeTask.getId()); + } + yxeTaskProductService.saveBatch(yxeTask.getProductList()); + } + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeTaskService.removeById(id)) { + YxeUserTask yxeUserTask = yxeUserTaskService.getByTaskId(id); + if (yxeUserTask != null) { + yxeUserTaskService.removeById(yxeUserTask.getId()); + } + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { +// for (YxeTask yxeTask : list) { +// if (yxeTask.getProductList() == null || yxeTask.getProductList().isEmpty()) +// return fail("请选择产品"); +// if (yxeTask.getTitle() == null || yxeTask.getTitle().isEmpty()) +// return fail("任务分类不存在"); +// YxeTaskCate taskCate = yxeTaskCateService.getByTitle(yxeTask.getTitle()); +// if (taskCate == null) { +// return fail("任务分类不存在"); +// } +// yxeTask.setCateId(taskCate.getId()); +// if (yxeTask.getMerchantName() == null || yxeTask.getMerchantName().isEmpty()) { +// return fail("请输入门店名称"); +// } +// Merchant merchant = merchantService.getByName(yxeTask.getMerchantName()); +// if (merchant == null) { +// return fail("门店不存在"); +// } +// yxeTask.setMerchantId(merchant.getId()); +// for (int i = 0; i < yxeTask.getProductList().size(); i++) { +// YxeTaskProduct taskProduct = yxeTask.getProductList().get(i); +// if (taskProduct.getCode() == null) { +// return fail("产品编码不能为空"); +// } +// YxeProduct product = yxeProductService.getByCode(taskProduct.getCode()); +// if (product == null) { +// return fail("产品不存在"); +// } +// taskProduct.setProductId(product.getId()); +// } +// } + if (yxeTaskService.saveBatch(list)) { + for (YxeTask yxeTask : list) { + if (yxeTask.getProductList() != null && !yxeTask.getProductList().isEmpty()) { + for (YxeTaskProduct product : yxeTask.getProductList()) { + product.setTaskId(yxeTask.getId()); + } + yxeTaskProductService.saveBatch(yxeTask.getProductList()); + } + } + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeTaskService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeTaskService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("修复任务chain数据") + @PostMapping("/fixChain") + public ApiResult fixChain() { + List taskList = yxeTaskService.list( + new LambdaQueryWrapper() + .isNotNull(YxeTask::getMerchantId) + ); + if (taskList.isEmpty()) { + return success("没有需要修复的数据"); + } + + Set merchantIds = new HashSet<>(); + for (YxeTask task : taskList) { + if (task.getMerchantId() != null && task.getMerchantId() > 0) { + merchantIds.add(task.getMerchantId()); + } + } + if (merchantIds.isEmpty()) { + return success("没有可匹配的商户数据"); + } + + List merchantList = merchantService.listByIds(merchantIds); + Map merchantMap = merchantList.stream() + .collect(Collectors.toMap(Merchant::getId, merchant -> merchant, (left, right) -> left)); + + List updateList = new ArrayList<>(); + for (YxeTask task : taskList) { + Merchant merchant = merchantMap.get(task.getMerchantId()); + if (merchant == null) { + continue; + } + if (merchant.getChain() == null ? task.getChain() != null : !merchant.getChain().equals(task.getChain())) { + YxeTask updateTask = new YxeTask(); + updateTask.setId(task.getId()); + updateTask.setChain(merchant.getChain()); + updateList.add(updateTask); + } + } + + if (updateList.isEmpty()) { + return success("没有需要更新的数据"); + } + yxeTaskService.updateBatchById(updateList); + return success("修复成功,更新" + updateList.size() + "条数据"); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeTaskProductController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeTaskProductController.java new file mode 100644 index 0000000..ddb374a --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeTaskProductController.java @@ -0,0 +1,110 @@ +package com.gxwebsoft.yxe.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.yxe.service.YxeTaskProductService; +import com.gxwebsoft.yxe.entity.YxeTaskProduct; +import com.gxwebsoft.yxe.param.YxeTaskProductParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 控制器 + * + * @author LX + * @since 2026-01-22 15:26:52 + */ +@Api(tags = "管理") +@RestController +@RequestMapping("/api/yxe/yxe-task-product") +public class YxeTaskProductController extends BaseController { + @Resource + private YxeTaskProductService yxeTaskProductService; + + @ApiOperation("分页查询") + @GetMapping("/page") + public ApiResult> page(YxeTaskProductParam param) { + // 使用关联查询 + return success(yxeTaskProductService.pageRel(param)); + } + + @ApiOperation("查询全部") + @GetMapping() + public ApiResult> list(YxeTaskProductParam param) { + // 使用关联查询 + return success(yxeTaskProductService.listRel(param)); + } + + @PreAuthorize("hasAuthority('yxe:yxeTaskProduct:list')") + @ApiOperation("根据id查询") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeTaskProductService.getByIdRel(id)); + } + + @ApiOperation("添加") + @PostMapping() + public ApiResult save(@RequestBody YxeTaskProduct yxeTaskProduct) { + if (yxeTaskProductService.save(yxeTaskProduct)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改") + @PutMapping() + public ApiResult update(@RequestBody YxeTaskProduct yxeTaskProduct) { + if (yxeTaskProductService.updateById(yxeTaskProduct)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeTaskProductService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeTaskProductService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeTaskProductService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeTaskProductService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeUserTaskController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeUserTaskController.java new file mode 100644 index 0000000..a69604c --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeUserTaskController.java @@ -0,0 +1,1059 @@ +package com.gxwebsoft.yxe.controller; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.gxwebsoft.common.core.utils.ExcelExportUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.entity.Merchant; +import com.gxwebsoft.shop.entity.UserBalanceLog; +import com.gxwebsoft.shop.service.UserBalanceLogService; +import com.gxwebsoft.yxe.entity.YxeShare; +import com.gxwebsoft.yxe.entity.YxeTask; +import com.gxwebsoft.yxe.entity.YxeTaskProduct; +import com.gxwebsoft.yxe.service.YxeTaskCateService; +import com.gxwebsoft.yxe.service.YxeTaskProductService; +import com.gxwebsoft.yxe.service.YxeTaskService; +import com.gxwebsoft.yxe.service.YxeUserTaskService; +import com.gxwebsoft.yxe.entity.YxeUserTask; +import com.gxwebsoft.yxe.param.YxeUserTaskParam; +import com.gxwebsoft.yxe.utils.YxeSalesExportUtil; +import com.gxwebsoft.yxe.vo.AuditTaskSummaryVO; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.BeanUtils; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.io.IOException; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.Normalizer; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 用户任务控制器 + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +@Api(tags = "用户任务管理") +@RestController +@RequestMapping("/api/yxe/yxe-user-task") +public class YxeUserTaskController extends BaseController { + private static final DateTimeFormatter TASK_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); + private static final DateTimeFormatter TASK_TIME_FORMATTER_SECONDS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + @Resource + private YxeUserTaskService yxeUserTaskService; + @Resource + private YxeTaskService yxeTaskService; + @Resource + private UserBalanceLogService userBalanceLogService; + @Resource + private UserService userService; + @Resource + private ExcelExportUtil excelExportUtil; + @Resource + private YxeTaskProductService yxeTaskProductService; + + @GetMapping("/userRank") + public ApiResult userRank(YxeUserTaskParam param) { + List userList = new ArrayList<>(); + if (param.getName() != null) { + userList = userService.listByNickname(param.getName()); + if (userList.isEmpty()) return success(); + } + if (userList.isEmpty()) userList = userService.list(); + for (User user : userList) { + int totalTaskNum = 0; + int taskCompleteNum = 0; + BigDecimal incomeAmount = BigDecimal.ZERO; + List taskList = yxeUserTaskService.listByUserId(user.getUserId()); + if (!taskList.isEmpty()) { + List taskDataList = yxeTaskService.listByIds(taskList.stream().map(YxeUserTask::getTaskId).collect(Collectors.toList())); + totalTaskNum = taskList.size(); + for (YxeUserTask task : taskList) { + if (task.getStatus().equals(2)) { + YxeTask taskData = taskDataList.stream().filter(t -> t.getId().equals(task.getTaskId())).findFirst().orElse(null); + if (taskData != null) { + taskCompleteNum++; + incomeAmount = incomeAmount.add(taskData.getReward()); + } + } + } + } + user.setTotalTaskNum(totalTaskNum); + user.setTaskCompleteNum(taskCompleteNum); + user.setIncomeAmount(incomeAmount); + } + // 过滤totalTaskNum为0的 + userList = userList.stream().filter(user -> user.getTotalTaskNum() > 0).collect(Collectors.toList()); + // 排序 + userList.sort((o1, o2) -> o2.getTotalTaskNum() - o1.getTotalTaskNum()); + return success(userList); + } + + @ApiOperation("分页查询用户任务") + @GetMapping("/page") + public ApiResult> page(YxeUserTaskParam param) { + PageResult pageResult = yxeUserTaskService.pageRel(param); + if (param != null && Integer.valueOf(1).equals(param.getAuditLite())) { + trimAuditPage(pageResult); + } + return success(pageResult); + } + + @ApiOperation("审核页摘要分页查询用户任务") + @GetMapping("/audit/page") + public ApiResult> auditPage(YxeUserTaskParam param) { + PageResult pageResult = yxeUserTaskService.pageAuditSummary(param); + List list = pageResult.getList() == null ? new ArrayList<>() : pageResult.getList().stream() + .map(this::toAuditTaskSummaryVO) + .collect(Collectors.toList()); + return success(new PageResult<>(list, pageResult.getCount())); + } + + @ApiOperation("查询全部用户任务") + @GetMapping() + public ApiResult> list(YxeUserTaskParam param) { + // 使用关联查询 + return success(yxeUserTaskService.listRel(param)); + } + + @ApiOperation("查询全部用户任务") + @GetMapping("/userList") + public ApiResult> userList(YxeUserTaskParam param) { + param.setUserId(getLoginUserId()); + return success(yxeUserTaskService.listRel(param)); + } + + @ApiOperation("根据id查询用户任务") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + YxeUserTask yxeUserTask = yxeUserTaskService.getByIdRel(id); + yxeUserTaskService.setData(yxeUserTask); + + return success(yxeUserTask); + } + + @ApiOperation("添加用户任务") + @PostMapping() + public ApiResult save(@RequestBody YxeUserTask yxeUserTask) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser == null) { + return fail("请先登录"); + } + yxeUserTask.setUserId(loginUser.getUserId()); + if (!loginUser.getAuthStatus().equals(2)) { + return fail("请先完成认证"); + } + YxeUserTask check = yxeUserTaskService.check(yxeUserTask.getTaskId()); + if (check != null) { + return fail("已被接单"); + } + YxeTask task = yxeTaskService.getByIdRel(yxeUserTask.getTaskId()); + if (task == null) { + return fail("任务不存在"); + } + if (!task.getStatus().equals(0)) { + return fail("已被接单"); + } + LocalDateTime taskDateTime = parseTaskDateTime(task.getDate()); + if (taskDateTime != null && !LocalDateTime.now().isBefore(taskDateTime)) { + return fail("超过接单时间,无法接单"); + } + int todayTakeNum = yxeUserTaskService.countTodayNum(getLoginUserId()); + if (todayTakeNum >= 3) { + return fail("每天只能接3单"); + } + yxeUserTask.setCateId(task.getCateId()); + if (task.getChain() != null) yxeUserTask.setChain(task.getChain()); + if (yxeUserTaskService.save(yxeUserTask)) { + task.setStatus(1); + yxeTaskService.updateById(task); + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("添加用户任务") + @PostMapping("/copy") + public ApiResult copy(@RequestBody YxeUserTask yxeUserTask) { + YxeUserTask yxeUserTask1 = yxeUserTaskService.getByIdRel(yxeUserTask.getId()); + YxeUserTask yxeUserTaskCopied = new YxeUserTask(); + BeanUtils.copyProperties(yxeUserTask1, yxeUserTaskCopied); + yxeUserTaskCopied.setUserId(yxeUserTask.getUserId()); + if (yxeUserTaskService.save(yxeUserTaskCopied)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("导出用户任务") + @PostMapping("/export") + public ApiResult export(@RequestBody(required = false) YxeUserTaskParam param) throws IOException { + if (param == null) { + param = new YxeUserTaskParam(); + } + param.normalizeStringFields(); + List list = yxeUserTaskService.listRel(param); + List taskIds = list.stream() + .map(YxeUserTask::getTaskId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + List taskProducts = taskIds.isEmpty() ? new ArrayList<>() : yxeTaskProductService.listByTaskIds(taskIds); + Map> taskProductMap = taskProducts.stream() + .filter(item -> item.getTaskId() != null) + .collect(Collectors.groupingBy(YxeTaskProduct::getTaskId, LinkedHashMap::new, Collectors.toList())); + + LinkedHashMap productHeaderMap = new LinkedHashMap<>(); + YxeSalesExportUtil.SalesExportResult salesExport = YxeSalesExportUtil.build( + list.stream().map(YxeUserTask::getSalesGroups).collect(Collectors.toList()) + ); + List extraSalesColumns = new ArrayList<>(); + for (YxeUserTask item : list) { + List currentProducts = taskProductMap.get(item.getTaskId()); + if (currentProducts == null || currentProducts.isEmpty()) { + continue; + } + for (YxeTaskProduct taskProduct : currentProducts) { + String productName = getExportProductName(taskProduct); + if (StrUtil.isNotBlank(productName)) { + addProductHeader(productHeaderMap, productName); + } + } + } + for (YxeSalesExportUtil.SalesColumn column : salesExport.getColumns()) { + if (!hasProductHeader(productHeaderMap, column.getTitle())) { + extraSalesColumns.add(column); + } + } + + List headers = new ArrayList<>(); + headers.add("任务ID"); + headers.add("任务标题"); + headers.add("分类ID"); + headers.add("连锁"); + headers.add("门店"); + headers.add("用户ID"); + headers.add("姓名"); + headers.add("手机号"); + headers.add("用户分组"); + headers.add("审核状态"); + headers.add("任务奖金"); + headers.add("任务开始时间"); + headers.add("打卡上班时间"); + headers.add("打卡下班时间"); + headers.add("提交时间"); + headers.add("总结"); + headers.add("评分"); + headers.add("创建时间"); + headers.addAll(productHeaderMap.values()); + for (YxeSalesExportUtil.SalesColumn column : extraSalesColumns) { + headers.add(column.getTitle()); + } + + XSSFWorkbook workbook = excelExportUtil.createWorkbook("用户任务", headers.toArray(new String[0])); + Sheet sheet = workbook.getSheetAt(0); + int rowNum = 1; + for (int i = 0; i < list.size(); i++) { + YxeUserTask item = list.get(i); + YxeTask task = item.getTask(); + Merchant merchant = task == null ? null : task.getMerchant(); + User user = item.getUser(); + Map salesQtyMap = buildSalesQtyMap(item.getSalesGroups()); + Map salesColumnQtyMap = salesExport.getRowQtyMaps().get(i); + Map productQtyMap = new LinkedHashMap<>(); + List currentProducts = taskProductMap.get(item.getTaskId()); + if (currentProducts != null && !currentProducts.isEmpty()) { + for (YxeTaskProduct taskProduct : currentProducts) { + String productName = getExportProductName(taskProduct); + if (StrUtil.isBlank(productName)) { + continue; + } + int qty = getCompletedQty(taskProduct, salesQtyMap); + productQtyMap.merge(buildProductHeaderKey(productName), qty, Integer::sum); + } + } + + List rowValues = new ArrayList<>(); + rowValues.add(item.getTaskId()); + rowValues.add(task == null ? "" : task.getTitle()); + rowValues.add(item.getCateId()); + rowValues.add(merchant == null ? item.getChain() : merchant.getChain()); + rowValues.add(merchant == null ? "" : merchant.getName()); + rowValues.add(item.getUserId()); + rowValues.add(getUserName(user)); + rowValues.add(getUserPhone(user)); + rowValues.add(user == null ? "" : user.getUserGroup()); + rowValues.add(getStatusText(item.getStatus())); + rowValues.add(resolveExportIncome(item, task)); + rowValues.add(formatDateTimeText(task == null ? null : task.getTaskStartTime())); + rowValues.add(formatDateTimeText(item.getInClockTime())); + rowValues.add(formatDateTimeText(item.getOutClockTime())); + rowValues.add(formatDateTimeText(item.getSubmitTime())); + rowValues.add(item.getSummary()); + rowValues.add(item.getRating()); + rowValues.add(formatDateTimeText(item.getCreateTime())); + for (String productHeader : productHeaderMap.values()) { + Integer qty = productQtyMap.get(buildProductHeaderKey(productHeader)); + rowValues.add(qty == null || qty == 0 ? "" : qty); + } + for (YxeSalesExportUtil.SalesColumn column : extraSalesColumns) { + rowValues.add(YxeSalesExportUtil.formatQty(salesColumnQtyMap.get(column.getKey()))); + } + excelExportUtil.writeRow(sheet, rowNum++, rowValues.toArray()); + } + excelExportUtil.autoSizeColumns(sheet, headers.size()); + return success(excelExportUtil.saveWorkbook(workbook, "用户任务数据", getLoginUserId())); + } + + private BigDecimal resolveExportIncome(YxeUserTask userTask, YxeTask task) { + if (userTask != null && userTask.getIncome() != null) { + return userTask.getIncome(); + } + if (task != null && task.getReward() != null) { + return task.getReward(); + } + return BigDecimal.ZERO; + } + + private String getUserName(User user) { + if (user == null) { + return ""; + } + if (user.getRealName() != null && !user.getRealName().trim().isEmpty()) { + return user.getRealName(); + } + return user.getNickname(); + } + + private String getUserPhone(User user) { + return user == null ? "" : user.getPhone(); + } + + private void trimAuditPage(PageResult pageResult) { + if (pageResult == null || pageResult.getList() == null || pageResult.getList().isEmpty()) { + return; + } + for (YxeUserTask item : pageResult.getList()) { + trimAuditUserTask(item); + } + } + + private void trimAuditUserTask(YxeUserTask item) { + if (item == null) { + return; + } + item.setVideo(null); + item.setClockPhotos(null); + item.setBoothPhotos(null); + item.setSalesGroups(null); + item.setReceiptPhoto(null); + item.setSummary(null); + item.setStoreList(null); + item.setLocation(null); + item.setLat(null); + item.setLng(null); + item.setComments(null); + item.setAuditReason(null); + User user = item.getUser(); + if (user != null) { + User liteUser = new User(); + liteUser.setUserId(user.getUserId()); + liteUser.setRealName(user.getRealName()); + liteUser.setNickname(user.getNickname()); + liteUser.setPhone(user.getPhone()); + item.setUser(liteUser); + } + YxeTask task = item.getTask(); + if (task != null) { + YxeTask liteTask = new YxeTask(); + liteTask.setId(task.getId()); + liteTask.setCateId(task.getCateId()); + liteTask.setTitle(task.getTitle()); + liteTask.setReward(task.getReward()); + liteTask.setMerchantId(task.getMerchantId()); + Merchant merchant = task.getMerchant(); + if (merchant != null) { + Merchant liteMerchant = new Merchant(); + liteMerchant.setId(merchant.getId()); + liteMerchant.setName(merchant.getName()); + liteMerchant.setChain(merchant.getChain()); + liteTask.setMerchant(liteMerchant); + } + item.setTask(liteTask); + } + } + + private AuditTaskSummaryVO toAuditTaskSummaryVO(YxeUserTask item) { + AuditTaskSummaryVO vo = new AuditTaskSummaryVO(); + if (item == null) { + return vo; + } + vo.setId(item.getId()); + vo.setTaskId(item.getTaskId()); + vo.setUserId(item.getUserId()); + vo.setStatus(item.getStatus()); + if (item.getTask() != null) { + vo.setTaskTitle(item.getTask().getTitle()); + if (item.getTask().getMerchant() != null) { + vo.setMerchantName(item.getTask().getMerchant().getName()); + vo.setChainName(item.getTask().getMerchant().getChain()); + } + } + if ((vo.getMerchantName() == null || vo.getMerchantName().trim().isEmpty()) && item.getChain() != null) { + vo.setChainName(item.getChain()); + } + vo.setSubmitTime(item.getSubmitTime() == null ? null : item.getSubmitTime().toString()); + User user = item.getUser(); + if (user != null) { + String ownerName = user.getRealName() != null && !user.getRealName().trim().isEmpty() ? user.getRealName() : user.getNickname(); + String phone = user.getPhone() == null ? "" : user.getPhone(); + vo.setOwner((ownerName == null ? "-" : ownerName) + "," + phone); + } + Object imageObj = null; + try { + imageObj = item.getImage() == null ? null : JSONArray.parse(item.getImage()); + } catch (Exception ignored) { + } + if (imageObj instanceof JSONArray) { + JSONArray array = (JSONArray) imageObj; + String[] imageList = new String[array.size()]; + for (int i = 0; i < array.size(); i++) { + Object value = array.get(i); + imageList[i] = value == null ? null : String.valueOf(value); + } + vo.setImageList(imageList); + } else if (item.getImage() != null && !item.getImage().trim().isEmpty()) { + vo.setImageList(new String[]{item.getImage()}); + } + return vo; + } + + private String getStatusText(Integer status) { + if (status == null) { + return ""; + } + switch (status) { + case 0: + return "待执行"; + case 1: + return "已完成待审核"; + case 2: + return "已完成"; + case 3: + return "已拒绝"; + default: + return String.valueOf(status); + } + } + + private String firstNonBlank(String... values) { + if (values == null) { + return null; + } + for (String value : values) { + if (StrUtil.isNotBlank(value)) { + return value.trim(); + } + } + return null; + } + + private void addProductHeader(Map productHeaderMap, String productName) { + String key = buildProductHeaderKey(productName); + if (StrUtil.isBlank(key) || productHeaderMap.containsKey(key)) { + return; + } + productHeaderMap.put(key, buildProductHeaderTitle(productName)); + } + + private String buildProductHeaderKey(String value) { + if (StrUtil.isBlank(value)) { + return ""; + } + String normalized = Normalizer.normalize(value, Normalizer.Form.NFKC); + return normalized.trim().replaceAll("[\\s\\u3000]+", "").toLowerCase(); + } + + private String buildProductHeaderTitle(String value) { + if (StrUtil.isBlank(value)) { + return ""; + } + String normalized = Normalizer.normalize(value, Normalizer.Form.NFKC); + return normalized.trim().replaceAll("[\\s\\u3000]+", " "); + } + + private String getExportProductName(YxeTaskProduct taskProduct) { + if (taskProduct == null) { + return null; + } + if (taskProduct.getProduct() != null && StrUtil.isNotBlank(taskProduct.getProduct().getTitle())) { + return taskProduct.getProduct().getTitle().trim(); + } + if (taskProduct.getGoods() != null && StrUtil.isNotBlank(taskProduct.getGoods().getTitle())) { + return taskProduct.getGoods().getTitle().trim(); + } + return firstNonBlank(taskProduct.getCode()); + } + + private String formatDateTimeText(LocalDateTime value) { + return value == null ? "" : value.format(TASK_TIME_FORMATTER_SECONDS); + } + + private String formatDateTimeText(String value) { + LocalDateTime dateTime = parseTaskDateTime(value); + return dateTime == null ? StrUtil.blankToDefault(value, "") : dateTime.format(TASK_TIME_FORMATTER_SECONDS); + } + + @ApiOperation("修改用户任务") + @PutMapping() + public ApiResult update(@RequestBody YxeUserTask yxeUserTask) { + if (yxeUserTask.getStatus() != null && (yxeUserTask.getStatus() == 0 || yxeUserTask.getStatus() == 1)) { + YxeUserTask yxeUserTask1 = yxeUserTaskService.getByIdRel(yxeUserTask.getId()); + YxeTask task = yxeTaskService.getByIdRel(yxeUserTask1.getTaskId()); + String submitLimitMessage = validateSubmitTime(yxeUserTask, yxeUserTask1, task, LocalDateTimeUtil.now()); + boolean firstClockPhotoSubmitted = isNewClockPhotoSubmitted(yxeUserTask.getClockPhotos(), yxeUserTask1.getClockPhotos(), 0); + boolean secondClockPhotoSubmitted = isNewClockPhotoSubmitted(yxeUserTask.getClockPhotos(), yxeUserTask1.getClockPhotos(), 1); + if (submitLimitMessage != null) { + return fail(submitLimitMessage); + } + if (firstClockPhotoSubmitted) { + yxeUserTask.setInClockTime(LocalDateTime.now()); + } + if (secondClockPhotoSubmitted) { + yxeUserTask.setOutClockTime(LocalDateTime.now()); + } + } + if (Integer.valueOf(1).equals(yxeUserTask.getStatus())) { + yxeUserTask.setSubmitTime(LocalDateTime.now()); + } + if (yxeUserTaskService.updateById(yxeUserTask)) { + if (Integer.valueOf(2).equals(yxeUserTask.getStatus())) { + YxeUserTask currentUserTask = yxeUserTaskService.getByIdRel(yxeUserTask.getId()); + YxeTask task = yxeTaskService.getById(currentUserTask.getTaskId()); + + List productList = yxeTaskProductService.listByTask(task.getId()); + BigDecimal realReward = BigDecimal.ZERO; + for (YxeTaskProduct product : productList) { + if (product.getAmount() != null && product.getAmount().compareTo(BigDecimal.ZERO) > 0) { + realReward = realReward.add(product.getAmount()); + } + } + BigDecimal income = task.getReward() == null ? BigDecimal.ZERO : task.getReward(); + if (productList.isEmpty() && !Integer.valueOf(4).equals(task.getCateId())) { + income = calculateManualIncomeBySalesGroups(currentUserTask); + } else if (realReward.compareTo(BigDecimal.ZERO) > 0) { + income = calculateIncomeBySalesGroups(currentUserTask, productList); + } + if (task.getExtraReward() != null && task.getExtraReward().compareTo(BigDecimal.ZERO) > 0) { + income = income.add(task.getExtraReward()); + } + YxeUserTask incomeUpdate = new YxeUserTask(); + incomeUpdate.setId(currentUserTask.getId()); + incomeUpdate.setIncome(income); + yxeUserTaskService.updateById(incomeUpdate); + + User user = userService.getById(currentUserTask.getUserId()); + UserBalanceLog userBalanceLog = new UserBalanceLog(); + userBalanceLog.setUserId(currentUserTask.getUserId()); + userBalanceLog.setOrderId(currentUserTask.getId()); + Integer scene = task.getCateId() == 4 ? 4 : 0; + userBalanceLog.setScene(scene); + userBalanceLog.setMoney(income); + userBalanceLog.setBalance(user.getBalance().add(income)); + String remark = task.getCateId() == 4 ? "跑店/巡店审核通过获得收入" : "药动销审核通过获得收入"; + userBalanceLog.setRemark(remark); + userBalanceLogService.save(userBalanceLog); + + user.setBalance(user.getBalance().add(income)); + userService.updateById(user); + + task.setStatus(2); + yxeTaskService.updateById(task); + } + return success("修改成功"); + } + return fail("修改失败"); + } + + private BigDecimal calculateIncomeBySalesGroups(YxeUserTask userTask, List productList) { + if (userTask == null || productList == null || productList.isEmpty() || StrUtil.isBlank(userTask.getSalesGroups())) { + return BigDecimal.ZERO; + } + + Map salesQtyMap = buildSalesQtyMap(userTask.getSalesGroups()); + if (salesQtyMap.isEmpty()) { + return BigDecimal.ZERO; + } + + BigDecimal income = BigDecimal.ZERO; + for (YxeTaskProduct taskProduct : productList) { + if (taskProduct.getAmount() == null || taskProduct.getAmount().compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + int completeQty = getCompletedQty(taskProduct, salesQtyMap); + if (completeQty <= 0) { + continue; + } + income = income.add(taskProduct.getAmount().multiply(BigDecimal.valueOf(completeQty))); + } + + return income.setScale(2, RoundingMode.HALF_UP); + } + + private BigDecimal calculateManualIncomeBySalesGroups(YxeUserTask userTask) { + if (userTask == null || StrUtil.isBlank(userTask.getSalesGroups())) { + return BigDecimal.ZERO; + } + + BigDecimal income = BigDecimal.ZERO; + try { + JSONArray salesGroupArray = JSONArray.parseArray(userTask.getSalesGroups()); + if (salesGroupArray == null) { + return BigDecimal.ZERO; + } + for (Object groupObj : salesGroupArray) { + if (!(groupObj instanceof JSONObject)) { + continue; + } + JSONArray items = ((JSONObject) groupObj).getJSONArray("items"); + if (items == null) { + continue; + } + for (Object itemObj : items) { + if (!(itemObj instanceof JSONObject)) { + continue; + } + JSONObject item = (JSONObject) itemObj; + Integer qty = parseQty(item.get("qty")); + if (qty == null || qty <= 0) { + continue; + } + BigDecimal singleIncome = parseManualTaskIncome(item); + if (singleIncome == null || singleIncome.compareTo(BigDecimal.ZERO) <= 0) { + continue; + } + income = income.add(singleIncome.multiply(BigDecimal.valueOf(qty))); + } + } + } catch (Exception ignored) { + return BigDecimal.ZERO; + } + + return income.setScale(2, RoundingMode.HALF_UP); + } + + private BigDecimal parseManualTaskIncome(JSONObject item) { + BigDecimal income = parseAmount(item.get("taskIncome")); + if (income != null) return income; + income = parseAmount(item.get("income")); + if (income != null) return income; + income = parseAmount(item.get("productIncome")); + if (income != null) return income; + income = parseAmount(item.get("reward")); + if (income != null) return income; + income = parseAmount(item.get("bonus")); + if (income != null) return income; + income = parseAmount(item.get("amount")); + if (income != null) return income; + income = parseAmount(item.get("value")); + if (income != null) return income; + JSONObject product = item.getJSONObject("product"); + if (product == null) { + return null; + } + income = parseAmount(product.get("taskIncome")); + if (income != null) return income; + income = parseAmount(product.get("income")); + if (income != null) return income; + income = parseAmount(product.get("productIncome")); + if (income != null) return income; + return parseAmount(product.get("reward")); + } + + private BigDecimal parseAmount(Object value) { + if (value == null) { + return null; + } + if (value instanceof BigDecimal) { + return (BigDecimal) value; + } + if (value instanceof Number) { + return BigDecimal.valueOf(((Number) value).doubleValue()); + } + String amountText = String.valueOf(value).trim(); + if (amountText.isEmpty()) { + return null; + } + try { + return new BigDecimal(amountText); + } catch (NumberFormatException e) { + return null; + } + } + + private Map buildSalesQtyMap(String salesGroups) { + Map salesQtyMap = new LinkedHashMap<>(); + try { + JSONArray salesGroupArray = JSONArray.parseArray(salesGroups); + if (salesGroupArray == null) { + return salesQtyMap; + } + for (Object groupObj : salesGroupArray) { + if (!(groupObj instanceof JSONObject)) { + continue; + } + JSONArray items = ((JSONObject) groupObj).getJSONArray("items"); + if (items == null) { + continue; + } + for (Object itemObj : items) { + if (!(itemObj instanceof JSONObject)) { + continue; + } + JSONObject item = (JSONObject) itemObj; + Integer qty = parseQty(item.get("qty")); + if (qty == null || qty <= 0) { + continue; + } + addSalesQty(salesQtyMap, buildIdKey(item.getInteger("productId")), qty); + addSalesQty(salesQtyMap, buildIdKey(item.getInteger("goodsId")), qty); + addSalesQty(salesQtyMap, buildTextKey("code", item.getString("code")), qty); + addSalesQty(salesQtyMap, buildTextKey("code", item.getString("goodsCode")), qty); + addSalesQty(salesQtyMap, buildTextKey("name", item.getString("name")), qty); + addSalesQty(salesQtyMap, buildTextKey("name", item.getString("title")), qty); + addSalesQty(salesQtyMap, buildTextKey("name", item.getString("productName")), qty); + addSalesQty(salesQtyMap, buildTextKey("name", item.getString("goodsName")), qty); + } + } + } catch (Exception ignored) { + return new LinkedHashMap<>(); + } + return salesQtyMap; + } + + private int getCompletedQty(YxeTaskProduct taskProduct, Map salesQtyMap) { + Integer qty = salesQtyMap.get(buildIdKey(taskProduct.getProductId())); + if (qty != null) { + return qty; + } + if (taskProduct.getProduct() != null) { + qty = salesQtyMap.get(buildTextKey("code", taskProduct.getProduct().getCode())); + if (qty != null) { + return qty; + } + qty = salesQtyMap.get(buildTextKey("name", taskProduct.getProduct().getTitle())); + if (qty != null) { + return qty; + } + } + return 0; + } + + private Integer parseQty(Object value) { + if (value == null) { + return null; + } + if (value instanceof Number) { + return ((Number) value).intValue(); + } + String qtyText = String.valueOf(value).trim(); + if (qtyText.isEmpty()) { + return null; + } + try { + return new BigDecimal(qtyText).intValue(); + } catch (NumberFormatException e) { + return null; + } + } + + private void addSalesQty(Map salesQtyMap, String key, Integer qty) { + if (key == null || qty == null || qty <= 0) { + return; + } + salesQtyMap.merge(key, qty, Integer::sum); + } + + private String buildIdKey(Integer productId) { + return productId == null ? null : "id:" + productId; + } + + private String buildTextKey(String prefix, String value) { + if (StrUtil.isBlank(value)) { + return null; + } + return prefix + ":" + normalizeKey(value); + } + + private String normalizeKey(String value) { + return value == null ? "" : value.trim().replaceAll("\\s+", "").toLowerCase(); + } + + private boolean hasProductHeader(Map productHeaderMap, String salesColumnTitle) { + if (productHeaderMap == null || productHeaderMap.isEmpty() || StrUtil.isBlank(salesColumnTitle)) { + return false; + } + String normalizedSalesTitle = buildProductHeaderKey(salesColumnTitle); + for (String productHeader : productHeaderMap.values()) { + String normalizedProductHeader = buildProductHeaderKey(productHeader); + if (normalizedSalesTitle.equals(normalizedProductHeader) + || normalizedSalesTitle.startsWith(normalizedProductHeader + "/") + || normalizedSalesTitle.startsWith(normalizedProductHeader + "(")) { + return true; + } + } + return false; + } + + private LocalDateTime parseTaskTime(String value) { + if (StrUtil.isBlank(value)) return null; + String trimmed = value.trim(); + try { + return LocalDateTimeUtil.parse(trimmed, TASK_TIME_FORMATTER_SECONDS); + } catch (Exception ignored) { + } + return LocalDateTimeUtil.parse(trimmed, TASK_TIME_FORMATTER); + } + + private String validateSubmitTime(YxeUserTask submittedTask, YxeUserTask currentTask, YxeTask task, LocalDateTime nowTime) { + LocalDateTime startTime = parseTaskTime(task.getTaskStartTime()); + LocalDateTime endTime = parseTaskTime(task.getTaskEndTime()); + + + boolean firstClockPhotoSubmitted = isNewClockPhotoSubmitted(submittedTask.getClockPhotos(), currentTask.getClockPhotos(), 0); + boolean secondClockPhotoSubmitted = isNewClockPhotoSubmitted(submittedTask.getClockPhotos(), currentTask.getClockPhotos(), 1); + + LocalDateTime latestClockTime = endTime.toLocalDate().atTime(23, 30); + if (nowTime.isAfter(latestClockTime)) + return "温馨提示:请于活动结束后提交下班打卡及任务,当日提交截止时间为 23:30;您已超时,无法提交!"; + if (submittedTask.getStatus() == 0) { + if (firstClockPhotoSubmitted) { + if (!isWithinWindow(nowTime, startTime.minusHours(2), latestClockTime)) + return "上班打卡照片仅可在任务开始前2小时内提交"; + else return null; + } + } + String time = endTime.format(DateTimeFormatter.ofPattern("HH:mm")); + if (secondClockPhotoSubmitted) { + LocalDateTime secondClockEndTime = endTime.plusHours(5); + if (secondClockEndTime.isAfter(latestClockTime)) { + secondClockEndTime = latestClockTime; + } + if (submittedTask.getStatus() == 0) { + if (nowTime.isBefore(endTime.plusMinutes(1))) { + return "温馨提示:请于活动结束后提交下班打卡及任务。"; + } + if (nowTime.isAfter(latestClockTime)) + return "温馨提示:请于活动结束后提交下班打卡及任务,当日提交截止时间为23:30"; + } + } + + if (submittedTask.getStatus() == 1 && task.getCateId() != 4) { + if (nowTime.isAfter(latestClockTime)) + return "温馨提示:请于活动结束后提交下班打卡及任务,当日提交截止时间为23:30"; + } + + boolean inNormalWindow = isWithinWindow(nowTime, startTime, latestClockTime); + if (inNormalWindow) { + return null; + } + if (submittedTask.getStatus() == 0) { + boolean otherFieldsChanged = hasOtherFieldChanged(submittedTask, currentTask); + + if (otherFieldsChanged) { + return "不在任务执行时间段,无法提交"; + } + } else return null; + + if (firstClockPhotoSubmitted || secondClockPhotoSubmitted) { + return null; + } + return "不在任务执行时间段,无法提交"; + } + + private boolean hasOtherFieldChanged(YxeUserTask submittedTask, YxeUserTask currentTask) { + return isFieldChanged(submittedTask.getImage(), currentTask.getImage()) + || isFieldChanged(submittedTask.getVideo(), currentTask.getVideo()) + || isFieldChanged(submittedTask.getBoothPhotos(), currentTask.getBoothPhotos()) + || isFieldChanged(submittedTask.getSalesGroups(), currentTask.getSalesGroups()) + || isFieldChanged(submittedTask.getSalesGroups(), currentTask.getStoreList()) + || isFieldChanged(submittedTask.getReceiptPhoto(), currentTask.getReceiptPhoto()); +// || isFieldChanged(submittedTask.getSummary(), currentTask.getSummary()); +// || isFieldChanged(submittedTask.getRating(), currentTask.getRating()) +// || isFieldChanged(submittedTask.getLat(), currentTask.getLat()) +// || isFieldChanged(submittedTask.getLng(), currentTask.getLng()) +// || isFieldChanged(submittedTask.getLocation(), currentTask.getLocation()) +// || isFieldChanged(submittedTask.getComments(), currentTask.getComments()); + } + + private boolean isFieldChanged(String submittedValue, String currentValue) { + return submittedValue != null && !Objects.equals(submittedValue, currentValue); + } + + private boolean isNewClockPhotoSubmitted(String submittedClockPhotos, String currentClockPhotos, int index) { + String submittedUrl = getClockPhotoUrl(submittedClockPhotos, index); + if (StrUtil.isBlank(submittedUrl)) { + return false; + } + return StrUtil.isBlank(getClockPhotoUrl(currentClockPhotos, index)); + } + + private String getClockPhotoUrl(String clockPhotos, int index) { + if (StrUtil.isBlank(clockPhotos)) { + return null; + } + try { + JSONArray jsonArray = JSONArray.parseArray(clockPhotos); + if (jsonArray == null || jsonArray.size() <= index) { + return null; + } + JSONObject jsonObject = jsonArray.getJSONObject(index); + if (jsonObject == null) { + return null; + } + return jsonObject.getString("url"); + } catch (Exception ignored) { + return null; + } + } + + private boolean isWithinWindow(LocalDateTime nowTime, LocalDateTime startTime, LocalDateTime endTime) { + return !nowTime.isBefore(startTime) && !nowTime.isAfter(endTime); + } + + @ApiOperation("删除用户任务") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeUserTaskService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + private LocalDateTime parseTaskDateTime(String taskDate) { + if (taskDate == null || taskDate.trim().isEmpty()) { + return null; + } + String value = taskDate.trim(); + DateTimeFormatter[] dateTimeFormatters = new DateTimeFormatter[]{ + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"), + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm") + }; + for (DateTimeFormatter formatter : dateTimeFormatters) { + try { + return LocalDateTime.parse(value, formatter); + } catch (DateTimeParseException ignored) { + } + } + try { + return LocalDate.parse(value, DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay(); + } catch (DateTimeParseException ignored) { + return null; + } + } + + @ApiOperation("批量添加用户任务") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeUserTaskService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改用户任务") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeUserTaskService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除用户任务") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeUserTaskService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("修复用户任务chain数据") + @PostMapping("/fixChain") + public ApiResult fixChain() { + List userTaskList = yxeUserTaskService.list( + new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .isNotNull(YxeUserTask::getTaskId) + ); + if (userTaskList.isEmpty()) { + return success("没有需要修复的数据"); + } + + Set taskIds = new HashSet<>(); + for (YxeUserTask userTask : userTaskList) { + if (userTask.getTaskId() != null && userTask.getTaskId() > 0) { + taskIds.add(userTask.getTaskId()); + } + } + if (taskIds.isEmpty()) { + return success("没有可匹配的任务数据"); + } + + List taskList = yxeTaskService.listByIds(taskIds); + java.util.Map taskMap = taskList.stream() + .collect(Collectors.toMap(YxeTask::getId, task -> task, (left, right) -> left)); + + List updateList = new ArrayList<>(); + for (YxeUserTask userTask : userTaskList) { + YxeTask task = taskMap.get(userTask.getTaskId()); + if (task == null) { + continue; + } + if (task.getChain() == null ? userTask.getChain() != null : !task.getChain().equals(userTask.getChain())) { + YxeUserTask updateTask = new YxeUserTask(); + updateTask.setId(userTask.getId()); + updateTask.setChain(task.getChain()); + updateList.add(updateTask); + } + } + + if (updateList.isEmpty()) { + return success("没有需要更新的数据"); + } + yxeUserTaskService.updateBatchById(updateList); + return success("修复成功,更新" + updateList.size() + "条数据"); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/controller/YxeVisitListController.java b/src/main/java/com/gxwebsoft/yxe/controller/YxeVisitListController.java new file mode 100644 index 0000000..93773ef --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/controller/YxeVisitListController.java @@ -0,0 +1,215 @@ +package com.gxwebsoft.yxe.controller; + +import com.gxwebsoft.common.core.utils.ExcelExportUtil; +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.FileRecord; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.yxe.service.YxeVisitListService; +import com.gxwebsoft.yxe.entity.YxeVisitList; +import com.gxwebsoft.yxe.param.YxeVisitListParam; +import com.gxwebsoft.yxe.utils.YxeSalesExportUtil; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 访问列表控制器 + * + * @author LX + * @since 2026-03-24 15:17:37 + */ +@Api(tags = "访问列表管理") +@RestController +@RequestMapping("/api/yxe/yxe-visit-list") +public class YxeVisitListController extends BaseController { + @Resource + private YxeVisitListService yxeVisitListService; + @Resource + private UserService userService; + @Resource + private ExcelExportUtil excelExportUtil; + + @ApiOperation("分页查询访问列表") + @GetMapping("/page") + public ApiResult> page(YxeVisitListParam param) { + // 使用关联查询 + return success(yxeVisitListService.pageRel(param)); + } + + @ApiOperation("查询全部访问列表") + @GetMapping() + public ApiResult> list(YxeVisitListParam param) { + // 使用关联查询 + return success(yxeVisitListService.listRel(param)); + } + + @ApiOperation("根据id查询访问列表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + // 使用关联查询 + return success(yxeVisitListService.getByIdRel(id)); + } + + @ApiOperation("添加访问列表") + @PostMapping() + public ApiResult save(@RequestBody YxeVisitList yxeVisitList) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + yxeVisitList.setUserId(loginUser.getUserId()); + } + if (yxeVisitListService.save(yxeVisitList)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("修改访问列表") + @PutMapping() + public ApiResult update(@RequestBody YxeVisitList yxeVisitList) { + if (yxeVisitListService.updateById(yxeVisitList)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("删除访问列表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (yxeVisitListService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("批量添加访问列表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (yxeVisitListService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @ApiOperation("批量修改访问列表") + @PutMapping("/batch") + public ApiResult updateBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(yxeVisitListService, "id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @ApiOperation("批量删除访问列表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (yxeVisitListService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @ApiOperation("导出访问列表") + @PostMapping("/export") + public ApiResult export(@RequestBody(required = false) YxeVisitListParam param) throws IOException { + if (param == null) { + param = new YxeVisitListParam(); + } + param.normalizeStringFields(); + List list = yxeVisitListService.listRel(param); + YxeSalesExportUtil.SalesExportResult salesExport = YxeSalesExportUtil.build( + list.stream().map(YxeVisitList::getSalesGroups).collect(java.util.stream.Collectors.toList()) + ); + List headers = new ArrayList<>(); + headers.add("ID"); + headers.add("提交人ID"); + headers.add("提交人姓名"); + headers.add("提交人手机号"); + headers.add("用户分组"); + headers.add("拜访人员"); + headers.add("沟通内容"); + headers.add("小结"); + headers.add("位置"); + headers.add("经度"); + headers.add("纬度"); + headers.add("状态"); + headers.add("创建时间"); + for (YxeSalesExportUtil.SalesColumn column : salesExport.getColumns()) { + headers.add(column.getTitle()); + } + XSSFWorkbook workbook = excelExportUtil.createWorkbook("访问列表", headers.toArray(new String[0])); + Sheet sheet = workbook.getSheetAt(0); + int rowNum = 1; + for (int i = 0; i < list.size(); i++) { + YxeVisitList item = list.get(i); + User user = userService.getById(item.getUserId()); + List rowValues = new ArrayList<>(); + rowValues.add(item.getId()); + rowValues.add(item.getUserId()); + rowValues.add(getUserName(user)); + rowValues.add(getUserPhone(user)); + rowValues.add(user == null ? "" : user.getUserGroup()); + rowValues.add(item.getName()); + rowValues.add(item.getContent()); + rowValues.add(item.getSummary()); + rowValues.add(item.getLocation()); + rowValues.add(item.getLng()); + rowValues.add(item.getLat()); + rowValues.add(getStatusText(item.getStatus())); + rowValues.add(item.getCreateTime()); + Map qtyMap = salesExport.getRowQtyMaps().get(i); + for (YxeSalesExportUtil.SalesColumn column : salesExport.getColumns()) { + rowValues.add(YxeSalesExportUtil.formatQty(qtyMap.get(column.getKey()))); + } + excelExportUtil.writeRow(sheet, rowNum++, rowValues.toArray()); + } + excelExportUtil.autoSizeColumns(sheet, headers.size()); + return success(excelExportUtil.saveWorkbook(workbook, "访问列表数据", getLoginUserId())); + } + + private String getUserName(User user) { + if (user == null) { + return ""; + } + if (user.getRealName() != null && !user.getRealName().trim().isEmpty()) { + return user.getRealName(); + } + return user.getNickname(); + } + + private String getUserPhone(User user) { + return user == null ? "" : user.getPhone(); + } + + private String getStatusText(Integer status) { + if (status == null) { + return ""; + } + switch (status) { + case 0: + return "待审核"; + case 1: + return "通过"; + case 2: + return "拒绝"; + default: + return String.valueOf(status); + } + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeChronicDiseaseCollection.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeChronicDiseaseCollection.java new file mode 100644 index 0000000..f385912 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeChronicDiseaseCollection.java @@ -0,0 +1,102 @@ +package com.gxwebsoft.yxe.entity; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 慢病收集 + * + * @author LX + * @since 2026-01-19 15:15:02 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeChronicDiseaseCollection对象", description = "慢病收集") +@TableName("yxe_chronic_disease_collection") +public class YxeChronicDiseaseCollection implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private String name; + + private String gender; + + private String phone; + + private String birthday; + + private String highBloodPressureValue; + + @ApiModelProperty(value = "是否高血压") + private Integer highBloodPressure; + + @ApiModelProperty(value = "是否高血糖") + private Integer highBloodSugar; + + @ApiModelProperty(value = "是否高血脂") + private Integer hyperlipidemia; + + @ApiModelProperty(value = "病史") + private String medicalHistory; + + @ApiModelProperty(value = "用药史") + private String medicationHistory; + + private String hemoglobinValue; + + private String anemiaLevel; + + private String thalassemiaType; + + private String systolicPressure; + + private String diastolicPressure; + + private String fastingBloodGlucose; + + private String chainName; + + private String merchantName; + + private String tracking; + + @TableField(value = "postprandial2hBloodGlucose") + private String postprandial2hBloodGlucose; + @TableField(value = "hba1c") + private String hba1c; + @TableField(value = "totalCholesterol") + private String totalCholesterol; + @TableField(value = "triglyceride") + private String triglyceride; + @TableField(value = "ldlC") + private String ldlC; + @TableField(value = "hdlC") + private String hdlC; + + private Integer userId; + + @ApiModelProperty(value = "状态, 0待审核 1通过 2驳回") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalAid.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeChronicDiseaseProduct.java similarity index 51% rename from src/main/java/com/gxwebsoft/law/entity/LawLegalAid.java rename to src/main/java/com/gxwebsoft/yxe/entity/YxeChronicDiseaseProduct.java index e7cfb13..020d702 100644 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalAid.java +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeChronicDiseaseProduct.java @@ -1,66 +1,54 @@ -package com.gxwebsoft.law.entity; +package com.gxwebsoft.yxe.entity; -import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; -import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; -import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + /** - * 法律援助申请 + * 慢病产品 * - * @author LX - * @since 2025-04-17 17:33:28 + * @author Codex + * @since 2026-04-13 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalAid对象", description = "法律援助申请") -@TableName("law_legal_aid") -public class LawLegalAid implements Serializable { +@ApiModel(value = "YxeChronicDiseaseProduct对象", description = "慢病产品") +@TableName("yxe_chronic_disease_product") +public class YxeChronicDiseaseProduct implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private Integer userId; + @ApiModelProperty(value = "连锁") + private String chain; - private String name; + @ApiModelProperty(value = "产品名") + private String productName; - private Integer gender; + @ApiModelProperty(value = "规格粒/片") + private BigDecimal specCount; - private String nation; + @ApiModelProperty(value = "说明书每天使用/次") + private BigDecimal dailyUsageCount; - private String phone; + @ApiModelProperty(value = "每次几粒/片") + private BigDecimal dosagePerTime; - private String birthday; + @ApiModelProperty(value = "1盒服用几天") + private BigDecimal boxUsageDays; - private String idCard; - - @ApiModelProperty(value = "住所地址") - private String liveAddress; - - @ApiModelProperty(value = "户籍地址") - private String householdAddress; - - private String companyName; - - private String email; - - private String proxyName; - - private String proxyPhone; - - private String proxyRelation; - - private String proxyIdCard; - - @ApiModelProperty(value = "说明") - private String content; + @ApiModelProperty(value = "状态, 0禁用, 1启用") + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic @@ -74,5 +62,4 @@ public class LawLegalAid implements Serializable { @ApiModelProperty(value = "修改时间") private LocalDateTime updateTime; - } diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeGoods.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeGoods.java new file mode 100644 index 0000000..2e2193d --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeGoods.java @@ -0,0 +1,84 @@ +package com.gxwebsoft.yxe.entity; + +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableLogic; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * + * + * @author LX + * @since 2026-03-25 19:33:28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeGoods对象", description = "") +@TableName("yxe_goods") +public class YxeGoods implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "分类") + private String cate; + + @ApiModelProperty(value = "编号") + private String code; + + @ApiModelProperty(value = "连锁") + private String chain; + + @ApiModelProperty(value = "品名") + private String title; + + @ApiModelProperty(value = "规格") + private String spec; + + @ApiModelProperty(value = "厂家") + private String maker; + + @ApiModelProperty(value = "厂家简称") + private String makerAbb; + + private String cover; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + private String startTime; + + private String endTime; + + @ApiModelProperty(value = "额外奖励") + private BigDecimal extraIncome; + + private String extraStartTime; + + private String extraEndTime; + +} diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeProduct.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeProduct.java new file mode 100644 index 0000000..0943269 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeProduct.java @@ -0,0 +1,103 @@ +package com.gxwebsoft.yxe.entity; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.List; + +import com.gxwebsoft.shop.entity.Merchant; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * + * + * @author LX + * @since 2026-01-22 15:18:14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeProduct对象", description = "") +@TableName("yxe_product") +public class YxeProduct implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "编号") + private String code; + + @ApiModelProperty(value = "品名") + private String title; + + @ApiModelProperty(value = "规格") + private String spec; + + private String chain; + + private Integer type; + + @ApiModelProperty(value = "厂家") + private String maker; + + private String cover; + + private String cate; + + @ApiModelProperty(value = "厂家简称") + private String makerAbb; + + private BigDecimal income; + + private BigDecimal taskIncome; + + private Integer merchantId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + private String startTime; + + private String endTime; + + private BigDecimal extraIncome; + + private String extraStartTime; + + private String extraEndTime; + + @TableField(exist = false) + private List children; + + @TableField(exist = false) + private Merchant merchant; + + @TableField(exist = false) + private String merchantCode; + + @TableField(exist = false) + private List extraIncomeList; + +} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalCalType.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeProductExtraIncome.java similarity index 62% rename from src/main/java/com/gxwebsoft/law/entity/LawLegalCalType.java rename to src/main/java/com/gxwebsoft/yxe/entity/YxeProductExtraIncome.java index a0a362e..e743c80 100644 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalCalType.java +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeProductExtraIncome.java @@ -1,5 +1,6 @@ -package com.gxwebsoft.law.entity; +package com.gxwebsoft.yxe.entity; +import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -12,29 +13,34 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 法律计算器配置 + * * * @author LX - * @since 2025-04-17 19:23:47 + * @since 2026-03-04 09:18:42 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalCalType对象", description = "法律计算器配置") -@TableName("law_legal_cal_type") -public class LawLegalCalType implements Serializable { +@ApiModel(value = "YxeProductExtraIncome对象", description = "") +@TableName("yxe_product_extra_income") +public class YxeProductExtraIncome implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private String icon; + private Integer productId; - private String title; + private String startTime; - @ApiModelProperty(value = "类型") + private String endTime; + + private BigDecimal income; + + @ApiModelProperty(value = "排序(数字越小越靠前)") private Integer sortNumber; - private Integer userId; + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic @@ -43,7 +49,7 @@ public class LawLegalCalType implements Serializable { @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "创建时间") + @ApiModelProperty(value = "注册时间") private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckContent.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeProductMerchantExtraIncome.java similarity index 53% rename from src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckContent.java rename to src/main/java/com/gxwebsoft/yxe/entity/YxeProductMerchantExtraIncome.java index be40e08..1b2522c 100644 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckContent.java +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeProductMerchantExtraIncome.java @@ -1,44 +1,49 @@ -package com.gxwebsoft.law.entity; +package com.gxwebsoft.yxe.entity; + +import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.*; -import java.math.BigDecimal; import java.time.LocalDateTime; import java.io.Serializable; -import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.shop.entity.Merchant; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; /** - * 用户填写企业法制体检内容 + * * * @author LX - * @since 2025-04-17 17:48:54 + * @since 2026-04-15 21:46:51 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalOrgCheckContent对象", description = "用户填写企业法制体检内容") -@TableName("law_legal_org_check_content") -public class LawLegalOrgCheckContent implements Serializable { +@ApiModel(value = "YxeProductMerchantExtraIncome对象", description = "") +@TableName("yxe_product_merchant_extra_income") +public class YxeProductMerchantExtraIncome implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private Integer groupId; + private Integer productId; - private String content; + private Integer merchantId; - private String title; + private String startTime; - private Integer userId; + private String endTime; - private BigDecimal point; + private BigDecimal income; - private String aiContent; + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic @@ -47,12 +52,12 @@ public class LawLegalOrgCheckContent implements Serializable { @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "创建时间") + @ApiModelProperty(value = "注册时间") private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") private LocalDateTime updateTime; @TableField(exist = false) - private User user; + private Merchant merchant; } diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeReimburse.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeReimburse.java new file mode 100644 index 0000000..e29067f --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeReimburse.java @@ -0,0 +1,82 @@ +package com.gxwebsoft.yxe.entity; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; + +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 报销 + * + * @author LX + * @since 2026-01-19 13:53:23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeReimburse对象", description = "报销") +@TableName("yxe_reimburse") +public class YxeReimburse implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private Integer userId; + + private String startDate; + + private String endDate; + + @ApiModelProperty(value = "交通费") + private BigDecimal transportCosts; + + @ApiModelProperty(value = "住宿费") + private BigDecimal liveCosts; + + @ApiModelProperty(value = "其他费用") + private BigDecimal otherCosts; + + @ApiModelProperty(value = "凭证") + private String images; + + private String fromProvince; + + private String fromCity; + + private String fromRegion; + + private String toProvince; + + private String toCity; + + private String toRegion; + + private String remark; + + @ApiModelProperty(value = "状态, 0待审核 1通过 2驳回") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + @TableField(exist = false) + private User user; +} diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeSelfReport.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeSelfReport.java new file mode 100644 index 0000000..5a9f66d --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeSelfReport.java @@ -0,0 +1,103 @@ +package com.gxwebsoft.yxe.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.shop.entity.Merchant; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 自主填报 + * + * @author Codex + * @since 2026-04-10 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeSelfReport对象", description = "自主填报") +@TableName("yxe_self_report") +public class YxeSelfReport implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private Integer userId; + + private Integer merchantId; + + private String merchantName; + + private String chainId; + + private String chainName; + + private String date; + + @ApiModelProperty(value = "活动时间") + private String activityTime; + + private String image; + + private String clockPhotos; + + private String boothPhotos; + + private String salesGroups; + + private String receiptPhoto; + + private String summary; + + private String rating; + + private String lat; + + private String lng; + + private BigDecimal reward; + + @ApiModelProperty(value = "位置") + private String location; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0待审核, 1通过, 2拒绝") + private Integer status; + + @ApiModelProperty(value = "驳回原因") + private String rejectReason; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + @TableField(exist = false) + private User user; + + @TableField(exist = false) + private Merchant merchant; +} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawNotaryConfig.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeService.java similarity index 71% rename from src/main/java/com/gxwebsoft/law/entity/LawNotaryConfig.java rename to src/main/java/com/gxwebsoft/yxe/entity/YxeService.java index 260c8d1..ddaa7e1 100644 --- a/src/main/java/com/gxwebsoft/law/entity/LawNotaryConfig.java +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeService.java @@ -1,9 +1,9 @@ -package com.gxwebsoft.law.entity; +package com.gxwebsoft.yxe.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; -import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableLogic; import java.io.Serializable; import io.swagger.annotations.ApiModel; @@ -12,29 +12,29 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 公证配置 + * 客服 * * @author LX - * @since 2025-05-17 16:10:35 + * @since 2026-03-25 02:56:05 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawNotaryConfig对象", description = "公证配置") -@TableName("law_notary_config") -public class LawNotaryConfig implements Serializable { +@ApiModel(value = "YxeService对象", description = "客服") +@TableName("yxe_service") +public class YxeService implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private String title; - private String type; - @ApiModelProperty(value = "配置") - private String configList; + private String title; - private Integer userId; + private String content; + + @ApiModelProperty(value = "状态, 0上架, 1下架") + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic @@ -43,7 +43,7 @@ public class LawNotaryConfig implements Serializable { @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "创建时间") + @ApiModelProperty(value = "注册时间") private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeShare.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeShare.java new file mode 100644 index 0000000..3afcc29 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeShare.java @@ -0,0 +1,98 @@ +package com.gxwebsoft.yxe.entity; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.List; + +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.shop.entity.Merchant; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeShare对象", description = "") +@TableName("yxe_share") +public class YxeShare implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private Integer userId; + + private Integer merchantId; + + private String merchantName; + + private String orderNo; + + private String date; + + private String image; + + private BigDecimal amount; + + private BigDecimal income; + + private BigDecimal extraIncome; + + private String province; + + private String city; + + private String lat; + + private String lng; + + private String remark; + + private Integer isCopy; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + @TableField(exist = false) + private List detailList; + + @TableField(exist = false) + private List shareList; + + @TableField(exist = false) + private User user; + + @TableField(exist = false) + private Boolean hasChange; + + @TableField(exist = false) + private Merchant merchant; + +} diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeShareDetail.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeShareDetail.java new file mode 100644 index 0000000..8cb7bdf --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeShareDetail.java @@ -0,0 +1,80 @@ +package com.gxwebsoft.yxe.entity; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeShareDetail对象", description = "") +@TableName("yxe_share_detail") +public class YxeShareDetail implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private Integer goodsId; + + private Integer shareId; + + private String goodsCode; + + private String sourceCode; + + private String goodsName; + + private String spec; + + private String province; + + private String city; + + private String num; + + private BigDecimal income; + + private BigDecimal incomeSingle; + + private BigDecimal extraIncome; + + private BigDecimal extraIncomeSingle; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + @TableField(exist = false) + private YxeProduct product; + + @TableField(exist = false) + private Integer totalNum; +} diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeTask.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeTask.java new file mode 100644 index 0000000..c8f6e63 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeTask.java @@ -0,0 +1,142 @@ +package com.gxwebsoft.yxe.entity; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; +import java.util.List; + +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.shop.entity.Merchant; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeTask对象", description = "") +@TableName("yxe_task") +public class YxeTask implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "分类id") + private Integer cateId; + + @ApiModelProperty(value = "名称") + private String title; + + @ApiModelProperty(value = "金额") + private BigDecimal reward; + + private BigDecimal extraReward; + + @ApiModelProperty(value = "店铺id") + private Integer merchantId; + + @ApiModelProperty(value = "数量") + private Integer num; + + @ApiModelProperty(value = "详情") + private String detail; + + private String policy; + + private String chain; + + private String province; + + private String city; + + @ApiModelProperty(value = "日期") + private String date; + + private String taskStartTime; + + private String taskEndTime; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + private Integer storeNum; + + private Integer appointUserId; + + @TableField(exist = false) + private User appointUser; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0上架, 1下架") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + @TableField(exist = false) + private YxeTaskCate cate; + + @TableField(exist = false) + private Merchant merchant; + + @TableField(exist = false) + private String merchantName; + + @TableField(exist = false) + private Integer doneNum; + + @TableField(exist = false) + private Integer authingNum; + + @TableField(exist = false) + private Integer processingNum; + + @TableField(exist = false) + private BigDecimal progress; + + @TableField(exist = false) + private List productList; + + @TableField(exist = false) + private List productGroup; + + @TableField(exist = false) + private List goodsGroup; + + @TableField(exist = false) + private YxeUserTask userTask; + + @TableField(exist = false) + private User user; + + @TableField(exist = false) + private String userPhone; + + @TableField(exist = false) + private String realName; +} diff --git a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckType.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeTaskCate.java similarity index 65% rename from src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckType.java rename to src/main/java/com/gxwebsoft/yxe/entity/YxeTaskCate.java index 58cd4f5..b17d1dd 100644 --- a/src/main/java/com/gxwebsoft/law/entity/LawLegalOrgCheckType.java +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeTaskCate.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.entity; +package com.gxwebsoft.yxe.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; @@ -12,35 +12,34 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 企业法制体检配置 + * * * @author LX - * @since 2025-04-17 18:04:46 + * @since 2026-01-17 14:11:56 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawLegalOrgCheckType对象", description = "企业法制体检配置") -@TableName("law_legal_org_check_type") -public class LawLegalOrgCheckType implements Serializable { +@ApiModel(value = "YxeTaskCate对象", description = "") +@TableName("yxe_task_cate") +public class YxeTaskCate implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private String icon; - private String title; - private String fileList; + @ApiModelProperty(value = "用户ID") + private Integer userId; - private String content; - - private String scoreConfig; - - @ApiModelProperty(value = "类型") + @ApiModelProperty(value = "排序(数字越小越靠前)") private Integer sortNumber; - private Integer userId; + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0待审核 1通过 2驳回") + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic @@ -49,7 +48,7 @@ public class LawLegalOrgCheckType implements Serializable { @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "创建时间") + @ApiModelProperty(value = "注册时间") private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") diff --git a/src/main/java/com/gxwebsoft/law/entity/LawOrg.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeTaskProduct.java similarity index 55% rename from src/main/java/com/gxwebsoft/law/entity/LawOrg.java rename to src/main/java/com/gxwebsoft/yxe/entity/YxeTaskProduct.java index 6c0f5af..85c787c 100644 --- a/src/main/java/com/gxwebsoft/law/entity/LawOrg.java +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeTaskProduct.java @@ -1,7 +1,8 @@ -package com.gxwebsoft.law.entity; +package com.gxwebsoft.yxe.entity; import com.baomidou.mybatisplus.annotation.*; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.io.Serializable; import io.swagger.annotations.ApiModel; @@ -10,39 +11,34 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 机构 + * * * @author LX - * @since 2025-04-14 00:35:34 + * @since 2026-01-22 15:26:52 */ @Data @EqualsAndHashCode(callSuper = false) -@ApiModel(value = "LawOrg对象", description = "机构") -@TableName("law_org") -public class LawOrg implements Serializable { +@ApiModel(value = "YxeTaskProduct对象", description = "") +@TableName("yxe_task_product") +public class YxeTaskProduct implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; - private String title; + private Integer taskId; - @ApiModelProperty(value = "0律所 1基层法律服务所 2仲裁机构 3公证处") - private String type; + private Integer productId; - private Integer provinceId; + private Integer num; - private Integer cityId; + private BigDecimal amount; - private String phone; + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; - private String address; - - private Integer areaId; - - private String lat; - - private String lng; + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @TableLogic @@ -51,18 +47,18 @@ public class LawOrg implements Serializable { @ApiModelProperty(value = "租户id") private Integer tenantId; - @ApiModelProperty(value = "创建时间") + @ApiModelProperty(value = "注册时间") private LocalDateTime createTime; @ApiModelProperty(value = "修改时间") private LocalDateTime updateTime; @TableField(exist = false) - private String province; + private YxeProduct product; @TableField(exist = false) - private String city; + private YxeGoods goods; @TableField(exist = false) - private String region; + private String code; } diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeUserTask.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeUserTask.java new file mode 100644 index 0000000..d16075a --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeUserTask.java @@ -0,0 +1,107 @@ +package com.gxwebsoft.yxe.entity; + +import com.baomidou.mybatisplus.annotation.*; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.io.Serializable; + +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 用户任务 + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeUserTask对象", description = "用户任务") +@TableName("yxe_user_task") +public class YxeUserTask implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private Integer taskId; + + private String image; + + private String video; + + private String clockPhotos; + + private String boothPhotos; + + private String salesGroups; + + private String receiptPhoto; + + private String summary; + + private String rating; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + private Integer cateId; + + private String lat; + + private String lng; + + private String location; + + private String auditReason; + + private String chain; + + private BigDecimal income; + + private Integer isCopy; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0待审核 1通过 2驳回") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + private LocalDateTime submitTime; + + private LocalDateTime inClockTime; + + private LocalDateTime outClockTime; + + private String storeList; + + @TableField(exist = false) + private YxeTask task; + + @TableField(exist = false) + private User user; + + @TableField(exist = false) + private Integer count; + +} diff --git a/src/main/java/com/gxwebsoft/yxe/entity/YxeVisitList.java b/src/main/java/com/gxwebsoft/yxe/entity/YxeVisitList.java new file mode 100644 index 0000000..463d408 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/entity/YxeVisitList.java @@ -0,0 +1,79 @@ +package com.gxwebsoft.yxe.entity; + +import com.baomidou.mybatisplus.annotation.*; + +import java.time.LocalDateTime; +import java.io.Serializable; + +import com.gxwebsoft.common.system.entity.User; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 访问列表 + * + * @author LX + * @since 2026-03-24 15:17:37 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "YxeVisitList对象", description = "访问列表") +@TableName("yxe_visit_list") +public class YxeVisitList implements Serializable { + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private Integer userId; + + private String lat; + + private String lng; + + @ApiModelProperty(value = "位置") + private String location; + + @ApiModelProperty(value = "拜访人员") + private String name; + + @ApiModelProperty(value = "沟通内容") + private String content; + + @ApiModelProperty(value = "小结") + private String summary; + + private String photos; + + private String chain; + + @TableField(exist = false) + private String salesGroups; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0上架, 1下架") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "修改时间") + private LocalDateTime updateTime; + + @TableField(exist = false) + private User user; +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeChronicDiseaseCollectionMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeChronicDiseaseCollectionMapper.java new file mode 100644 index 0000000..d54b8a0 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeChronicDiseaseCollectionMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeChronicDiseaseCollection; +import com.gxwebsoft.yxe.param.YxeChronicDiseaseCollectionParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 慢病收集Mapper + * + * @author LX + * @since 2026-01-19 15:15:02 + */ +public interface YxeChronicDiseaseCollectionMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeChronicDiseaseCollectionParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeChronicDiseaseCollectionParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeChronicDiseaseProductMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeChronicDiseaseProductMapper.java new file mode 100644 index 0000000..c41c7e0 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeChronicDiseaseProductMapper.java @@ -0,0 +1,31 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeChronicDiseaseProduct; +import com.gxwebsoft.yxe.param.YxeChronicDiseaseProductParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 慢病产品Mapper + * + * @author Codex + * @since 2026-04-13 + */ +public interface YxeChronicDiseaseProductMapper extends BaseMapper { + + /** + * 分页查询 + */ + List selectPageRel( + @Param("page") IPage page, + @Param("param") YxeChronicDiseaseProductParam param + ); + + /** + * 查询全部 + */ + List selectListRel(@Param("param") YxeChronicDiseaseProductParam param); +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeGoodsMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeGoodsMapper.java new file mode 100644 index 0000000..4c22bae --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeGoodsMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeGoods; +import com.gxwebsoft.yxe.param.YxeGoodsParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-03-25 19:33:28 + */ +public interface YxeGoodsMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeGoodsParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeGoodsParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeProductExtraIncomeMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeProductExtraIncomeMapper.java new file mode 100644 index 0000000..76d2741 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeProductExtraIncomeMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeProductExtraIncome; +import com.gxwebsoft.yxe.param.YxeProductExtraIncomeParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-03-04 09:18:42 + */ +public interface YxeProductExtraIncomeMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeProductExtraIncomeParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeProductExtraIncomeParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeProductMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeProductMapper.java new file mode 100644 index 0000000..8e663a4 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeProductMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeProduct; +import com.gxwebsoft.yxe.param.YxeProductParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-01-22 15:18:14 + */ +public interface YxeProductMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeProductParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeProductParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeProductMerchantExtraIncomeMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeProductMerchantExtraIncomeMapper.java new file mode 100644 index 0000000..fcbca0b --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeProductMerchantExtraIncomeMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeProductMerchantExtraIncome; +import com.gxwebsoft.yxe.param.YxeProductMerchantExtraIncomeParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-04-15 21:46:51 + */ +public interface YxeProductMerchantExtraIncomeMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeProductMerchantExtraIncomeParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeProductMerchantExtraIncomeParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeReimburseMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeReimburseMapper.java new file mode 100644 index 0000000..3de80a6 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeReimburseMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeReimburse; +import com.gxwebsoft.yxe.param.YxeReimburseParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 报销Mapper + * + * @author LX + * @since 2026-01-19 13:53:23 + */ +public interface YxeReimburseMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeReimburseParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeReimburseParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeSelfReportMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeSelfReportMapper.java new file mode 100644 index 0000000..201e555 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeSelfReportMapper.java @@ -0,0 +1,26 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeSelfReport; +import com.gxwebsoft.yxe.param.YxeSelfReportParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 自主填报Mapper + * + * @author Codex + * @since 2026-04-10 + */ +public interface YxeSelfReportMapper extends BaseMapper { + + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeSelfReportParam param); + + List selectAuditPageRel(@Param("page") IPage page, + @Param("param") YxeSelfReportParam param); + + List selectListRel(@Param("param") YxeSelfReportParam param); +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeServiceMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeServiceMapper.java new file mode 100644 index 0000000..92f2f00 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeServiceMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeService; +import com.gxwebsoft.yxe.param.YxeServiceParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 客服Mapper + * + * @author LX + * @since 2026-03-25 02:56:05 + */ +public interface YxeServiceMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeServiceParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeServiceParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeShareDetailMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeShareDetailMapper.java new file mode 100644 index 0000000..870aaa8 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeShareDetailMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeShareDetail; +import com.gxwebsoft.yxe.param.YxeShareDetailParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +public interface YxeShareDetailMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeShareDetailParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeShareDetailParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeShareMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeShareMapper.java new file mode 100644 index 0000000..6a65bc2 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeShareMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeShare; +import com.gxwebsoft.yxe.param.YxeShareParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +public interface YxeShareMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeShareParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeShareParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeTaskCateMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeTaskCateMapper.java new file mode 100644 index 0000000..4bfb684 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeTaskCateMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeTaskCate; +import com.gxwebsoft.yxe.param.YxeTaskCateParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +public interface YxeTaskCateMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeTaskCateParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeTaskCateParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeTaskMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeTaskMapper.java new file mode 100644 index 0000000..3e11d6e --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeTaskMapper.java @@ -0,0 +1,45 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeTask; +import com.gxwebsoft.yxe.param.YxeTaskParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +public interface YxeTaskMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeTaskParam param); + + /** + * 分页总数 + * + * @param param 查询参数 + * @return long + */ + Long selectCountRel(@Param("param") YxeTaskParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeTaskParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeTaskProductMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeTaskProductMapper.java new file mode 100644 index 0000000..3e1f6fe --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeTaskProductMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeTaskProduct; +import com.gxwebsoft.yxe.param.YxeTaskProductParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper + * + * @author LX + * @since 2026-01-22 15:26:52 + */ +public interface YxeTaskProductMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeTaskProductParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeTaskProductParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeUserTaskMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeUserTaskMapper.java new file mode 100644 index 0000000..53887e3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeUserTaskMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeUserTask; +import com.gxwebsoft.yxe.param.YxeUserTaskParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 用户任务Mapper + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +public interface YxeUserTaskMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeUserTaskParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeUserTaskParam param); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/YxeVisitListMapper.java b/src/main/java/com/gxwebsoft/yxe/mapper/YxeVisitListMapper.java new file mode 100644 index 0000000..95bc290 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/YxeVisitListMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.yxe.entity.YxeVisitList; +import com.gxwebsoft.yxe.param.YxeVisitListParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 访问列表Mapper + * + * @author LX + * @since 2026-03-24 15:17:37 + */ +public interface YxeVisitListMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") YxeVisitListParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") YxeVisitListParam param); + +} diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalAidMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeChronicDiseaseCollectionMapper.xml similarity index 60% rename from src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalAidMapper.xml rename to src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeChronicDiseaseCollectionMapper.xml index 454a426..8568482 100644 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalAidMapper.xml +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeChronicDiseaseCollectionMapper.xml @@ -1,23 +1,20 @@ - + SELECT a.* - FROM law_legal_aid a + FROM yxe_chronic_disease_collection a AND a.id = #{param.id} - - AND a.user_id = #{param.userId} - AND a.name LIKE CONCAT('%', #{param.name}, '%') - AND a.gender = #{param.gender} + AND a.gender LIKE CONCAT('%', #{param.gender}, '%') AND a.phone LIKE CONCAT('%', #{param.phone}, '%') @@ -25,17 +22,26 @@ AND a.birthday LIKE CONCAT('%', #{param.birthday}, '%') - - AND a.id_card LIKE CONCAT('%', #{param.idCard}, '%') + + AND a.high_blood_pressure = #{param.highBloodPressure} - - AND a.live_address LIKE CONCAT('%', #{param.liveAddress}, '%') + + AND a.high_blood_sugar = #{param.highBloodSugar} - - AND a.household_adderss LIKE CONCAT('%', #{param.householdAdderss}, '%') + + AND a.hyperlipidemia = #{param.hyperlipidemia} - - AND a.content LIKE CONCAT('%', #{param.content}, '%') + + AND a.medical_history LIKE CONCAT('%', #{param.medicalHistory}, '%') + + + AND a.medication_history LIKE CONCAT('%', #{param.medicationHistory}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.status = #{param.status} AND a.deleted = #{param.deleted} @@ -50,10 +56,8 @@ AND a.create_time <= #{param.createTimeEnd} - AND ( - a.name LIKE CONCAT('%', #{param.keywords}, '%') + AND (a.name LIKE CONCAT('%', #{param.keywords}, '%') OR a.phone LIKE CONCAT('%', #{param.keywords}, '%') - OR a.id_card LIKE CONCAT('%', #{param.keywords}, '%') ) @@ -61,12 +65,12 @@ - - diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsPhoneModelMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeChronicDiseaseProductMapper.xml similarity index 55% rename from src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsPhoneModelMapper.xml rename to src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeChronicDiseaseProductMapper.xml index b632f3f..5a463d6 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsPhoneModelMapper.xml +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeChronicDiseaseProductMapper.xml @@ -1,21 +1,19 @@ - + - - SELECT a.*, b.name as phone_model_name, b.code as phone_model_code - FROM shop_goods_phone_model a - LEFT JOIN vivo_phone_model b ON a.model_id = b.id + SELECT a.* + FROM yxe_chronic_disease_product a AND a.id = #{param.id} - - AND a.goods_id = #{param.goodsId} + + AND a.chain LIKE CONCAT('%', #{param.chain}, '%') - - AND a.model_id = #{param.modelId} + + AND a.product_name LIKE CONCAT('%', #{param.productName}, '%') AND a.status = #{param.status} @@ -32,16 +30,21 @@ AND a.create_time <= #{param.createTimeEnd} + + AND ( + a.chain LIKE CONCAT('%', #{param.keywords}, '%') + OR a.product_name LIKE CONCAT('%', #{param.keywords}, '%') + ) + + ORDER BY a.create_time DESC - - - - diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeGoodsMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeGoodsMapper.xml new file mode 100644 index 0000000..e453375 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeGoodsMapper.xml @@ -0,0 +1,92 @@ + + + + + + + SELECT a.* + FROM yxe_goods a + + + AND a.id = #{param.id} + + + AND a.cate LIKE CONCAT('%', #{param.cate}, '%') + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.chain LIKE CONCAT('%', #{param.chain}, '%') + + + AND a.title LIKE CONCAT('%', #{param.title}, '%') + + + AND a.spec LIKE CONCAT('%', #{param.spec}, '%') + + + AND a.maker LIKE CONCAT('%', #{param.maker}, '%') + + + AND a.maker_abb LIKE CONCAT('%', #{param.makerAbb}, '%') + + + AND a.cover LIKE CONCAT('%', #{param.cover}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND a.start_time LIKE CONCAT('%', #{param.startTime}, '%') + + + AND a.end_time LIKE CONCAT('%', #{param.endTime}, '%') + + + AND a.extra_income = #{param.extraIncome} + + + AND a.extra_start_time LIKE CONCAT('%', #{param.extraStartTime}, '%') + + + AND a.extra_end_time LIKE CONCAT('%', #{param.extraEndTime}, '%') + + + AND (a.title LIKE CONCAT('%', #{param.keywords}, '%') + OR a.code LIKE CONCAT('%', #{param.keywords}, '%') + OR a.maker LIKE CONCAT('%', #{param.keywords}, '%') + OR a.maker_abb LIKE CONCAT('%', #{param.keywords}, '%') + OR a.cate LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + ORDER BY a.create_time DESC + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckTypeSuggestMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeProductExtraIncomeMapper.xml similarity index 61% rename from src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckTypeSuggestMapper.xml rename to src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeProductExtraIncomeMapper.xml index 5b3308f..1ebe7aa 100644 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckTypeSuggestMapper.xml +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeProductExtraIncomeMapper.xml @@ -1,26 +1,32 @@ - + SELECT a.* - FROM law_legal_org_check_type_suggest a + FROM yxe_product_extra_income a AND a.id = #{param.id} - - AND a.icon LIKE CONCAT('%', #{param.icon}, '%') + + AND a.product_id = #{param.productId} - - AND a.title LIKE CONCAT('%', #{param.title}, '%') + + AND a.start_time LIKE CONCAT('%', #{param.startTime}, '%') + + + AND a.end_time LIKE CONCAT('%', #{param.endTime}, '%') + + + AND a.income = #{param.income} AND a.sort_number = #{param.sortNumber} - - AND a.user_id = #{param.userId} + + AND a.status = #{param.status} AND a.deleted = #{param.deleted} @@ -42,12 +48,12 @@ - - diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeProductMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeProductMapper.xml new file mode 100644 index 0000000..015a075 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeProductMapper.xml @@ -0,0 +1,79 @@ + + + + + + + SELECT a.* + FROM yxe_product a + + + AND a.id = #{param.id} + + + AND a.merchant_id = #{param.merchantId} + + + AND a.type = #{param.type} + + + AND a.code LIKE CONCAT('%', #{param.code}, '%') + + + AND a.chain LIKE CONCAT('%', #{param.chain}, '%') + + + AND a.title LIKE CONCAT('%', #{param.title}, '%') + + + AND a.spec LIKE CONCAT('%', #{param.spec}, '%') + + + AND a.maker LIKE CONCAT('%', #{param.maker}, '%') + + + AND a.maker_abb LIKE CONCAT('%', #{param.makerAbb}, '%') + + + AND a.income = #{param.income} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.title LIKE CONCAT('%', #{param.keywords}, '%') + OR a.maker LIKE CONCAT('%', #{param.keywords}, '%') + OR a.maker_abb LIKE CONCAT('%', #{param.keywords}, '%') + OR a.code LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + ORDER BY a.create_time DESC + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeProductMerchantExtraIncomeMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeProductMerchantExtraIncomeMapper.xml new file mode 100644 index 0000000..85bbfee --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeProductMerchantExtraIncomeMapper.xml @@ -0,0 +1,63 @@ + + + + + + + SELECT a.* + FROM yxe_product_merchant_extra_income a + + + AND a.id = #{param.id} + + + AND a.product_id = #{param.productId} + + + AND a.merchant_id = #{param.merchantId} + + + AND a.start_time LIKE CONCAT('%', #{param.startTime}, '%') + + + AND a.end_time LIKE CONCAT('%', #{param.endTime}, '%') + + + AND a.income = #{param.income} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeReimburseMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeReimburseMapper.xml new file mode 100644 index 0000000..41e830b --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeReimburseMapper.xml @@ -0,0 +1,80 @@ + + + + + + + SELECT a.* + FROM yxe_reimburse a + + + AND a.id = #{param.id} + + + AND a.user_id = #{param.userId} + + + AND a.start_date LIKE CONCAT('%', #{param.startDate}, '%') + + + AND a.end_date LIKE CONCAT('%', #{param.endDate}, '%') + + + AND a.start_date >= #{param.startDateStart} + + + AND a.end_date <= #{param.endDateEnd} + + + AND a.transport_costs = #{param.transportCosts} + + + AND a.live_costs = #{param.liveCosts} + + + AND a.other_costs = #{param.otherCosts} + + + AND a.images LIKE CONCAT('%', #{param.images}, '%') + + + AND CONCAT(IFNULL(a.from_province, ''), IFNULL(a.from_city, ''), IFNULL(a.from_region, '')) + LIKE CONCAT('%', #{param.fromAddress}, '%') + + + AND CONCAT(IFNULL(a.to_province, ''), IFNULL(a.to_city, ''), IFNULL(a.to_region, '')) + LIKE CONCAT('%', #{param.toAddress}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeSelfReportMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeSelfReportMapper.xml new file mode 100644 index 0000000..1d9e99f --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeSelfReportMapper.xml @@ -0,0 +1,101 @@ + + + + + + SELECT a.* + FROM yxe_self_report a + + + AND a.id = #{param.id} + + + AND a.id IN + + #{item} + + + + AND a.user_id = #{param.userId} + + + AND a.user_id IN (SELECT user_id FROM sys_user WHERE deleted = 0 AND user_group LIKE CONCAT('%', #{param.userGroup}, '%')) + + + AND a.user_id IN + + #{item} + + + + AND a.merchant_id = #{param.merchantId} + + + AND a.merchant_name LIKE CONCAT('%', #{param.merchantName}, '%') + + + AND a.chain_id = #{param.chainId} + + + AND a.chain_name LIKE CONCAT('%', #{param.chainName}, '%') + + + AND a.date = #{param.date} + + + AND a.date >= #{param.dateStart} + + + AND a.date <= #{param.dateEnd} + + + AND a.activity_time = #{param.activityTime} + + + AND a.image LIKE CONCAT('%', #{param.image}, '%') + + + AND a.summary LIKE CONCAT('%', #{param.summary}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND ( + a.merchant_name LIKE CONCAT('%', #{param.keywords}, '%') + OR a.chain_name LIKE CONCAT('%', #{param.keywords}, '%') + OR a.summary LIKE CONCAT('%', #{param.keywords}, '%') + OR a.location LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalDocConfigMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeServiceMapper.xml similarity index 71% rename from src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalDocConfigMapper.xml rename to src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeServiceMapper.xml index f74e99f..f3fa340 100644 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalDocConfigMapper.xml +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeServiceMapper.xml @@ -1,29 +1,26 @@ - + SELECT a.* - FROM law_legal_doc_config a + FROM yxe_service a AND a.id = #{param.id} - - AND a.type_id = #{param.typeId} + + AND a.type LIKE CONCAT('%', #{param.type}, '%') AND a.title LIKE CONCAT('%', #{param.title}, '%') - - AND a.type LIKE CONCAT('%', #{param.type}, '%') + + AND a.content LIKE CONCAT('%', #{param.content}, '%') - - AND a.answer LIKE CONCAT('%', #{param.answer}, '%') - - - AND a.user_id = #{param.userId} + + AND a.status = #{param.status} AND a.deleted = #{param.deleted} @@ -45,12 +42,12 @@ - - diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeShareDetailMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeShareDetailMapper.xml new file mode 100644 index 0000000..6553c7e --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeShareDetailMapper.xml @@ -0,0 +1,69 @@ + + + + + + + SELECT a.* + FROM yxe_share_detail a + + + AND a.id = #{param.id} + + + AND a.share_id = #{param.shareId} + + + AND a.province = #{param.province} + + + AND a.city = #{param.city} + + + AND a.goods_name LIKE CONCAT('%', #{param.goodsName}, '%') + + + AND a.spec LIKE CONCAT('%', #{param.spec}, '%') + + + AND a.num = #{param.num} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + GROUP BY a.goods_name + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeShareMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeShareMapper.xml new file mode 100644 index 0000000..eda8a1a --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeShareMapper.xml @@ -0,0 +1,82 @@ + + + + + + + SELECT a.* + FROM yxe_share a + + + AND a.id = #{param.id} + + + AND a.user_id = #{param.userId} + + + AND a.user_id IN (SELECT user_id FROM sys_user WHERE deleted = 0 AND user_group LIKE CONCAT('%', #{param.userGroup}, '%')) + + + AND a.merchant_id = #{param.merchantId} + + + AND a.merchant_id IN + + #{merchantId} + + + + AND a.is_copy = #{param.isCopy} + + + AND a.province = #{param.province} + + + AND a.city = #{param.city} + + + AND a.merchant_name LIKE CONCAT('%', #{param.merchantName}, '%') + + + AND a.order_no LIKE CONCAT('%', #{param.orderNo}, '%') + + + AND a.amount = #{param.amount} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + ORDER BY a.create_time DESC + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckTypeMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeTaskCateMapper.xml similarity index 72% rename from src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckTypeMapper.xml rename to src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeTaskCateMapper.xml index 1f4d9ff..fb220bb 100644 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalOrgCheckTypeMapper.xml +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeTaskCateMapper.xml @@ -1,26 +1,32 @@ - + SELECT a.* - FROM law_legal_org_check_type a + FROM yxe_task_cate a AND a.id = #{param.id} - - AND a.icon LIKE CONCAT('%', #{param.icon}, '%') + + AND a.id in (1, 4) AND a.title LIKE CONCAT('%', #{param.title}, '%') + + AND a.user_id = #{param.userId} + AND a.sort_number = #{param.sortNumber} - - AND a.user_id = #{param.userId} + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} AND a.deleted = #{param.deleted} @@ -42,12 +48,12 @@ - - diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeTaskMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeTaskMapper.xml new file mode 100644 index 0000000..e027a54 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeTaskMapper.xml @@ -0,0 +1,113 @@ + + + + + + + + + AND a.id = #{param.id} + + + AND a.cate_id = #{param.cateId} + + + AND a.title LIKE CONCAT('%', #{param.title}, '%') + + + AND a.chain LIKE CONCAT('%', #{param.chain}, '%') + + + AND a.cate_id IN + + #{item} + + + + AND a.reward = #{param.reward} + + + AND a.merchant_id = #{param.merchantId} + + + AND a.num = #{param.num} + + + AND a.province = #{param.province} + + + AND a.city = #{param.city} + + + AND a.detail LIKE CONCAT('%', #{param.detail}, '%') + + + AND a.date LIKE CONCAT('%', #{param.date}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.appoint_user_id = #{param.appointUserId} + + + AND a.appoint_user_id IN (SELECT user_id FROM sys_user WHERE deleted = 0 AND user_group LIKE CONCAT('%', #{param.userGroup}, '%')) + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND a.task_start_time >= #{param.taskStartTimeStart} + + + AND a.task_start_time <= #{param.taskStartTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalCalTypeMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeTaskProductMapper.xml similarity index 70% rename from src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalCalTypeMapper.xml rename to src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeTaskProductMapper.xml index e5aead6..3374f20 100644 --- a/src/main/java/com/gxwebsoft/law/mapper/xml/LawLegalCalTypeMapper.xml +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeTaskProductMapper.xml @@ -1,26 +1,26 @@ - + SELECT a.* - FROM law_legal_cal_type a + FROM yxe_task_product a AND a.id = #{param.id} - - AND a.icon LIKE CONCAT('%', #{param.icon}, '%') + + AND a.task_id = #{param.taskId} - - AND a.title LIKE CONCAT('%', #{param.title}, '%') + + AND a.product_id = #{param.productId} AND a.sort_number = #{param.sortNumber} - - AND a.user_id = #{param.userId} + + AND a.status = #{param.status} AND a.deleted = #{param.deleted} @@ -42,12 +42,12 @@ - - diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeUserTaskMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeUserTaskMapper.xml new file mode 100644 index 0000000..1ad21f8 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeUserTaskMapper.xml @@ -0,0 +1,100 @@ + + + + + + + SELECT a.* + FROM yxe_user_task a + + + AND a.id = #{param.id} + + + AND a.id IN + + #{item} + + + + AND a.task_id = #{param.taskId} + + + AND a.task_id IN + + #{item} + + + + AND a.cate_id = #{param.cateId} + + + AND a.cate_id IN + + #{item} + + + + AND a.is_copy = #{param.isCopy} + + + AND a.image LIKE CONCAT('%', #{param.image}, '%') + + + AND a.video LIKE CONCAT('%', #{param.video}, '%') + + + AND a.chain LIKE CONCAT('%', #{param.chain}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.user_id IN (SELECT user_id FROM sys_user WHERE deleted = 0 AND user_group LIKE CONCAT('%', #{param.userGroup}, '%')) + + + AND a.lat LIKE CONCAT('%', #{param.lat}, '%') + + + AND a.lng LIKE CONCAT('%', #{param.lng}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + ORDER BY a.create_time DESC + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeVisitListMapper.xml b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeVisitListMapper.xml new file mode 100644 index 0000000..8922a1e --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/mapper/xml/YxeVisitListMapper.xml @@ -0,0 +1,94 @@ + + + + + + + SELECT a.* + FROM yxe_visit_list a + + + AND a.id = #{param.id} + + + AND a.id IN + + #{item} + + + + AND a.user_id = #{param.userId} + + + AND a.user_id IN (SELECT user_id FROM sys_user WHERE deleted = 0 AND user_group LIKE CONCAT('%', #{param.userGroup}, '%')) + + + AND a.user_id IN + + #{item} + + + + AND a.lat LIKE CONCAT('%', #{param.lat}, '%') + + + AND a.lng LIKE CONCAT('%', #{param.lng}, '%') + + + AND a.location LIKE CONCAT('%', #{param.location}, '%') + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.content LIKE CONCAT('%', #{param.content}, '%') + + + AND a.summary LIKE CONCAT('%', #{param.summary}, '%') + + + AND a.photos LIKE CONCAT('%', #{param.photos}, '%') + + + AND a.chain LIKE CONCAT('%', #{param.chain}, '%') + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + AND (a.comments LIKE CONCAT('%', #{param.keywords}, '%') + ) + + + ORDER BY a.create_time DESC + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalAppraisalParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeChronicDiseaseCollectionParam.java similarity index 52% rename from src/main/java/com/gxwebsoft/law/param/LawLegalAppraisalParam.java rename to src/main/java/com/gxwebsoft/yxe/param/YxeChronicDiseaseCollectionParam.java index aa38cd9..efea4d6 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalAppraisalParam.java +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeChronicDiseaseCollectionParam.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.yxe.param; import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; @@ -11,49 +11,53 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 司法鉴定申请查询参数 + * 慢病收集查询参数 * * @author LX - * @since 2025-05-06 17:11:41 + * @since 2026-01-19 15:15:02 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalAppraisalParam对象", description = "司法鉴定申请查询参数") -public class LawLegalAppraisalParam extends BaseParam { +@ApiModel(value = "YxeChronicDiseaseCollectionParam对象", description = "慢病收集查询参数") +public class YxeChronicDiseaseCollectionParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; - @QueryField(type = QueryType.EQ) - private Integer userId; - private String name; - @QueryField(type = QueryType.EQ) - private Integer gender; + private String gender; private String phone; private String birthday; - private String idCard; + @ApiModelProperty(value = "是否高血压") + @QueryField(type = QueryType.EQ) + private Integer highBloodPressure; - @ApiModelProperty(value = "住所地址") - private String liveAddress; + @ApiModelProperty(value = "是否高血糖") + @QueryField(type = QueryType.EQ) + private Integer highBloodSugar; - @ApiModelProperty(value = "户籍地址") - private String householdAddress; + @ApiModelProperty(value = "是否高血脂") + @QueryField(type = QueryType.EQ) + private Integer hyperlipidemia; + + @ApiModelProperty(value = "病史") + private String medicalHistory; + + @ApiModelProperty(value = "用药史") + private String medicationHistory; @QueryField(type = QueryType.EQ) - private Integer orgId; + private Integer userId; - @ApiModelProperty(value = "说明") - private String content; - - @ApiModelProperty(value = "详情") - private String detail; + @ApiModelProperty(value = "状态, 0待审核 1通过 2驳回") + @QueryField(type = QueryType.EQ) + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) diff --git a/src/main/java/com/gxwebsoft/shop/param/GoodsPhoneModelParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeChronicDiseaseProductParam.java similarity index 62% rename from src/main/java/com/gxwebsoft/shop/param/GoodsPhoneModelParam.java rename to src/main/java/com/gxwebsoft/yxe/param/YxeChronicDiseaseProductParam.java index 9f73150..1e2d7fe 100644 --- a/src/main/java/com/gxwebsoft/shop/param/GoodsPhoneModelParam.java +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeChronicDiseaseProductParam.java @@ -1,42 +1,41 @@ -package com.gxwebsoft.shop.param; +package com.gxwebsoft.yxe.param; +import com.fasterxml.jackson.annotation.JsonInclude; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; -import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; /** - * 商品匹配机型查询参数 + * 慢病产品查询参数 * - * @author 科技小王子 - * @since 2024-03-12 01:30:55 + * @author Codex + * @since 2026-04-13 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "GoodsPhoneModelParam对象", description = "商品匹配机型查询参数") -public class GoodsPhoneModelParam extends BaseParam { +@ApiModel(value = "YxeChronicDiseaseProductParam对象", description = "慢病产品查询参数") +public class YxeChronicDiseaseProductParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; - @QueryField(type = QueryType.EQ) - private Integer goodsId; + @ApiModelProperty(value = "连锁") + private String chain; - @QueryField(type = QueryType.EQ) - private Integer modelId; + @ApiModelProperty(value = "产品名") + private String productName; - @ApiModelProperty(value = "状态, 0上架, 1下架") + @ApiModelProperty(value = "状态, 0禁用, 1启用") @QueryField(type = QueryType.EQ) private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) private Integer deleted; - } diff --git a/src/main/java/com/gxwebsoft/yxe/param/YxeGoodsParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeGoodsParam.java new file mode 100644 index 0000000..a16df1e --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeGoodsParam.java @@ -0,0 +1,76 @@ +package com.gxwebsoft.yxe.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 查询参数 + * + * @author LX + * @since 2026-03-25 19:33:28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "YxeGoodsParam对象", description = "查询参数") +public class YxeGoodsParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "分类") + private String cate; + + @ApiModelProperty(value = "编号") + private String code; + + @ApiModelProperty(value = "品名") + private String title; + + @ApiModelProperty(value = "规格") + private String spec; + + @ApiModelProperty(value = "连锁") + private String chain; + + @ApiModelProperty(value = "厂家") + private String maker; + + @ApiModelProperty(value = "厂家简称") + private String makerAbb; + + private String cover; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + private String startTime; + + private String endTime; + + @ApiModelProperty(value = "额外奖励") + @QueryField(type = QueryType.EQ) + private BigDecimal extraIncome; + + private String extraStartTime; + + private String extraEndTime; + +} diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckTypeParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeProductExtraIncomeParam.java similarity index 59% rename from src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckTypeParam.java rename to src/main/java/com/gxwebsoft/yxe/param/YxeProductExtraIncomeParam.java index 31ac842..2028efa 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalOrgCheckTypeParam.java +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeProductExtraIncomeParam.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.yxe.param; import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; @@ -11,31 +11,38 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 企业法制体检配置查询参数 + * 查询参数 * * @author LX - * @since 2025-04-17 18:04:46 + * @since 2026-03-04 09:18:42 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalOrgCheckTypeParam对象", description = "企业法制体检配置查询参数") -public class LawLegalOrgCheckTypeParam extends BaseParam { +@ApiModel(value = "YxeProductExtraIncomeParam对象", description = "查询参数") +public class YxeProductExtraIncomeParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; - private String icon; + @QueryField(type = QueryType.EQ) + private Integer productId; - private String title; + private String startTime; - @ApiModelProperty(value = "类型") + private String endTime; + + @QueryField(type = QueryType.EQ) + private BigDecimal income; + + @ApiModelProperty(value = "排序(数字越小越靠前)") @QueryField(type = QueryType.EQ) private Integer sortNumber; + @ApiModelProperty(value = "状态, 0正常, 1冻结") @QueryField(type = QueryType.EQ) - private Integer userId; + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) diff --git a/src/main/java/com/gxwebsoft/yxe/param/YxeProductMerchantExtraIncomeParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeProductMerchantExtraIncomeParam.java new file mode 100644 index 0000000..cf4a8bc --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeProductMerchantExtraIncomeParam.java @@ -0,0 +1,54 @@ +package com.gxwebsoft.yxe.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 查询参数 + * + * @author LX + * @since 2026-04-15 21:46:51 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "YxeProductMerchantExtraIncomeParam对象", description = "查询参数") +public class YxeProductMerchantExtraIncomeParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + @QueryField(type = QueryType.EQ) + private Integer productId; + + @QueryField(type = QueryType.EQ) + private Integer merchantId; + + private String startTime; + + private String endTime; + + @QueryField(type = QueryType.EQ) + private BigDecimal income; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/gxwebsoft/yxe/param/YxeProductParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeProductParam.java new file mode 100644 index 0000000..7d75acf --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeProductParam.java @@ -0,0 +1,65 @@ +package com.gxwebsoft.yxe.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 查询参数 + * + * @author LX + * @since 2026-01-22 15:18:14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "YxeProductParam对象", description = "查询参数") +public class YxeProductParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "编号") + private String code; + + @ApiModelProperty(value = "品名") + private String title; + + private String chain; + + private Integer type; + + @ApiModelProperty(value = "规格") + private String spec; + + private Integer merchantId; + + @ApiModelProperty(value = "厂家") + private String maker; + + @ApiModelProperty(value = "厂家简称") + private String makerAbb; + + @QueryField(type = QueryType.EQ) + private BigDecimal income; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/gxwebsoft/yxe/param/YxeReimburseParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeReimburseParam.java new file mode 100644 index 0000000..c55442f --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeReimburseParam.java @@ -0,0 +1,71 @@ +package com.gxwebsoft.yxe.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 报销查询参数 + * + * @author LX + * @since 2026-01-19 13:53:23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "YxeReimburseParam对象", description = "报销查询参数") +public class YxeReimburseParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + @QueryField(type = QueryType.EQ) + private Integer userId; + + private String startDate; + + private String endDate; + + @ApiModelProperty(value = "交通费") + @QueryField(type = QueryType.EQ) + private BigDecimal transportCosts; + + @ApiModelProperty(value = "住宿费") + @QueryField(type = QueryType.EQ) + private BigDecimal liveCosts; + + @ApiModelProperty(value = "其他费用") + @QueryField(type = QueryType.EQ) + private BigDecimal otherCosts; + + @ApiModelProperty(value = "凭证") + private String images; + + @ApiModelProperty(value = "出发地") + private String fromAddress; + + @ApiModelProperty(value = "目的地") + private String toAddress; + + @ApiModelProperty(value = "开始日期起") + private String startDateStart; + + @ApiModelProperty(value = "结束日期止") + private String endDateEnd; + + @ApiModelProperty(value = "状态, 0待审核 1通过 2驳回") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/gxwebsoft/yxe/param/YxeSelfReportParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeSelfReportParam.java new file mode 100644 index 0000000..299e82c --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeSelfReportParam.java @@ -0,0 +1,82 @@ +package com.gxwebsoft.yxe.param; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Set; + +/** + * 自主填报查询参数 + * + * @author Codex + * @since 2026-04-10 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "YxeSelfReportParam对象", description = "自主填报查询参数") +public class YxeSelfReportParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + @TableField(exist = false) + private String idList; + + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "用户分组") + private String userGroup; + + @TableField(exist = false) + private Set userIds; + + @QueryField(type = QueryType.EQ) + private Integer merchantId; + + private String merchantName; + + private String chainId; + + private String chainName; + + private String date; + + @TableField(exist = false) + private String dateStart; + + @TableField(exist = false) + private String dateEnd; + + @ApiModelProperty(value = "活动时间") + @QueryField(type = QueryType.EQ) + private String activityTime; + + private String image; + + private String summary; + + @ApiModelProperty(value = "状态, 0待审核, 1通过, 2拒绝") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @ApiModelProperty(value = "提交人姓名") + @TableField(exist = false) + private String realName; + + @TableField(exist = false) + private Integer auditLite; +} diff --git a/src/main/java/com/gxwebsoft/law/param/LawNotaryConfigParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeServiceParam.java similarity index 69% rename from src/main/java/com/gxwebsoft/law/param/LawNotaryConfigParam.java rename to src/main/java/com/gxwebsoft/yxe/param/YxeServiceParam.java index a185d10..5edb9b6 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawNotaryConfigParam.java +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeServiceParam.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.yxe.param; import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; @@ -11,28 +11,30 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 公证配置查询参数 + * 客服查询参数 * * @author LX - * @since 2025-05-17 16:10:35 + * @since 2026-03-25 02:56:05 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawNotaryConfigParam对象", description = "公证配置查询参数") -public class LawNotaryConfigParam extends BaseParam { +@ApiModel(value = "YxeServiceParam对象", description = "客服查询参数") +public class YxeServiceParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; + private String type; + private String title; - @ApiModelProperty(value = "配置") - private String configList; + private String content; + @ApiModelProperty(value = "状态, 0上架, 1下架") @QueryField(type = QueryType.EQ) - private Integer userId; + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) diff --git a/src/main/java/com/gxwebsoft/shop/param/GoodsPriceParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeShareDetailParam.java similarity index 61% rename from src/main/java/com/gxwebsoft/shop/param/GoodsPriceParam.java rename to src/main/java/com/gxwebsoft/yxe/param/YxeShareDetailParam.java index 6496618..b4e6478 100644 --- a/src/main/java/com/gxwebsoft/shop/param/GoodsPriceParam.java +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeShareDetailParam.java @@ -1,5 +1,8 @@ -package com.gxwebsoft.shop.param; +package com.gxwebsoft.yxe.param; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableField; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -9,36 +12,41 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; -import java.math.BigDecimal; - /** - * 商品价格()查询参数 + * 查询参数 * - * @author 科技小王子 - * @since 2024-03-12 01:35:40 + * @author LX + * @since 2026-01-19 12:09:51 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "GoodsPriceParam对象", description = "商品价格()查询参数") -public class GoodsPriceParam extends BaseParam { +@ApiModel(value = "YxeShareDetailParam对象", description = "查询参数") +public class YxeShareDetailParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; @QueryField(type = QueryType.EQ) - private Integer goodsId; + private Integer shareId; + + private String goodsName; + + private String spec; + + private String province; + + private String city; - @ApiModelProperty(value = "售价") @QueryField(type = QueryType.EQ) - private BigDecimal amount; + private BigDecimal num; - @ApiModelProperty(value = "返利比例") + @ApiModelProperty(value = "排序(数字越小越靠前)") @QueryField(type = QueryType.EQ) - private BigDecimal commissionRate; + private Integer sortNumber; - @ApiModelProperty(value = "状态, 0上架, 1下架") + @ApiModelProperty(value = "状态, 0正常, 1冻结") @QueryField(type = QueryType.EQ) private Integer status; @@ -46,12 +54,6 @@ public class GoodsPriceParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer deleted; - private String province; - - private String city; - - @ApiModelProperty(value = "区代ID") - @QueryField(type = QueryType.EQ) - private Integer userId; - + @TableField(exist = false) + private Boolean groupByProduct; } diff --git a/src/main/java/com/gxwebsoft/shop/param/GoodsServiceParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeShareParam.java similarity index 57% rename from src/main/java/com/gxwebsoft/shop/param/GoodsServiceParam.java rename to src/main/java/com/gxwebsoft/yxe/param/YxeShareParam.java index abaad85..77560e8 100644 --- a/src/main/java/com/gxwebsoft/shop/param/GoodsServiceParam.java +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeShareParam.java @@ -1,5 +1,6 @@ -package com.gxwebsoft.shop.param; +package com.gxwebsoft.yxe.param; +import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -9,48 +10,54 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** - * 商品服务与承诺记录表查询参数 + * 查询参数 * - * @author 科技小王子 - * @since 2022-11-23 21:57:50 + * @author LX + * @since 2026-01-19 12:09:51 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "GoodsServiceParam对象", description = "商品服务与承诺记录表查询参数") -public class GoodsServiceParam extends BaseParam { +@ApiModel(value = "YxeShareParam对象", description = "查询参数") +public class YxeShareParam extends BaseParam { private static final long serialVersionUID = 1L; - @ApiModelProperty(value = "商品服务ID") @QueryField(type = QueryType.EQ) - private Integer serviceId; + private Integer id; - @ApiModelProperty(value = "服务名称") - private String name; - - @ApiModelProperty(value = "概述") - private String summary; - - @ApiModelProperty(value = "是否默认(新增商品时)") - @QueryField(type = QueryType.EQ) - private Integer isDefault; - - @ApiModelProperty(value = "用户ID") @QueryField(type = QueryType.EQ) private Integer userId; - @ApiModelProperty(value = "所属门店ID") + @ApiModelProperty(value = "用户分组") + private String userGroup; + @QueryField(type = QueryType.EQ) - private Integer shopId; + private Integer merchantId; + + private List merchantIds; + + private String merchantName; + + private String chain; + + private String province; + + private String city; + + private String orderNo; + + private Integer isCopy; + + @QueryField(type = QueryType.EQ) + private BigDecimal amount; @ApiModelProperty(value = "排序(数字越小越靠前)") @QueryField(type = QueryType.EQ) private Integer sortNumber; - @ApiModelProperty(value = "备注") - private String comments; - @ApiModelProperty(value = "状态, 0正常, 1冻结") @QueryField(type = QueryType.EQ) private Integer status; @@ -59,4 +66,6 @@ public class GoodsServiceParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer deleted; + private Integer auditLite; + } diff --git a/src/main/java/com/gxwebsoft/law/param/LawLegalCalTypeParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeTaskCateParam.java similarity index 58% rename from src/main/java/com/gxwebsoft/law/param/LawLegalCalTypeParam.java rename to src/main/java/com/gxwebsoft/yxe/param/YxeTaskCateParam.java index 0788f57..fbad5b8 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawLegalCalTypeParam.java +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeTaskCateParam.java @@ -1,6 +1,8 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.yxe.param; import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableField; import com.gxwebsoft.common.core.annotation.QueryField; import com.gxwebsoft.common.core.annotation.QueryType; import com.gxwebsoft.common.core.web.BaseParam; @@ -11,34 +13,43 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 法律计算器配置查询参数 + * 查询参数 * * @author LX - * @since 2025-04-17 19:23:47 + * @since 2026-01-17 14:11:56 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawLegalCalTypeParam对象", description = "法律计算器配置查询参数") -public class LawLegalCalTypeParam extends BaseParam { +@ApiModel(value = "YxeTaskCateParam对象", description = "查询参数") +public class YxeTaskCateParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; - private String icon; - private String title; - @ApiModelProperty(value = "类型") + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "排序(数字越小越靠前)") @QueryField(type = QueryType.EQ) private Integer sortNumber; + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0待审核 1通过 2驳回") @QueryField(type = QueryType.EQ) - private Integer userId; + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) private Integer deleted; + @TableField(exist = false) + private Boolean filter; + } diff --git a/src/main/java/com/gxwebsoft/yxe/param/YxeTaskParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeTaskParam.java new file mode 100644 index 0000000..237b4fd --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeTaskParam.java @@ -0,0 +1,110 @@ +package com.gxwebsoft.yxe.param; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.gxwebsoft.yxe.entity.YxeUserTask; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 查询参数 + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "YxeTaskParam对象", description = "查询参数") +public class YxeTaskParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + @ApiModelProperty(value = "分类id") + @QueryField(type = QueryType.EQ) + private Integer cateId; + + @ApiModelProperty(value = "名称") + private String title; + + @ApiModelProperty(value = "金额") + @QueryField(type = QueryType.EQ) + private BigDecimal reward; + + @ApiModelProperty(value = "店铺id") + @QueryField(type = QueryType.EQ) + private Integer merchantId; + + @ApiModelProperty(value = "数量") + @QueryField(type = QueryType.EQ) + private Integer num; + + @ApiModelProperty(value = "详情") + private String detail; + + @TableField(exist = false) + private String cateIdList; + + private String province; + + private String city; + + private String chain; + + @TableField(exist = false) + private String markAbb; + + @ApiModelProperty(value = "日期") + private String date; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + private Integer appointUserId; + + @ApiModelProperty(value = "指定用户分组") + private String userGroup; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0上架, 1下架") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @TableField(exist = false) + private Integer userTaskStatus; + + @TableField(exist = false) + private Integer takeUserId; + + @TableField(exist = false) + private YxeUserTask userTask; + + @TableField(exist = false) + private Boolean notExpired; + + @TableField(exist = false) + private String taskStartTimeStart; + + @TableField(exist = false) + private String taskStartTimeEnd; +} diff --git a/src/main/java/com/gxwebsoft/law/param/LawOrgParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeTaskProductParam.java similarity index 66% rename from src/main/java/com/gxwebsoft/law/param/LawOrgParam.java rename to src/main/java/com/gxwebsoft/yxe/param/YxeTaskProductParam.java index 8da8a85..09c80e9 100644 --- a/src/main/java/com/gxwebsoft/law/param/LawOrgParam.java +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeTaskProductParam.java @@ -1,4 +1,4 @@ -package com.gxwebsoft.law.param; +package com.gxwebsoft.yxe.param; import java.math.BigDecimal; import com.gxwebsoft.common.core.annotation.QueryField; @@ -11,38 +11,34 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 机构查询参数 + * 查询参数 * * @author LX - * @since 2025-04-14 00:35:34 + * @since 2026-01-22 15:26:52 */ @Data @EqualsAndHashCode(callSuper = false) @JsonInclude(JsonInclude.Include.NON_NULL) -@ApiModel(value = "LawOrgParam对象", description = "机构查询参数") -public class LawOrgParam extends BaseParam { +@ApiModel(value = "YxeTaskProductParam对象", description = "查询参数") +public class YxeTaskProductParam extends BaseParam { private static final long serialVersionUID = 1L; @QueryField(type = QueryType.EQ) private Integer id; - private String title; + @QueryField(type = QueryType.EQ) + private Integer taskId; @QueryField(type = QueryType.EQ) - private String type; + private Integer productId; + @ApiModelProperty(value = "排序(数字越小越靠前)") @QueryField(type = QueryType.EQ) - private Integer provinceId; + private Integer sortNumber; + @ApiModelProperty(value = "状态, 0正常, 1冻结") @QueryField(type = QueryType.EQ) - private Integer cityId; - - @QueryField(type = QueryType.EQ) - private Integer areaId; - - private String lat; - - private String lng; + private Integer status; @ApiModelProperty(value = "是否删除, 0否, 1是") @QueryField(type = QueryType.EQ) diff --git a/src/main/java/com/gxwebsoft/yxe/param/YxeUserTaskParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeUserTaskParam.java new file mode 100644 index 0000000..32ef06e --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeUserTaskParam.java @@ -0,0 +1,97 @@ +package com.gxwebsoft.yxe.param; + +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 用户任务查询参数 + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "YxeUserTaskParam对象", description = "用户任务查询参数") +public class YxeUserTaskParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + @TableField(exist = false) + private String idList; + + @QueryField(type = QueryType.EQ) + private Integer taskId; + + @TableField(exist = false) + private String taskIdList; + + private Integer cateId; + + private String image; + + private String video; + + @TableField(exist = false) + private String cateIdList; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "用户分组") + private String userGroup; + + @TableField(exist = false) + @ApiModelProperty(value = "商户ID") + private Integer merchantId; + + @TableField(exist = false) + @ApiModelProperty(value = "任务开始时间起始") + private String taskStartTimeStart; + + @TableField(exist = false) + @ApiModelProperty(value = "任务开始时间结束") + private String taskStartTimeEnd; + + private String lat; + + private String lng; + + private Integer isCopy; + + private String chain; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0待审核 1通过 2驳回") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + + @TableField(exist = false) + private String name; + + @TableField(exist = false) + private Integer auditLite; + +} diff --git a/src/main/java/com/gxwebsoft/yxe/param/YxeVisitListParam.java b/src/main/java/com/gxwebsoft/yxe/param/YxeVisitListParam.java new file mode 100644 index 0000000..1eff1a3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/param/YxeVisitListParam.java @@ -0,0 +1,80 @@ +package com.gxwebsoft.yxe.param; + +import java.math.BigDecimal; +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Set; + +/** + * 访问列表查询参数 + * + * @author LX + * @since 2026-03-24 15:17:37 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "YxeVisitListParam对象", description = "访问列表查询参数") +public class YxeVisitListParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @QueryField(type = QueryType.EQ) + private Integer id; + + private String idList; + + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "用户分组") + private String userGroup; + + @ApiModelProperty(value = "用户真实姓名") + private String realName; + + @ApiModelProperty(value = "用户ID集合") + private Set userIds; + + private String lat; + + private String lng; + + private String chain; + + @ApiModelProperty(value = "位置") + private String location; + + @ApiModelProperty(value = "拜访人员") + private String name; + + @ApiModelProperty(value = "沟通内容") + private String content; + + @ApiModelProperty(value = "小结") + private String summary; + + private String photos; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0上架, 1下架") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeChronicDiseaseCollectionService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeChronicDiseaseCollectionService.java new file mode 100644 index 0000000..8efa3d4 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeChronicDiseaseCollectionService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeChronicDiseaseCollection; +import com.gxwebsoft.yxe.param.YxeChronicDiseaseCollectionParam; + +import java.util.List; + +/** + * 慢病收集Service + * + * @author LX + * @since 2026-01-19 15:15:02 + */ +public interface YxeChronicDiseaseCollectionService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeChronicDiseaseCollectionParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeChronicDiseaseCollectionParam param); + + /** + * 根据id查询 + * + * @param id + * @return YxeChronicDiseaseCollection + */ + YxeChronicDiseaseCollection getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeChronicDiseaseProductService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeChronicDiseaseProductService.java new file mode 100644 index 0000000..f4d1970 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeChronicDiseaseProductService.java @@ -0,0 +1,32 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeChronicDiseaseProduct; +import com.gxwebsoft.yxe.param.YxeChronicDiseaseProductParam; + +import java.util.List; + +/** + * 慢病产品Service + * + * @author Codex + * @since 2026-04-13 + */ +public interface YxeChronicDiseaseProductService extends IService { + + /** + * 分页关联查询 + */ + PageResult pageRel(YxeChronicDiseaseProductParam param); + + /** + * 查询全部 + */ + List listRel(YxeChronicDiseaseProductParam param); + + /** + * 根据id查询 + */ + YxeChronicDiseaseProduct getByIdRel(Integer id); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeGoodsService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeGoodsService.java new file mode 100644 index 0000000..97a6dfb --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeGoodsService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeGoods; +import com.gxwebsoft.yxe.param.YxeGoodsParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-03-25 19:33:28 + */ +public interface YxeGoodsService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeGoodsParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeGoodsParam param); + + /** + * 根据id查询 + * + * @param id + * @return YxeGoods + */ + YxeGoods getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeProductExtraIncomeService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeProductExtraIncomeService.java new file mode 100644 index 0000000..44d62c5 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeProductExtraIncomeService.java @@ -0,0 +1,45 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeProductExtraIncome; +import com.gxwebsoft.yxe.param.YxeProductExtraIncomeParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-03-04 09:18:42 + */ +public interface YxeProductExtraIncomeService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeProductExtraIncomeParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeProductExtraIncomeParam param); + + /** + * 根据id查询 + * + * @param id + * @return YxeProductExtraIncome + */ + YxeProductExtraIncome getByIdRel(Integer id); + + List listByProduct(Integer productId); + + void removeByProduct(Integer productId); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeProductMerchantExtraIncomeService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeProductMerchantExtraIncomeService.java new file mode 100644 index 0000000..1b7c4c8 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeProductMerchantExtraIncomeService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeProductMerchantExtraIncome; +import com.gxwebsoft.yxe.param.YxeProductMerchantExtraIncomeParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-04-15 21:46:51 + */ +public interface YxeProductMerchantExtraIncomeService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeProductMerchantExtraIncomeParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeProductMerchantExtraIncomeParam param); + + /** + * 根据id查询 + * + * @param id + * @return YxeProductMerchantExtraIncome + */ + YxeProductMerchantExtraIncome getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeProductService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeProductService.java new file mode 100644 index 0000000..6d34550 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeProductService.java @@ -0,0 +1,65 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeProduct; +import com.gxwebsoft.yxe.param.YxeProductParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-01-22 15:18:14 + */ +public interface YxeProductService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeProductParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeProductParam param); + + List listByCodes(List codes); + + List listByGroup(YxeProductParam param); + + /** + * 根据id查询 + * + * @param id + * @return YxeProduct + */ + YxeProduct getByIdRel(Integer id); + + YxeProduct getByCode(String code); + + YxeProduct getByCode(String code, String merchantName); + + YxeProduct getByCode(String code, Integer merchantId); + + YxeProduct getByCodeNChain(String code, String chain); + + YxeProduct getByCodeNChain(String code, String chain, String spec); + + YxeProduct getByCodeNChain(String code, String chain, String spec, Integer type); + + List listByMakerAbb(String markAbb); + + List listByChain(); + + List listByCate(); + + List listByCate(YxeProductParam param); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeReimburseService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeReimburseService.java new file mode 100644 index 0000000..7cbeca1 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeReimburseService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeReimburse; +import com.gxwebsoft.yxe.param.YxeReimburseParam; + +import java.util.List; + +/** + * 报销Service + * + * @author LX + * @since 2026-01-19 13:53:23 + */ +public interface YxeReimburseService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeReimburseParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeReimburseParam param); + + /** + * 根据id查询 + * + * @param id + * @return YxeReimburse + */ + YxeReimburse getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeSelfReportService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeSelfReportService.java new file mode 100644 index 0000000..25ade40 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeSelfReportService.java @@ -0,0 +1,25 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeSelfReport; +import com.gxwebsoft.yxe.param.YxeSelfReportParam; + +import java.util.List; + +/** + * 自主填报Service + * + * @author Codex + * @since 2026-04-10 + */ +public interface YxeSelfReportService extends IService { + + PageResult pageRel(YxeSelfReportParam param); + + PageResult pageAuditSummary(YxeSelfReportParam param); + + List listRel(YxeSelfReportParam param); + + YxeSelfReport getByIdRel(Integer id); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeServiceService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeServiceService.java new file mode 100644 index 0000000..43504bc --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeServiceService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeService; +import com.gxwebsoft.yxe.param.YxeServiceParam; + +import java.util.List; + +/** + * 客服Service + * + * @author LX + * @since 2026-03-25 02:56:05 + */ +public interface YxeServiceService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeServiceParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeServiceParam param); + + /** + * 根据id查询 + * + * @param id + * @return YxeService + */ + YxeService getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeShareDetailService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeShareDetailService.java new file mode 100644 index 0000000..2564683 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeShareDetailService.java @@ -0,0 +1,49 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeShareDetail; +import com.gxwebsoft.yxe.param.YxeShareDetailParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +public interface YxeShareDetailService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeShareDetailParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeShareDetailParam param); + + List listByShareId(Integer shareId); + + void removeByShareId(Integer shareId); + + List listByShareIds(List shareIds); + + /** + * 根据id查询 + * + * @param id + * @return YxeShareDetail + */ + YxeShareDetail getByIdRel(Integer id); + + Integer countByGoodsName(String goodsName); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeShareService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeShareService.java new file mode 100644 index 0000000..6505f68 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeShareService.java @@ -0,0 +1,61 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeShare; +import com.gxwebsoft.yxe.param.YxeShareParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +public interface YxeShareService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeShareParam param); + + PageResult pageAuditSummary(YxeShareParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeShareParam param); + + void setData(YxeShare yxeShare); + + void setListData(List yxeShareList); + + /** + * 根据id查询 + * + * @param id + * @return YxeShare + */ + YxeShare getByIdRel(Integer id); + + YxeShare getByMerchantNTime(String merchantName, String date); + + YxeShare getByOrderNo(String orderNo); + + List listByMerchant(); + + List listByMerchant(YxeShareParam param); + + List listByMerchantName(String merchantName); + + List listByUser(Integer userId); + + List listByUser(Integer userId, YxeShareParam param); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeTaskCateService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeTaskCateService.java new file mode 100644 index 0000000..1ebd2af --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeTaskCateService.java @@ -0,0 +1,43 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeTaskCate; +import com.gxwebsoft.yxe.param.YxeTaskCateParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +public interface YxeTaskCateService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeTaskCateParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeTaskCateParam param); + + /** + * 根据id查询 + * + * @param id + * @return YxeTaskCate + */ + YxeTaskCate getByIdRel(Integer id); + + YxeTaskCate getByTitle(String title); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeTaskProductService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeTaskProductService.java new file mode 100644 index 0000000..c54b33d --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeTaskProductService.java @@ -0,0 +1,52 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeProduct; +import com.gxwebsoft.yxe.entity.YxeTaskProduct; +import com.gxwebsoft.yxe.param.YxeTaskProductParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-01-22 15:26:52 + */ +public interface YxeTaskProductService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeTaskProductParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeTaskProductParam param); + + List listByTask(Integer taskId); + + List listByTaskIds(List taskIds); + + List taskIdlistByProcuctIds(List productIds); + + List productGroupByTask(Integer taskId); + + /** + * 根据id查询 + * + * @param id + * @return YxeTaskProduct + */ + YxeTaskProduct getByIdRel(Integer id); + + void removeByTask(Integer taskId); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeTaskService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeTaskService.java new file mode 100644 index 0000000..4d5345b --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeTaskService.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeTask; +import com.gxwebsoft.yxe.param.YxeTaskParam; + +import java.util.List; + +/** + * Service + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +public interface YxeTaskService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeTaskParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeTaskParam param); + + void setData(YxeTask task); + + void setListData(List list); + + /** + * 根据id查询 + * + * @param id + * @return YxeTask + */ + YxeTask getByIdRel(Integer id); + + List getDoneList(); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeUserTaskService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeUserTaskService.java new file mode 100644 index 0000000..da31aed --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeUserTaskService.java @@ -0,0 +1,65 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeUserTask; +import com.gxwebsoft.yxe.param.YxeUserTaskParam; + +import java.util.List; + +/** + * 用户任务Service + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +public interface YxeUserTaskService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeUserTaskParam param); + + PageResult pageAuditSummary(YxeUserTaskParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeUserTaskParam param); + + List listByUserId(Integer userId); + + List listByTaskId(Integer taskId); + + List listByTaskIds(List taskIds); + + List listByTaskIds(List taskIds, Integer userId); + + void setData(YxeUserTask yxeUserTask); + + /** + * 根据id查询 + * + * @param id + * @return YxeUserTask + */ + YxeUserTask getByIdRel(Integer id); + + YxeUserTask check(Integer taskId, Integer userId); + + YxeUserTask check(Integer taskId); + + Integer countByStatus(Integer taskId, Integer status); + + Integer countTodayNum(Integer userId); + + YxeUserTask getByTaskId(Integer taskId); + + List countByStatusWithData(List taskIds, Integer status); +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/YxeVisitListService.java b/src/main/java/com/gxwebsoft/yxe/service/YxeVisitListService.java new file mode 100644 index 0000000..ffd12c6 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/YxeVisitListService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.yxe.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeVisitList; +import com.gxwebsoft.yxe.param.YxeVisitListParam; + +import java.util.List; + +/** + * 访问列表Service + * + * @author LX + * @since 2026-03-24 15:17:37 + */ +public interface YxeVisitListService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(YxeVisitListParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(YxeVisitListParam param); + + /** + * 根据id查询 + * + * @param id + * @return YxeVisitList + */ + YxeVisitList getByIdRel(Integer id); + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeChronicDiseaseCollectionServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeChronicDiseaseCollectionServiceImpl.java new file mode 100644 index 0000000..02e82fe --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeChronicDiseaseCollectionServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.yxe.mapper.YxeChronicDiseaseCollectionMapper; +import com.gxwebsoft.yxe.service.YxeChronicDiseaseCollectionService; +import com.gxwebsoft.yxe.entity.YxeChronicDiseaseCollection; +import com.gxwebsoft.yxe.param.YxeChronicDiseaseCollectionParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 慢病收集Service实现 + * + * @author LX + * @since 2026-01-19 15:15:02 + */ +@Service +public class YxeChronicDiseaseCollectionServiceImpl extends ServiceImpl implements YxeChronicDiseaseCollectionService { + + @Override + public PageResult pageRel(YxeChronicDiseaseCollectionParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeChronicDiseaseCollectionParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public YxeChronicDiseaseCollection getByIdRel(Integer id) { + YxeChronicDiseaseCollectionParam param = new YxeChronicDiseaseCollectionParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeChronicDiseaseProductServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeChronicDiseaseProductServiceImpl.java new file mode 100644 index 0000000..a9f7235 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeChronicDiseaseProductServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.entity.YxeChronicDiseaseProduct; +import com.gxwebsoft.yxe.mapper.YxeChronicDiseaseProductMapper; +import com.gxwebsoft.yxe.param.YxeChronicDiseaseProductParam; +import com.gxwebsoft.yxe.service.YxeChronicDiseaseProductService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 慢病产品Service实现 + * + * @author Codex + * @since 2026-04-13 + */ +@Service +public class YxeChronicDiseaseProductServiceImpl + extends ServiceImpl + implements YxeChronicDiseaseProductService { + + @Override + public PageResult pageRel(YxeChronicDiseaseProductParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeChronicDiseaseProductParam param) { + List list = baseMapper.selectListRel(param); + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public YxeChronicDiseaseProduct getByIdRel(Integer id) { + YxeChronicDiseaseProductParam param = new YxeChronicDiseaseProductParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeGoodsServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeGoodsServiceImpl.java new file mode 100644 index 0000000..3bc72f1 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeGoodsServiceImpl.java @@ -0,0 +1,48 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.yxe.entity.YxeGoods; +import com.gxwebsoft.yxe.mapper.YxeGoodsMapper; +import com.gxwebsoft.yxe.service.YxeGoodsService; +import com.gxwebsoft.yxe.param.YxeGoodsParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2026-03-25 19:33:28 + */ +@Service +public class YxeGoodsServiceImpl extends ServiceImpl implements YxeGoodsService { + + @Override + public PageResult pageRel(YxeGoodsParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeGoodsParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public YxeGoods getByIdRel(Integer id) { + YxeGoodsParam param = new YxeGoodsParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeProductExtraIncomeServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeProductExtraIncomeServiceImpl.java new file mode 100644 index 0000000..a9d1637 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeProductExtraIncomeServiceImpl.java @@ -0,0 +1,64 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.yxe.mapper.YxeProductExtraIncomeMapper; +import com.gxwebsoft.yxe.service.YxeProductExtraIncomeService; +import com.gxwebsoft.yxe.entity.YxeProductExtraIncome; +import com.gxwebsoft.yxe.param.YxeProductExtraIncomeParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2026-03-04 09:18:42 + */ +@Service +public class YxeProductExtraIncomeServiceImpl extends ServiceImpl implements YxeProductExtraIncomeService { + + @Override + public PageResult pageRel(YxeProductExtraIncomeParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeProductExtraIncomeParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public YxeProductExtraIncome getByIdRel(Integer id) { + YxeProductExtraIncomeParam param = new YxeProductExtraIncomeParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public List listByProduct(Integer productId) { + return list( + new LambdaQueryWrapper() + .eq(YxeProductExtraIncome::getProductId, productId) + ); + } + + @Override + public void removeByProduct(Integer productId) { + remove( + new LambdaQueryWrapper() + .eq(YxeProductExtraIncome::getProductId, productId) + ); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeProductMerchantExtraIncomeServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeProductMerchantExtraIncomeServiceImpl.java new file mode 100644 index 0000000..8675ed3 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeProductMerchantExtraIncomeServiceImpl.java @@ -0,0 +1,55 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.yxe.mapper.YxeProductMerchantExtraIncomeMapper; +import com.gxwebsoft.yxe.service.YxeProductMerchantExtraIncomeService; +import com.gxwebsoft.yxe.entity.YxeProductMerchantExtraIncome; +import com.gxwebsoft.yxe.param.YxeProductMerchantExtraIncomeParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2026-04-15 21:46:51 + */ +@Service +public class YxeProductMerchantExtraIncomeServiceImpl extends ServiceImpl implements YxeProductMerchantExtraIncomeService { + + @Resource + private MerchantService merchantService; + + @Override + public PageResult pageRel(YxeProductMerchantExtraIncomeParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeProductMerchantExtraIncomeParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + for (YxeProductMerchantExtraIncome item : list) { + if (item.getMerchantId() != null) item.setMerchant(merchantService.getById(item.getMerchantId())); + } + return page.sortRecords(list); + } + + @Override + public YxeProductMerchantExtraIncome getByIdRel(Integer id) { + YxeProductMerchantExtraIncomeParam param = new YxeProductMerchantExtraIncomeParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeProductServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeProductServiceImpl.java new file mode 100644 index 0000000..1b991bf --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeProductServiceImpl.java @@ -0,0 +1,276 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.shop.entity.Merchant; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.yxe.entity.YxeProductExtraIncome; +import com.gxwebsoft.yxe.mapper.YxeProductMapper; +import com.gxwebsoft.yxe.service.YxeProductExtraIncomeService; +import com.gxwebsoft.yxe.service.YxeProductService; +import com.gxwebsoft.yxe.entity.YxeProduct; +import com.gxwebsoft.yxe.param.YxeProductParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Service实现 + * + * @author LX + * @since 2026-01-22 15:18:14 + */ +@Service +public class YxeProductServiceImpl extends ServiceImpl implements YxeProductService { + @Resource + private MerchantService merchantService; + @Resource + private YxeProductExtraIncomeService yxeProductExtraIncomeService; + + @Override + public PageResult pageRel(YxeProductParam param) { + param.setStatus(0); + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + if (!list.isEmpty()) { + Set merchantIdSet = new HashSet<>(); + for (YxeProduct item : list) { + if (item.getMerchantId() != null) merchantIdSet.add(item.getMerchantId()); + } + List merchantList = new ArrayList<>(); + if (!merchantIdSet.isEmpty()) { + merchantList = merchantService.listByIds(merchantIdSet); + } + List extraIncomesAll = yxeProductExtraIncomeService.list(); + + for (YxeProduct item : list) { + Merchant merchant = merchantList.stream().filter(m -> item.getMerchantId() != null && item.getMerchantId().equals(m.getId())).findFirst().orElse(null); + if (merchant != null) { + item.setMerchant(merchant); + } +// List yxeProductExtraIncomes = yxeProductExtraIncomeService.listByProduct(item.getId()); + List extraIncomes = extraIncomesAll.stream().filter(e -> e.getProductId().equals(item.getId())).collect(Collectors.toList()); + if (!extraIncomes.isEmpty()) { + item.setExtraIncomeList(extraIncomes); + } + } + } + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeProductParam param) { + param.setStatus(0); + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + List extraIncomesAll = yxeProductExtraIncomeService.list(); + for (YxeProduct item : list) { + BigDecimal extraIncomeAmount = BigDecimal.ZERO; + List extraIncomes = extraIncomesAll.stream().filter(e -> e.getProductId().equals(item.getId())).collect(Collectors.toList()); + if (!extraIncomes.isEmpty()) { + for (YxeProductExtraIncome extraIncomeData : extraIncomes) { + if (extraIncomeData.getStartTime() != null && extraIncomeData.getEndTime() != null) { + LocalDateTime startTime = LocalDateTime.parse(extraIncomeData.getStartTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime endTime = LocalDateTime.parse(extraIncomeData.getEndTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + if (LocalDateTime.now().isAfter(startTime) && LocalDateTime.now().isBefore(endTime)) { + extraIncomeAmount = extraIncomeData.getIncome(); + } + } + } + } + item.setExtraIncome(extraIncomeAmount); + item.setExtraIncomeList(extraIncomes); + } + return page.sortRecords(list); + } + + @Override + public List listByCodes(List codes) { + return list( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .in(YxeProduct::getCode, codes) + ); + } + + @Override + public List listByGroup(YxeProductParam param) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .groupBy(YxeProduct::getChain); + queryWrapper.eq(YxeProduct::getStatus, 0); + if (param != null && param.getChain() != null) { + queryWrapper.eq(YxeProduct::getChain, param.getChain()); + } + List list = list(queryWrapper); + List all = list(); + for (YxeProduct product : list) { + product.setChildren(all.stream().filter(p -> p.getChain().equals(product.getChain())).collect(Collectors.toList())); + } + return list; + } + + @Override + public YxeProduct getByIdRel(Integer id) { + YxeProductParam param = new YxeProductParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public YxeProduct getByCode(String code) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getCode, code) + .last("limit 1") + ); + } + + @Override + public YxeProduct getByCode(String code, String merchantName) { + Merchant merchant = merchantService.getByName(merchantName); + if (merchant == null) return null; + return getOne( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getCode, code) + .eq(YxeProduct::getMerchantId, merchant.getId()) + .last("limit 1") + ); + } + + @Override + public YxeProduct getByCode(String code, Integer merchantId) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getCode, code) + .eq(YxeProduct::getMerchantId, merchantId) + .last("limit 1") + ); + } + + @Override + public YxeProduct getByCodeNChain(String code, String chain) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getCode, code) + .eq(YxeProduct::getChain, chain) + .last("limit 1") + ); + } + + @Override + public YxeProduct getByCodeNChain(String code, String chain, String spec) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getCode, code) + .eq(YxeProduct::getChain, chain) + .eq(YxeProduct::getSpec, spec) + .last("limit 1") + ); + } + + @Override + public YxeProduct getByCodeNChain(String code, String chain, String spec, Integer type) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getCode, code) + .eq(YxeProduct::getChain, chain) + .eq(YxeProduct::getSpec, spec) + .eq(YxeProduct::getType, type) + .last("limit 1") + ); + } + + @Override + public List listByMakerAbb(String markAbb) { + return list( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getMakerAbb, markAbb) + ); + } + + @Override + public List listByChain() { + List list = list( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .isNotNull(YxeProduct::getChain) + .groupBy(YxeProduct::getChain) + ); + for (YxeProduct product : list) { + product.setChildren(list( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getChain, product.getChain()) + .orderByDesc(YxeProduct::getCreateTime) + )); + } + return list; + } + + @Override + public List listByCate() { + List list = list( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .isNotNull(YxeProduct::getCate) + .groupBy(YxeProduct::getCate) + ); + for (YxeProduct product : list) { + product.setChildren(list( + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getCate, product.getCate()) + .orderByDesc(YxeProduct::getCreateTime) + )); + } + return list; + } + + @Override + public List listByCate(YxeProductParam param) { + LambdaQueryWrapper wrapper = + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .isNotNull(YxeProduct::getCate) + .groupBy(YxeProduct::getCate); + if (param != null) { + if (param.getChain() != null) wrapper.eq(YxeProduct::getChain, param.getChain()); + if (param.getType() != null) wrapper.eq(YxeProduct::getType, param.getType()); + } + List list = list(wrapper); + for (YxeProduct product : list) { + LambdaQueryWrapper childWrapper = + new LambdaQueryWrapper() + .eq(YxeProduct::getStatus, 0) + .eq(YxeProduct::getCate, product.getCate()) + .orderByDesc(YxeProduct::getCreateTime); + if (param != null) { + if (param.getChain() != null) childWrapper.eq(YxeProduct::getChain, param.getChain()); + if (param.getType() != null) childWrapper.eq(YxeProduct::getType, param.getType()); + } + product.setChildren(list(childWrapper)); + } + return list; + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeReimburseServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeReimburseServiceImpl.java new file mode 100644 index 0000000..d5faae2 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeReimburseServiceImpl.java @@ -0,0 +1,53 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.yxe.mapper.YxeReimburseMapper; +import com.gxwebsoft.yxe.service.YxeReimburseService; +import com.gxwebsoft.yxe.entity.YxeReimburse; +import com.gxwebsoft.yxe.param.YxeReimburseParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 报销Service实现 + * + * @author LX + * @since 2026-01-19 13:53:23 + */ +@Service +public class YxeReimburseServiceImpl extends ServiceImpl implements YxeReimburseService { + @Resource + private UserService userService; + @Override + public PageResult pageRel(YxeReimburseParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + for (YxeReimburse item : list) { + item.setUser(userService.getById(item.getUserId())); + } + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeReimburseParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public YxeReimburse getByIdRel(Integer id) { + YxeReimburseParam param = new YxeReimburseParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeSelfReportServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeSelfReportServiceImpl.java new file mode 100644 index 0000000..acb2a48 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeSelfReportServiceImpl.java @@ -0,0 +1,135 @@ +package com.gxwebsoft.yxe.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.yxe.entity.YxeSelfReport; +import com.gxwebsoft.yxe.mapper.YxeSelfReportMapper; +import com.gxwebsoft.yxe.param.YxeSelfReportParam; +import com.gxwebsoft.yxe.service.YxeSelfReportService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 自主填报Service实现 + * + * @author Codex + * @since 2026-04-10 + */ +@Service +public class YxeSelfReportServiceImpl extends ServiceImpl implements YxeSelfReportService { + + @Resource + private UserService userService; + @Resource + private MerchantService merchantService; + + @Override + public PageResult pageRel(YxeSelfReportParam param) { + if (!handleRealNameFilter(param)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + list.forEach(this::setData); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public PageResult pageAuditSummary(YxeSelfReportParam param) { + if (!handleRealNameFilter(param)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + PageParam page = new PageParam<>(param); + page.setDefaultOrder("date desc, create_time desc"); + List list = baseMapper.selectAuditPageRel(page, param); + list.forEach(item -> { + if (item == null) { + return; + } + if (item.getUserId() != null) { + User user = userService.getById(item.getUserId()); + if (user != null) { + User liteUser = new User(); + liteUser.setUserId(user.getUserId()); + liteUser.setRealName(user.getRealName()); + liteUser.setNickname(user.getNickname()); + liteUser.setPhone(user.getPhone()); + item.setUser(liteUser); + } + } + if (item.getMerchantId() != null) { + item.setMerchant(merchantService.getById(item.getMerchantId())); + } + item.setLat(null); + item.setLng(null); + item.setComments(null); + }); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeSelfReportParam param) { + if (!handleRealNameFilter(param)) { + return Collections.emptyList(); + } + List list = baseMapper.selectListRel(param); + list.forEach(this::setData); + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public YxeSelfReport getByIdRel(Integer id) { + YxeSelfReportParam param = new YxeSelfReportParam(); + param.setId(id); + YxeSelfReport report = param.getOne(baseMapper.selectListRel(param)); + if (report != null) { + setData(report); + } + return report; + } + + private void setData(YxeSelfReport report) { + if (report == null) { + return; + } + if (report.getUserId() != null) { + report.setUser(userService.getById(report.getUserId())); + } + if (report.getMerchantId() != null) { + report.setMerchant(merchantService.getById(report.getMerchantId())); + } + } + + private boolean handleRealNameFilter(YxeSelfReportParam param) { + if (param == null || StrUtil.isBlank(param.getRealName())) { + return true; + } + List users = userService.listByRealName(param.getRealName()); + if (users == null || users.isEmpty()) { + return false; + } + Set userIds = users.stream() + .map(User::getUserId) + .filter(userId -> userId != null && userId > 0) + .collect(Collectors.toCollection(LinkedHashSet::new)); + if (userIds.isEmpty()) { + return false; + } + param.setUserIds(userIds); + return true; + } +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeServiceServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeServiceServiceImpl.java new file mode 100644 index 0000000..4e20eb2 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeServiceServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.yxe.mapper.YxeServiceMapper; +import com.gxwebsoft.yxe.service.YxeServiceService; +import com.gxwebsoft.yxe.entity.YxeService; +import com.gxwebsoft.yxe.param.YxeServiceParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 客服Service实现 + * + * @author LX + * @since 2026-03-25 02:56:05 + */ +@Service +public class YxeServiceServiceImpl extends ServiceImpl implements YxeServiceService { + + @Override + public PageResult pageRel(YxeServiceParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeServiceParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public YxeService getByIdRel(Integer id) { + YxeServiceParam param = new YxeServiceParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeShareDetailServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeShareDetailServiceImpl.java new file mode 100644 index 0000000..40b8339 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeShareDetailServiceImpl.java @@ -0,0 +1,90 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.yxe.mapper.YxeShareDetailMapper; +import com.gxwebsoft.yxe.service.YxeProductService; +import com.gxwebsoft.yxe.service.YxeShareDetailService; +import com.gxwebsoft.yxe.entity.YxeShareDetail; +import com.gxwebsoft.yxe.param.YxeShareDetailParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +@Service +public class YxeShareDetailServiceImpl extends ServiceImpl implements YxeShareDetailService { + @Resource + private YxeProductService productService; + @Override + public PageResult pageRel(YxeShareDetailParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + for (YxeShareDetail item : list) { + item.setProduct(productService.getByCode(item.getGoodsCode())); + if (param.getGroupByProduct() != null && item.getGoodsName() != null) { + item.setTotalNum(countByGoodsName(item.getGoodsName())); + } + } + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeShareDetailParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public List listByShareId(Integer shareId) { + return list( + new LambdaQueryWrapper() + .eq(YxeShareDetail::getShareId, shareId) + ); + } + + @Override + public void removeByShareId(Integer shareId) { + remove( + new LambdaQueryWrapper() + .eq(YxeShareDetail::getShareId, shareId) + ); + } + + @Override + public List listByShareIds(List shareIds) { + return list( + new LambdaQueryWrapper() + .in(YxeShareDetail::getShareId, shareIds) + ); + } + + @Override + public YxeShareDetail getByIdRel(Integer id) { + YxeShareDetailParam param = new YxeShareDetailParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + + @Override + public Integer countByGoodsName(String goodsName) { + return count( + new LambdaQueryWrapper() + .eq(YxeShareDetail::getGoodsName, goodsName) + ); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeShareServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeShareServiceImpl.java new file mode 100644 index 0000000..2dea1e5 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeShareServiceImpl.java @@ -0,0 +1,269 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.entity.Merchant; +import com.gxwebsoft.shop.param.MerchantParam; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.yxe.entity.YxeProduct; +import com.gxwebsoft.yxe.entity.YxeProductExtraIncome; +import com.gxwebsoft.yxe.entity.YxeShareDetail; +import com.gxwebsoft.yxe.mapper.YxeShareMapper; +import com.gxwebsoft.yxe.service.YxeProductExtraIncomeService; +import com.gxwebsoft.yxe.service.YxeProductService; +import com.gxwebsoft.yxe.service.YxeShareDetailService; +import com.gxwebsoft.yxe.service.YxeShareService; +import com.gxwebsoft.yxe.entity.YxeShare; +import com.gxwebsoft.yxe.param.YxeShareParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * Service实现 + * + * @author LX + * @since 2026-01-19 12:09:51 + */ +@Service +public class YxeShareServiceImpl extends ServiceImpl implements YxeShareService { + @Resource + private YxeShareDetailService yxeShareDetailService; + @Resource + private UserService userService; + @Resource + private YxeProductService yxeProductService; + @Resource + private YxeProductExtraIncomeService yxeProductExtraIncomeService; + @Resource + private MerchantService merchantService; + + @Override + public PageResult pageRel(YxeShareParam param) { + handleChainFilter(param); + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List all = page.sortRecords(baseMapper.selectListRel(param)); + long total = all.size(); + List list = subPage(all, page.getCurrent(), page.getSize()); + setListData(list); + return new PageResult<>(list, total); + } + + @Override + public PageResult pageAuditSummary(YxeShareParam param) { + handleChainFilter(param); + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List all = page.sortRecords(baseMapper.selectListRel(param)); + long total = all.size(); + List list = subPage(all, page.getCurrent(), page.getSize()); + if (list.isEmpty()) { + return new PageResult<>(list, total); + } + Set userIds = list.stream() + .map(YxeShare::getUserId) + .filter(Objects::nonNull) + .collect(Collectors.toCollection(LinkedHashSet::new)); + Set merchantIds = list.stream() + .map(YxeShare::getMerchantId) + .filter(Objects::nonNull) + .collect(Collectors.toCollection(LinkedHashSet::new)); + Map userMap = userIds.isEmpty() + ? Collections.emptyMap() + : userService.listByIds(new ArrayList<>(userIds)).stream() + .filter(user -> user.getUserId() != null) + .collect(Collectors.toMap(com.gxwebsoft.common.system.entity.User::getUserId, user -> user, (a, b) -> a)); + Map merchantMap = merchantIds.isEmpty() + ? Collections.emptyMap() + : merchantService.listByIds(new ArrayList<>(merchantIds)).stream() + .filter(merchant -> merchant.getId() != null) + .collect(Collectors.toMap(Merchant::getId, merchant -> merchant, (a, b) -> a)); + for (YxeShare item : list) { + if (item == null) { + continue; + } + com.gxwebsoft.common.system.entity.User user = userMap.get(item.getUserId()); + if (user != null) { + com.gxwebsoft.common.system.entity.User liteUser = new com.gxwebsoft.common.system.entity.User(); + liteUser.setUserId(user.getUserId()); + liteUser.setRealName(user.getRealName()); + liteUser.setNickname(user.getNickname()); + liteUser.setPhone(user.getPhone()); + item.setUser(liteUser); + } + Merchant merchant = merchantMap.get(item.getMerchantId()); + if (merchant != null) { + Merchant liteMerchant = new Merchant(); + liteMerchant.setId(merchant.getId()); + liteMerchant.setName(merchant.getName()); + liteMerchant.setChain(merchant.getChain()); + item.setMerchant(liteMerchant); + } + item.setDetailList(Collections.emptyList()); + } + return new PageResult<>(list, total); + } + + @Override + public List listRel(YxeShareParam param) { + handleChainFilter(param); + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + setListData(list); + return page.sortRecords(list); + } + + @Override + public void setData(YxeShare yxeShare) { + yxeShare.setDetailList(yxeShareDetailService.listByShareId(yxeShare.getId())); + yxeShare.setUser(userService.getById(yxeShare.getUserId())); + if (yxeShare.getMerchantId() != null) yxeShare.setMerchant(merchantService.getById(yxeShare.getMerchantId())); + + } + + @Override + public void setListData(List yxeShareList) { + if (yxeShareList.isEmpty()) { + return; + } + Set productCodeSet = new HashSet<>(); + List shareDetailList = yxeShareDetailService.listByShareIds( + yxeShareList.stream().map(YxeShare::getId).collect(Collectors.toList()) + ); + List extraIncomeListAll = yxeProductExtraIncomeService.list(); + if (!shareDetailList.isEmpty()) { + for (YxeShareDetail item : shareDetailList) { + productCodeSet.add(item.getGoodsCode()); + } + List productList = yxeProductService.listByCodes(new ArrayList<>(productCodeSet)); + for (YxeShareDetail item : shareDetailList) { + YxeProduct product = productList.stream().filter(p -> p.getId().equals(item.getGoodsId())).findFirst().orElse(null); + if (product != null) { + List extraIncomeList = + extraIncomeListAll.stream().filter(e -> e.getProductId().equals(product.getId())).collect(Collectors.toList()); + product.setExtraIncomeList(extraIncomeList); + } + item.setProduct(product); + } + } + + for (YxeShare item : yxeShareList) { + item.setDetailList(shareDetailList.stream().filter(detail -> detail.getShareId().equals(item.getId())).collect(Collectors.toList())); + item.setUser(userService.getById(item.getUserId())); + if (item.getMerchantId() != null) item.setMerchant(merchantService.getById(item.getMerchantId())); + } + } + + @Override + public YxeShare getByIdRel(Integer id) { + YxeShareParam param = new YxeShareParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public YxeShare getByMerchantNTime(String merchantName, String date) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeShare::getMerchantName, merchantName) + .eq(YxeShare::getDate, date) + .last("limit 1") + ); + } + + @Override + public YxeShare getByOrderNo(String orderNo) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeShare::getOrderNo, orderNo) + .last("limit 1") + ); + } + + private List subPage(List list, long current, long size) { + if (list == null || list.isEmpty()) { + return new ArrayList<>(); + } + long pageNo = current <= 0 ? 1 : current; + long pageSize = size <= 0 ? 10 : size; + long from = (pageNo - 1) * pageSize; + if (from >= list.size()) { + return new ArrayList<>(); + } + long to = Math.min(from + pageSize, list.size()); + return new ArrayList<>(list.subList((int) from, (int) to)); + } + + @Override + public List listByMerchant() { + return list( + new LambdaQueryWrapper() + .eq(YxeShare::getStatus, 1) + .groupBy(YxeShare::getMerchantName) + ); + } + + @Override + public List listByMerchant(YxeShareParam param) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(YxeShare::getStatus, 1); + if (param.getProvince() != null && param.getCity() != null) { + queryWrapper.eq(YxeShare::getProvince, param.getProvince()); + queryWrapper.eq(YxeShare::getCity, param.getCity()); + } + queryWrapper.groupBy(YxeShare::getMerchantName); + return list(queryWrapper); + } + + @Override + public List listByMerchantName(String merchantName) { + return list( + new LambdaQueryWrapper() + .eq(YxeShare::getStatus, 1) + .eq(YxeShare::getMerchantName, merchantName) + ); + } + + @Override + public List listByUser(Integer userId) { + return list( + new LambdaQueryWrapper() + .eq(YxeShare::getStatus, 1) + .eq(YxeShare::getUserId, userId) + ); + } + + @Override + public List listByUser(Integer userId, YxeShareParam param) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(YxeShare::getStatus, 1) + .eq(YxeShare::getUserId, userId); + if (param.getProvince() != null && param.getCity() != null) { + queryWrapper.eq(YxeShare::getProvince, param.getProvince()); + queryWrapper.eq(YxeShare::getCity, param.getCity()); + } + return list(queryWrapper); + } + + private void handleChainFilter(YxeShareParam param) { + if (param == null || param.getChain() == null || param.getChain().trim().isEmpty()) { + return; + } + MerchantParam merchantParam = new MerchantParam(); + merchantParam.setChain(param.getChain()); + List merchantIds = merchantService.listRel(merchantParam).stream() + .map(Merchant::getId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + param.setMerchantIds(merchantIds.isEmpty() ? Collections.singletonList(-1) : merchantIds); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeTaskCateServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeTaskCateServiceImpl.java new file mode 100644 index 0000000..6a2fb4c --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeTaskCateServiceImpl.java @@ -0,0 +1,57 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.yxe.mapper.YxeTaskCateMapper; +import com.gxwebsoft.yxe.service.YxeTaskCateService; +import com.gxwebsoft.yxe.entity.YxeTaskCate; +import com.gxwebsoft.yxe.param.YxeTaskCateParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Service实现 + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +@Service +public class YxeTaskCateServiceImpl extends ServiceImpl implements YxeTaskCateService { + + @Override + public PageResult pageRel(YxeTaskCateParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeTaskCateParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public YxeTaskCate getByIdRel(Integer id) { + YxeTaskCateParam param = new YxeTaskCateParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public YxeTaskCate getByTitle(String title) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeTaskCate::getTitle, title) + .last("limit 1") + ); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeTaskProductServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeTaskProductServiceImpl.java new file mode 100644 index 0000000..47787d1 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeTaskProductServiceImpl.java @@ -0,0 +1,170 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.yxe.entity.YxeProduct; +import com.gxwebsoft.yxe.mapper.YxeTaskProductMapper; +import com.gxwebsoft.yxe.service.YxeProductService; +import com.gxwebsoft.yxe.service.YxeTaskProductService; +import com.gxwebsoft.yxe.entity.YxeTaskProduct; +import com.gxwebsoft.yxe.param.YxeTaskProductParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +/** + * Service实现 + * + * @author LX + * @since 2026-01-22 15:26:52 + */ +@Service +public class YxeTaskProductServiceImpl extends ServiceImpl implements YxeTaskProductService { + @Resource + private YxeProductService productService; + + @Override + public PageResult pageRel(YxeTaskProductParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeTaskProductParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public List listByTask(Integer taskId) { + List list = list( + new LambdaQueryWrapper() + .eq(YxeTaskProduct::getTaskId, taskId) + ); + if (list.isEmpty()) { + return list; + } + Set productIds = new HashSet<>(); + for (YxeTaskProduct taskProduct : list) { + if (taskProduct.getProductId() != null) { + productIds.add(taskProduct.getProductId()); + } + } + if (productIds.isEmpty()) { + return list; + } + List productList = productService.listByIds(productIds); + Map productMap = new HashMap<>(); + for (YxeProduct product : productList) { + productMap.put(product.getId(), product); + } + for (YxeTaskProduct taskProduct : list) { + taskProduct.setProduct(productMap.get(taskProduct.getProductId())); + } + return list; + } + + @Override + public List listByTaskIds(List taskIds) { + if (taskIds == null || taskIds.isEmpty()) { + return new ArrayList<>(); + } + List list = list( + new LambdaQueryWrapper() + .in(YxeTaskProduct::getTaskId, taskIds) + ); + Set productIds = new HashSet<>(); + for (YxeTaskProduct taskProduct : list) { + if (taskProduct.getProductId() != null) { + productIds.add(taskProduct.getProductId()); + } + } + if (!productIds.isEmpty()) { + List productList = productService.listByIds(productIds); + Map productMap = new HashMap<>(); + for (YxeProduct product : productList) { + productMap.put(product.getId(), product); + } + for (YxeTaskProduct taskProduct : list) { + taskProduct.setProduct(productMap.get(taskProduct.getProductId())); + } + } + return list; + } + + @Override + public List taskIdlistByProcuctIds(List productIds) { + if (productIds == null || productIds.isEmpty()) { + return new ArrayList<>(); + } + List list = list( + new LambdaQueryWrapper() + .in(YxeTaskProduct::getProductId, productIds) + ); + Set taskIds = new HashSet<>(); + for (YxeTaskProduct taskProduct : list) { + taskIds.add(taskProduct.getTaskId()); + } + return new ArrayList<>(taskIds); + } + + @Override + public List productGroupByTask(Integer taskId) { + List list = list( + new LambdaQueryWrapper() + .eq(YxeTaskProduct::getTaskId, taskId) + ); + Set productIds = new HashSet<>(); + for (YxeTaskProduct taskProduct : list) { + if (taskProduct.getProductId() != null) { + productIds.add(taskProduct.getProductId()); + } + } + List productList = new ArrayList<>(); + if (!productIds.isEmpty()) { + productList = productService.list(new LambdaQueryWrapper() + .in(YxeProduct::getId, productIds) + .groupBy(YxeProduct::getMakerAbb) + ); + for (YxeProduct product : productList) { + List children = productService.list( + new LambdaQueryWrapper() + .in(YxeProduct::getId, productIds) + .eq(YxeProduct::getMakerAbb, product.getMakerAbb()) + ); + for (YxeProduct child : children) { + YxeTaskProduct taskProduct = list.stream().filter(item -> item.getProductId().equals(child.getId())).findFirst().orElse(null); + if (taskProduct != null) { + child.setTaskIncome(taskProduct.getAmount()); + } + } + product.setChildren(children); + } + } + return productList; + } + + @Override + public YxeTaskProduct getByIdRel(Integer id) { + YxeTaskProductParam param = new YxeTaskProductParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public void removeByTask(Integer taskId) { + remove( + new LambdaQueryWrapper() + .eq(YxeTaskProduct::getTaskId, taskId) + ); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeTaskServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeTaskServiceImpl.java new file mode 100644 index 0000000..490b7f6 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeTaskServiceImpl.java @@ -0,0 +1,253 @@ +package com.gxwebsoft.yxe.service.impl; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.entity.Merchant; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.yxe.entity.*; +import com.gxwebsoft.yxe.mapper.YxeTaskMapper; +import com.gxwebsoft.yxe.service.YxeTaskCateService; +import com.gxwebsoft.yxe.service.YxeTaskProductService; +import com.gxwebsoft.yxe.service.YxeTaskService; +import com.gxwebsoft.yxe.param.YxeTaskParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.service.YxeUserTaskService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * Service实现 + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +@Service +public class YxeTaskServiceImpl extends ServiceImpl implements YxeTaskService { + + @Resource + private YxeTaskCateService taskCateService; + @Resource + private MerchantService merchantService; + @Resource + private YxeUserTaskService yxeUserTaskService; + @Resource + private YxeTaskProductService yxeTaskProductService; + @Resource + private UserService userService; + + @Override + public PageResult pageRel(YxeTaskParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("task_start_time desc, sort_number asc, create_time desc"); + Long total = baseMapper.selectCountRel(param); + if (total == null || total <= 0) { + return new PageResult<>(Collections.emptyList(), 0L); + } + List list = baseMapper.selectPageRel(page, param); + setListData(list); + return new PageResult<>(list, total); + } + + @Override + public List listRel(YxeTaskParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("task_start_time desc, sort_number asc, create_time desc"); + setListData(list); + return page.sortRecords(list); + } + + @Override + public void setData(YxeTask task) { + task.setCate(taskCateService.getByIdRel(task.getCateId())); + if (task.getCateId() != 4) { + task.setMerchant(merchantService.getByIdRel(task.getMerchantId())); + task.setProductList(yxeTaskProductService.listByTask(task.getId())); + task.setProductGroup(yxeTaskProductService.productGroupByTask(task.getId())); + } + task.setUserTask(yxeUserTaskService.check(task.getId())); + if (task.getAppointUserId() != null && task.getAppointUserId() > 0) { + User appointUser = userService.getById(task.getAppointUserId()); + task.setAppointUser(appointUser); + } + } + + @Override + public void setListData(List list) { + if (list == null || list.isEmpty()) { + return; + } + Set cateIdSet = new HashSet<>(); + Set merchantIdSet = new HashSet<>(); + Set appointUserIdSet = new HashSet<>(); + List taskIdSet = new ArrayList<>(); + for (YxeTask task : list) { + cateIdSet.add(task.getCateId()); + if (task.getMerchantId() != null && task.getMerchantId() > 0) { + merchantIdSet.add(task.getMerchantId()); + } + if (task.getAppointUserId() != null && task.getAppointUserId() > 0) { + appointUserIdSet.add(task.getAppointUserId()); + } + taskIdSet.add(task.getId()); + } + List cateList = new ArrayList<>(); + if (!cateIdSet.isEmpty()) { + cateList = taskCateService.listByIds(cateIdSet); + } + List merchantList = new ArrayList<>(); + if (!merchantIdSet.isEmpty()) { + merchantList = merchantService.listByIds(merchantIdSet); + } + List productList = new ArrayList<>(); + List userTaskList = new ArrayList<>(); + if (!taskIdSet.isEmpty()) { + productList = yxeTaskProductService.listByTaskIds(taskIdSet); + userTaskList = yxeUserTaskService.listByTaskIds(taskIdSet); + } + List appointUserList = new ArrayList<>(); + if (!appointUserIdSet.isEmpty()) { + appointUserList = userService.listByIds(appointUserIdSet); + } + + Map cateMap = cateList.stream() + .collect(Collectors.toMap(YxeTaskCate::getId, cate -> cate, (left, right) -> left)); + Map merchantMap = merchantList.stream() + .collect(Collectors.toMap(Merchant::getId, merchant -> merchant, (left, right) -> left)); + Map appointUserMap = appointUserList.stream() + .collect(Collectors.toMap(User::getUserId, user -> user, (left, right) -> left)); + Map> taskProductMap = productList.stream() + .collect(Collectors.groupingBy(YxeTaskProduct::getTaskId, LinkedHashMap::new, Collectors.toList())); + Map userTaskMap = new LinkedHashMap<>(); + for (YxeUserTask userTask : userTaskList) { + userTaskMap.putIfAbsent(userTask.getTaskId(), userTask); + } + + for (YxeTask task : list) { + task.setCate(cateMap.get(task.getCateId())); + if (task.getMerchantId() != null && task.getMerchantId() != 0) { + task.setMerchant(merchantMap.get(task.getMerchantId())); + } + + List productListFilter = taskProductMap.getOrDefault(task.getId(), Collections.emptyList()); + task.setProductList(productListFilter); + int taskNum = 0; + int doneNum = 0; + for (YxeTaskProduct product : productListFilter) { + taskNum += product.getNum(); + } + YxeUserTask userTask = userTaskMap.get(task.getId()); + if (userTask != null && userTask.getSalesGroups() != null) { + // salesGroup为json字符串,格式为[{'title': xxx, 'items': [{'name':xxx, 'qty': xxx}]}],解析并合计qty + JSONArray salesGroup = JSONArray.parseArray(userTask.getSalesGroups()); + for (Object obj : salesGroup) { + JSONObject item = (JSONObject) obj; + JSONArray items = item.getJSONArray("items"); + for (Object itemObj : items) { + JSONObject itemItem = (JSONObject) itemObj; + if (itemItem.getInteger("qty") != null) doneNum += itemItem.getInteger("qty"); + } + } + } + if (taskNum > 0) { + task.setProgress(new BigDecimal(doneNum) + .divide(BigDecimal.valueOf(taskNum), 4, RoundingMode.HALF_UP) + .multiply(BigDecimal.valueOf(100))); + } + task.setUserTask(userTask); + task.setDoneNum(doneNum); + task.setNum(taskNum); + task.setProductGroup(buildProductGroup(productListFilter)); + if (task.getAppointUserId() != null && task.getAppointUserId() > 0) { + task.setAppointUser(appointUserMap.get(task.getAppointUserId())); + } + } + + } + + private List buildProductGroup(List taskProducts) { + if (taskProducts == null || taskProducts.isEmpty()) { + return Collections.emptyList(); + } + Map> groupedProducts = new LinkedHashMap<>(); + for (YxeTaskProduct taskProduct : taskProducts) { + YxeProduct product = taskProduct.getProduct(); + if (product == null) { + continue; + } + String makerAbb = product.getMakerAbb(); + if (makerAbb == null) { + makerAbb = ""; + } + groupedProducts.computeIfAbsent(makerAbb, key -> new ArrayList<>()).add(product); + } + List productGroup = new ArrayList<>(); + for (Map.Entry> entry : groupedProducts.entrySet()) { + List children = entry.getValue(); + if (children.isEmpty()) { + continue; + } + YxeProduct group = new YxeProduct(); + YxeProduct first = children.get(0); + group.setId(first.getId()); + group.setCode(first.getCode()); + group.setTitle(first.getTitle()); + group.setSpec(first.getSpec()); + group.setChain(first.getChain()); + group.setMaker(first.getMaker()); + group.setCover(first.getCover()); + group.setCate(first.getCate()); + group.setMakerAbb(first.getMakerAbb()); + group.setIncome(first.getIncome()); + group.setMerchantId(first.getMerchantId()); + group.setSortNumber(first.getSortNumber()); + group.setStatus(first.getStatus()); + group.setDeleted(first.getDeleted()); + group.setTenantId(first.getTenantId()); + group.setCreateTime(first.getCreateTime()); + group.setUpdateTime(first.getUpdateTime()); + group.setStartTime(first.getStartTime()); + group.setEndTime(first.getEndTime()); + group.setExtraIncome(first.getExtraIncome()); + group.setExtraStartTime(first.getExtraStartTime()); + group.setExtraEndTime(first.getExtraEndTime()); + group.setChildren(children); + productGroup.add(group); + } + return productGroup; + } + + @Override + public YxeTask getByIdRel(Integer id) { + YxeTaskParam param = new YxeTaskParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public List getDoneList() { + return list( + new LambdaQueryWrapper() + .eq(YxeTask::getStatus, 2) + .last("limit 5") + ); + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeUserTaskServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeUserTaskServiceImpl.java new file mode 100644 index 0000000..47a0fd7 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeUserTaskServiceImpl.java @@ -0,0 +1,315 @@ +package com.gxwebsoft.yxe.service.impl; + +import cn.hutool.core.date.LocalDateTimeUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.shop.service.MerchantService; +import com.gxwebsoft.yxe.entity.YxeTask; +import com.gxwebsoft.yxe.mapper.YxeUserTaskMapper; +import com.gxwebsoft.yxe.service.YxeTaskService; +import com.gxwebsoft.yxe.service.YxeUserTaskService; +import com.gxwebsoft.yxe.entity.YxeUserTask; +import com.gxwebsoft.yxe.param.YxeUserTaskParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 用户任务Service实现 + * + * @author LX + * @since 2026-01-17 14:11:56 + */ +@Service +public class YxeUserTaskServiceImpl extends ServiceImpl implements YxeUserTaskService { + @Resource + private YxeTaskService taskService; + @Resource + private UserService userService; + @Resource + private MerchantService merchantService; + + @Override + public PageResult pageRel(YxeUserTaskParam param) { + if (!appendTaskFilter(param)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectListRel(param); + list = page.sortRecords(list); + long total = list.size(); + long current = Math.max(page.getCurrent(), 1L); + long size = Math.max(page.getSize(), 1L); + int fromIndex = (int) Math.min((current - 1) * size, total); + int toIndex = (int) Math.min(fromIndex + size, total); + List pageList = list.subList(fromIndex, toIndex); + setListData(pageList); + return new PageResult<>(pageList, total); + } + + @Override + public PageResult pageAuditSummary(YxeUserTaskParam param) { + if (!appendTaskFilter(param)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectListRel(param); + list = page.sortRecords(list); + long total = list.size(); + long current = Math.max(page.getCurrent(), 1L); + long size = Math.max(page.getSize(), 1L); + int fromIndex = (int) Math.min((current - 1) * size, total); + int toIndex = (int) Math.min(fromIndex + size, total); + List pageList = new ArrayList<>(list.subList(fromIndex, toIndex)); + setListData(pageList); + for (YxeUserTask item : pageList) { + if (item == null) { + continue; + } + item.setUser(toLiteUser(item.getUser())); + item.setVideo(null); + item.setClockPhotos(null); + item.setBoothPhotos(null); + item.setSalesGroups(null); + item.setReceiptPhoto(null); + item.setSummary(null); + item.setStoreList(null); + item.setLocation(null); + item.setLat(null); + item.setLng(null); + item.setComments(null); + item.setAuditReason(null); + } + return new PageResult<>(pageList, total); + } + + @Override + public List listRel(YxeUserTaskParam param) { + if (!appendTaskFilter(param)) { + return Collections.emptyList(); + } + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + setListData(list); + return page.sortRecords(list); + } + + @Override + public List listByUserId(Integer userId) { + return list( + new LambdaQueryWrapper() + .eq(YxeUserTask::getUserId, userId) + ); + } + + @Override + public List listByTaskId(Integer taskId) { + return list( + new LambdaQueryWrapper() + .eq(YxeUserTask::getTaskId, taskId) + ); + } + + @Override + public List listByTaskIds(List taskIds) { + return list( + new LambdaQueryWrapper() + .in(YxeUserTask::getTaskId, taskIds) + ); + } + + @Override + public List listByTaskIds(List taskIds, Integer userId) { + return list( + new LambdaQueryWrapper() + .in(YxeUserTask::getTaskId, taskIds) + .eq(YxeUserTask::getUserId, userId) + ); + } + + @Override + public void setData(YxeUserTask yxeUserTask) { + YxeTask task = taskService.getById(yxeUserTask.getTaskId()); + if (task != null) { + task.setMerchant(merchantService.getById(task.getMerchantId())); + yxeUserTask.setTask(task); + } + yxeUserTask.setUser(userService.getById(yxeUserTask.getUserId())); + } + + private void setListData(List list) { + if (list == null || list.isEmpty()) { + return; + } + Set taskIds = list.stream() + .map(YxeUserTask::getTaskId) + .filter(id -> id != null && id > 0) + .collect(Collectors.toCollection(LinkedHashSet::new)); + Set userIds = list.stream() + .map(YxeUserTask::getUserId) + .filter(id -> id != null && id > 0) + .collect(Collectors.toCollection(LinkedHashSet::new)); + + Map taskMap = new HashMap<>(); + Map userMap = new HashMap<>(); + Map merchantMap = new HashMap<>(); + + if (!taskIds.isEmpty()) { + List tasks = taskService.listByIds(new ArrayList<>(taskIds)); + taskMap = tasks.stream() + .filter(task -> task.getId() != null) + .collect(Collectors.toMap(YxeTask::getId, task -> task, (a, b) -> a)); + Set merchantIds = tasks.stream() + .map(YxeTask::getMerchantId) + .filter(id -> id != null && id > 0) + .collect(Collectors.toCollection(LinkedHashSet::new)); + if (!merchantIds.isEmpty()) { + merchantMap = merchantService.listByIds(new ArrayList<>(merchantIds)).stream() + .filter(merchant -> merchant.getId() != null) + .collect(Collectors.toMap(com.gxwebsoft.shop.entity.Merchant::getId, merchant -> merchant, (a, b) -> a)); + } + } + if (!userIds.isEmpty()) { + userMap = userService.listByIds(new ArrayList<>(userIds)).stream() + .filter(user -> user.getUserId() != null) + .collect(Collectors.toMap(com.gxwebsoft.common.system.entity.User::getUserId, user -> user, (a, b) -> a)); + } + + for (YxeUserTask item : list) { + if (item == null) { + continue; + } + YxeTask task = taskMap.get(item.getTaskId()); + if (task != null && task.getMerchantId() != null) { + task.setMerchant(merchantMap.get(task.getMerchantId())); + } + item.setTask(task); + item.setUser(userMap.get(item.getUserId())); + } + } + + private com.gxwebsoft.common.system.entity.User toLiteUser(com.gxwebsoft.common.system.entity.User user) { + if (user == null) { + return null; + } + com.gxwebsoft.common.system.entity.User liteUser = new com.gxwebsoft.common.system.entity.User(); + liteUser.setUserId(user.getUserId()); + liteUser.setRealName(user.getRealName()); + liteUser.setNickname(user.getNickname()); + liteUser.setPhone(user.getPhone()); + return liteUser; + } + + @Override + public YxeUserTask getByIdRel(Integer id) { + YxeUserTaskParam param = new YxeUserTaskParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + @Override + public YxeUserTask check(Integer taskId, Integer userId) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeUserTask::getTaskId, taskId) + .eq(YxeUserTask::getUserId, userId) + .in(YxeUserTask::getStatus, 0, 1) + .last("limit 1") + ); + } + + @Override + public YxeUserTask check(Integer taskId) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeUserTask::getTaskId, taskId) + .last("limit 1") + ); + } + + @Override + public Integer countByStatus(Integer taskId, Integer status) { + return count( + new LambdaQueryWrapper() + .eq(YxeUserTask::getTaskId, taskId) + .eq(YxeUserTask::getStatus, status) + ); + } + + @Override + public Integer countTodayNum(Integer userId) { + return count( + new LambdaQueryWrapper() + .eq(YxeUserTask::getUserId, userId) + .between(YxeUserTask::getCreateTime, LocalDateTimeUtil.beginOfDay(LocalDateTime.now()), LocalDateTimeUtil.endOfDay(LocalDateTime.now())) + ); + } + + @Override + public YxeUserTask getByTaskId(Integer taskId) { + return getOne( + new LambdaQueryWrapper() + .eq(YxeUserTask::getTaskId, taskId) + .last("limit 1") + ); + } + + @Override + public List countByStatusWithData(List taskIds, Integer status) { + return list( + new QueryWrapper() + .select("task_id", "count(1) AS count") + .in("task_id", taskIds) + .eq("status", status) + ); + } + + private boolean appendTaskFilter(YxeUserTaskParam param) { + if (param == null || (param.getMerchantId() == null + && param.getTaskStartTimeStart() == null + && param.getTaskStartTimeEnd() == null)) { + return true; + } + LambdaQueryWrapper taskWrapper = new LambdaQueryWrapper<>(); + if (param.getMerchantId() != null) { + taskWrapper.eq(YxeTask::getMerchantId, param.getMerchantId()); + } + if (param.getTaskStartTimeStart() != null) { + taskWrapper.ge(YxeTask::getTaskStartTime, param.getTaskStartTimeStart()); + } + if (param.getTaskStartTimeEnd() != null) { + taskWrapper.le(YxeTask::getTaskStartTime, param.getTaskStartTimeEnd()); + } + List taskList = taskService.list(taskWrapper); + if (taskList.isEmpty()) { + return false; + } + String taskIdList = taskList.stream() + .map(YxeTask::getId) + .map(String::valueOf) + .collect(Collectors.joining(",")); + if (taskIdList.isEmpty()) { + return false; + } + param.setTaskIdList(taskIdList); + return true; + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/service/impl/YxeVisitListServiceImpl.java b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeVisitListServiceImpl.java new file mode 100644 index 0000000..5c575bb --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/service/impl/YxeVisitListServiceImpl.java @@ -0,0 +1,86 @@ +package com.gxwebsoft.yxe.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.common.system.service.UserService; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.yxe.mapper.YxeVisitListMapper; +import com.gxwebsoft.yxe.service.YxeVisitListService; +import com.gxwebsoft.yxe.entity.YxeVisitList; +import com.gxwebsoft.yxe.param.YxeVisitListParam; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 访问列表Service实现 + * + * @author LX + * @since 2026-03-24 15:17:37 + */ +@Service +public class YxeVisitListServiceImpl extends ServiceImpl implements YxeVisitListService { + + @Resource + private UserService userService; + + @Override + public PageResult pageRel(YxeVisitListParam param) { + if (!handleRealNameFilter(param)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + PageParam page = new PageParam<>(param); + page.setDefaultOrder("sort_number asc, create_time desc"); + List list = baseMapper.selectPageRel(page, param); + for (YxeVisitList yxeVisitList : list) { + yxeVisitList.setUser(userService.getById(yxeVisitList.getUserId())); + } + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(YxeVisitListParam param) { + if (!handleRealNameFilter(param)) { + return Collections.emptyList(); + } + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + page.setDefaultOrder("sort_number asc, create_time desc"); + return page.sortRecords(list); + } + + @Override + public YxeVisitList getByIdRel(Integer id) { + YxeVisitListParam param = new YxeVisitListParam(); + param.setId(id); + return param.getOne(baseMapper.selectListRel(param)); + } + + private boolean handleRealNameFilter(YxeVisitListParam param) { + if (param == null || StrUtil.isBlank(param.getRealName())) { + return true; + } + List users = userService.listByRealName(param.getRealName()); + if (users == null || users.isEmpty()) { + return false; + } + Set userIds = users.stream() + .map(User::getUserId) + .filter(userId -> userId != null && userId > 0) + .collect(Collectors.toCollection(LinkedHashSet::new)); + if (userIds.isEmpty()) { + return false; + } + param.setUserIds(userIds); + return true; + } + +} diff --git a/src/main/java/com/gxwebsoft/yxe/utils/YxeSalesExportUtil.java b/src/main/java/com/gxwebsoft/yxe/utils/YxeSalesExportUtil.java new file mode 100644 index 0000000..694fa0e --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/utils/YxeSalesExportUtil.java @@ -0,0 +1,240 @@ +package com.gxwebsoft.yxe.utils; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; + +import java.math.BigDecimal; +import java.text.Normalizer; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +public class YxeSalesExportUtil { + + public static class SalesColumn { + private final String key; + private final String title; + + public SalesColumn(String key, String title) { + this.key = key; + this.title = title; + } + + public String getKey() { + return key; + } + + public String getTitle() { + return title; + } + } + + public static class SalesExportResult { + private final List columns; + private final List> rowQtyMaps; + + public SalesExportResult(List columns, List> rowQtyMaps) { + this.columns = columns; + this.rowQtyMaps = rowQtyMaps; + } + + public List getColumns() { + return columns; + } + + public List> getRowQtyMaps() { + return rowQtyMaps; + } + } + + private static class SalesItem { + private final String key; + private final String title; + private final BigDecimal qty; + + private SalesItem(String key, String title, BigDecimal qty) { + this.key = key; + this.title = title; + this.qty = qty; + } + } + + private YxeSalesExportUtil() { + } + + public static SalesExportResult build(List salesGroupsList) { + Map columnTitleMap = new LinkedHashMap<>(); + List> rowQtyMaps = new ArrayList<>(); + if (salesGroupsList == null) { + return new SalesExportResult(new ArrayList<>(), rowQtyMaps); + } + for (String salesGroups : salesGroupsList) { + Map rowQtyMap = new LinkedHashMap<>(); + for (SalesItem item : parseSalesItems(salesGroups)) { + if (!columnTitleMap.containsKey(item.key)) { + columnTitleMap.put(item.key, item.title); + } + rowQtyMap.merge(item.key, item.qty, BigDecimal::add); + } + rowQtyMaps.add(rowQtyMap); + } + List columns = new ArrayList<>(); + for (Map.Entry entry : columnTitleMap.entrySet()) { + columns.add(new SalesColumn(entry.getKey(), entry.getValue())); + } + return new SalesExportResult(columns, rowQtyMaps); + } + + public static List buildColumnsFromSalesGroups(List salesGroupsList) { + return build(salesGroupsList).getColumns(); + } + + public static Map buildQtyMapByColumnKey(String salesGroups) { + Map qtyMap = new LinkedHashMap<>(); + for (SalesItem item : parseSalesItems(salesGroups)) { + qtyMap.merge(item.key, item.qty, BigDecimal::add); + } + return qtyMap; + } + + public static String formatQty(BigDecimal value) { + if (value == null || value.compareTo(BigDecimal.ZERO) == 0) { + return ""; + } + return value.stripTrailingZeros().toPlainString(); + } + + private static List parseSalesItems(String salesGroups) { + List result = new ArrayList<>(); + if (StrUtil.isBlank(salesGroups)) { + return result; + } + try { + JSONArray groups = JSONArray.parseArray(salesGroups); + if (groups == null) { + return result; + } + for (Object groupObj : groups) { + if (!(groupObj instanceof JSONObject)) { + continue; + } + JSONArray items = ((JSONObject) groupObj).getJSONArray("items"); + if (items == null) { + continue; + } + for (Object itemObj : items) { + if (!(itemObj instanceof JSONObject)) { + continue; + } + JSONObject item = (JSONObject) itemObj; + BigDecimal qty = parseQty(item.get("qty")); + if (qty == null) { + continue; + } + String title = buildTitle(item); + if (StrUtil.isBlank(title)) { + continue; + } + String key = buildColumnKey(item, title); + result.add(new SalesItem(key, title, qty)); + } + } + } catch (Exception ignored) { + return new ArrayList<>(); + } + return result; + } + + private static String buildTitle(JSONObject item) { + String productName = firstNonBlank( + item.getString("name"), + item.getString("title"), + item.getString("productName"), + item.getString("goodsName"), + item.getString("productId"), + item.getString("goodsId"), + item.getString("code"), + item.getString("goodsCode") + ); + String maker = firstNonBlank(item.getString("makerAbb"), item.getString("maker")); + String unit = firstNonBlank(item.getString("unit")); + List parts = new ArrayList<>(); + if (StrUtil.isNotBlank(productName)) { + parts.add(normalizeTitlePart(productName)); + } + if (StrUtil.isNotBlank(maker)) { + parts.add(normalizeTitlePart(maker)); + } + if (parts.isEmpty()) { + return ""; + } + String title = String.join("/", parts); + return StrUtil.isBlank(unit) ? title : title + "(" + unit.trim() + ")"; + } + + private static String buildColumnKey(JSONObject item, String title) { + String normalizedTitle = normalizeColumnKey(title); + if (StrUtil.isNotBlank(normalizedTitle)) { + return "title:" + normalizedTitle; + } + String id = firstNonBlank( + item.getString("productId"), + item.getString("goodsId"), + item.getString("id"), + item.getString("code"), + item.getString("goodsCode") + ); + if (StrUtil.isNotBlank(id)) { + return "id:" + id.trim(); + } + return "text:" + normalizeKey(title); + } + + private static String firstNonBlank(String... values) { + if (values == null) { + return null; + } + for (String value : values) { + if (StrUtil.isNotBlank(value)) { + return value.trim(); + } + } + return null; + } + + private static String normalizeTitlePart(String value) { + return value == null ? "" : value.trim().replaceAll("\\s+", " "); + } + + private static String normalizeColumnKey(String value) { + if (value == null) { + return ""; + } + String normalized = Normalizer.normalize(value, Normalizer.Form.NFKC); + return normalized.trim().replaceAll("[\\s\\u3000]+", "").toLowerCase(); + } + + private static String normalizeKey(String value) { + return value == null ? "" : value.trim().replaceAll("\\s+", "").toLowerCase(); + } + + private static BigDecimal parseQty(Object value) { + if (value == null) { + return null; + } + if (value instanceof Number) { + return new BigDecimal(String.valueOf(value)); + } + String text = String.valueOf(value).trim(); + if (text.isEmpty()) { + return null; + } + try { + return new BigDecimal(text); + } catch (NumberFormatException e) { + return null; + } + } +} diff --git a/src/main/java/com/gxwebsoft/yxe/vo/AuditLiteUserVO.java b/src/main/java/com/gxwebsoft/yxe/vo/AuditLiteUserVO.java new file mode 100644 index 0000000..fa59c31 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/vo/AuditLiteUserVO.java @@ -0,0 +1,18 @@ +package com.gxwebsoft.yxe.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class AuditLiteUserVO implements Serializable { + private static final long serialVersionUID = 1L; + + private Integer userId; + + private String realName; + + private String nickname; + + private String phone; +} diff --git a/src/main/java/com/gxwebsoft/yxe/vo/AuditSelfReportSummaryVO.java b/src/main/java/com/gxwebsoft/yxe/vo/AuditSelfReportSummaryVO.java new file mode 100644 index 0000000..21bcc63 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/vo/AuditSelfReportSummaryVO.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.yxe.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class AuditSelfReportSummaryVO implements Serializable { + private static final long serialVersionUID = 1L; + + private Integer id; + + private Integer userId; + + private Integer merchantId; + + private Integer status; + + private String merchantName; + + private String chainName; + + private String date; + + private String owner; + + private String summary; + + private String rejectReason; + + private String rating; + + private String location; + + private BigDecimal reward; +} diff --git a/src/main/java/com/gxwebsoft/yxe/vo/AuditShareSummaryVO.java b/src/main/java/com/gxwebsoft/yxe/vo/AuditShareSummaryVO.java new file mode 100644 index 0000000..c3edb56 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/vo/AuditShareSummaryVO.java @@ -0,0 +1,39 @@ +package com.gxwebsoft.yxe.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class AuditShareSummaryVO implements Serializable { + private static final long serialVersionUID = 1L; + + private Integer id; + + private Integer userId; + + private Integer merchantId; + + private Integer status; + + private String merchantName; + + private String chainName; + + private String orderNo; + + private String date; + + private String owner; + + private String remark; + + private String image; + + private BigDecimal amount; + + private BigDecimal income; + + private BigDecimal extraIncome; +} diff --git a/src/main/java/com/gxwebsoft/yxe/vo/AuditTaskSummaryVO.java b/src/main/java/com/gxwebsoft/yxe/vo/AuditTaskSummaryVO.java new file mode 100644 index 0000000..6a7ac14 --- /dev/null +++ b/src/main/java/com/gxwebsoft/yxe/vo/AuditTaskSummaryVO.java @@ -0,0 +1,30 @@ +package com.gxwebsoft.yxe.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class AuditTaskSummaryVO implements Serializable { + private static final long serialVersionUID = 1L; + + private Integer id; + + private Integer taskId; + + private Integer userId; + + private Integer status; + + private String taskTitle; + + private String merchantName; + + private String chainName; + + private String submitTime; + + private String owner; + + private String[] imageList; +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 11c717f..f4969ea 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -3,11 +3,14 @@ # 数据源配置 spring: datasource: - url: jdbc:mysql://127.0.0.1:3306/law?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 - username: root - password: root - driver-class-name: com.mysql.cj.jdbc.Driver - type: com.alibaba.druid.pool.DruidDataSource + url: jdbc:mysql://132.232.214.96:13306/yaoxiaoer?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 + username: yaoxiaoer + password: f4aSbShj8DpiSiNi +# url: jdbc:mysql://127.0.0.1:13306/yaoxiaoer?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 +# username: root +# password: root +# driver-class-name: com.mysql.cj.jdbc.Driver +# type: com.alibaba.druid.pool.DruidDataSource # 日志配置 logging: @@ -21,9 +24,8 @@ config: # 开发环境接口 server-url: http://localhost:10051/api # upload-path: /Users/gxwebsoft/Documents/uploads/ - upload-path: /Users/liangxin/Project/JAVA/law-java/ + upload-path: /Users/liangxin/Project/JAVA/yaoxiaoer-java/ wxpay: - private-key-path: /Users/liangxin/Project/JAVA/law-java/src/main/resources/cert/apiclient_key.pem - cert-path: /Users/liangxin/Project/JAVA/law-java/src/main/resources/cert/apiclient_cert.pem - + private-key-path: /Users/liangxin/Project/JAVA/yaoxiaoer-java/file/cert/apiclient_key.pem + pub-key-path: /Users/liangxin/Project/JAVA/yaoxiaoer-java/file/cert/pub_key.pem diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 158fd23..f1d6b52 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -3,12 +3,18 @@ # 数据源配置 spring: datasource: - url: jdbc:mysql://127.0.0.1:3318/law?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 - username: law - password: HAXx4Ar2aNPCnBKi + url: jdbc:mysql://1Panel-mysql-Bqdt:3306/yaoxiaoer?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 + username: yaoxiaoer + password: f4aSbShj8DpiSiNi driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource + redis: + database: 0 + host: 1Panel-redis-Q1LE + port: 6379 + password: redis_WSDb88 + # 日志配置 logging: file: @@ -21,11 +27,11 @@ logging: # 框架配置 config: # 开发环境接口 - server-url: https://sifa-api.wsdns.cn/api - upload-path: /www/wwwroot/sifa-api.wsdns.cn/ - file-server: https://sifa-api.wsdns.cn + server-url: https://yxe-api.gxwebsoft.com/api + upload-path: /app/file/ + file-server: https://yxe-api.gxwebsoft.com wxpay: - private-key-path: /www/wwwroot/sifa-api.wsdns.cn/cert/apiclient_key.pem - cert-path: /www/wwwroot/sifa-api.wsdns.cn/cert/wechatpay_4A3231584E93B6AE77820074D07EADEACCB7E223.pem - + private-key-path: /app/file/cert/apiclient_key.pem + pub-key-path: /app/file/cert/pub_key.pem + \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 84ba41f..aa96454 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -11,6 +11,12 @@ spring: application: name: server + mvc: + static-path-pattern: /file/** + web: + resources: + static-locations: classpath:/file,classpath:/public,classpath:/resources,classpath:/META-INF/resources,file:SystemData + # 连接池配置 datasource: druid: @@ -88,12 +94,19 @@ config: token-key: WLgNsWJ8rPjRtnjzX/Gx2RGS80Kwnm/ZeLbvIL+NrBs= server-url: https://server.gxwebsoft.com/api file-server: http://localhost:10051 - upload-path: /Users/liangxin/Project/JAVA/tower-java/ + upload-path: /Users/liangxin/Project/JAVA/yaoxiaoer-java/ local-upload-path: /Users/gxwebsoft/Documents/uploads/ wx: miniapp: configs: - - appid: wx25deb2f4b5cd2b81 - secret: f5b623a28ec2e593a6ce6860eeaaf299 - msgDataFormat: JSON \ No newline at end of file + - appid: wx0c1587a63b0b9db5 + secret: 02dd525de0901643a1c1eb1b5fd61bcd + msgDataFormat: JSON + +wxpay: + api-v3-key: GFeriugH43Vnhcsg87w436t987cmxp9f + pub-key-id: PUB_KEY_ID_0117388405662026020400192075002808 + app-id: wx0c1587a63b0b9db5 + mch-id: 1738840566 + mch-serial-no: 19671F0AF9E45BCF29FDB2BD4D2D09B9DF7CA402 \ No newline at end of file diff --git a/src/main/resources/cert/44ad9c08a0ab46dd8fc555178df581c4.pem b/src/main/resources/cert/44ad9c08a0ab46dd8fc555178df581c4.pem new file mode 100644 index 0000000..fa8f6b9 --- /dev/null +++ b/src/main/resources/cert/44ad9c08a0ab46dd8fc555178df581c4.pem @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwKxSpBlNtDurWOlPNHXM +EJND/BVEmLU8bMVo9NyR+eZay3o/VwOojytHk8RwWxP9vRtY+d7wQtC0T9P05buK +pTBrC1qX1L5ekrJBtkG/EXNA9AYzbI3uvb8v0/ohyvw9qhYNEhOGB2VwQUYI4HfE +HswirY7HPUaK/524V9sMlCNzybodatL2Qgk0ZnQH+Rb86kDUi1YZsFYj3JOFHAoA +gyhIgTf86HALsO0ElBqQDVv5lEuGM6EZ2RprYikI3RasnmH5RqfiL2Fmj+TTdMog +RxQ0SH0XbzAAjZjOpRqD/XyzKC3u2mSenucTiT09hRrW2u9PT9jpPFMsfv79B8R7 +DQIDAQAB +-----END PUBLIC KEY----- diff --git a/src/main/resources/cert/apiclient_cert.p12 b/src/main/resources/cert/apiclient_cert.p12 index c561841..d34c9c2 100644 Binary files a/src/main/resources/cert/apiclient_cert.p12 and b/src/main/resources/cert/apiclient_cert.p12 differ diff --git a/src/main/resources/cert/apiclient_cert.pem b/src/main/resources/cert/apiclient_cert.pem index 6880e1f..912b5ea 100644 --- a/src/main/resources/cert/apiclient_cert.pem +++ b/src/main/resources/cert/apiclient_cert.pem @@ -1,24 +1,25 @@ -----BEGIN CERTIFICATE----- -MIID8zCCAtugAwIBAgIUXCoPmnLcPykMyQydi3234TGalk4wDQYJKoZIhvcNAQEL +MIIEKDCCAxCgAwIBAgIUfuJMaVsnjbLE8MHLQgaQZezL4/0wDQYJKoZIhvcNAQEL BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg -Q0EwHhcNMjIwNDA4MDQ1MjAxWhcNMjcwNDA3MDQ1MjAxWjCBhDETMBEGA1UEAwwK -MTYxNTczOTM4NDEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTAwLgYDVQQL -DCfljZflroHluILnvZHlrr/kv6Hmga/np5HmioDmnInpmZDlhazlj7gxCzAJBgNV -BAYMAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAKp/F0BGSkAlJYZz19iGg0sKrF7uHxZhBxaO1Jxbm626HkhahF+B -6GG5qKbFyw9eNiZjrGz6q71ScHfAUN/5AoE/Ae6TSnFMUDsXSaG7VCYUlgo4P+BQ -nUCtsGfqJOLKNkcvkyoO2GUHulJALe62r9J/MQdvB6YjOY/XCP2sz5ww2GWJW0tS -M3IYPz1DwYWxVMnOnQhUChruUQymj37rXKqyz/pRWluzCKxB36lO3HsVBTKjn2x2 -9Y/hXCNOueRGfoNzJKdr8Nk8Kd39baRF5Ru8PXvcdBQFEQT/ilvoDs+RuNvJWIed -Ax0T416PJMJx/3hi/Tn/BobuHZZKkHmq4HMCAwEAAaOBgTB/MAkGA1UdEwQCMAAw -CwYDVR0PBAQDAgTwMGUGA1UdHwReMFwwWqBYoFaGVGh0dHA6Ly9ldmNhLml0cnVz -LmNvbS5jbi9wdWJsaWMvaXRydXNjcmw/Q0E9MUJENDIyMEU1MERCQzA0QjA2QUQz -OTc1NDk4NDZDMDFDM0U4RUJEMjANBgkqhkiG9w0BAQsFAAOCAQEAbl5p24AlmfVq -ppjO+EuQ2/3B94ThjKd6tx9tXSTbwHoBzYHF+qR/k2uflECJaSOs/az9iegTDSal -oJ+mK+OHxlvGKNlDtff22KYDpeO0FRrEP5x5tOVpvd8n9t3aGG8r90I23yoxAy0A -dDzzysHaw8d8CmV4UfbDR368BzlWEDByAWbu9kE4+4/A/0MmTZuivUEOvvNG5JBM -kU/P5eKI8MNZ/RrriuW7vCaODI5QVYNwc7lBZyolEjFyPBLfyXL8XbmKMjTd+zEE -4wmktem2hJLrMb7Q5A/XQmFFyk/JtcXbQCDFeA476xQ92w3pmJ218D4iolThzed6 -CpV7eWJ27A== +Q0EwHhcNMjUxMTI4MDM1MjQ0WhcNMzAxMTI3MDM1MjQ0WjCBgTETMBEGA1UEAwwK +MTczMjkzMDAzMTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL +DCTlub/lt57nroDlubjkv6Hmga/np5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYT +AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAPCWcxFUEW7cGVCkCW2/lGM9ByVOC3h+Bxvzb0DDu4KedMMFp9rOGPZj +uvYNRGzJfaepLVPXFBEo6WaMYYnyZ4W0GSqDaynZsZpowEKUQ+q6Hpfq6A0og7bd +gKZ1PuSyTyKqVrXg+WrGT2XfgbRpXQVevpiIcrzfWznYBxeSigc3xQf9DJtyUNUa +tgFJ+hR8tkYqzS5GoqRvyG7OULFw7jBZyEQ74rUNpPjUASBoXSN+awQxHtAQbljD +4E25KVrEGph9u5Mf94I8Btkh8p9JQJOuKScRDAqdMLbfzYwISTZF1uUPbhmuS7Ra +FEHx/9vdLhja8RnExOe/blEwj2cm5E0CAwEAAaOBuTCBtjAJBgNVHRMEAjAAMAsG +A1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2Y2Eu +aXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJDMDRC +MDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJCMjdB +OUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQBu+6Vq +4DdIq+6Jw26uD2g3uZUBxj3lc9RfNPotJjcP5Ag81hYyNyj0w7Xhlz3enDRSHAFK +Z0IeF+WwrmCVzUwC9YzQ0khMcFSQkjIC7kQAGON4JtPPCEefilZJ2Xr/7gYKu4Cy ++bkr0jt5/pLPqi3ngC81GWz935pqMNJo2oGbZQviV+97AXluifGbNoQh+0e0Fkj0 +2411GLvW8PToLlXM+g2+AmcxA3ADrjmmMv3Cq0OiPj9X2h8sGreoEBW0bT6+Jzfd +CvIHKCttxq27m6V1AyA+CnTxtZBiG/MSsBRhu0FxWL6F8ZWBNIDkfszbcx2MdzvQ +qUVN9nEYPbxpv4bO -----END CERTIFICATE----- diff --git a/src/main/resources/cert/apiclient_key.pem b/src/main/resources/cert/apiclient_key.pem index 88e170f..3995b00 100644 --- a/src/main/resources/cert/apiclient_key.pem +++ b/src/main/resources/cert/apiclient_key.pem @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqfxdARkpAJSWG -c9fYhoNLCqxe7h8WYQcWjtScW5utuh5IWoRfgehhuaimxcsPXjYmY6xs+qu9UnB3 -wFDf+QKBPwHuk0pxTFA7F0mhu1QmFJYKOD/gUJ1ArbBn6iTiyjZHL5MqDthlB7pS -QC3utq/SfzEHbwemIzmP1wj9rM+cMNhliVtLUjNyGD89Q8GFsVTJzp0IVAoa7lEM -po9+61yqss/6UVpbswisQd+pTtx7FQUyo59sdvWP4VwjTrnkRn6DcySna/DZPCnd -/W2kReUbvD173HQUBREE/4pb6A7PkbjbyViHnQMdE+NejyTCcf94Yv05/waG7h2W -SpB5quBzAgMBAAECggEAN+7RtehZW4nUMbO3T/VxBSFPQyVjVXgnVyMsZM8411mD -rcDkRGDd15GM3oltAHGr2hRA8M+bn9R3yRFydse+JqCBBb+UYG7ksz4EjeZiyMtg -HaIucmx/6kQQ50ZNK4mjHN9irB2KqDpMycb8Sp/sNmY7s3CdVcegjqvA61fSFC74 -+w2HEDm0b2tDb0nU5v1BXsVL1i+kRqIpK9s7IrErjJG5YCn1ttqvtRTRZaWkgAkw -WHHtK30r1Stc3QYeGkO2Cjjunv41eSvrhcBSHSuQPrzJa6BkX6Oe1JfFeQ/4Spyc -eYcsRBBV2YNklsCwFVPhOA176EeB8iJ+c6FtXSwk4QKBgQDRVicrl0qd335ocrw3 -4eFfB1NTS8AnL7B1HbG8ryWNGTdRLRnF6Faz1xlSf6qq0s8DCc8cjsDRGDJ8tTWC -s8rxHvX7Veih6YUkVl2QaYvxfshgbHtOZ4jOpFkJSsb+OTI6zSTTwUBwhOKq6al6 -UMN+Ll2RF5GxDlF/iDFsFyJI7wKBgQDQgISAOJ3XqrRJQhuofjVO0tV22K8yDKW8 -51TCEkHzOIvCyrNj3Ee5wkqfnOmP8Mpo02f+302PRN+qy/AHINbNwy94YbJPwOFO -kjMhmvZf5D1BmQCnLHYuXww2eMAUCJLxAWgChYhqR37sm4IW9s1WbMHi8fLnVfsm -3WBVgYV4vQKBgA/jSAnI68LbqY5n1t0u6Zn6xlo2D5lpxyy8WjcF3AW/ejFRCPm6 -TopLswJN6jgY09lZLzztoLi962cHoc4Ps0FlpimzNXrEbHR7kZJaUGK9ypt24Ezt -ErcMRi2sXToCQUuxMjBYJHnlvAZYwaIk6xFyl2thrI8RlSHmxkl74ABFAoGBALO7 -dXzKUVZN8qeL8yel0/Ik0JpoY22zdVOH3oqFDpDJV8EM1uLoSnQYxhcdPkE0gmcm -hekxOTydVGl472pVppUtAki1fu49CHugj68SU/uJVjyr1eJF84I5sN9r67fZREG4 -wp4Z2eQzyXfQ/a0qBwvPKLuncYp1ldCE2LwcsJ/JAoGAecsQKQFx5+apuPHTBihi -MhiZEdO+5wLJiF+X8S78zCH3kvQhGvQvrUncBaKG1pOMJw+ewrJDtL4Y/++17gPL -chQuScdIwG72lMWV4T7AItu0YiM6I+UZA77FADpX1icWfd2s4QKJTgpJiZYJMuNF -OAN6OLXWbQZlD5CPVjS4wK4= +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDwlnMRVBFu3BlQ +pAltv5RjPQclTgt4fgcb829Aw7uCnnTDBafazhj2Y7r2DURsyX2nqS1T1xQRKOlm +jGGJ8meFtBkqg2sp2bGaaMBClEPquh6X6ugNKIO23YCmdT7ksk8iqla14Plqxk9l +34G0aV0FXr6YiHK831s52AcXkooHN8UH/QybclDVGrYBSfoUfLZGKs0uRqKkb8hu +zlCxcO4wWchEO+K1DaT41AEgaF0jfmsEMR7QEG5Yw+BNuSlaxBqYfbuTH/eCPAbZ +IfKfSUCTriknEQwKnTC2382MCEk2RdblD24Zrku0WhRB8f/b3S4Y2vEZxMTnv25R +MI9nJuRNAgMBAAECggEAQKHKS89v135ddqJ6vfcHoBlXABiVUEtbEZE2RAnRJ+f1 +qiasz0Uqw5ZLNaqexTLkBNSYDrvq8ikxepEf6vUqBms5j4g6k8WdxsN5UumNzVMu +wNUkfdRyff/HffBlcv7L754fKUFFAABCeDWxHIxppvWq8kNFv6OpWELGtPhzCDjX +540CoUBcMP68hOjgWBGGdncTJRuPl/0mlS5etFrvseXjmviOz4WUij8ytpr22yEb +2k8SmoUzHE9gYTgAR/e1fzy3LujeT2S+YKnKZX74EBQRlkEwRAsnaBLGjJ6wGPN5 ++PKSccUNFfuVnUh39NSEsQHtsn1uNcK13IgIokayqQKBgQD5j0iJwRW/12EiwFtJ +y+dCp8DVaAixlYz8qv3QJXDeGw+Ffj2uh7d3lR8OBxwDGBlhLe6rXfAPGjuE5IYe +qL49+QozSAZLCJwCFy1o/nt6wD4URnog/Vvz3daQqC+HTJ6V4ifJw11WIgJXCTxH +VsoaJPlRTFLjx2FQEjWrAG6TcwKBgQD2y+R9/h3nqW9Hw7fpLmmtUM2xOKLmkQM2 +hDNSLmTMdS0ZjZpBb9bUqnb2y4Li7Wml5N+1LL33osSLca98k7h8LTBg1f2I4Et0 +UipZ4zR206O0hvrNx0Prz2/MJtxEDi9tRDZ9RsPnbFprov/q3oVQps7E/bPw9VB8 +EoRIb3Q5PwKBgECSJ0WlVPhPRQ3V0Yj1nj+r4gQVp/Iy7MjPgV6i4WJGhCyZLmKD +MSBa0C8z/bZ7PM3dMZzbcGqn8fB/pIg4RwkH7/C22RH/B0avMouxFMf9B9L9LUpt +46Xkp0jEi4+pbnr/iiX1S6gmoo5ckGEw/pfnKy8y3VucUfyCyaoWMYYrAoGABbOM +IcT/F9z4LyY8V2y1EEXvmop+aOkss9O2A84Ckh6a3h5BVAWrZtpRST5GVcu6RxTU +fjD8an4eIEKOFUisWGIK3hHTe5gC5jsHs2/mRGB7Ra5gmORjk00FfiffqsrRGasb +vyUlXXFJXXc0hk6Bse1IlZBu2cAxDcy3tZytiK0CgYEA7ehzpizOu2AENX17nM52 +E6D/PIkW60pG/40Eqx8NZH0SSweOOaxTfoH5sXeaovOu+WNr6rF66VaOCUzF2Qu9 +viXzWFmsFVA/dcO7p5DoZwR8/nn74OX7lIgfJN2lgJJ6WKPHCBpjRk5WB1FYL3Ox +nfFZWbPqISq7mHewpprGQvA= -----END PRIVATE KEY----- diff --git a/src/main/resources/cert/appPublicCert.crt b/src/main/resources/cert/appPublicCert.crt deleted file mode 100644 index a12dea4..0000000 --- a/src/main/resources/cert/appPublicCert.crt +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDjzCCAnegAwIBAgIQICISFPMNDPadFdV3VF7atzANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UE -BhMCQ04xGzAZBgNVBAoMEkFudCBGaW5hbmNpYWwgdGVzdDElMCMGA1UECwwcQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkgdGVzdDE+MDwGA1UEAww1QW50IEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eSBDbGFzcyAyIFIxIHRlc3QwHhcNMjIxMjE0MTEzNjE3WhcNMjMxMjE5MTEzNjE3WjBh -MQswCQYDVQQGEwJDTjEVMBMGA1UECgwM5rKZ566x546v5aKDMQ8wDQYDVQQLDAZBbGlwYXkxKjAo -BgNVBAMMITIwODgxMDIxNzUyMDcyOTItMjAxNjA5MTEwMDQ4OTQ4NjCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAJFjmRNQkJ1d2kWZ4bn8WvIUWKu2+wMDQ5nOMaIGtKo+bx3o1RaAWYct -XJL82GkdUr+JpiBy7W1iFl0quZJIo2n9tyxsTGTswq1mtYJVKonHELxN1L2Xz9PjU8wlzQwxb2Rm -JlW2/SpUGaRiZxzYJHhHXbqvPH8D/xG+x6Hwq9zEF/ZIDMCLi5wiXhK7KFXDOBFYdOw0zwCmGIeY -73htk56kay1HoTjwACvZzkw8ff5FRA76/5/7ZEj6R6Hga/LMmYJXfntPPYW/wuMiBI7rU5f4s6El -S1A2uwK4+kbepg9klOYR2Lg30SNz4hj4k8KNtoeWnzrTlWoZj3SfDErJuuMCAwEAAaMSMBAwDgYD -VR0PAQH/BAQDAgTwMA0GCSqGSIb3DQEBCwUAA4IBAQC9YAgw5uwHUgY73t8eABW8LzrhLoUafN/j -WG6QataRgaTHbNCuCz5yWTMmD7hZGmb8NuZzaLOPD+/0yM5nz+w/nc+Emc6hzTCrBVtFX80nnM3j -lIDBRGJRS2JlyrwL80DxoVCbY7JLkSRpGhc9RYLrNfPjpxhxchJ/8V1JU21rL5GKSdaR2YJDvANi -Bth321Q0G6djxfLPjx3zXp8VTGDdhRZjblJ7EddK4kaQ3RKTm4+UivUYMMQ+esD8NnoHTGvDXRCi -rqd+EtAZZ84yqW7YKKTjsh9a3tLBFwFMc2A2WM3s6fXtrFAiffsXwcyqaKTXibVTFE9t2sTUUaPF -IoJu ------END CERTIFICATE----- \ No newline at end of file diff --git a/src/main/resources/cert/backup/apiclient_cert.p12 b/src/main/resources/cert/backup/apiclient_cert.p12 deleted file mode 100755 index b597ba5..0000000 Binary files a/src/main/resources/cert/backup/apiclient_cert.p12 and /dev/null differ diff --git a/src/main/resources/cert/backup/apiclient_cert.pem b/src/main/resources/cert/backup/apiclient_cert.pem deleted file mode 100755 index a2c2df2..0000000 --- a/src/main/resources/cert/backup/apiclient_cert.pem +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEKzCCAxOgAwIBAgIUY2ZU9GvIGE/T4LjKpdDlRIMEIaswDQYJKoZIhvcNAQEL -BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT -FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg -Q0EwHhcNMjMwNzI0MTM0ODM3WhcNMjgwNzIyMTM0ODM3WjCBhDETMBEGA1UEAwwK -MTI0NjYxMDEwMTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTAwLgYDVQQL -DCfljZflroHluILnvZHlrr/kv6Hmga/np5HmioDmnInpmZDlhazlj7gxCzAJBgNV -BAYMAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBALb2qbByODjQWx8Z+eRmwO3YqwzoqbeTeVL53/zJY9MfTZKOX8Xd -giOWM7nUE0KlFsB6Yc2tAEvOTz6baTywyKPzSIbhdDvqYjr/KJ8VLJyPEj7d4z8p -5RjkwEMBs5dX0UxtS0zLyKNtWOXsiw+tTMoWCbFZCcaA6JNqw9Us6yo1JXsCJQcb -fwU9AMML+CQRqraZ8NkOIKVis1yfMnPuEoWP+/wmpit3/PJuQkXeFlRS7U946xiu -FexzLhFTmX/vR9VLbegn3ewmhEiAlZGHZn/9q+mQT7j4g8k063ccFr2kXrLepJQ2 -zyv07lznpCOdzsvVm2cJHvRAI/UKQqWwDuMCAwEAAaOBuTCBtjAJBgNVHRMEAjAA -MAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2 -Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJD -MDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJC -MjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQA4 -/45dk0japlJEgE6p0LoLrYU8m3cZgth+XJGVmf4PfqYX25RayIIwpwiNXUvwul5H -nW+ePNhuZqRXTVZsrsyG+Id/r46HDUu8zFsm3Bp8PpU2EazJiJgzNNxQxVPrM06m -CU/zwLmFsyLyNL8VedGErFWsl2TI+Z6cD5d3NCPZNsOlvluInRe14+89ZQaljT5Q -BabUy+ug0v19TfYVXEoQc+QxQbtR6x4uxiGBCWoHRXKrGsssCbBZSSM+YtkwPcX4 -cJer4Nf3ZIom5eA7yAV4sRWU9HTXgiECGI2CWA+B+VGgSLpu4VthTDwHwIpC2m/C -MjtMuHD7RHxUMhf6GWng ------END CERTIFICATE----- diff --git a/src/main/resources/cert/backup/apiclient_key.pem b/src/main/resources/cert/backup/apiclient_key.pem deleted file mode 100755 index 3cbd6d2..0000000 --- a/src/main/resources/cert/backup/apiclient_key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC29qmwcjg40Fsf -GfnkZsDt2KsM6Km3k3lS+d/8yWPTH02Sjl/F3YIjljO51BNCpRbAemHNrQBLzk8+ -m2k8sMij80iG4XQ76mI6/yifFSycjxI+3eM/KeUY5MBDAbOXV9FMbUtMy8ijbVjl -7IsPrUzKFgmxWQnGgOiTasPVLOsqNSV7AiUHG38FPQDDC/gkEaq2mfDZDiClYrNc -nzJz7hKFj/v8JqYrd/zybkJF3hZUUu1PeOsYrhXscy4RU5l/70fVS23oJ93sJoRI -gJWRh2Z//avpkE+4+IPJNOt3HBa9pF6y3qSUNs8r9O5c56Qjnc7L1ZtnCR70QCP1 -CkKlsA7jAgMBAAECggEBAJf7B3PJPUh8UuTf6ANBE4u/Cj872RbjyskRRW0vQNuz -yfUujQHIgXzcHPWE48bdaavTPQDjbzaJFqxz3hQK6W++/AUGrE3E4XoOUAjtRtR5 -x/cuy8DBJUvrYIWImUzjJrmso/sT4ANZJpo/RjhshTfs3HpT8tnQZOFns2qV2HaC -raIasa69LZpM6mA+1+pDDTFCYRqNZTFSAIawiEPz5C6YRoSLoSkJLVnwh10MGQJb -Z2RWIt9kcvpUT2bYirYG1HgZJjuygCu80JMHFLhxOWAEQXknILYs5YfJcS7QjFrH -7q5YYe/SKoRgMGUUL6src/mHan5yzLK4bXlW4vU627kCgYEA2jIlLMjVPx5N3iy9 -6dLa+Od5NhXCo+Cd3tr0EJGOpXquiw5wkSX6av6DNsObmMW9gkSwRKah8Iw+dQR7 -r5xYI8quT0tVqZLaL6j2xh3FSzGFSdF5a/IoKq4UrhmA05PwS2BtAwJTnMxBNoF9 -cSdoLUHVgRNmfI0Yk/vys23gy98CgYEA1qnSnG8hI/eIE46hHs3Cgx8AhACgm9Wy -bg3qeH9eu+pZ6Na3HQRtGGzeBug1P3ezBYjx6eol55TGIpocn8Ujm28Q3Zng61Tx -luV8LwTThVs+dvndEX0BTXbKx/dcbmpA4W6Kg/dzq6FXT2ryZPw96VUXMl8MAe/M -rRGMT96z3X0CgYAE82RSitAD2Z0ssFkyx/z97sqaRo4fB8atOsyU36ib6pexQged -033GFbZGdNO/+KSfIw3Y0OsVuSjloM9poaOCVGP2GqB784AN2siWoDBMz3fVv/IA -WAM/TKnddWit5Epse2idy9y3zw6fvPpqqdk8RaUhg54sr0rieLH+Dj0ugwKBgGtt -pcdAHle/o0wWTy/5TWUNeNaW8cnLUnadZEBVjfWBPOm3uwA8nNRid2MBhtRydRdK -B7dGxR12aQocEkMrB7zcApbEUbm0UwtvYYyuX6UXmtU0Cpyb8LDxyF32vz1K05l+ -FrggeLTmE6ndHd3IFrvVJ7y/sGSvu8DJTW0TSPSJAoGBAKKj3/21zJZZWMW0Hzdn -d7gKb8ros7SkWkN+xa7PeaScujA3MyE8r9/gsvC/5qLqa+3xAp7FA5MFY24d0vAf -cA1QAic1eCNZsHA0Qy+/VEyTSE/alKYEDvj5NV0WcC3mlmfZ+uRTL3HwXYqSbM4F -aI+vUhQJuXHpkybb3fM1ncwg ------END PRIVATE KEY----- diff --git a/src/main/resources/cert/wechatpay_0BC92BA528729B58B39CC69E58D3855EACFF9DC4.pem b/src/main/resources/cert/wechatpay_0BC92BA528729B58B39CC69E58D3855EACFF9DC4.pem deleted file mode 100644 index bc98d23..0000000 --- a/src/main/resources/cert/wechatpay_0BC92BA528729B58B39CC69E58D3855EACFF9DC4.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIUC8krpShym1iznMaeWNOFXqz/ncQwDQYJKoZIhvcNAQEL -BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT -FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg -Q0EwHhcNMTgxMDAyMDQ1OTQwWhcNMjMxMDAxMDQ1OTQwWjCBgjEYMBYGA1UEAwwP -VGVucGF5LmNvbSBzaWduMRMwEQYDVQQKDApUZW5wYXkuY29tMR0wGwYDVQQLDBRU -ZW5wYXkuY29tIENBIENlbnRlcjELMAkGA1UEBgwCQ04xEjAQBgNVBAgMCUd1YW5n -RG9uZzERMA8GA1UEBwwIU2hlblpoZW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDSTNiV/fluUKBKHf2SmeulAsPXwhSBP4N5QzLQD95fx07yUjBFCXz7 -RSh2dSozgyic994HAps6MqAIEMJG6UBgzDEyL3dL2cbYs4DuZpnZsaOoHj+aabVP -2zE9Sdp4xE4F4VCvhI8AQwHhEM0qXAEHHXN549E1bB5jFgSJTxsOKYgO7xGek1iO -GGb08yLNZEGmtvXaVlu9JaSmSVxxH8ZjbHNq3cVF5Grum5rtC3o4qHifcki/JwvX -oS9t7F+AJmsIEXujodclHbjS1gmOVq2R90qqteX5nif/Gp8mDpnme6g8lwEdjO5n -JzQzSPpfDsh2+HLPKQUGadSrgMfWFrMZAgMBAAGjgYEwfzAJBgNVHRMEAjAAMAsG -A1UdDwQEAwIE8DBlBgNVHR8EXjBcMFqgWKBWhlRodHRwOi8vZXZjYS5pdHJ1cy5j -b20uY24vcHVibGljL2l0cnVzY3JsP0NBPTFCRDQyMjBFNTBEQkMwNEIwNkFEMzk3 -NTQ5ODQ2QzAxQzNFOEVCRDIwDQYJKoZIhvcNAQELBQADggEBADmXaYGIbV9iV3HT -FMGABfdASY085vGP4G5qqItcIPUt3N8Rv4dmPCyPCUQtXVD3mpE+V/FnRRSelf2R -rWIGV0tlIaAXpLnJ+rg9fvCH/lf2Dv0PSMg2ye4OW8YbrPcXs2AGqhaRGQyerJxw -fEaALL/89Ri5H/2bb6YenvJ+U8xpkU0+yMRSQF0lhR96CeqRVajBEjb3oi1daeFx -GBuDLTD8SDxf/XntREek20MLOupkplvTdudtSOOpD7iSXa21dw/rFXvDaGQ/wj6D -tG8xDA55V1JYPJcdEsdVOvj9L+loyaltYjCBoUg/ah9ihjDJlYwhHnVAcqqi8r2o -Hse2KNE= ------END CERTIFICATE----- \ No newline at end of file diff --git a/src/main/resources/cert/wechatpay_4A3231584E93B6AE77820074D07EADEACCB7E223.pem b/src/main/resources/cert/wechatpay_4A3231584E93B6AE77820074D07EADEACCB7E223.pem deleted file mode 100644 index 50afe22..0000000 --- a/src/main/resources/cert/wechatpay_4A3231584E93B6AE77820074D07EADEACCB7E223.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEFDCCAvygAwIBAgIUSjIxWE6Ttq53ggB00H6t6sy34iMwDQYJKoZIhvcNAQEL -BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT -FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg -Q0EwHhcNMjMwOTE5MTUxNTQ4WhcNMjgwOTE3MTUxNTQ4WjBuMRgwFgYDVQQDDA9U -ZW5wYXkuY29tIHNpZ24xEzARBgNVBAoMClRlbnBheS5jb20xHTAbBgNVBAsMFFRl -bnBheS5jb20gQ0EgQ2VudGVyMQswCQYDVQQGDAJDTjERMA8GA1UEBwwIU2hlblpo -ZW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC5AOeoNuRReVPfOodE -TTE/wq96OK/7MI1lkwgtRlOIqwFGbGPxPx+wiLweWOWAeGrd0h+YuktIZezLhMhB -8pkJBzxz4U+zoQ9n3yY4CgDUBeAO8eNHhEQTTOTFUIvIlRxyr0EVuTHNP7pIkxA6 -gUvajWjJFbvU393vDHA9RflWrBNw1qVjkPPUx6axizD3wS8f77bwuspEWGTza/pS -g96HWUwFh9OSlQNPOjPG4km2YRQwGhoRMlLeZsUB+a0PtV0HI/B0TbY5u2EmPt0R -uNZLmcwImtiANYmySww6gp5uo4+im0P/kHKynPrW1SkS+8M9JP5T7Xck3bnHNv4S -9UOPAgMBAAGjgbkwgbYwCQYDVR0TBAIwADALBgNVHQ8EBAMCA/gwgZsGA1UdHwSB -kzCBkDCBjaCBiqCBh4aBhGh0dHA6Ly9ldmNhLml0cnVzLmNvbS5jbi9wdWJsaWMv -aXRydXNjcmw/Q0E9MUJENDIyMEU1MERCQzA0QjA2QUQzOTc1NDk4NDZDMDFDM0U4 -RUJEMiZzZz1IQUNDNDcxQjY1NDIyRTEyQjI3QTlEMzNBODdBRDFDREY1OTI2RTE0 -MDM3MTANBgkqhkiG9w0BAQsFAAOCAQEAHd42YyvxvvjYEIkCURHweCSQpWQrdsnP -AU2rcVzOx0kDxjq7+W2HkIkYeAZfE8pyBs5c39tgK+qospiDsKa9WYeBNyIRcCvN -q9ObLqSV4Cy/8lQMNh4Q37cdc3X+pAlTr7MtKka8ZcXYvbMBqus0dfJZayZvW7Ak -nnaXXJ4k7urgHOGYsZlZ+HC+DC/sYoN3DXzvg3XPlL0SNEQH0cWrRbaQnpOKVMk5 -TptbeNHKJfUxVW5jh4GtBFqvLeiOruY+gFYg7UkCKWo9ZIYe7/mEvJeHYh3acTTl -DOl3L0fR5KR7vqFMwZEUZxVOs6K2ANSCr57OQPBV++MG4DPr3yOhCQ== ------END CERTIFICATE----- \ No newline at end of file diff --git a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java index 4abde04..0ce5181 100644 --- a/src/test/java/com/gxwebsoft/generator/CmsGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/CmsGenerator.java @@ -26,38 +26,30 @@ public class CmsGenerator { //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 // 输出目录 private static final String OUTPUT_DIR = "/src/main/java"; + // Vue文件输出位置 + private static final String OUTPUT_LOCATION_VUE = "/Users/liangxin/Project/Html/web/guoxue-admin"; + // Vue文件输出目录 + private static final String OUTPUT_DIR_VUE = "/src"; // 作者名称 - private static final String AUTHOR = "科技小王子"; + private static final String AUTHOR = "LX"; // 是否在xml中添加二级缓存配置 private static final boolean ENABLE_CACHE = false; // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://47.119.165.234:3308/com_gxwebsoft_oa?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; + private static final String DB_URL = "jdbc:mysql://47.121.133.163:3308/guoxue?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "com_gxwebsoft_oa"; - private static final String DB_PASSWORD = "EZfW2R4YiWfbLHLw"; + private static final String DB_USERNAME = "guoxue"; + private static final String DB_PASSWORD = "cDrcxzjSELdt3FFN"; // 包名 private static final String PACKAGE_NAME = "com.gxwebsoft"; // 模块名 private static final String MODULE_NAME = "cms"; // 需要生成的表 private static final String[] TABLE_NAMES = new String[]{ -// "cms_article", - "cms_article_category", -// "cms_docs", -// "cms_docs", -// "cms_docs", -// "cms_docs", -// "cms_docs", -// "cms_docs", -// "cms_docs", -// "cms_docs", -// "cms_docs", -// "cms_docs", + "cms_article_comment", }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ - "cms_", - "tb_" + "cms" }; // 不需要作为查询参数的字段 private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{ @@ -79,9 +71,9 @@ public class CmsGenerator { "BigDecimal" }; // 是否添加权限注解 - private static final boolean AUTH_ANNOTATION = true; + private static final boolean AUTH_ANNOTATION = false; // 是否添加日志注解 - private static final boolean LOG_ANNOTATION = true; + private static final boolean LOG_ANNOTATION = false; // controller的mapping前缀 private static final String CONTROLLER_MAPPING_PREFIX = "/api"; // 模板所在位置 @@ -168,6 +160,63 @@ public class CmsGenerator { + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; } }); + /** + * 以下是生成VUE项目代码 + * 生成文件的路径 /api/shop/goods/index.ts + */ + templatePath = TEMPLATES_DIR + "/index.ts.btl"; + + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/api/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/" + "index.ts"; + } + }); + // 生成TS文件 (/api/shop/goods/model/index.ts) + templatePath = TEMPLATES_DIR + "/model.ts.btl"; + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/api/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/model/" + "index.ts"; + } + }); + // 生成Vue文件(/views/shop/goods/index.vue) + templatePath = TEMPLATES_DIR + "/index.vue.btl"; + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/views/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/" + "index.vue"; + } + }); + + // 生成components文件(/views/shop/goods/components/edit.vue) + templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/views/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; + } + }); + + // 生成components文件(/views/shop/goods/components/search.vue) + templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/views/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/components/" + "search.vue"; + } + }); + cfg.setFileOutConfigList(focList); mpg.setCfg(cfg); diff --git a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java index de0b11d..521c12d 100644 --- a/src/test/java/com/gxwebsoft/generator/ShopGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/ShopGenerator.java @@ -26,64 +26,30 @@ public class ShopGenerator { //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 // 输出目录 private static final String OUTPUT_DIR = "/src/main/java"; + // Vue文件输出位置 + private static final String OUTPUT_LOCATION_VUE = "/Users/liangxin/Project/Html/web/yaoxiaoer-admin"; + // Vue文件输出目录 + private static final String OUTPUT_DIR_VUE = "/src"; // 作者名称 - private static final String AUTHOR = "科技小王子"; + private static final String AUTHOR = "LX"; // 是否在xml中添加二级缓存配置 private static final boolean ENABLE_CACHE = false; // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/vivo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; + private static final String DB_URL = "jdbc:mysql://132.232.214.96:13306/yaoxiaoer?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "root"; - private static final String DB_PASSWORD = "root"; + private static final String DB_USERNAME = "yaoxiaoer"; + private static final String DB_PASSWORD = "f4aSbShj8DpiSiNi"; // 包名 private static final String PACKAGE_NAME = "com.gxwebsoft"; // 模块名 private static final String MODULE_NAME = "shop"; // 需要生成的表 private static final String[] TABLE_NAMES = new String[]{ -// "shop_order", -// "shop_goods", -// "shop_store", -// "shop_cart", -// "shop_express", -// "shop_category", -// "shop_goods_image", -// "shop_comment", -// "shop_goods_service" -// "shop_member" -// "shop_user_balance_log", -// "shop_user_address", -// "shop_user_coupon", -// "shop_user_follow", -// "shop_user_oauth", -// "shop_user_points_log", -// "shop_cart" -// "shop_info" -// "shop_coupon" -// "shop_clerk" -// "shop_merchant", -// "shop_merchant_clerk" -// "shop_merchant_withdraw" -// "shop_order_address" -// "shop_payment", -// "shop_payment_template", -// "shop_payment_trade" -// "shop_order_goods" -// "shop_user_oauth" -// "shop_order_renew" -// "shop_recharge_order", -// "shop_recharge_order_plan", -// "shop_recharge_plan", -// "shop_user_balance_log" -// "shop_user_referee", -// "shop_goods_phone_model", - "shop_goods_price", - + "shop_user_point_log", }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ - "shop_", - "tb_" + "shop_" }; // 不需要作为查询参数的字段 private static final String[] PARAM_EXCLUDE_FIELDS = new String[]{ @@ -105,9 +71,9 @@ public class ShopGenerator { "BigDecimal" }; // 是否添加权限注解 - private static final boolean AUTH_ANNOTATION = true; + private static final boolean AUTH_ANNOTATION = false; // 是否添加日志注解 - private static final boolean LOG_ANNOTATION = true; + private static final boolean LOG_ANNOTATION = false; // controller的mapping前缀 private static final String CONTROLLER_MAPPING_PREFIX = "/api"; // 模板所在位置 @@ -194,6 +160,63 @@ public class ShopGenerator { + tableInfo.getEntityName() + "Param" + StringPool.DOT_JAVA; } }); + /** + * 以下是生成VUE项目代码 + * 生成文件的路径 /api/shop/goods/index.ts + */ + templatePath = TEMPLATES_DIR + "/index.ts.btl"; + + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/api/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/" + "index.ts"; + } + }); + // 生成TS文件 (/api/shop/goods/model/index.ts) + templatePath = TEMPLATES_DIR + "/model.ts.btl"; + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/api/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/model/" + "index.ts"; + } + }); + // 生成Vue文件(/views/shop/goods/index.vue) + templatePath = TEMPLATES_DIR + "/index.vue.btl"; + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/views/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/" + "index.vue"; + } + }); + + // 生成components文件(/views/shop/goods/components/edit.vue) + templatePath = TEMPLATES_DIR + "/components.edit.vue.btl"; + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/views/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/components/" + tableInfo.getEntityPath() + "Edit.vue"; + } + }); + + // 生成components文件(/views/shop/goods/components/search.vue) + templatePath = TEMPLATES_DIR + "/components.search.vue.btl"; + focList.add(new FileOutConfig(templatePath) { + @Override + public String outputFile(TableInfo tableInfo) { + return OUTPUT_LOCATION_VUE + OUTPUT_DIR_VUE + + "/views/" + pc.getModuleName() + "/" + + tableInfo.getEntityPath() + "/components/" + "search.vue"; + } + }); + cfg.setFileOutConfigList(focList); mpg.setCfg(cfg); diff --git a/src/test/java/com/gxwebsoft/generator/SysGenerator.java b/src/test/java/com/gxwebsoft/generator/SysGenerator.java index 0c54bbf..8230d57 100644 --- a/src/test/java/com/gxwebsoft/generator/SysGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/SysGenerator.java @@ -27,7 +27,7 @@ public class SysGenerator { // 输出目录 private static final String OUTPUT_DIR = "/src/main/java"; // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/liangxin/Project/Html/web/law-admin"; + private static final String OUTPUT_LOCATION_VUE = "/Users/liangxin/Project/Html/web/guoxue-admin"; // Vue文件输出目录 private static final String OUTPUT_DIR_VUE = "/src"; // 作者名称 @@ -35,17 +35,17 @@ public class SysGenerator { // 是否在xml中添加二级缓存配置 private static final boolean ENABLE_CACHE = false; // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/law?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; + private static final String DB_URL = "jdbc:mysql://47.121.133.163:3308/guoxue?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "root"; - private static final String DB_PASSWORD = "root"; + private static final String DB_USERNAME = "guoxue"; + private static final String DB_PASSWORD = "cDrcxzjSELdt3FFN"; // 包名 private static final String PACKAGE_NAME = "com.gxwebsoft"; // 模块名 private static final String MODULE_NAME = "sys"; // 需要生成的表 private static final String[] TABLE_NAMES = new String[]{ - "sys_swiper", + "sys_area", }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ diff --git a/src/test/java/com/gxwebsoft/generator/LawGenerator.java b/src/test/java/com/gxwebsoft/generator/YxeGenerator.java similarity index 95% rename from src/test/java/com/gxwebsoft/generator/LawGenerator.java rename to src/test/java/com/gxwebsoft/generator/YxeGenerator.java index de1f0e6..4d3a713 100644 --- a/src/test/java/com/gxwebsoft/generator/LawGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/YxeGenerator.java @@ -20,14 +20,14 @@ import java.util.Map; * @author WebSoft * @since 2021-09-05 00:31:14 */ -public class LawGenerator { +public class YxeGenerator { // 输出位置 private static final String OUTPUT_LOCATION = System.getProperty("user.dir"); //private static final String OUTPUT_LOCATION = "D:/codegen"; // 不想生成到项目中可以写磁盘路径 // 输出目录 private static final String OUTPUT_DIR = "/src/main/java"; // Vue文件输出位置 - private static final String OUTPUT_LOCATION_VUE = "/Users/liangxin/Project/Html/web/law-admin"; + private static final String OUTPUT_LOCATION_VUE = "/Users/liangxin/Project/Html/web/yaoxiaoer-admin"; // Vue文件输出目录 private static final String OUTPUT_DIR_VUE = "/src"; // 作者名称 @@ -35,19 +35,17 @@ public class LawGenerator { // 是否在xml中添加二级缓存配置 private static final boolean ENABLE_CACHE = false; // 数据库连接配置 - private static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/law?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; + private static final String DB_URL = "jdbc:mysql://132.232.214.96:13306/yaoxiaoer?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"; private static final String DB_DRIVER = "com.mysql.cj.jdbc.Driver"; - private static final String DB_USERNAME = "root"; - private static final String DB_PASSWORD = "root"; + private static final String DB_USERNAME = "yaoxiaoer"; + private static final String DB_PASSWORD = "f4aSbShj8DpiSiNi"; // 包名 private static final String PACKAGE_NAME = "com.gxwebsoft"; // 模块名 - private static final String MODULE_NAME = "law"; + private static final String MODULE_NAME = "yxe"; // 需要生成的表 private static final String[] TABLE_NAMES = new String[]{ - "law_notary_config", - "law_notary_list", - + "yxe_product_merchant_extra_income", }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{ diff --git a/sys_user_add_user_group.sql b/sys_user_add_user_group.sql new file mode 100644 index 0000000..823b7a8 --- /dev/null +++ b/sys_user_add_user_group.sql @@ -0,0 +1,2 @@ +ALTER TABLE sys_user + ADD COLUMN user_group VARCHAR(50) NULL COMMENT '用户分组' AFTER user_level; diff --git a/transport_maintenance_plan.sql b/transport_maintenance_plan.sql new file mode 100644 index 0000000..0e54512 --- /dev/null +++ b/transport_maintenance_plan.sql @@ -0,0 +1,34 @@ +CREATE TABLE IF NOT EXISTS `transport_maintenance_plan` ( + `maintenance_plan_id` int NOT NULL AUTO_INCREMENT COMMENT '保养记录ID', + `vehicle_type` varchar(10) NOT NULL COMMENT '车船类型: 车辆, 船舶', + `vehicle_no` varchar(30) NOT NULL COMMENT '车牌号/船号', + `maintainer` varchar(20) DEFAULT NULL COMMENT '保养人', + `maintenance_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '保养时间', + `mileage` decimal(12,2) DEFAULT NULL COMMENT '里程/航程数', + `mileage_unit` varchar(10) DEFAULT NULL COMMENT '里程/航程单位: 公里, 海里', + `maintenance_item` varchar(100) DEFAULT NULL COMMENT '保养项目', + `cost` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '费用', + `store_name` varchar(50) DEFAULT NULL COMMENT '店名', + `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话', + `address` varchar(100) DEFAULT NULL COMMENT '地址', + `next_maintenance_time` datetime DEFAULT NULL COMMENT '下次保养时间', + `next_maintenance_mileage` decimal(12,2) DEFAULT NULL COMMENT '下次保养里程/航程', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `attachments` longtext COMMENT '附件, JSON或逗号分隔文件地址', + `sort_number` int NOT NULL DEFAULT 0 COMMENT '排序(数字越小越靠前)', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态, 0正常, 1禁用', + `deleted` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除, 0否, 1是', + `user_id` int DEFAULT NULL COMMENT '创建人ID', + `organization_id` int DEFAULT NULL COMMENT '组织ID', + `tenant_id` int DEFAULT 10325 COMMENT '租户ID', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`maintenance_plan_id`), + KEY `idx_tmp_vehicle_type` (`vehicle_type`), + KEY `idx_tmp_vehicle_no` (`vehicle_no`), + KEY `idx_tmp_maintenance_time` (`maintenance_time`), + KEY `idx_tmp_next_maintenance_time` (`next_maintenance_time`), + KEY `idx_tmp_organization_id` (`organization_id`), + KEY `idx_tmp_tenant_id` (`tenant_id`), + KEY `idx_tmp_deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='保养记录'; diff --git a/transport_maintenance_record.sql b/transport_maintenance_record.sql new file mode 100644 index 0000000..3d833d8 --- /dev/null +++ b/transport_maintenance_record.sql @@ -0,0 +1,34 @@ +CREATE TABLE IF NOT EXISTS `transport_maintenance_record` ( + `maintenance_record_id` int NOT NULL AUTO_INCREMENT COMMENT '维修记录ID', + `vehicle_type` varchar(10) NOT NULL COMMENT '车船类型: 车辆, 船舶', + `vehicle_no` varchar(30) NOT NULL COMMENT '车牌号/船号', + `maintainer` varchar(20) DEFAULT NULL COMMENT '维修人', + `maintenance_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '维修时间', + `location` varchar(100) DEFAULT NULL COMMENT '维修位置', + `replaced_part` varchar(200) DEFAULT NULL COMMENT '更换零件', + `cost` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '费用', + `company` varchar(50) DEFAULT NULL COMMENT '维修单位', + `contact` varchar(20) DEFAULT NULL COMMENT '联系方式', + `address` varchar(100) DEFAULT NULL COMMENT '地址', + `factory_time` datetime DEFAULT NULL COMMENT '出厂时间', + `mileage` decimal(12,2) DEFAULT NULL COMMENT '里程/航程数', + `mileage_unit` varchar(10) DEFAULT NULL COMMENT '里程/航程单位: 公里, 海里', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `attachments` longtext COMMENT '附件, JSON或逗号分隔文件地址', + `sort_number` int NOT NULL DEFAULT 0 COMMENT '排序(数字越小越靠前)', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态, 0正常, 1禁用', + `deleted` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除, 0否, 1是', + `user_id` int DEFAULT NULL COMMENT '创建人ID', + `organization_id` int DEFAULT NULL COMMENT '组织ID', + `tenant_id` int DEFAULT 10325 COMMENT '租户ID', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`maintenance_record_id`), + KEY `idx_tmr_vehicle_type` (`vehicle_type`), + KEY `idx_tmr_vehicle_no` (`vehicle_no`), + KEY `idx_tmr_maintenance_time` (`maintenance_time`), + KEY `idx_tmr_factory_time` (`factory_time`), + KEY `idx_tmr_organization_id` (`organization_id`), + KEY `idx_tmr_tenant_id` (`tenant_id`), + KEY `idx_tmr_deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='维修记录'; diff --git a/yxe_chronic_disease_product.sql b/yxe_chronic_disease_product.sql new file mode 100644 index 0000000..9b6bbd4 --- /dev/null +++ b/yxe_chronic_disease_product.sql @@ -0,0 +1,18 @@ +CREATE TABLE IF NOT EXISTS `yxe_chronic_disease_product` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `chain` varchar(100) NOT NULL COMMENT '连锁', + `product_name` varchar(100) NOT NULL COMMENT '产品名', + `spec_count` decimal(10,2) NOT NULL COMMENT '规格粒/片', + `daily_usage_count` decimal(10,2) NOT NULL COMMENT '说明书每天使用/次', + `dosage_per_time` decimal(10,2) NOT NULL COMMENT '每次几粒/片', + `box_usage_days` decimal(10,2) DEFAULT NULL COMMENT '1盒服用几天', + `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态, 0禁用, 1启用', + `deleted` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除, 0否, 1是', + `tenant_id` int DEFAULT NULL COMMENT '租户id', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + KEY `idx_ycdp_product_name` (`product_name`), + KEY `idx_ycdp_chain` (`chain`), + KEY `idx_ycdp_deleted` (`deleted`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='慢病产品管理'; diff --git a/yxe_self_report.sql b/yxe_self_report.sql new file mode 100644 index 0000000..c6cd5ca --- /dev/null +++ b/yxe_self_report.sql @@ -0,0 +1,34 @@ +CREATE TABLE IF NOT EXISTS `yxe_self_report` ( + `id` int NOT NULL AUTO_INCREMENT, + `user_id` int DEFAULT NULL COMMENT '提交人ID', + `merchant_id` int DEFAULT NULL COMMENT '门店ID', + `merchant_name` varchar(255) DEFAULT NULL COMMENT '门店名称', + `chain_id` varchar(64) DEFAULT NULL COMMENT '连锁ID', + `chain_name` varchar(255) DEFAULT NULL COMMENT '连锁名称', + `date` varchar(32) DEFAULT NULL COMMENT '填报日期', + `activity_time` varchar(32) DEFAULT NULL COMMENT '活动时间', + `reward` decimal(10,2) DEFAULT NULL COMMENT '奖金金额', + `image` longtext COMMENT '全部图片集合', + `clock_photos` longtext COMMENT '上下班打卡图', + `booth_photos` longtext COMMENT '门头摆台照', + `sales_groups` longtext COMMENT '销量填写JSON', + `receipt_photo` longtext COMMENT '小票图', + `summary` longtext COMMENT '活动小结', + `rating` varchar(32) DEFAULT NULL COMMENT '门店评分', + `lat` varchar(64) DEFAULT NULL COMMENT '纬度', + `lng` varchar(64) DEFAULT NULL COMMENT '经度', + `location` varchar(500) DEFAULT NULL COMMENT '定位地址', + `sort_number` int DEFAULT 0 COMMENT '排序', + `comments` varchar(500) DEFAULT NULL COMMENT '备注', + `status` tinyint DEFAULT 0 COMMENT '状态:0待审核,1通过,2拒绝', + `reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因', + `deleted` tinyint DEFAULT 0 COMMENT '逻辑删除', + `tenant_id` int DEFAULT 10325 COMMENT '租户ID', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `idx_yxe_self_report_user_id` (`user_id`), + KEY `idx_yxe_self_report_merchant_id` (`merchant_id`), + KEY `idx_yxe_self_report_status` (`status`), + KEY `idx_yxe_self_report_create_time` (`create_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自主填报'; diff --git a/yxe_self_report_add_activity_time.sql b/yxe_self_report_add_activity_time.sql new file mode 100644 index 0000000..141c703 --- /dev/null +++ b/yxe_self_report_add_activity_time.sql @@ -0,0 +1,2 @@ +ALTER TABLE `yxe_self_report` + ADD COLUMN `activity_time` varchar(32) DEFAULT NULL COMMENT '活动时间' AFTER `date`; diff --git a/yxe_self_report_add_reject_reason.sql b/yxe_self_report_add_reject_reason.sql new file mode 100644 index 0000000..c7ee6c9 --- /dev/null +++ b/yxe_self_report_add_reject_reason.sql @@ -0,0 +1,2 @@ +ALTER TABLE `yxe_self_report` + ADD COLUMN `reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因' AFTER `status`; diff --git a/yxe_user_task_add_income.sql b/yxe_user_task_add_income.sql new file mode 100644 index 0000000..b8feaee --- /dev/null +++ b/yxe_user_task_add_income.sql @@ -0,0 +1,2 @@ +ALTER TABLE `yxe_user_task` + ADD COLUMN `income` decimal(10, 2) NULL DEFAULT NULL COMMENT '任务收入' AFTER `chain`;