移动代码

This commit is contained in:
huangzj
2023-05-25 15:30:12 +08:00
parent bc9e54d56f
commit 1797172a0a
24 changed files with 896 additions and 16 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;

View File

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

View File

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

View File

@@ -46,10 +46,13 @@
<artifactId>common-db</artifactId> <artifactId>common-db</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.github.jeffreyning</groupId> <groupId>com.njcn</groupId>
<artifactId>mybatisplus-plus</artifactId> <artifactId>common-oss</artifactId>
<version>${mybatis-plus.jeffreyning.version}</version> <version>1.0.0</version>
<scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
package com.njcn.csdevice.mapper; package com.njcn.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.csdevice.pojo.po.CsFilePathPO; import com.njcn.system.pojo.po.CsFilePathPO;
/** /**
* *

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!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"> <mapper namespace="com.njcn.system.mapper.CsFilePathMapper">
<resultMap id="BaseResultMap" type="com.njcn.csdevice.pojo.po.CsFilePathPO"> <resultMap id="BaseResultMap" type="com.njcn.system.pojo.po.CsFilePathPO">
<!--@mbg.generated--> <!--@mbg.generated-->
<!--@Table cs_file_path--> <!--@Table cs_file_path-->
<result column="id" jdbcType="VARCHAR" property="id" /> <result column="id" jdbcType="VARCHAR" property="id" />

View File

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

View File

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

View File

@@ -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.baomidou.mybatisplus.extension.service.IService;
/** import com.njcn.system.pojo.po.CsFilePathPO;
/**
* *
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html

View File

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

View File

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

View File

@@ -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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.CsFilePathMapper;
import com.njcn.csdevice.pojo.po.CsFilePathPO; import com.njcn.system.mapper.CsFilePathMapper;
import com.njcn.csdevice.service.CsFilePathService; import com.njcn.system.pojo.po.CsFilePathPO;
import com.njcn.system.service.CsFilePathService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* *
@@ -15,6 +16,6 @@ import org.springframework.stereotype.Service;
* @version V1.0.0 * @version V1.0.0
*/ */
@Service @Service
public class CsFilePathServiceImpl extends ServiceImpl<CsFilePathMapper, CsFilePathPO> implements CsFilePathService{ public class CsFilePathServiceImpl extends ServiceImpl<CsFilePathMapper, CsFilePathPO> implements CsFilePathService {
} }