dev:问题反馈接口

main
SondonYong 2025-12-06 11:38:11 +08:00
parent b6a19bb02c
commit 4ceb5bbc8c
23 changed files with 866 additions and 0 deletions

View File

@ -3,8 +3,12 @@ package com.zcloud.basic.info.app;
import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse; 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.api.UserServiceI;
import com.zcloud.basic.info.dto.*; 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.basic.info.dto.clientobject.UserCO;
import com.zcloud.gbscommon.translateaop.TranslateField; import com.zcloud.gbscommon.translateaop.TranslateField;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -25,6 +29,7 @@ import org.springframework.web.bind.annotation.*;
@AllArgsConstructor @AllArgsConstructor
public class AppUserController { public class AppUserController {
private final UserServiceI userService; private final UserServiceI userService;
private final ProblemFeedbackServiceI problemFeedbackService;
// @ApiOperation("验证手机号是否已注册") // @ApiOperation("验证手机号是否已注册")
// @PostMapping("/verifyPhone") // @PostMapping("/verifyPhone")
@ -70,6 +75,12 @@ public class AppUserController {
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();
} }
@ApiOperation("问题反馈")
@PostMapping("/problemFeedback")
public SingleResponse<ProblemFeedbackCO> problemFeedback(@Validated @RequestBody ProblemFeedbackAddCmd cmd) {
return problemFeedbackService.add(cmd);
}
@ApiOperation("用户离职申请") @ApiOperation("用户离职申请")
@PostMapping("/appUserResignation") @PostMapping("/appUserResignation")
public Response appUserResignation(@Validated @RequestBody AppUserResignationCmd appUserResignationCmd){ public Response appUserResignation(@Validated @RequestBody AppUserResignationCmd appUserResignationCmd){

View File

@ -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<ProblemFeedbackCO> 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<ProblemFeedbackCO> page(@RequestBody ProblemFeedbackPageQry qry) {
return problemFeedbackService.listPage(qry);
}
@ApiOperation("所有数据")
@PostMapping("/listAll")
public MultiResponse<ProblemFeedbackCO> listAll(@RequestBody ProblemFeedbackListQry qry) {
return problemFeedbackService.list(qry);
}
@ApiOperation("详情")
@GetMapping("/getInfoById")
public SingleResponse<ProblemFeedbackCO> 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();
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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("修改失败");
}
}
}

View File

@ -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<ProblemFeedbackCO> converDOsToCOs(List<ProblemFeedbackDO> problemFeedbackDOs);
}

View File

@ -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<ProblemFeedbackCO> execute(ProblemFeedbackPageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
PageResponse<ProblemFeedbackDO> pageResponse = problemFeedbackRepository.listPage(params);
List<ProblemFeedbackCO> examCenterCOS = problemFeedbackCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public MultiResponse<ProblemFeedbackCO> execute(ProblemFeedbackListQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<ProblemFeedbackDO> list = problemFeedbackRepository.list(params);
List<ProblemFeedbackCO> examCenterCOS = problemFeedbackCoConvertor.converDOsToCOs(list);
return MultiResponse.of(examCenterCOS);
}
public SingleResponse<ProblemFeedbackCO> execute(Long id) {
SingleResponse<ProblemFeedbackDO> problemFeedbackDO = problemFeedbackRepository.getInfoById(id);
ProblemFeedbackCO co = new ProblemFeedbackCO();
BeanUtils.copyProperties(problemFeedbackDO.getData(), co);
return SingleResponse.of(co);
}
}

View File

@ -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<ProblemFeedbackCO> listPage(ProblemFeedbackPageQry qry) {
return problemFeedbackQueryExe.execute(qry);
}
@Override
public MultiResponse<ProblemFeedbackCO> list(ProblemFeedbackListQry qry) {
return problemFeedbackQueryExe.execute(qry);
}
@Override
public SingleResponse<ProblemFeedbackCO> 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);
}
}

View File

@ -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<ProblemFeedbackCO> listPage(ProblemFeedbackPageQry qry);
MultiResponse<ProblemFeedbackCO> list(ProblemFeedbackListQry qry);
SingleResponse<ProblemFeedbackCO> getInfoById(Long id);
SingleResponse<ProblemFeedbackCO> add(ProblemFeedbackAddCmd cmd);
void edit(ProblemFeedbackUpdateCmd cmd);
void remove(Long id);
void removeBatch(Long[] ids);
}

View File

@ -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;
}

View File

@ -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`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeProblemId;
}

View File

@ -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`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeProblemId;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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));
}
}

View File

@ -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;
}
}

View File

@ -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<ProblemFeedbackDO> {
}

View File

@ -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<ProblemFeedbackDO> {
PageResponse<ProblemFeedbackDO> listPage(Map<String, Object> params);
List<ProblemFeedbackDO> list(Map<String, Object> params);
SingleResponse<ProblemFeedbackDO> getInfoById(Long id);
}

View File

@ -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<ProblemFeedbackMapper, ProblemFeedbackDO> implements ProblemFeedbackRepository {
private final ProblemFeedbackMapper problemFeedbackMapper;
@Override
public PageResponse<ProblemFeedbackDO> listPage(Map<String, Object> params) {
IPage<ProblemFeedbackDO> iPage = new Query<ProblemFeedbackDO>().getPage(params);
QueryWrapper<ProblemFeedbackDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
IPage<ProblemFeedbackDO> result = problemFeedbackMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public List<ProblemFeedbackDO> list(Map<String, Object> params) {
QueryWrapper<ProblemFeedbackDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
List<ProblemFeedbackDO> result = problemFeedbackMapper.selectList(queryWrapper);
return result;
}
@Override
public SingleResponse<ProblemFeedbackDO> getInfoById(Long id) {
return SingleResponse.of(problemFeedbackMapper.selectById(id));
}
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.basic.info.persistence.mapper.ProblemFeedbackMapper">
</mapper>