From 4ceb5bbc8c1668a5947f8b465bae788f95b9e9c0 Mon Sep 17 00:00:00 2001 From: SondonYong Date: Sat, 6 Dec 2025 11:38:11 +0800 Subject: [PATCH] =?UTF-8?q?dev:=E9=97=AE=E9=A2=98=E5=8F=8D=E9=A6=88?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/info/app/AppUserController.java | 11 +++ .../info/web/ProblemFeedbackController.java | 85 +++++++++++++++++++ .../info/command/ProblemFeedbackAddExe.java | 40 +++++++++ .../command/ProblemFeedbackRemoveExe.java | 39 +++++++++ .../command/ProblemFeedbackUpdateExe.java | 34 ++++++++ .../convertor/ProblemFeedbackCoConvertor.java | 24 ++++++ .../query/ProblemFeedbackQueryExe.java | 60 +++++++++++++ .../service/ProblemFeedbackServiceImpl.java | 70 +++++++++++++++ .../info/api/ProblemFeedbackServiceI.java | 34 ++++++++ .../basic/info/dto/ProblemFeedbackAddCmd.java | 44 ++++++++++ .../info/dto/ProblemFeedbackListQry.java | 28 ++++++ .../info/dto/ProblemFeedbackPageQry.java | 28 ++++++ .../info/dto/ProblemFeedbackRemoveCmd.java | 30 +++++++ .../info/dto/ProblemFeedbackUpdateCmd.java | 42 +++++++++ .../dto/clientobject/ProblemFeedbackCO.java | 37 ++++++++ .../gateway/ProblemFeedbackGateway.java | 30 +++++++ .../info/domain/model/ProblemFeedbackE.java | 29 +++++++ .../ProblemFeedbackGatewayImpl.java | 55 ++++++++++++ .../dataobject/ProblemFeedbackDO.java | 42 +++++++++ .../mapper/ProblemFeedbackMapper.java | 17 ++++ .../repository/ProblemFeedbackRepository.java | 25 ++++++ .../impl/ProblemFeedbackRepositoryImpl.java | 55 ++++++++++++ .../mapper/ProblemFeedbackMapper.xml | 7 ++ 23 files changed, 866 insertions(+) create mode 100644 web-adapter/src/main/java/com/zcloud/basic/info/web/ProblemFeedbackController.java create mode 100644 web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackAddExe.java create mode 100644 web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackRemoveExe.java create mode 100644 web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackUpdateExe.java create mode 100644 web-app/src/main/java/com/zcloud/basic/info/command/convertor/ProblemFeedbackCoConvertor.java create mode 100644 web-app/src/main/java/com/zcloud/basic/info/command/query/ProblemFeedbackQueryExe.java create mode 100644 web-app/src/main/java/com/zcloud/basic/info/service/ProblemFeedbackServiceImpl.java create mode 100644 web-client/src/main/java/com/zcloud/basic/info/api/ProblemFeedbackServiceI.java create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackAddCmd.java create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackListQry.java create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackPageQry.java create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackRemoveCmd.java create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackUpdateCmd.java create mode 100644 web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ProblemFeedbackCO.java create mode 100644 web-domain/src/main/java/com/zcloud/basic/info/domain/gateway/ProblemFeedbackGateway.java create mode 100644 web-domain/src/main/java/com/zcloud/basic/info/domain/model/ProblemFeedbackE.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ProblemFeedbackGatewayImpl.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ProblemFeedbackDO.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/ProblemFeedbackMapper.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ProblemFeedbackRepository.java create mode 100644 web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ProblemFeedbackRepositoryImpl.java create mode 100644 web-infrastructure/src/main/resources/mapper/ProblemFeedbackMapper.xml diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/app/AppUserController.java b/web-adapter/src/main/java/com/zcloud/basic/info/app/AppUserController.java index b7b7a06..5635860 100644 --- a/web-adapter/src/main/java/com/zcloud/basic/info/app/AppUserController.java +++ b/web-adapter/src/main/java/com/zcloud/basic/info/app/AppUserController.java @@ -3,8 +3,12 @@ package com.zcloud.basic.info.app; import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; +import com.jjb.saas.framework.auth.model.SSOUser; +import com.jjb.saas.framework.auth.utils.AuthContext; +import com.zcloud.basic.info.api.ProblemFeedbackServiceI; import com.zcloud.basic.info.api.UserServiceI; import com.zcloud.basic.info.dto.*; +import com.zcloud.basic.info.dto.clientobject.ProblemFeedbackCO; import com.zcloud.basic.info.dto.clientobject.UserCO; import com.zcloud.gbscommon.translateaop.TranslateField; import io.swagger.annotations.Api; @@ -25,6 +29,7 @@ import org.springframework.web.bind.annotation.*; @AllArgsConstructor public class AppUserController { private final UserServiceI userService; + private final ProblemFeedbackServiceI problemFeedbackService; // @ApiOperation("验证手机号是否已注册") // @PostMapping("/verifyPhone") @@ -70,6 +75,12 @@ public class AppUserController { return SingleResponse.buildSuccess(); } + @ApiOperation("问题反馈") + @PostMapping("/problemFeedback") + public SingleResponse problemFeedback(@Validated @RequestBody ProblemFeedbackAddCmd cmd) { + return problemFeedbackService.add(cmd); + } + @ApiOperation("用户离职申请") @PostMapping("/appUserResignation") public Response appUserResignation(@Validated @RequestBody AppUserResignationCmd appUserResignationCmd){ diff --git a/web-adapter/src/main/java/com/zcloud/basic/info/web/ProblemFeedbackController.java b/web-adapter/src/main/java/com/zcloud/basic/info/web/ProblemFeedbackController.java new file mode 100644 index 0000000..478bd30 --- /dev/null +++ b/web-adapter/src/main/java/com/zcloud/basic/info/web/ProblemFeedbackController.java @@ -0,0 +1,85 @@ +package com.zcloud.basic.info.web; + + +import com.zcloud.basic.info.api.ProblemFeedbackServiceI; +import com.zcloud.basic.info.dto.ProblemFeedbackAddCmd; +import com.zcloud.basic.info.dto.ProblemFeedbackPageQry; +import com.zcloud.basic.info.dto.ProblemFeedbackListQry; +import com.zcloud.basic.info.dto.ProblemFeedbackUpdateCmd; +import com.zcloud.basic.info.dto.ProblemFeedbackRemoveCmd; +import com.zcloud.basic.info.dto.clientobject.ProblemFeedbackCO; +import com.alibaba.cola.dto.MultiResponse; +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.Response; +import com.alibaba.cola.dto.SingleResponse; +import com.jjb.saas.framework.auth.model.SSOUser; +import com.jjb.saas.framework.auth.utils.AuthContext; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; + +/** + * web-adapter + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Api(tags = "问题反馈表") +@RequestMapping("/${application.gateway}/problemFeedback") +@RestController +@AllArgsConstructor +public class ProblemFeedbackController { + private final ProblemFeedbackServiceI problemFeedbackService; + + @ApiOperation("新增") + @PostMapping("/save") + public SingleResponse add(@Validated @RequestBody ProblemFeedbackAddCmd cmd) { + SSOUser ssoUser = AuthContext.getCurrentUser(); + return problemFeedbackService.add(cmd); + } + + @ApiOperation("修改") + @PutMapping("/edit") + public SingleResponse edit(@Validated @RequestBody ProblemFeedbackUpdateCmd cmd) { + problemFeedbackService.edit(cmd); + return SingleResponse.buildSuccess(); + } + + @ApiOperation("分页") + @PostMapping("/list") + public PageResponse page(@RequestBody ProblemFeedbackPageQry qry) { + return problemFeedbackService.listPage(qry); + } + + @ApiOperation("所有数据") + @PostMapping("/listAll") + public MultiResponse listAll(@RequestBody ProblemFeedbackListQry qry) { + return problemFeedbackService.list(qry); + } + + @ApiOperation("详情") + @GetMapping("/getInfoById") + public SingleResponse getInfoById(@RequestParam(value = "id") Long id) { + return problemFeedbackService.getInfoById(id); + } + + @ApiOperation("删除") + @PutMapping("/remove") + public Response remove(@RequestParam(value = "id") Long id) { + problemFeedbackService.remove(id); + return SingleResponse.buildSuccess(); + } + + @ApiOperation("删除多个") + @PutMapping("/removeBatch") + public Response removeBatch(@Validated @RequestBody ProblemFeedbackRemoveCmd cmd) { + problemFeedbackService.removeBatch(cmd.getIds()); + return SingleResponse.buildSuccess(); + } + +} + diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackAddExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackAddExe.java new file mode 100644 index 0000000..5717996 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackAddExe.java @@ -0,0 +1,40 @@ +package com.zcloud.basic.info.command; + +import com.zcloud.basic.info.domain.gateway.ProblemFeedbackGateway; +import com.zcloud.basic.info.domain.model.ProblemFeedbackE; +import com.zcloud.basic.info.dto.ProblemFeedbackAddCmd; +import com.alibaba.cola.exception.BizException; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Component +@AllArgsConstructor +public class ProblemFeedbackAddExe { + private final ProblemFeedbackGateway problemFeedbackGateway; + + @Transactional(rollbackFor = Exception.class) + public boolean execute(ProblemFeedbackAddCmd cmd) { + ProblemFeedbackE problemFeedbackE = new ProblemFeedbackE(); + BeanUtils.copyProperties(cmd, problemFeedbackE); + boolean res = false; + try { + res = problemFeedbackGateway.add(problemFeedbackE); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (!res) { + throw new BizException("保存失败"); + } + return true; + } +} + diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackRemoveExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackRemoveExe.java new file mode 100644 index 0000000..2f5f08a --- /dev/null +++ b/web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackRemoveExe.java @@ -0,0 +1,39 @@ +package com.zcloud.basic.info.command; + +import com.zcloud.basic.info.domain.gateway.ProblemFeedbackGateway; +import com.alibaba.cola.exception.BizException; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Component +@AllArgsConstructor +public class ProblemFeedbackRemoveExe { + private final ProblemFeedbackGateway problemFeedbackGateway; + + @Transactional(rollbackFor = Exception.class) + public boolean execute(Long id) { + boolean res = problemFeedbackGateway.deletedProblemFeedbackById(id); + if (!res) { + throw new BizException("删除失败"); + } + return true; + } + + @Transactional(rollbackFor = Exception.class) + public boolean execute(Long[] ids) { + boolean res = problemFeedbackGateway.deletedProblemFeedbackByIds(ids); + if (!res) { + throw new BizException("删除失败"); + } + return true; + } +} + diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackUpdateExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackUpdateExe.java new file mode 100644 index 0000000..1982c6d --- /dev/null +++ b/web-app/src/main/java/com/zcloud/basic/info/command/ProblemFeedbackUpdateExe.java @@ -0,0 +1,34 @@ +package com.zcloud.basic.info.command; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.basic.info.domain.gateway.ProblemFeedbackGateway; +import com.zcloud.basic.info.domain.model.ProblemFeedbackE; +import com.zcloud.basic.info.dto.ProblemFeedbackUpdateCmd; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author SondonYong + * @Date 2025-12-06 11:26:35 + */ +@Component +@AllArgsConstructor +public class ProblemFeedbackUpdateExe { + private final ProblemFeedbackGateway problemFeedbackGateway; + + @Transactional(rollbackFor = Exception.class) + public void execute(ProblemFeedbackUpdateCmd cmd) { + ProblemFeedbackE problemFeedbackE = new ProblemFeedbackE(); + BeanUtils.copyProperties(cmd, problemFeedbackE); + boolean res = problemFeedbackGateway.update(problemFeedbackE); + if (!res) { + throw new BizException("修改失败"); + } + } +} + diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ProblemFeedbackCoConvertor.java b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ProblemFeedbackCoConvertor.java new file mode 100644 index 0000000..506eba0 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/basic/info/command/convertor/ProblemFeedbackCoConvertor.java @@ -0,0 +1,24 @@ +package com.zcloud.basic.info.command.convertor; + +import com.zcloud.basic.info.dto.clientobject.ProblemFeedbackCO; +import com.zcloud.basic.info.persistence.dataobject.ProblemFeedbackDO; +import org.mapstruct.Mapper; + +import java.util.List; + + +/** + * web-app + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Mapper(componentModel = "spring") +public interface ProblemFeedbackCoConvertor { + /** + * @param problemFeedbackDOs + * @return + */ + List converDOsToCOs(List problemFeedbackDOs); +} + diff --git a/web-app/src/main/java/com/zcloud/basic/info/command/query/ProblemFeedbackQueryExe.java b/web-app/src/main/java/com/zcloud/basic/info/command/query/ProblemFeedbackQueryExe.java new file mode 100644 index 0000000..cabdf4f --- /dev/null +++ b/web-app/src/main/java/com/zcloud/basic/info/command/query/ProblemFeedbackQueryExe.java @@ -0,0 +1,60 @@ +package com.zcloud.basic.info.command.query; + +import com.alibaba.cola.dto.MultiResponse; +import com.zcloud.basic.info.command.convertor.ProblemFeedbackCoConvertor; +import com.zcloud.basic.info.dto.ProblemFeedbackPageQry; +import com.zcloud.basic.info.dto.ProblemFeedbackListQry; +import com.zcloud.basic.info.dto.clientobject.ProblemFeedbackCO; +import com.zcloud.basic.info.persistence.dataobject.ProblemFeedbackDO; +import com.zcloud.basic.info.persistence.repository.ProblemFeedbackRepository; +import com.zcloud.gbscommon.utils.PageQueryHelper; +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; +import org.springframework.beans.BeanUtils; + +import java.util.List; +import java.util.Map; + + +/** + * web-app + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Component +@AllArgsConstructor +public class ProblemFeedbackQueryExe { + private final ProblemFeedbackRepository problemFeedbackRepository; + private final ProblemFeedbackCoConvertor problemFeedbackCoConvertor; + + /** + * 分页 + * + * @return + */ + public PageResponse execute(ProblemFeedbackPageQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = problemFeedbackRepository.listPage(params); + List examCenterCOS = problemFeedbackCoConvertor.converDOsToCOs(pageResponse.getData()); + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + + public MultiResponse execute(ProblemFeedbackListQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + List list = problemFeedbackRepository.list(params); + List examCenterCOS = problemFeedbackCoConvertor.converDOsToCOs(list); + return MultiResponse.of(examCenterCOS); + } + + public SingleResponse execute(Long id) { + SingleResponse problemFeedbackDO = problemFeedbackRepository.getInfoById(id); + ProblemFeedbackCO co = new ProblemFeedbackCO(); + BeanUtils.copyProperties(problemFeedbackDO.getData(), co); + return SingleResponse.of(co); + } + +} + diff --git a/web-app/src/main/java/com/zcloud/basic/info/service/ProblemFeedbackServiceImpl.java b/web-app/src/main/java/com/zcloud/basic/info/service/ProblemFeedbackServiceImpl.java new file mode 100644 index 0000000..d0faa5f --- /dev/null +++ b/web-app/src/main/java/com/zcloud/basic/info/service/ProblemFeedbackServiceImpl.java @@ -0,0 +1,70 @@ +package com.zcloud.basic.info.service; + +import com.alibaba.cola.dto.MultiResponse; +import com.zcloud.basic.info.api.ProblemFeedbackServiceI; +import com.zcloud.basic.info.command.ProblemFeedbackAddExe; +import com.zcloud.basic.info.command.ProblemFeedbackRemoveExe; +import com.zcloud.basic.info.command.ProblemFeedbackUpdateExe; +import com.zcloud.basic.info.command.query.ProblemFeedbackQueryExe; +import com.zcloud.basic.info.dto.ProblemFeedbackAddCmd; +import com.zcloud.basic.info.dto.ProblemFeedbackPageQry; +import com.zcloud.basic.info.dto.ProblemFeedbackListQry; +import com.zcloud.basic.info.dto.ProblemFeedbackUpdateCmd; +import com.zcloud.basic.info.dto.clientobject.ProblemFeedbackCO; + +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * web-app + * + * @Author SondonYong + * @Date 2025-12-06 11:26:35 + */ +@Service +@AllArgsConstructor +public class ProblemFeedbackServiceImpl implements ProblemFeedbackServiceI { + private final ProblemFeedbackAddExe problemFeedbackAddExe; + private final ProblemFeedbackUpdateExe problemFeedbackUpdateExe; + private final ProblemFeedbackRemoveExe problemFeedbackRemoveExe; + private final ProblemFeedbackQueryExe problemFeedbackQueryExe; + + @Override + public PageResponse listPage(ProblemFeedbackPageQry qry) { + return problemFeedbackQueryExe.execute(qry); + } + + @Override + public MultiResponse list(ProblemFeedbackListQry qry) { + return problemFeedbackQueryExe.execute(qry); + } + + @Override + public SingleResponse getInfoById(Long id) { + return problemFeedbackQueryExe.execute(id); + } + + @Override + public SingleResponse add(ProblemFeedbackAddCmd cmd) { + problemFeedbackAddExe.execute(cmd); + return SingleResponse.buildSuccess(); + } + + @Override + public void edit(ProblemFeedbackUpdateCmd cmd) { + problemFeedbackUpdateExe.execute(cmd); + } + + @Override + public void remove(Long id) { + problemFeedbackRemoveExe.execute(id); + } + + @Override + public void removeBatch(Long[] ids) { + problemFeedbackRemoveExe.execute(ids); + } +} + diff --git a/web-client/src/main/java/com/zcloud/basic/info/api/ProblemFeedbackServiceI.java b/web-client/src/main/java/com/zcloud/basic/info/api/ProblemFeedbackServiceI.java new file mode 100644 index 0000000..109eef4 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/api/ProblemFeedbackServiceI.java @@ -0,0 +1,34 @@ +package com.zcloud.basic.info.api; + +import com.alibaba.cola.dto.MultiResponse; +import com.zcloud.basic.info.dto.ProblemFeedbackAddCmd; +import com.zcloud.basic.info.dto.ProblemFeedbackPageQry; +import com.zcloud.basic.info.dto.ProblemFeedbackListQry; +import com.zcloud.basic.info.dto.ProblemFeedbackUpdateCmd; +import com.zcloud.basic.info.dto.clientobject.ProblemFeedbackCO; + +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; + +/** + * web-client + * + * @Author SondonYong + * @Date 2025-12-06 11:26:35 + */ +public interface ProblemFeedbackServiceI { + PageResponse listPage(ProblemFeedbackPageQry qry); + + MultiResponse list(ProblemFeedbackListQry qry); + + SingleResponse getInfoById(Long id); + + SingleResponse add(ProblemFeedbackAddCmd cmd); + + void edit(ProblemFeedbackUpdateCmd cmd); + + void remove(Long id); + + void removeBatch(Long[] ids); +} + diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackAddCmd.java b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackAddCmd.java new file mode 100644 index 0000000..5b4fa36 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackAddCmd.java @@ -0,0 +1,44 @@ +package com.zcloud.basic.info.dto; + +import com.alibaba.cola.dto.Command; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.*; + +/** + * web-client + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ProblemFeedbackAddCmd extends Command { + + @ApiModelProperty(value = "业务主键id", name = "problemId") + private String problemId; + + @ApiModelProperty(value = "标题", name = "title", required = true) + @NotEmpty(message = "标题不能为空") + private String title; + + @ApiModelProperty(value = "问题类型", name = "type", required = true) + @NotEmpty(message = "问题类型不能为空") + private String type; + + @ApiModelProperty(value = "问题类型名称", name = "typeName", required = true) + @NotEmpty(message = "问题类型名称不能为空") + private String typeName; + + @ApiModelProperty(value = "反馈", name = "feedback", required = true) + @NotEmpty(message = "反馈不能为空") + private String feedback; + +} + diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackListQry.java b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackListQry.java new file mode 100644 index 0000000..ea5bc4d --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackListQry.java @@ -0,0 +1,28 @@ +package com.zcloud.basic.info.dto; + +import com.alibaba.cola.dto.PageQuery; +import lombok.Data; + + +/** + * web-client + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Data +public class ProblemFeedbackListQry extends PageQuery { + + /** + * 查询条件操作前缀,支持以下几种数据库查询操作: + * - `like`: 模糊匹配查询,对应SQL的LIKE操作符 + * - `eq`: 等值查询,对应SQL的=操作符 + * - `gt`: 大于比较查询 + * - `lt`: 小于比较查询 + * - `ge`: 大于等于比较查询 + * - `le`: 小于等于比较查询 + * - `ne`: 不等比较查询,对应SQL的!=操作符 + */ + private String likeProblemId; +} + diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackPageQry.java b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackPageQry.java new file mode 100644 index 0000000..30bf6f4 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackPageQry.java @@ -0,0 +1,28 @@ +package com.zcloud.basic.info.dto; + +import com.alibaba.cola.dto.PageQuery; +import lombok.Data; + + +/** + * web-client + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Data +public class ProblemFeedbackPageQry extends PageQuery { + + /** + * 查询条件操作前缀,支持以下几种数据库查询操作: + * - `like`: 模糊匹配查询,对应SQL的LIKE操作符 + * - `eq`: 等值查询,对应SQL的=操作符 + * - `gt`: 大于比较查询 + * - `lt`: 小于比较查询 + * - `ge`: 大于等于比较查询 + * - `le`: 小于等于比较查询 + * - `ne`: 不等比较查询,对应SQL的!=操作符 + */ + private String likeProblemId; +} + diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackRemoveCmd.java b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackRemoveCmd.java new file mode 100644 index 0000000..f236322 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackRemoveCmd.java @@ -0,0 +1,30 @@ +package com.zcloud.basic.info.dto; + +import com.alibaba.cola.dto.Command; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.*; + +/** + * web-client + * + * @Author SondonYong + * @Date 2025-12-06 11:26:35 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ProblemFeedbackRemoveCmd extends Command { + + @ApiModelProperty(value = "主键", name = "ids", required = true) + @NotNull(message = "主键不能为空") + @Size(min = 1, message = "请选择数据") + private Long[] ids; + +} + diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackUpdateCmd.java b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackUpdateCmd.java new file mode 100644 index 0000000..c2b5703 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/ProblemFeedbackUpdateCmd.java @@ -0,0 +1,42 @@ +package com.zcloud.basic.info.dto; + +import com.alibaba.cola.dto.Command; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.*; + +/** + * web-client + * + * @Author SondonYong + * @Date 2025-12-06 11:26:35 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ProblemFeedbackUpdateCmd extends Command { + @ApiModelProperty(value = "主键id", name = "id", required = true) + @NotNull(message = "主键id不能为空") + private Long id; + @ApiModelProperty(value = "业务主键id", name = "problemId", required = true) + @NotEmpty(message = "业务主键id不能为空") + private String problemId; + @ApiModelProperty(value = "标题", name = "title", required = true) + @NotEmpty(message = "标题不能为空") + private String title; + @ApiModelProperty(value = "问题类型", name = "type", required = true) + @NotEmpty(message = "问题类型不能为空") + private String type; + @ApiModelProperty(value = "问题类型名称", name = "typeName", required = true) + @NotEmpty(message = "问题类型名称不能为空") + private String typeName; + @ApiModelProperty(value = "反馈", name = "feedback", required = true) + @NotEmpty(message = "反馈不能为空") + private String feedback; +} + diff --git a/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ProblemFeedbackCO.java b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ProblemFeedbackCO.java new file mode 100644 index 0000000..b282369 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/basic/info/dto/clientobject/ProblemFeedbackCO.java @@ -0,0 +1,37 @@ +package com.zcloud.basic.info.dto.clientobject; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.LocalDateTime; +import java.time.LocalDate; + +/** + * web-client + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Data +public class ProblemFeedbackCO extends ClientObject { + //主键id + @ApiModelProperty(value = "主键id") + private Long id; + //业务主键id + @ApiModelProperty(value = "业务主键id") + private String problemId; + //标题 + @ApiModelProperty(value = "标题") + private String title; + //问题类型 + @ApiModelProperty(value = "问题类型") + private String type; + //问题类型名称 + @ApiModelProperty(value = "问题类型名称") + private String typeName; + //反馈 + @ApiModelProperty(value = "反馈") + private String feedback; +} diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/gateway/ProblemFeedbackGateway.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/gateway/ProblemFeedbackGateway.java new file mode 100644 index 0000000..be7f487 --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/gateway/ProblemFeedbackGateway.java @@ -0,0 +1,30 @@ +package com.zcloud.basic.info.domain.gateway; + +import com.zcloud.basic.info.domain.model.ProblemFeedbackE; + +/** + * web-domain + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +public interface ProblemFeedbackGateway { + + /** + * 新增 + */ + Boolean add(ProblemFeedbackE problemFeedbackE); + + /** + * 修改 + */ + Boolean update(ProblemFeedbackE problemFeedbackE); + + /** + * 删除 + */ + Boolean deletedProblemFeedbackById(Long id); + + Boolean deletedProblemFeedbackByIds(Long[] id); +} + diff --git a/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ProblemFeedbackE.java b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ProblemFeedbackE.java new file mode 100644 index 0000000..538a974 --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/basic/info/domain/model/ProblemFeedbackE.java @@ -0,0 +1,29 @@ +package com.zcloud.basic.info.domain.model; + +import com.jjb.saas.framework.domain.model.BaseE; +import lombok.Data; + +import java.util.Date; + +/** + * web-domain + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Data +public class ProblemFeedbackE extends BaseE { + //主键id + private Long id; + //业务主键id + private String problemId; + //标题 + private String title; + //问题类型 + private String type; + //问题类型名称 + private String typeName; + //反馈 + private String feedback; +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ProblemFeedbackGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ProblemFeedbackGatewayImpl.java new file mode 100644 index 0000000..b2bcd54 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/gatewayimpl/ProblemFeedbackGatewayImpl.java @@ -0,0 +1,55 @@ +package com.zcloud.basic.info.gatewayimpl; + +import com.alibaba.cloud.commons.lang.StringUtils; +import com.zcloud.basic.info.domain.gateway.ProblemFeedbackGateway; +import com.zcloud.basic.info.domain.model.ProblemFeedbackE; +import com.zcloud.basic.info.persistence.dataobject.ProblemFeedbackDO; +import com.zcloud.basic.info.persistence.repository.ProblemFeedbackRepository; +import com.zcloud.gbscommon.utils.UuidUtil; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.Collections; + +/** + * web-infrastructure + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Service +@AllArgsConstructor +public class ProblemFeedbackGatewayImpl implements ProblemFeedbackGateway { + private final ProblemFeedbackRepository problemFeedbackRepository; + + @Override + public Boolean add(ProblemFeedbackE problemFeedbackE) { + ProblemFeedbackDO d = new ProblemFeedbackDO(); + BeanUtils.copyProperties(problemFeedbackE, d); + if(StringUtils.isEmpty(d.getProblemId())){ + d.setProblemId(UuidUtil.get32UUID()); + } + problemFeedbackRepository.save(d); + return true; + } + + @Override + public Boolean update(ProblemFeedbackE problemFeedbackE) { + ProblemFeedbackDO d = new ProblemFeedbackDO(); + BeanUtils.copyProperties(problemFeedbackE, d); + problemFeedbackRepository.updateById(d); + return true; + } + + @Override + public Boolean deletedProblemFeedbackById(Long id) { + return problemFeedbackRepository.removeById(id); + } + + @Override + public Boolean deletedProblemFeedbackByIds(Long[] ids) { + return problemFeedbackRepository.removeByIds(Collections.singletonList(ids)); + } +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ProblemFeedbackDO.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ProblemFeedbackDO.java new file mode 100644 index 0000000..884e684 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/dataobject/ProblemFeedbackDO.java @@ -0,0 +1,42 @@ +package com.zcloud.basic.info.persistence.dataobject; + +import com.baomidou.mybatisplus.annotation.*; +import com.jjb.saas.framework.repository.basedo.BaseDO; +import lombok.Data; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * web-infrastructure + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Data +@TableName("problem_feedback") +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ProblemFeedbackDO extends BaseDO { + //业务主键id + @ApiModelProperty(value = "业务主键id") + private String problemId; + //标题 + @ApiModelProperty(value = "标题") + private String title; + //问题类型 + @ApiModelProperty(value = "问题类型") + private String type; + //问题类型名称 + @ApiModelProperty(value = "问题类型名称") + private String typeName; + //反馈 + @ApiModelProperty(value = "反馈") + private String feedback; + + public ProblemFeedbackDO(String problemId) { + this.problemId = problemId; + } + +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/ProblemFeedbackMapper.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/ProblemFeedbackMapper.java new file mode 100644 index 0000000..e2a4840 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/mapper/ProblemFeedbackMapper.java @@ -0,0 +1,17 @@ +package com.zcloud.basic.info.persistence.mapper; + +import com.zcloud.basic.info.persistence.dataobject.ProblemFeedbackDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * web-infrastructure + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +@Mapper +public interface ProblemFeedbackMapper extends BaseMapper { + +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ProblemFeedbackRepository.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ProblemFeedbackRepository.java new file mode 100644 index 0000000..68f0cae --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/ProblemFeedbackRepository.java @@ -0,0 +1,25 @@ +package com.zcloud.basic.info.persistence.repository; + +import com.zcloud.basic.info.persistence.dataobject.ProblemFeedbackDO; +import com.alibaba.cola.dto.SingleResponse; +import com.alibaba.cola.dto.PageResponse; +import com.jjb.saas.framework.repository.repo.BaseRepository; + +import java.util.Map; +import java.util.List; + +/** + * web-infrastructure + * + * @Author SondonYong + * @Date 2025-12-06 11:26:34 + */ +public interface ProblemFeedbackRepository extends BaseRepository { + + PageResponse listPage(Map params); + + List list(Map params); + + SingleResponse getInfoById(Long id); +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ProblemFeedbackRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ProblemFeedbackRepositoryImpl.java new file mode 100644 index 0000000..b1b48fb --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/basic/info/persistence/repository/impl/ProblemFeedbackRepositoryImpl.java @@ -0,0 +1,55 @@ +package com.zcloud.basic.info.persistence.repository.impl; + +import com.jjb.saas.framework.repository.common.PageHelper; +import com.zcloud.basic.info.persistence.dataobject.ProblemFeedbackDO; +import com.zcloud.basic.info.persistence.mapper.ProblemFeedbackMapper; +import com.zcloud.basic.info.persistence.repository.ProblemFeedbackRepository; +import com.alibaba.cola.dto.SingleResponse; +import com.alibaba.cola.dto.PageResponse; +import com.zcloud.gbscommon.utils.PageQueryHelper; +import com.zcloud.gbscommon.utils.Query; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.List; + +/** + * web-infrastructure + * + * @Author SondonYong + * @Date 2025-12-06 11:26:35 + */ +@Service +@RequiredArgsConstructor +public class ProblemFeedbackRepositoryImpl extends BaseRepositoryImpl implements ProblemFeedbackRepository { + private final ProblemFeedbackMapper problemFeedbackMapper; + + @Override + public PageResponse listPage(Map params) { + IPage iPage = new Query().getPage(params); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); + queryWrapper.orderByDesc("create_time"); + IPage result = problemFeedbackMapper.selectPage(iPage, queryWrapper); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public List list(Map params) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); + queryWrapper.orderByDesc("create_time"); + List result = problemFeedbackMapper.selectList(queryWrapper); + return result; + } + + @Override + public SingleResponse getInfoById(Long id) { + return SingleResponse.of(problemFeedbackMapper.selectById(id)); + } +} + diff --git a/web-infrastructure/src/main/resources/mapper/ProblemFeedbackMapper.xml b/web-infrastructure/src/main/resources/mapper/ProblemFeedbackMapper.xml new file mode 100644 index 0000000..522d6ae --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/ProblemFeedbackMapper.xml @@ -0,0 +1,7 @@ + + + + + +