暂存
This commit is contained in:
parent
2e6df9e862
commit
57dd7c3043
@ -2,11 +2,15 @@ package com.stdiet.web.controller.custom;
|
||||
|
||||
import com.stdiet.common.core.controller.BaseController;
|
||||
import com.stdiet.common.core.domain.AjaxResult;
|
||||
import com.stdiet.common.core.page.TableDataInfo;
|
||||
import com.stdiet.common.utils.StringUtils;
|
||||
import com.stdiet.custom.domain.SysServicesQuestion;
|
||||
import com.stdiet.custom.service.ISysServicesQuestionService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/services/question")
|
||||
public class SysServiceQuestionController extends BaseController {
|
||||
@ -14,18 +18,38 @@ public class SysServiceQuestionController extends BaseController {
|
||||
@Autowired
|
||||
private ISysServicesQuestionService sysServicesQuestionService;
|
||||
|
||||
@PostMapping("/list")
|
||||
public AjaxResult list(@RequestBody SysServicesQuestion sysServicesQuestion) {
|
||||
return AjaxResult.success(sysServicesQuestionService.selectSysServicesQuestionByUserIdAndRole(sysServicesQuestion));
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(SysServicesQuestion sysServicesQuestion) {
|
||||
startPage();
|
||||
return getDataTable(sysServicesQuestionService.selectSysServicesQuestionByUserIdAndRole(sysServicesQuestion));
|
||||
}
|
||||
|
||||
@PutMapping("/updateStatus")
|
||||
public AjaxResult status(@RequestBody SysServicesQuestion sysServicesQuestion) {
|
||||
return toAjax(sysServicesQuestionService.updateSysServicesQuestionStatus(sysServicesQuestion));
|
||||
}
|
||||
// @PutMapping("/update/status")
|
||||
// public AjaxResult status(@RequestBody SysServicesQuestion sysServicesQuestion) {
|
||||
// return toAjax(sysServicesQuestionService.updateSysServicesQuestionStatus(sysServicesQuestion));
|
||||
// }
|
||||
|
||||
@PostMapping("/reply")
|
||||
public AjaxResult reply(@RequestBody SysServicesQuestion servicesQuestion) {
|
||||
return toAjax(sysServicesQuestionService.inserSysServicesQuestionReply(servicesQuestion));
|
||||
int row = sysServicesQuestionService.inserSysServicesQuestionReply(servicesQuestion);
|
||||
if (row > 0) {
|
||||
// 更新customer未读,id不能有值
|
||||
servicesQuestion.setRead(0);
|
||||
sysServicesQuestionService.updateSysServicesQuestionStatus(servicesQuestion);
|
||||
}
|
||||
return toAjax(row);
|
||||
}
|
||||
|
||||
@GetMapping("/detail")
|
||||
public AjaxResult detail(@RequestParam String queId, @RequestParam Long id) {
|
||||
List<SysServicesQuestion> questions = sysServicesQuestionService.selectSysServicesQuestionSessionByQueId(queId);
|
||||
if (StringUtils.isNotNull(questions)) {
|
||||
// 更新问题对应角色的状态
|
||||
SysServicesQuestion servicesQuestion = new SysServicesQuestion();
|
||||
servicesQuestion.setRead(1);
|
||||
servicesQuestion.setId(id);
|
||||
sysServicesQuestionService.updateSysServicesQuestionStatus(servicesQuestion);
|
||||
}
|
||||
return AjaxResult.success(questions);
|
||||
}
|
||||
}
|
||||
|
@ -593,7 +593,7 @@ public class WechatAppletController extends BaseController {
|
||||
}
|
||||
|
||||
@GetMapping("/services/list")
|
||||
public AjaxResult fetchServiceQuestion(@RequestParam String customerId, @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
|
||||
public TableDataInfo fetchServiceQuestion(@RequestParam String customerId, @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
|
||||
startPage();
|
||||
|
||||
Long cusId = StringUtils.isNotEmpty(customerId) ? Long.parseLong(AesUtils.decrypt(customerId)) : 0L;
|
||||
@ -602,11 +602,12 @@ public class WechatAppletController extends BaseController {
|
||||
servicesQuestion.setRole("customer");
|
||||
servicesQuestion.setUserId(cusId);
|
||||
|
||||
return AjaxResult.success(iSysServicesQuestionService.selectSysServicesQuestionByUserIdAndRole(servicesQuestion));
|
||||
return getDataTable(iSysServicesQuestionService.selectSysServicesQuestionByUserIdAndRole(servicesQuestion));
|
||||
}
|
||||
|
||||
/**
|
||||
* 客户添加问题
|
||||
*
|
||||
* @param servicesQuestion
|
||||
* @param customerId
|
||||
* @return
|
||||
@ -614,42 +615,69 @@ public class WechatAppletController extends BaseController {
|
||||
@PostMapping("/services/post")
|
||||
public AjaxResult postServiceQuestion(@RequestBody SysServicesQuestion servicesQuestion, @RequestParam String customerId) {
|
||||
Long cusId = StringUtils.isNotEmpty(customerId) ? Long.parseLong(AesUtils.decrypt(customerId)) : 0L;
|
||||
if(cusId == 0L) {
|
||||
if (cusId == 0L) {
|
||||
return toAjax(0);
|
||||
}
|
||||
servicesQuestion.setCusId(cusId);
|
||||
return toAjax(iSysServicesQuestionService.insertSysServicesQuestion(servicesQuestion));
|
||||
}
|
||||
|
||||
@GetMapping("/services/reply")
|
||||
public AjaxResult serviceQuestionReply(@RequestParam String queId) {
|
||||
return AjaxResult.success(iSysServicesQuestionService.selectSysServicesQuestionSessionByQueId(queId));
|
||||
return AjaxResult.success(iSysServicesQuestionService.insertSysServicesQuestion(servicesQuestion));
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置已读
|
||||
* @param id
|
||||
* 回答问题
|
||||
*
|
||||
* @param servicesQuestion
|
||||
* @param customerId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/services/post/update")
|
||||
public AjaxResult updateServiceQuestion(@RequestParam Long id) {
|
||||
SysServicesQuestion servicesQuestion = new SysServicesQuestion();
|
||||
servicesQuestion.setRead(1);
|
||||
servicesQuestion.setId(id);
|
||||
|
||||
return toAjax(iSysServicesQuestionService.updateSysServicesQuestionStatus(servicesQuestion));
|
||||
}
|
||||
|
||||
@PostMapping("/services/post/reply")
|
||||
public AjaxResult replyServiceQuestion(@RequestBody SysServicesQuestion servicesQuestion, @RequestParam String customerId) {
|
||||
Long cusId = StringUtils.isNotEmpty(customerId) ? Long.parseLong(AesUtils.decrypt(customerId)) : 0L;
|
||||
|
||||
if (cusId == 0L) {
|
||||
return toAjax(0);
|
||||
}
|
||||
servicesQuestion.setRole("customer");
|
||||
servicesQuestion.setUserId(cusId);
|
||||
|
||||
return toAjax(iSysServicesQuestionService.inserSysServicesQuestionReply(servicesQuestion));
|
||||
int row = iSysServicesQuestionService.inserSysServicesQuestionReply(servicesQuestion);
|
||||
if (row > 0) {
|
||||
// 更新三个觉得未读,id不能有值
|
||||
servicesQuestion.setRead(0);
|
||||
iSysServicesQuestionService.updateSysServicesQuestionStatus(servicesQuestion);
|
||||
}
|
||||
|
||||
return toAjax(row);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取问题详情
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/services/detail")
|
||||
public AjaxResult serviceQuestionDetail(@RequestParam String queId, @RequestParam Long id) {
|
||||
List<SysServicesQuestion> questions = iSysServicesQuestionService.selectSysServicesQuestionSessionByQueId(queId);
|
||||
if (StringUtils.isNotNull(questions)) {
|
||||
SysServicesQuestion status = new SysServicesQuestion();
|
||||
status.setId(id);
|
||||
status.setRead(1);
|
||||
iSysServicesQuestionService.updateSysServicesQuestionStatus(status);
|
||||
}
|
||||
return AjaxResult.success(questions);
|
||||
}
|
||||
|
||||
|
||||
// @GetMapping("/services/post/update")
|
||||
// public AjaxResult updateServiceQuestion(@RequestParam Long id) {
|
||||
// SysServicesQuestion servicesQuestion = new SysServicesQuestion();
|
||||
// servicesQuestion.setRead(1);
|
||||
// servicesQuestion.setId(id);
|
||||
//
|
||||
// return toAjax(iSysServicesQuestionService.updateSysServicesQuestionStatus(servicesQuestion));
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,12 +1,5 @@
|
||||
package com.stdiet.common.core.controller;
|
||||
|
||||
import java.beans.PropertyEditorSupport;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.bind.WebDataBinder;
|
||||
import org.springframework.web.bind.annotation.InitBinder;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.stdiet.common.constant.HttpStatus;
|
||||
@ -17,28 +10,33 @@ import com.stdiet.common.core.page.TableSupport;
|
||||
import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.common.utils.StringUtils;
|
||||
import com.stdiet.common.utils.sql.SqlUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.bind.WebDataBinder;
|
||||
import org.springframework.web.bind.annotation.InitBinder;
|
||||
|
||||
import java.beans.PropertyEditorSupport;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* web层通用数据处理
|
||||
*
|
||||
* @author stdiet
|
||||
*/
|
||||
public class BaseController
|
||||
{
|
||||
public class BaseController {
|
||||
protected final Logger logger = LoggerFactory.getLogger(BaseController.class);
|
||||
|
||||
/**
|
||||
* 将前台传递过来的日期格式的字符串,自动转化为Date类型
|
||||
*/
|
||||
@InitBinder
|
||||
public void initBinder(WebDataBinder binder)
|
||||
{
|
||||
public void initBinder(WebDataBinder binder) {
|
||||
// Date 类型转换
|
||||
binder.registerCustomEditor(Date.class, new PropertyEditorSupport()
|
||||
{
|
||||
binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
|
||||
@Override
|
||||
public void setAsText(String text)
|
||||
{
|
||||
public void setAsText(String text) {
|
||||
setValue(DateUtils.parseDate(text));
|
||||
}
|
||||
});
|
||||
@ -47,13 +45,11 @@ public class BaseController
|
||||
/**
|
||||
* 设置请求分页数据
|
||||
*/
|
||||
protected void startPage()
|
||||
{
|
||||
protected void startPage() {
|
||||
PageDomain pageDomain = TableSupport.buildPageRequest();
|
||||
Integer pageNum = pageDomain.getPageNum();
|
||||
Integer pageSize = pageDomain.getPageSize();
|
||||
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
|
||||
{
|
||||
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
|
||||
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
|
||||
PageHelper.startPage(pageNum, pageSize, orderBy);
|
||||
}
|
||||
@ -62,14 +58,20 @@ public class BaseController
|
||||
/**
|
||||
* 响应请求分页数据
|
||||
*/
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||||
protected TableDataInfo getDataTable(List<?> list)
|
||||
{
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
protected TableDataInfo getDataTable(List<?> list) {
|
||||
|
||||
PageDomain pageDomain = TableSupport.buildPageRequest();
|
||||
Integer pageNum = pageDomain.getPageNum();
|
||||
Integer pageSize = pageDomain.getPageSize();
|
||||
|
||||
long total = new PageInfo(list).getTotal();
|
||||
|
||||
TableDataInfo rspData = new TableDataInfo();
|
||||
rspData.setCode(HttpStatus.SUCCESS);
|
||||
rspData.setMsg("查询成功");
|
||||
rspData.setRows(list);
|
||||
rspData.setTotal(new PageInfo(list).getTotal());
|
||||
rspData.setRows(total > pageSize * (pageNum - 1) ? list : new ArrayList<>());
|
||||
rspData.setTotal(total);
|
||||
return rspData;
|
||||
}
|
||||
|
||||
@ -79,16 +81,14 @@ public class BaseController
|
||||
* @param rows 影响行数
|
||||
* @return 操作结果
|
||||
*/
|
||||
protected AjaxResult toAjax(int rows)
|
||||
{
|
||||
protected AjaxResult toAjax(int rows) {
|
||||
return rows > 0 ? AjaxResult.success() : AjaxResult.error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 页面跳转
|
||||
*/
|
||||
public String redirect(String url)
|
||||
{
|
||||
public String redirect(String url) {
|
||||
return StringUtils.format("redirect:{}", url);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,73 @@
|
||||
package com.stdiet.custom.domain;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class SysServicesTopic {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
Long id;
|
||||
|
||||
/**
|
||||
* 问题id
|
||||
*/
|
||||
String topicId;
|
||||
|
||||
/**
|
||||
* 问题类型
|
||||
*/
|
||||
Integer topicType;
|
||||
|
||||
/**
|
||||
* 角色
|
||||
*/
|
||||
Long uid;
|
||||
|
||||
Long fromUid;
|
||||
|
||||
Long toUid;
|
||||
|
||||
/**
|
||||
* 问题内容
|
||||
*/
|
||||
String content;
|
||||
|
||||
/**
|
||||
* 图片地址
|
||||
*/
|
||||
JSONArray img;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
Date createTime;
|
||||
|
||||
/**
|
||||
* 0-未读 1-已读
|
||||
*/
|
||||
Integer read;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
Date updateTime;
|
||||
|
||||
/**
|
||||
* 角色
|
||||
*/
|
||||
String role;
|
||||
|
||||
// 非持久化字段
|
||||
/**
|
||||
* 角色名字
|
||||
*/
|
||||
String name;
|
||||
|
||||
}
|
@ -8,7 +8,7 @@ public interface ISysServicesQuestionService {
|
||||
|
||||
List<SysServicesQuestion> selectSysServicesQuestionByUserIdAndRole(SysServicesQuestion servicesQuestion);
|
||||
|
||||
int insertSysServicesQuestion(SysServicesQuestion servicesQuestion);
|
||||
SysServicesQuestion insertSysServicesQuestion(SysServicesQuestion servicesQuestion);
|
||||
|
||||
int updateSysServicesQuestionStatus(SysServicesQuestion sysServicesQuestion);
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.stdiet.custom.service.impl;
|
||||
|
||||
import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.common.utils.uuid.UUID;
|
||||
import com.stdiet.custom.domain.SysCustomer;
|
||||
import com.stdiet.custom.domain.SysServicesQuestion;
|
||||
@ -26,9 +27,11 @@ public class SysServicesQuestionServiceImp implements ISysServicesQuestionServic
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertSysServicesQuestion(SysServicesQuestion servicesQuestion) {
|
||||
public SysServicesQuestion insertSysServicesQuestion(SysServicesQuestion servicesQuestion) {
|
||||
// 生成uuid
|
||||
servicesQuestion.setQueId(UUID.randomUUID().toString().replaceAll("-", ""));
|
||||
servicesQuestion.setRead(1);
|
||||
servicesQuestion.setCreateTime(DateUtils.getNowDate());
|
||||
|
||||
servicesQuestionMapper.insertSysServicesQuestion(servicesQuestion);
|
||||
|
||||
@ -45,25 +48,31 @@ public class SysServicesQuestionServiceImp implements ISysServicesQuestionServic
|
||||
SysServicesQuestion dieticianStatus = new SysServicesQuestion();
|
||||
dieticianStatus.setUserId(customer.getMainDietitian());
|
||||
dieticianStatus.setRole("dietician");
|
||||
customerStatus.setRead(0);
|
||||
dieticianStatus.setRead(0);
|
||||
dieticianStatus.setQueId(servicesQuestion.getQueId());
|
||||
statusList.add(dieticianStatus);
|
||||
|
||||
SysServicesQuestion afterSaleStatus = new SysServicesQuestion();
|
||||
afterSaleStatus.setUserId(customer.getAfterDietitian());
|
||||
afterSaleStatus.setRole("after_sale");
|
||||
customerStatus.setRead(0);
|
||||
afterSaleStatus.setRead(0);
|
||||
afterSaleStatus.setQueId(servicesQuestion.getQueId());
|
||||
statusList.add(afterSaleStatus);
|
||||
|
||||
SysServicesQuestion dieticianAssistantStatus = new SysServicesQuestion();
|
||||
dieticianAssistantStatus.setUserId(customer.getAssistantDietitian());
|
||||
dieticianAssistantStatus.setRole("dietician_assistant");
|
||||
customerStatus.setRead(0);
|
||||
dieticianAssistantStatus.setRead(0);
|
||||
dieticianAssistantStatus.setQueId(servicesQuestion.getQueId());
|
||||
|
||||
statusList.add(dieticianAssistantStatus);
|
||||
|
||||
return servicesQuestionMapper.insertSysServicesQuestionStatus(statusList);
|
||||
servicesQuestionMapper.insertSysServicesQuestionStatus(statusList);
|
||||
|
||||
servicesQuestion.setId(customerStatus.getId());
|
||||
servicesQuestion.setCusId(null);
|
||||
|
||||
return servicesQuestion;
|
||||
}
|
||||
|
||||
|
||||
|
@ -48,7 +48,7 @@
|
||||
) AS user USING(user_id)
|
||||
</otherwise>
|
||||
</choose>
|
||||
ORDER BY type ASC, update_time DESC
|
||||
ORDER BY `read` ASC, update_time DESC
|
||||
</select>
|
||||
|
||||
<select id="selectSysServicesQuestionSessionByQueId" resultMap="SysServicesQuestionSessionResult"
|
||||
@ -78,7 +78,7 @@
|
||||
<if test="cusId != null">cus_id,</if>
|
||||
<if test="content != null">content,</if>
|
||||
<if test="type != null">type,</if>
|
||||
<if test="cusId != null">create_time,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="img != null">img,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
@ -86,7 +86,7 @@
|
||||
<if test="cusId != null">#{cusId},</if>
|
||||
<if test="content != null">#{content},</if>
|
||||
<if test="type != null">#{type},</if>
|
||||
<if test="cusId != null">now(),</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="img != null">
|
||||
#{img, jdbcType=OTHER, typeHandler=com.stdiet.custom.typehandler.ArrayJsonHandler},
|
||||
</if>
|
||||
@ -94,10 +94,11 @@
|
||||
</insert>
|
||||
|
||||
<!-- 插入问题的四个角色:1,用户; 2,营养师; 3,售后; 4,助理-->
|
||||
<insert id="insertSysServicesQuestionStatus" parameterType="java.util.List">
|
||||
insert into sys_services_question_status (que_id, user_id, role, create_time, update_time) values
|
||||
<insert id="insertSysServicesQuestionStatus" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"
|
||||
keyColumn="id">
|
||||
insert into sys_services_question_status (que_id, user_id, role, `read`, create_time, update_time) values
|
||||
<foreach collection="list" item="status" index="index" separator=",">
|
||||
(#{status.queId}, #{status.userId}, #{status.role}, now(), now())
|
||||
(#{status.queId}, #{status.userId}, #{status.role}, #{status.read}, now(), now())
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
@ -127,8 +128,7 @@
|
||||
</update>
|
||||
|
||||
<!-- 插入问题回复-->
|
||||
<insert id="inserSysServicesQuestionReply" parameterType="SysServicesQuestion" useGeneratedKeys="true"
|
||||
keyProperty="id" keyColumn="id">
|
||||
<insert id="inserSysServicesQuestionReply" parameterType="SysServicesQuestion">
|
||||
insert into sys_services_question_session
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="queId != null">que_id,</if>
|
||||
|
@ -0,0 +1,156 @@
|
||||
<?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.stdiet.custom.mapper.SysServicesTopicMapper">
|
||||
|
||||
<resultMap type="SysServicesTopic" id="SysServicesTopicResult">
|
||||
<result column="id" property="id"/>
|
||||
<result column="topic_id" property="topicId"/>
|
||||
<result column="topic_type" property="topicType"/>
|
||||
<result column="content" property="content"/>
|
||||
<result column="role" property="role"/>
|
||||
<result column="name" property="name"/>
|
||||
<result column="read" property="read"/>
|
||||
<result column="img" property="img" typeHandler="com.stdiet.custom.typehandler.ArrayJsonHandler"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="update_time" property="updateTime"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="SysServicesQuestionSessionResult" type="SysServicesQuestion">
|
||||
<result column="id" property="id"/>
|
||||
<result column="type" property="type"/>
|
||||
<result column="content" property="content"/>
|
||||
<result column="img" property="img" typeHandler="com.stdiet.custom.typehandler.ArrayJsonHandler"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<association property="name" column="{userId=user_id,role=role}" select="selectUserInfo"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 根据userId和角色查询问题列表-->
|
||||
<select id="selectSysServicesTopicByUserIdAndRole" parameterType="SysServicesTopic"
|
||||
resultMap="SysServicesQuestionResult">
|
||||
SELECT * FROM (
|
||||
SELECT * FROM sys_services_topic_status WHERE role = #{role} AND uid = #{uid}
|
||||
) AS status
|
||||
LEFT JOIN sys_services_question USING(topic_id)
|
||||
<choose>
|
||||
<when test="role == 'customer'">
|
||||
LEFT JOIN (
|
||||
SELECT name, id AS uid FROM sys_customer WHERE id = #{uid}
|
||||
) AS customer USING(uid)
|
||||
</when>
|
||||
<otherwise>
|
||||
LEFT JOIN (
|
||||
SELECT name, user_id AS uid, nick_name AS name FROM sys_user WHERE user_id = #{uid}
|
||||
) AS user USING(uid)
|
||||
</otherwise>
|
||||
</choose>
|
||||
ORDER BY `read` ASC, update_time DESC
|
||||
</select>
|
||||
|
||||
<select id="selectSysServicesQuestionSessionByQueId" resultMap="SysServicesQuestionSessionResult"
|
||||
parameterType="String">
|
||||
select que_id, cus_id as user_id, 'customer' as role, content, img, create_time from sys_services_question where que_id = #{queId}
|
||||
union select que_id, user_id, role, content, img, create_time from sys_services_question_session where que_id = #{queId}
|
||||
order by create_time asc
|
||||
</select>
|
||||
|
||||
<select id="selectUserInfo" parameterType="java.util.Map" resultType="String">
|
||||
<choose>
|
||||
<when test="_parameter.get('role') == 'customer'">
|
||||
select name from sys_customer where id = #{userId}
|
||||
</when>
|
||||
<otherwise>
|
||||
select nick_name from sys_user where user_id = #{userId}
|
||||
</otherwise>
|
||||
</choose>
|
||||
</select>
|
||||
|
||||
<!-- 插入问题-->
|
||||
<insert id="insertSysServicesQuestion" parameterType="SysServicesQuestion" useGeneratedKeys="true"
|
||||
keyProperty="queId" keyColumn="que_id">
|
||||
insert into sys_services_question
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="queId != null">que_id,</if>
|
||||
<if test="cusId != null">cus_id,</if>
|
||||
<if test="content != null">content,</if>
|
||||
<if test="type != null">type,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="img != null">img,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="queId != null">#{queId},</if>
|
||||
<if test="cusId != null">#{cusId},</if>
|
||||
<if test="content != null">#{content},</if>
|
||||
<if test="type != null">#{type},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="img != null">
|
||||
#{img, jdbcType=OTHER, typeHandler=com.stdiet.custom.typehandler.ArrayJsonHandler},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<!-- 插入问题的四个角色:1,用户; 2,营养师; 3,售后; 4,助理-->
|
||||
<insert id="insertSysServicesQuestionStatus" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"
|
||||
keyColumn="id">
|
||||
insert into sys_services_question_status (que_id, user_id, role, `read`, create_time, update_time) values
|
||||
<foreach collection="list" item="status" index="index" separator=",">
|
||||
(#{status.queId}, #{status.userId}, #{status.role}, #{status.read}, now(), now())
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 根据状态id更新, role=customer 客户回复,这时更新另外三个角色未读;role != customer,更新客户未读-->
|
||||
<update id="updateSysServicesQuestionStatus" parameterType="SysServicesQuestion">
|
||||
update sys_services_question_status
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="read != null">`read` = #{read},</if>
|
||||
<if test="read != null">update_time = now(),</if>
|
||||
</trim>
|
||||
<where>
|
||||
<choose>
|
||||
<when test="id != null">
|
||||
id = ${id}
|
||||
</when>
|
||||
<otherwise>
|
||||
<if test="role == 'customer'">
|
||||
role != #{role} and
|
||||
</if>
|
||||
<if test="role != 'customer'">
|
||||
role = 'customer' and
|
||||
</if>
|
||||
que_id = #{queId}
|
||||
</otherwise>
|
||||
</choose>
|
||||
</where>
|
||||
</update>
|
||||
|
||||
<!-- 插入问题回复-->
|
||||
<insert id="inserSysServicesQuestionReply" parameterType="SysServicesQuestion">
|
||||
insert into sys_services_question_session
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="queId != null">que_id,</if>
|
||||
<if test="userId != null">user_id,</if>
|
||||
<if test="content != null">content,</if>
|
||||
<if test="read != null">`read`,</if>
|
||||
<if test="role != null">role,</if>
|
||||
<if test="img != null">img,</if>
|
||||
<if test="queId != null">create_time,</if>
|
||||
<if test="queId != null">update_time,</if>
|
||||
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="queId != null">#{queId},</if>
|
||||
<if test="userId != null">#{userId},</if>
|
||||
<if test="content != null">#{content},</if>
|
||||
<if test="read != null">#{read},</if>
|
||||
<if test="role != null">#{role},</if>
|
||||
<if test="img != null">
|
||||
#{img, jdbcType=OTHER, typeHandler=com.stdiet.custom.typehandler.ArrayJsonHandler},
|
||||
</if>
|
||||
<if test="queId != null">now(),</if>
|
||||
<if test="queId != null">now(),</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
||||
</mapper>
|
Loading…
x
Reference in New Issue
Block a user