移动代码
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package com.njcn.system.pojo.param;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 11:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
|
||||
|
||||
@Data
|
||||
public class CsFeedbackAddParm {
|
||||
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ApiModelProperty(value = "标题")
|
||||
@NotBlank(message="标题不能为空!")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@ApiModelProperty(value = "用户id")
|
||||
@NotBlank(message="用户id不能为空!")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 问题类型(字典数据)
|
||||
*/
|
||||
@ApiModelProperty(value = "问题类型")
|
||||
@NotBlank(message="问题类型不能为空!")
|
||||
private String type;
|
||||
|
||||
@ApiModelProperty(value = "拓扑图文件")
|
||||
private MultipartFile[] files;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.njcn.system.pojo.param;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 15:28【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Data
|
||||
public class CsFeedbackChatAddParm {
|
||||
@ApiModelProperty(value = "反馈id")
|
||||
@NotNull(message="反馈id不能为空!")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "用户id")
|
||||
@NotNull(message="用户id不能为空!")
|
||||
private String userId;
|
||||
/**
|
||||
* 消息内容
|
||||
*/
|
||||
@ApiModelProperty(value = "消息内容")
|
||||
@NotNull(message="消息内容不能为空!")
|
||||
private String chatContent;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.njcn.system.pojo.param;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 15:28【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Data
|
||||
public class CsFeedbackChatCheckParm {
|
||||
|
||||
|
||||
|
||||
@ApiModelProperty(value = "反馈")
|
||||
@NotNull(message="反馈不能为空!")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "用户id")
|
||||
@NotNull(message="用户id不能为空!")
|
||||
private String userId;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.njcn.system.pojo.param;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 11:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
|
||||
|
||||
@Data
|
||||
public class CsFeedbackQueryParm {
|
||||
|
||||
@NotNull(message="当前页不能为空!")
|
||||
@Min(value = 1, message = "当前页不能为0")
|
||||
@ApiModelProperty(value = "当前页",name = "currentPage",dataType ="Integer",required = true)
|
||||
private Integer currentPage;
|
||||
/**显示条数*/
|
||||
@NotNull(message="显示条数不能为空!")
|
||||
@ApiModelProperty(value = "显示条数",name = "pageSize",dataType ="Integer",required = true)
|
||||
private Integer pageSize;
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@ApiModelProperty(value = "用户id")
|
||||
@NotNull(message="用户id不能为空!")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 问题类型(字典数据)
|
||||
*/
|
||||
@ApiModelProperty(value = "问题类型")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 问题状态(字典数据)
|
||||
*/
|
||||
@ApiModelProperty(value = "问题状态")
|
||||
private String status;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.njcn.system.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.njcn.db.bo.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 15:28【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "cs_feedback_chat")
|
||||
public class CsFeedbackChatPO extends BaseEntity {
|
||||
@TableId(value = "id", type = IdType.INPUT)
|
||||
private String id;
|
||||
|
||||
@TableField(value = "user_id")
|
||||
private String userId;
|
||||
/**
|
||||
* 消息内容
|
||||
*/
|
||||
@TableField(value = "chat_content")
|
||||
private String chatContent;
|
||||
/**
|
||||
* 消息状态消息状态(0-未读,1-已读)
|
||||
*/
|
||||
@TableField(value = "chat_status")
|
||||
private String chatStatus;
|
||||
|
||||
/**
|
||||
* 状态(0:删除 1:正常)
|
||||
*/
|
||||
@TableField(value = "status")
|
||||
private String status;
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.njcn.system.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.njcn.db.bo.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 11:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
/**
|
||||
* 信息反馈表
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "cs_feedback")
|
||||
public class CsFeedbackPO extends BaseEntity {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@TableField(value = "title")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@TableField(value = "description")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@TableField(value = "user_id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 问题类型(字典数据)
|
||||
*/
|
||||
@TableField(value = "type")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 问题状态(字典数据)
|
||||
*/
|
||||
@TableField(value = "status")
|
||||
private String status;
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.csdevice.pojo.po;
|
||||
package com.njcn.system.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.njcn.system.pojo.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.njcn.system.pojo.po.CsFeedbackChatPO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 11:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
|
||||
|
||||
@Data
|
||||
public class CsFeedbackDetailVO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ApiModelProperty(value = "id")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ApiModelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@ApiModelProperty(value = "用户id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 问题类型(字典数据)
|
||||
*/
|
||||
@ApiModelProperty(value = "问题类型")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 问题状态(字典数据)
|
||||
*/
|
||||
@ApiModelProperty(value = "问题状态")
|
||||
private String status;
|
||||
|
||||
|
||||
|
||||
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private List<String> imageUrls;
|
||||
|
||||
private List<CsFeedbackChatPO> csFeedbackChatPOList;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.njcn.system.pojo.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 11:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
|
||||
|
||||
@Data
|
||||
public class CsFeedbackVO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ApiModelProperty(value = "id")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*/
|
||||
@ApiModelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@ApiModelProperty(value = "描述")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@ApiModelProperty(value = "用户id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 问题类型(字典数据)
|
||||
*/
|
||||
@ApiModelProperty(value = "问题类型")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 问题状态(字典数据)
|
||||
*/
|
||||
@ApiModelProperty(value = "问题状态")
|
||||
private String status;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "未读消息条数")
|
||||
private int chatCount;
|
||||
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
||||
}
|
||||
@@ -46,10 +46,13 @@
|
||||
<artifactId>common-db</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.github.jeffreyning</groupId>
|
||||
<artifactId>mybatisplus-plus</artifactId>
|
||||
<version>${mybatis-plus.jeffreyning.version}</version>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>common-oss</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.njcn.system.controller.feedback;
|
||||
|
||||
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.system.pojo.param.CsFeedbackChatAddParm;
|
||||
import com.njcn.system.pojo.param.CsFeedbackChatCheckParm;
|
||||
import com.njcn.system.service.CsFeedbackChatService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/3/27 10:54【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/feedbackChat")
|
||||
@Api(tags = "问题反馈聊天")
|
||||
@AllArgsConstructor
|
||||
public class FeedBackChatController extends BaseController {
|
||||
|
||||
|
||||
private final CsFeedbackChatService csFeedbackChatService;
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/AddFeedbackChat")
|
||||
@ApiOperation("新增反馈聊天")
|
||||
@ApiImplicitParam(name = "csFeedbackAddParm", value = "新增反馈聊天参数", required = true)
|
||||
public HttpResult<Boolean> AddFeedbackChat(@RequestBody @Validated CsFeedbackChatAddParm csFeedbackAddParm){
|
||||
String methodDescribe = getMethodDescribe("AddFeedbackChat");
|
||||
|
||||
Boolean flag = csFeedbackChatService.AddFeedbackChat(csFeedbackAddParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
|
||||
|
||||
}
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/updateChatStatus")
|
||||
@ApiOperation("更新反馈聊天状态")
|
||||
@ApiImplicitParam(name = "CsFeedbackChatCheckParm", value = "新增反馈聊天参数", required = true)
|
||||
public HttpResult<Boolean> updateChatStatus(@RequestBody@Validated CsFeedbackChatCheckParm CsFeedbackChatCheckParm){
|
||||
String methodDescribe = getMethodDescribe("updateChatStatus");
|
||||
|
||||
Boolean flag = csFeedbackChatService.updateChatStatus(CsFeedbackChatCheckParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.njcn.system.controller.feedback;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.system.pojo.param.CsFeedbackAddParm;
|
||||
import com.njcn.system.pojo.param.CsFeedbackQueryParm;
|
||||
import com.njcn.system.pojo.vo.CsFeedbackDetailVO;
|
||||
import com.njcn.system.pojo.vo.CsFeedbackVO;
|
||||
import com.njcn.system.service.CsFeedbackService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/3/27 10:54【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/feedback")
|
||||
@Api(tags = "问题反馈")
|
||||
@AllArgsConstructor
|
||||
public class FeedBackController extends BaseController {
|
||||
|
||||
|
||||
private final CsFeedbackService csFeedbackService;
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/addFeedBack")
|
||||
@ApiOperation("新增反馈")
|
||||
public HttpResult<Boolean> addFeedBack(@Validated CsFeedbackAddParm csFeedbackAddParm){
|
||||
String methodDescribe = getMethodDescribe("addFeedBack");
|
||||
|
||||
Boolean flag = csFeedbackService.addFeedBack(csFeedbackAddParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queryFeedBackPage")
|
||||
@ApiOperation("查询反馈列表")
|
||||
@ApiImplicitParam(name = "csFeedbackQueryParm", value = "新增反馈聊天参数", required = true)
|
||||
public HttpResult<IPage<CsFeedbackVO>> queryFeedBackPage(@Validated @RequestBody CsFeedbackQueryParm csFeedbackQueryParm){
|
||||
String methodDescribe = getMethodDescribe("queryFeedBackPage");
|
||||
|
||||
IPage<CsFeedbackVO> csFeedbackVOIPage = csFeedbackService.queryFeedBackPage(csFeedbackQueryParm);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csFeedbackVOIPage, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queryFeedBackDetail")
|
||||
@ApiOperation("查询反馈详情")
|
||||
public HttpResult<CsFeedbackDetailVO> queryFeedBackDetail(@RequestParam("id")String id){
|
||||
String methodDescribe = getMethodDescribe("queryFeedBackDetail");
|
||||
|
||||
CsFeedbackDetailVO csFeedbackDetailVO = csFeedbackService.queryFeedBackDetail(id);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csFeedbackDetailVO, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.system.pojo.po.CsFeedbackChatPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 15:28【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsFeedbackChatMapper extends BaseMapper<CsFeedbackChatPO> {
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.system.pojo.po.CsFeedbackPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 11:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsFeedbackMapper extends BaseMapper<CsFeedbackPO> {
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.njcn.csdevice.mapper;
|
||||
package com.njcn.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.csdevice.pojo.po.CsFilePathPO;
|
||||
import com.njcn.system.pojo.po.CsFilePathPO;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -0,0 +1,19 @@
|
||||
<?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.njcn.algorithm.mapper.CsFeedbackChatMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.system.pojo.po.CsFeedbackChatPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table cs_feedback_chat-->
|
||||
<id column="id" jdbcType="VARCHAR" property="id" />
|
||||
<result column="user_id" jdbcType="VARCHAR" property="userId" />
|
||||
<result column="chat_content" jdbcType="VARCHAR" property="chatContent" />
|
||||
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, user_id, chat_content, create_by, create_time, update_by, update_time
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?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.njcn.algorithm.mapper.CsFeedbackMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.system.pojo.po.CsFeedbackPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table cs_feedback-->
|
||||
<id column="id" jdbcType="VARCHAR" property="id" />
|
||||
<result column="title" jdbcType="VARCHAR" property="title" />
|
||||
<result column="describe" jdbcType="VARCHAR" property="describe" />
|
||||
<result column="user_id" jdbcType="VARCHAR" property="userId" />
|
||||
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="type" jdbcType="VARCHAR" property="type" />
|
||||
<result column="status" jdbcType="VARCHAR" property="status" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, title, `describe`, user_id, create_by, create_time, update_by, update_time, `type`,
|
||||
`status`
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -1,7 +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.njcn.csdevice.mapper.CsFilePathMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.csdevice.pojo.po.CsFilePathPO">
|
||||
<mapper namespace="com.njcn.system.mapper.CsFilePathMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.system.pojo.po.CsFilePathPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table cs_file_path-->
|
||||
<result column="id" jdbcType="VARCHAR" property="id" />
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.njcn.system.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.system.pojo.param.CsFeedbackChatAddParm;
|
||||
import com.njcn.system.pojo.param.CsFeedbackChatCheckParm;
|
||||
import com.njcn.system.pojo.po.CsFeedbackChatPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 15:28【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsFeedbackChatService extends IService<CsFeedbackChatPO>{
|
||||
|
||||
/**
|
||||
* @Description: AddFeedbackChat
|
||||
* @Param: [csFeedbackAddParm]
|
||||
* @return: java.lang.Boolean
|
||||
* @Author: clam
|
||||
* @Date: 2023/4/6
|
||||
*/
|
||||
Boolean AddFeedbackChat(CsFeedbackChatAddParm csFeedbackAddParm);
|
||||
|
||||
Boolean updateChatStatus(CsFeedbackChatCheckParm csFeedbackChatCheckParm);
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.njcn.system.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.system.pojo.param.CsFeedbackAddParm;
|
||||
import com.njcn.system.pojo.param.CsFeedbackQueryParm;
|
||||
import com.njcn.system.pojo.po.CsFeedbackPO;
|
||||
import com.njcn.system.pojo.vo.CsFeedbackDetailVO;
|
||||
import com.njcn.system.pojo.vo.CsFeedbackVO;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 11:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CsFeedbackService extends IService<CsFeedbackPO>{
|
||||
|
||||
/**
|
||||
* @Description: 新增反馈
|
||||
* @Param: [csFeedbackAddParm]
|
||||
* @return: java.lang.Boolean
|
||||
* @Author: clam
|
||||
* @Date: 2023/4/6
|
||||
*/
|
||||
Boolean addFeedBack(CsFeedbackAddParm csFeedbackAddParm);
|
||||
/**
|
||||
* @Description: queryFeedBackPage
|
||||
* @Param: [csFeedbackQueryParm]
|
||||
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.algorithm.pojo.vo.CsFeedbackVO>
|
||||
* @Author: clam
|
||||
* @Date: 2023/4/6
|
||||
*/
|
||||
IPage<CsFeedbackVO> queryFeedBackPage(CsFeedbackQueryParm csFeedbackQueryParm);
|
||||
/**
|
||||
* @Description: queryFeedBackDetail
|
||||
* @Param: [id]
|
||||
* @return: com.njcn.algorithm.pojo.vo.CsFeedbackDetailVO
|
||||
* @Author: clam
|
||||
* @Date: 2023/4/7
|
||||
*/
|
||||
CsFeedbackDetailVO queryFeedBackDetail(String id);
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
package com.njcn.csdevice.service;
|
||||
package com.njcn.system.service;
|
||||
|
||||
import com.njcn.csdevice.pojo.po.CsFilePathPO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
/**
|
||||
import com.njcn.system.pojo.po.CsFilePathPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.njcn.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import com.njcn.system.mapper.CsFeedbackChatMapper;
|
||||
import com.njcn.system.pojo.param.CsFeedbackChatAddParm;
|
||||
import com.njcn.system.pojo.param.CsFeedbackChatCheckParm;
|
||||
import com.njcn.system.pojo.po.CsFeedbackChatPO;
|
||||
import com.njcn.system.service.CsFeedbackChatService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 15:28【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class CsFeedbackChatServiceImpl extends ServiceImpl<CsFeedbackChatMapper, CsFeedbackChatPO> implements CsFeedbackChatService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public Boolean AddFeedbackChat(CsFeedbackChatAddParm csFeedbackAddParm) {
|
||||
CsFeedbackChatPO csFeedbackChatPO = new CsFeedbackChatPO ();
|
||||
BeanUtils.copyProperties (csFeedbackAddParm, csFeedbackChatPO);
|
||||
csFeedbackChatPO.setChatStatus ("0");
|
||||
csFeedbackChatPO.setStatus ("1");
|
||||
boolean save = this.save (csFeedbackChatPO);
|
||||
return save;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public Boolean updateChatStatus(CsFeedbackChatCheckParm csFeedbackChatCheckParm) {
|
||||
UpdateWrapper<CsFeedbackChatPO> updateWrapper = new UpdateWrapper<> ();
|
||||
|
||||
|
||||
updateWrapper.clear ();
|
||||
updateWrapper.eq ("id",csFeedbackChatCheckParm.getId ()).
|
||||
ne ("user_id",csFeedbackChatCheckParm.getUserId ()).
|
||||
set ("chat_status","1").
|
||||
eq ("status", "1");
|
||||
boolean update = this.update (updateWrapper);
|
||||
return update;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
package com.njcn.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import com.njcn.oss.constant.OssPath;
|
||||
import com.njcn.oss.utils.FileStorageUtil;
|
||||
import com.njcn.system.mapper.CsFeedbackMapper;
|
||||
import com.njcn.system.pojo.param.CsFeedbackAddParm;
|
||||
import com.njcn.system.pojo.param.CsFeedbackQueryParm;
|
||||
import com.njcn.system.pojo.po.CsFeedbackChatPO;
|
||||
import com.njcn.system.pojo.po.CsFeedbackPO;
|
||||
import com.njcn.system.pojo.po.CsFilePathPO;
|
||||
import com.njcn.system.pojo.vo.CsFeedbackDetailVO;
|
||||
import com.njcn.system.pojo.vo.CsFeedbackVO;
|
||||
import com.njcn.system.service.CsFeedbackChatService;
|
||||
import com.njcn.system.service.CsFeedbackService;
|
||||
import com.njcn.system.service.CsFilePathService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2023/4/6 11:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CsFeedbackServiceImpl extends ServiceImpl<CsFeedbackMapper, CsFeedbackPO> implements CsFeedbackService {
|
||||
|
||||
private final FileStorageUtil fileStorageUtil;
|
||||
private final CsFilePathService csFilePathService;
|
||||
private final CsFeedbackChatService csFeedbackChatService;
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean addFeedBack(CsFeedbackAddParm csFeedbackAddParm) {
|
||||
CsFeedbackPO csFeedbackPO = new CsFeedbackPO ();
|
||||
BeanUtils.copyProperties (csFeedbackAddParm, csFeedbackPO);
|
||||
csFeedbackPO.setStatus ("1");
|
||||
boolean save = this.save (csFeedbackPO);
|
||||
boolean flag= true;
|
||||
if(!Objects.isNull (csFeedbackAddParm.getFiles ( ))){
|
||||
List<CsFilePathPO> csFilePathPOS= new ArrayList<> ();
|
||||
for (int i = 0; i < csFeedbackAddParm.getFiles ( ).length; i++) {
|
||||
|
||||
CsFilePathPO csFilePathPO = new CsFilePathPO( );
|
||||
csFilePathPO.setId (csFeedbackPO.getId ());
|
||||
String filePath = fileStorageUtil.uploadMultipart (csFeedbackAddParm.getFiles ( )[i], OssPath.FEEDBACK);
|
||||
csFilePathPO.setFileName (csFeedbackAddParm.getFiles ( )[i].getOriginalFilename ( ));
|
||||
csFilePathPO.setFilePath (filePath);
|
||||
csFilePathPO.setStatus ("1");
|
||||
csFilePathPOS.add (csFilePathPO);
|
||||
}
|
||||
flag = csFilePathService.saveBatch (csFilePathPOS);
|
||||
}
|
||||
|
||||
|
||||
return save&&flag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<CsFeedbackVO> queryFeedBackPage(CsFeedbackQueryParm csFeedbackQueryParm) {
|
||||
Page<CsFeedbackPO> page = new Page<> (csFeedbackQueryParm.getCurrentPage ( ), csFeedbackQueryParm.getPageSize ( ));
|
||||
Page<CsFeedbackVO> returnpage = new Page<> (csFeedbackQueryParm.getCurrentPage ( ), csFeedbackQueryParm.getPageSize ( ));
|
||||
|
||||
QueryWrapper<CsFeedbackPO> queryWrapper = new QueryWrapper<> ();
|
||||
queryWrapper.eq ("user_id",csFeedbackQueryParm.getUserId ()).
|
||||
eq (StringUtils.isNotBlank (csFeedbackQueryParm.getType ()),"type",csFeedbackQueryParm.getType ()).
|
||||
eq (StringUtils.isNotBlank (csFeedbackQueryParm.getStatus ()),"status",csFeedbackQueryParm.getStatus ());
|
||||
Page<CsFeedbackPO> csFeedbackPOPage = this.getBaseMapper ( ).selectPage (page, queryWrapper);
|
||||
QueryWrapper<CsFeedbackChatPO> csFeedbackChatPOQueryWrapper = new QueryWrapper<> ();
|
||||
List<CsFeedbackVO> collect = csFeedbackPOPage.getRecords ( ).stream ( ).map (temp -> {
|
||||
CsFeedbackVO csFeedbackVO = new CsFeedbackVO ( );
|
||||
BeanUtils.copyProperties (temp, csFeedbackVO);
|
||||
csFeedbackChatPOQueryWrapper.clear ();
|
||||
csFeedbackChatPOQueryWrapper.eq ("id",temp.getId ()).
|
||||
ne ("user_id",temp.getUserId ()).
|
||||
eq ("chat_status","0").
|
||||
eq ("status", "1");
|
||||
int count = csFeedbackChatService.count (csFeedbackChatPOQueryWrapper );
|
||||
csFeedbackVO.setChatCount (count);
|
||||
return csFeedbackVO;
|
||||
}).collect (Collectors.toList ( ));
|
||||
returnpage.setRecords (collect);
|
||||
return returnpage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CsFeedbackDetailVO queryFeedBackDetail(String id) {
|
||||
CsFeedbackDetailVO csFeedbackDetailVO = new CsFeedbackDetailVO();
|
||||
CsFeedbackPO byId = this.getById (id);
|
||||
BeanUtils.copyProperties (byId, csFeedbackDetailVO);
|
||||
QueryWrapper<CsFilePathPO> queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq ("id", id).eq ("status", "1");
|
||||
List<CsFilePathPO> list = csFilePathService.list (queryWrapper);
|
||||
List<String> collect = list.stream ( ).map (temp->{
|
||||
return fileStorageUtil.getFileUrl (temp.getFilePath ());
|
||||
}).collect (Collectors.toList ( ));
|
||||
csFeedbackDetailVO.setImageUrls (collect);
|
||||
QueryWrapper<CsFeedbackChatPO> csFeedbackChatPOQueryWrapper = new QueryWrapper();
|
||||
csFeedbackChatPOQueryWrapper.eq ("id", id).eq ("status", "1").orderByAsc ("create_time");
|
||||
List<CsFeedbackChatPO> list1 = csFeedbackChatService.list (csFeedbackChatPOQueryWrapper);
|
||||
csFeedbackDetailVO.setCsFeedbackChatPOList (list1);
|
||||
return csFeedbackDetailVO;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
package com.njcn.csdevice.service.impl;
|
||||
package com.njcn.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.csdevice.mapper.CsFilePathMapper;
|
||||
import com.njcn.csdevice.pojo.po.CsFilePathPO;
|
||||
import com.njcn.csdevice.service.CsFilePathService;
|
||||
|
||||
import com.njcn.system.mapper.CsFilePathMapper;
|
||||
import com.njcn.system.pojo.po.CsFilePathPO;
|
||||
import com.njcn.system.service.CsFilePathService;
|
||||
import org.springframework.stereotype.Service;
|
||||
/**
|
||||
*
|
||||
@@ -15,6 +16,6 @@ import org.springframework.stereotype.Service;
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class CsFilePathServiceImpl extends ServiceImpl<CsFilePathMapper, CsFilePathPO> implements CsFilePathService{
|
||||
public class CsFilePathServiceImpl extends ServiceImpl<CsFilePathMapper, CsFilePathPO> implements CsFilePathService {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user