!257 优化推送模板

Merge pull request !257 from 德仔/develop
This commit is contained in:
德仔
2021-05-24 11:20:51 +08:00
committed by Gitee
13 changed files with 479 additions and 195 deletions

View File

@ -0,0 +1,75 @@
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 SysServicesQuestion {
/**
* 问题状态id
*/
String id;
/**
* 问题id(搜索用)
*/
String queId;
/**
* 客户id
*/
Long cusId;
/**
* 问题内容
*/
String content;
/**
* 图片地址
*/
JSONArray img;
/**
* 问题类型
*/
Integer type;
/**
* 创建时间
*/
@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;
/**
* 角色id
*/
Long userId;
}

View File

@ -0,0 +1,15 @@
package com.stdiet.custom.mapper;
import com.stdiet.custom.domain.SysServicesQuestion;
import java.util.List;
public interface SysServicesQuestionMapper {
List<SysServicesQuestion> selectSysServicesQuestionByUserIdAndRole(SysServicesQuestion servicesQuestion);
int insertSysServicesQuestion(SysServicesQuestion servicesQuestion);
int insertSysServicesQuestionStatus(List<SysServicesQuestion> sysServicesQuestion);
int updateSysServicesQuestionStatus(SysServicesQuestion sysServicesQuestion);
}

View File

@ -0,0 +1,14 @@
package com.stdiet.custom.service;
import com.stdiet.custom.domain.SysServicesQuestion;
import java.util.List;
public interface ISysServicesQuestionService {
List<SysServicesQuestion> selectSysServicesQuestionByUserIdAndRole(SysServicesQuestion servicesQuestion);
int insertSysServicesQuestion(SysServicesQuestion servicesQuestion);
int updateSysServicesQuestionStatus(SysServicesQuestion sysServicesQuestion);
}

View File

@ -0,0 +1,66 @@
package com.stdiet.custom.service.impl;
import com.stdiet.custom.domain.SysCustomer;
import com.stdiet.custom.domain.SysServicesQuestion;
import com.stdiet.custom.mapper.SysCustomerMapper;
import com.stdiet.custom.mapper.SysServicesQuestionMapper;
import com.stdiet.custom.service.ISysServicesQuestionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class SysServicesQuestionServiceImp implements ISysServicesQuestionService {
@Autowired
SysServicesQuestionMapper servicesQuestionMapper;
@Autowired
SysCustomerMapper sysCustomerMapper;
@Override
public List<SysServicesQuestion> selectSysServicesQuestionByUserIdAndRole(SysServicesQuestion servicesQuestion) {
return servicesQuestionMapper.selectSysServicesQuestionByUserIdAndRole(servicesQuestion);
}
@Override
public int insertSysServicesQuestion(SysServicesQuestion servicesQuestion) {
servicesQuestionMapper.insertSysServicesQuestion(servicesQuestion);
SysCustomer customer = sysCustomerMapper.selectSysCustomerById(servicesQuestion.getCusId());
List<SysServicesQuestion> statusList = new ArrayList<>();
SysServicesQuestion customerStatus = new SysServicesQuestion();
customerStatus.setUserId(customer.getId());
customerStatus.setRole("customer");
customerStatus.setQueId(servicesQuestion.getId());
statusList.add(customerStatus);
SysServicesQuestion dieticianStatus = new SysServicesQuestion();
dieticianStatus.setUserId(customer.getMainDietitian());
dieticianStatus.setRole("dietician");
dieticianStatus.setQueId(servicesQuestion.getId());
statusList.add(dieticianStatus);
SysServicesQuestion afterSaleStatus = new SysServicesQuestion();
afterSaleStatus.setUserId(customer.getAfterDietitian());
afterSaleStatus.setRole("after_sale");
afterSaleStatus.setQueId(servicesQuestion.getId());
statusList.add(afterSaleStatus);
SysServicesQuestion dieticianAssistantStatus = new SysServicesQuestion();
dieticianAssistantStatus.setUserId(customer.getAssistantDietitian());
dieticianAssistantStatus.setRole("dietician_assistant");
dieticianAssistantStatus.setQueId(servicesQuestion.getId());
statusList.add(dieticianAssistantStatus);
return servicesQuestionMapper.insertSysServicesQuestionStatus(statusList);
}
@Override
public int updateSysServicesQuestionStatus(SysServicesQuestion sysServicesQuestion) {
return servicesQuestionMapper.updateSysServicesQuestionStatus(sysServicesQuestion);
}
}

View File

@ -97,7 +97,7 @@ public class WeChartAppletServiceImp implements IWechatAppletService {
dataParam.put("thing1", JSONObject.parse("{\"value\":\"" + name + "\"}"));
dataParam.put("time2", JSONObject.parse("{\"value\":\"" + startDate + "\"}"));
dataParam.put("time3", JSONObject.parse("{\"value\":\"" + endDate + "\"}"));
String mRemark = StringUtils.isNull(remark) ? "" : remark;
String mRemark = StringUtils.isNull(remark) ? "" : remark;
dataParam.put("thing4", JSONObject.parse("{\"value\":\"" + mRemark + "\"}"));
param.put("data", dataParam);

View File

@ -0,0 +1,83 @@
<?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.SysServicesQuestionMapper">
<resultMap type="SysServicesQuestion" id="SysServicesQuestionResult">
<result column="id" property="id"/>
<result column="que_id" property="queId"/>
<result column="content" property="content"/>
<result column="role" property="role"/>
<result column="name" property="name"/>
<result column="type" property="type"/>
<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>
<!-- 根据userId和角色查询问题列表-->
<select id="selectSysServicesQuestionByUserIdAndRole" parameterType="SysServicesQuestion"
resultMap="SysServicesQuestionResult">
SELECT * FROM (
SELECT * FROM sys_services_question_status WHERE role = #{role} AND user_id = #{userId}
) AS status
LEFT JOIN sys_services_question USING(que_id)
<choose>
<when test="role == 'customer'">
LEFT JOIN (
SELECT name, id AS user_id FROM sys_customer WHERE id = #{userId}
) AS customer USING(user_id)
</when>
<otherwise>
LEFT JOIN (
SELECT role_key, sys_role.role_id, sys_user_role.user_id, sys_user.nick_name AS name FROM sys_role
INNER JOIN sys_user_role USING(role_id)
INNER JOIN sys_user USING(user_id)
WHERE role_key = #{role} AND user_id = #{userId}
) AS user USING(user_id)
</otherwise>
</choose>
ORDER BY type ASC, update_time DESC
</select>
<!-- 插入问题-->
<insert id="insertSysServicesQuestion" parameterType="SysServicesQuestion" useGeneratedKeys="true" keyProperty="id">
insert into sys_services_question
<trim prefix="(" suffix=")" suffixOverrides=",">
id,
<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>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
replace(uuid(), '-', ''),
<if test="cusId != null">#{cusId},</if>
<if test="content != null">#{content},</if>
<if test="type != null">#{type},</if>
<if test="cusId != null">now(),</if>
</trim>
</insert>
<!-- 插入问题的四个角色1用户 2营养师 3售后 4助理-->
<insert id="insertSysServicesQuestionStatus" parameterType="java.util.List">
insert into sys_services_question (que_id, user_id, role, create_time, update_time) values
<foreach collection="list" item="status" index="index" separator=",">
(#{status.queId}, #{status.userId}, #{status.role}, now(), now())
</foreach>
</insert>
<!-- 根据状态id更新-->
<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 id = ${id}
</update>
</mapper>