!257 优化推送模板

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

View File

@ -1,27 +1,13 @@
package com.stdiet.web.controller; package com.stdiet.web.controller;
import com.stdiet.common.config.AliyunOSSConfig;
import com.stdiet.common.core.domain.AjaxResult;
import com.stdiet.common.core.domain.entity.SysUser;
import com.stdiet.common.utils.StringUtils; import com.stdiet.common.utils.StringUtils;
import com.stdiet.common.utils.oss.AliyunOSSUtils;
import com.stdiet.common.utils.poi.ExcelUtil; import com.stdiet.common.utils.poi.ExcelUtil;
import com.stdiet.custom.domain.SysNutritionQuestion; import com.stdiet.custom.domain.SysNutritionQuestion;
import com.stdiet.custom.domain.SysNutritionalVideo; import com.stdiet.custom.domain.SysNutritionalVideo;
import com.stdiet.custom.domain.SysWxUserInfo;
import com.stdiet.custom.domain.SysWxUserLog;
import com.stdiet.custom.mapper.SysCustomerPhysicalSignsMapper;
import com.stdiet.custom.mapper.SysNutritionQuestionMapper;
import com.stdiet.custom.mapper.SysWxUserInfoMapper; import com.stdiet.custom.mapper.SysWxUserInfoMapper;
import com.stdiet.custom.mapper.SysWxUserLogMapper; import com.stdiet.custom.mapper.SysWxUserLogMapper;
import com.stdiet.custom.service.ISysNutritionQuestionService; import com.stdiet.custom.service.ISysNutritionQuestionService;
import com.stdiet.custom.service.ISysNutritionalVideoService; import com.stdiet.custom.service.ISysNutritionalVideoService;
import com.stdiet.custom.service.ISysWxUserLogService;
import com.stdiet.custom.utils.LuceneIndexUtils;
import com.stdiet.framework.web.domain.server.Sys;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.TextField;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
@ -37,11 +23,11 @@ import java.util.Map;
@Order(value = 1) @Order(value = 1)
public class MyApplicationRunner implements ApplicationRunner { public class MyApplicationRunner implements ApplicationRunner {
@Autowired // @Autowired
private SysWxUserLogMapper sysWxUserLogMapper; // private SysWxUserLogMapper sysWxUserLogMapper;
@Autowired // @Autowired
private SysWxUserInfoMapper sysWxUserInfoMapper; // private SysWxUserInfoMapper sysWxUserInfoMapper;
@Autowired @Autowired
private ISysNutritionQuestionService sysNutritionQuestionService; private ISysNutritionQuestionService sysNutritionQuestionService;
@ -50,7 +36,6 @@ public class MyApplicationRunner implements ApplicationRunner {
private ISysNutritionalVideoService sysNutritionalVideoService; private ISysNutritionalVideoService sysNutritionalVideoService;
@Override @Override
public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) throws Exception {
System.out.println("--------------项目启动调用方法开始----------"); System.out.println("--------------项目启动调用方法开始----------");
@ -59,11 +44,10 @@ public class MyApplicationRunner implements ApplicationRunner {
} }
/** /**
* 从微信用户表中查询openid更新到用户打卡日志表中 * 从微信用户表中查询openid更新到用户打卡日志表中
*/ */
public void dealWxUserLog(){ public void dealWxUserLog() {
/*List<String> phoneList = sysWxUserLogMapper.getAllSysWxUserLogPhone(); /*List<String> phoneList = sysWxUserLogMapper.getAllSysWxUserLogPhone();
SysWxUserLog sysWxUserLog = new SysWxUserLog(); SysWxUserLog sysWxUserLog = new SysWxUserLog();
if(phoneList.size() > 0){ if(phoneList.size() > 0){
@ -83,10 +67,11 @@ public class MyApplicationRunner implements ApplicationRunner {
/** /**
* 导入营养小知识方法 * 导入营养小知识方法
*
* @param path * @param path
*/ */
public void importNutritionQuestion(String path){ public void importNutritionQuestion(String path) {
try{ try {
int count = 0; int count = 0;
ExcelUtil<SysNutritionQuestion> util = new ExcelUtil<SysNutritionQuestion>(SysNutritionQuestion.class); ExcelUtil<SysNutritionQuestion> util = new ExcelUtil<SysNutritionQuestion>(SysNutritionQuestion.class);
File file = new File(path); File file = new File(path);
@ -94,11 +79,11 @@ public class MyApplicationRunner implements ApplicationRunner {
System.out.println(questionList.size()); System.out.println(questionList.size());
for (SysNutritionQuestion sysNutritionQuestion : questionList) { for (SysNutritionQuestion sysNutritionQuestion : questionList) {
//System.out.println(sysNutritionQuestion); //System.out.println(sysNutritionQuestion);
if(StringUtils.isNotEmpty(sysNutritionQuestion.getTitle()) if (StringUtils.isNotEmpty(sysNutritionQuestion.getTitle())
&& StringUtils.isNotEmpty(sysNutritionQuestion.getContent())){ && StringUtils.isNotEmpty(sysNutritionQuestion.getContent())) {
//System.out.println(sysNutritionQuestion.getTitle() + "\n"); //System.out.println(sysNutritionQuestion.getTitle() + "\n");
sysNutritionQuestion.setShowFlag(1); sysNutritionQuestion.setShowFlag(1);
if(sysNutritionQuestionService.insertSysNutritionQuestion(sysNutritionQuestion) > 0){ if (sysNutritionQuestionService.insertSysNutritionQuestion(sysNutritionQuestion) > 0) {
count++; count++;
Thread.sleep(100); Thread.sleep(100);
System.out.println(count); System.out.println(count);
@ -106,18 +91,18 @@ public class MyApplicationRunner implements ApplicationRunner {
} }
} }
System.out.println("结束:"+count); System.out.println("结束:" + count);
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
public void updateVideo(){ public void updateVideo() {
Map<String, Object> map = sysNutritionalVideoService.searchVideo(null, null, 1,100, null); Map<String, Object> map = sysNutritionalVideoService.searchVideo(null, null, 1, 100, null);
if(map != null){ if (map != null) {
List<SysNutritionalVideo> list = (List<SysNutritionalVideo>)map.get("nutritionalVideoList"); List<SysNutritionalVideo> list = (List<SysNutritionalVideo>) map.get("nutritionalVideoList");
if(list != null && list.size() > 0){ if (list != null && list.size() > 0) {
for (SysNutritionalVideo video : list) { for (SysNutritionalVideo video : list) {
sysNutritionalVideoService.insertSysNutritionalVideo(video); sysNutritionalVideoService.insertSysNutritionalVideo(video);
} }
@ -126,5 +111,4 @@ public class MyApplicationRunner implements ApplicationRunner {
} }
} }

View File

@ -1,4 +1,4 @@
package com.stdiet.custom.controller; package com.stdiet.web.controller.custom;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,4 @@
package com.stdiet.custom.controller; package com.stdiet.web.controller.custom;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,4 @@
package com.stdiet.custom.controller; package com.stdiet.web.controller.custom;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.List; import java.util.List;

View File

@ -0,0 +1,26 @@
package com.stdiet.web.controller.custom;
import com.stdiet.common.core.controller.BaseController;
import com.stdiet.common.core.domain.AjaxResult;
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.*;
@RestController
@RequestMapping("/services/question")
public class SysServiceQuestionController extends BaseController {
@Autowired
private ISysServicesQuestionService sysServicesQuestionService;
@PostMapping(value = "/list")
public AjaxResult list(@RequestBody SysServicesQuestion sysServicesQuestion) {
return AjaxResult.success(sysServicesQuestionService.selectSysServicesQuestionByUserIdAndRole(sysServicesQuestion));
}
@PutMapping(value = "/updateStatus")
public AjaxResult reply(@RequestBody SysServicesQuestion sysServicesQuestion) {
return toAjax(sysServicesQuestionService.updateSysServicesQuestionStatus(sysServicesQuestion));
}
}

View File

@ -68,6 +68,8 @@ public class WechatAppletController extends BaseController {
private ISysDictTypeService iSysDictTypeService; private ISysDictTypeService iSysDictTypeService;
@Autowired @Autowired
private IWechatAppletService iWechatAppletService; private IWechatAppletService iWechatAppletService;
@Autowired
private ISysServicesQuestionService iSysServicesQuestionService;
/** /**
* 查询微信小程序中展示的客户案例 * 查询微信小程序中展示的客户案例
@ -571,9 +573,12 @@ public class WechatAppletController extends BaseController {
// } // }
@GetMapping("/trans") @GetMapping("/trans")
public AjaxResult transId(@RequestParam String customerId) { public AjaxResult transId(@RequestParam String customerId, @RequestParam Long cusId) {
Long cusId = StringUtils.isNotEmpty(customerId) ? Long.parseLong(AesUtils.decrypt(customerId)) : 0L; if (StringUtils.isNotEmpty(customerId)) {
return AjaxResult.success(String.valueOf(cusId)); return AjaxResult.success(AesUtils.decrypt(customerId));
}
return AjaxResult.success(AesUtils.encrypt(String.valueOf(cusId)));
} }
@GetMapping("/subscribe") @GetMapping("/subscribe")
@ -587,6 +592,19 @@ public class WechatAppletController extends BaseController {
return AjaxResult.success(sysRecipesPlanService.updateSysRecipesPlan(info)); return AjaxResult.success(sysRecipesPlanService.updateSysRecipesPlan(info));
} }
@GetMapping("/fetchServiceQuestion")
public AjaxResult fetchServiceQuestion(@RequestParam String customerId, @RequestParam Integer pageNum, @RequestParam Integer pageSize) {
startPage();
Long cusId = StringUtils.isNotEmpty(customerId) ? Long.parseLong(AesUtils.decrypt(customerId)) : 0L;
SysServicesQuestion servicesQuestion = new SysServicesQuestion();
servicesQuestion.setRole("customer");
servicesQuestion.setUserId(cusId);
return AjaxResult.success(iSysServicesQuestionService.selectSysServicesQuestionByUserIdAndRole(servicesQuestion));
}
} }

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("thing1", JSONObject.parse("{\"value\":\"" + name + "\"}"));
dataParam.put("time2", JSONObject.parse("{\"value\":\"" + startDate + "\"}")); dataParam.put("time2", JSONObject.parse("{\"value\":\"" + startDate + "\"}"));
dataParam.put("time3", JSONObject.parse("{\"value\":\"" + endDate + "\"}")); 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 + "\"}")); dataParam.put("thing4", JSONObject.parse("{\"value\":\"" + mRemark + "\"}"));
param.put("data", dataParam); 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>

View File

@ -1,58 +1,58 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.stdiet.system.mapper.SysUserMapper"> <mapper namespace="com.stdiet.system.mapper.SysUserMapper">
<resultMap id="CusSalesmanResult" type="CusSalesman" > <resultMap id="CusSalesmanResult" type="CusSalesman">
<id property="userId" column="user_id"/> <id property="userId" column="user_id"/>
<result property="userName" column="nick_name"/> <result property="userName" column="nick_name"/>
</resultMap> </resultMap>
<resultMap type="SysUser" id="SysUserResult"> <resultMap type="SysUser" id="SysUserResult">
<id property="userId" column="user_id" /> <id property="userId" column="user_id"/>
<result property="deptId" column="dept_id" /> <result property="deptId" column="dept_id"/>
<result property="userName" column="user_name" /> <result property="userName" column="user_name"/>
<result property="nickName" column="nick_name" /> <result property="nickName" column="nick_name"/>
<result property="email" column="email" /> <result property="email" column="email"/>
<result property="phonenumber" column="phonenumber" /> <result property="phonenumber" column="phonenumber"/>
<result property="sex" column="sex" /> <result property="sex" column="sex"/>
<result property="avatar" column="avatar" /> <result property="avatar" column="avatar"/>
<result property="password" column="password" /> <result property="password" column="password"/>
<result property="status" column="status" /> <result property="status" column="status"/>
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag"/>
<result property="loginIp" column="login_ip" /> <result property="loginIp" column="login_ip"/>
<result property="loginDate" column="login_date" /> <result property="loginDate" column="login_date"/>
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by"/>
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time"/>
<result property="remark" column="remark" /> <result property="remark" column="remark"/>
<!-- <result property="postId" column="post_id" />--> <!-- <result property="postId" column="post_id" />-->
<result property="postName" column="post_name" /> <result property="postName" column="post_name"/>
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult" /> <association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult"/>
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
</resultMap> </resultMap>
<resultMap id="deptResult" type="SysDept"> <resultMap id="deptResult" type="SysDept">
<id property="deptId" column="dept_id" /> <id property="deptId" column="dept_id"/>
<result property="parentId" column="parent_id" /> <result property="parentId" column="parent_id"/>
<result property="deptName" column="dept_name" /> <result property="deptName" column="dept_name"/>
<result property="orderNum" column="order_num" /> <result property="orderNum" column="order_num"/>
<result property="leader" column="leader" /> <result property="leader" column="leader"/>
<result property="status" column="dept_status" /> <result property="status" column="dept_status"/>
</resultMap> </resultMap>
<resultMap id="RoleResult" type="SysRole"> <resultMap id="RoleResult" type="SysRole">
<id property="roleId" column="role_id" /> <id property="roleId" column="role_id"/>
<result property="roleName" column="role_name" /> <result property="roleName" column="role_name"/>
<result property="roleKey" column="role_key" /> <result property="roleKey" column="role_key"/>
<result property="roleSort" column="role_sort" /> <result property="roleSort" column="role_sort"/>
<result property="dataScope" column="data_scope" /> <result property="dataScope" column="data_scope"/>
<result property="status" column="role_status" /> <result property="status" column="role_status"/>
</resultMap> </resultMap>
<select id="selectAllUser" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectAllUser" parameterType="SysUser" resultMap="SysUserResult">
-- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u -- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
-- left join sys_dept d on u.dept_id = d.dept_id -- left join sys_dept d on u.dept_id = d.dept_id
-- where u.del_flag = '0' -- where u.del_flag = '0'
@ -61,11 +61,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE del_flag = '0' WHERE del_flag = '0'
</select> </select>
<select id="selectSalesman" parameterType="CusSalesman" resultMap="CusSalesmanResult"> <select id="selectSalesman" parameterType="CusSalesman" resultMap="CusSalesmanResult">
select user_id, nick_name from sys_user where dept_id='103' select user_id, nick_name from sys_user where dept_id='103'
</select> </select>
<sql id="selectUserVo"> <sql id="selectUserVo">
-- select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, -- select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
-- d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status, -- d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,
-- r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status, p.post_id, p.post_name -- r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status, p.post_id, p.post_name
@ -89,138 +89,141 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
-- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader, p.post_id, p.post_name from sys_user u -- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex,
-- left join sys_dept d on u.dept_id = d.dept_id -- u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader,
-- left join sys_user_post up on up.user_id = u.user_id -- p.post_id, p.post_name from sys_user u
-- left join sys_post p on p.post_id = up.post_id -- left join sys_dept d on u.dept_id = d.dept_id
-- where u.del_flag = '0' -- left join sys_user_post up on up.user_id = u.user_id
SELECT * FROM sys_user -- left join sys_post p on p.post_id = up.post_id
JOIN (SELECT dept_id, dept_name FROM sys_dept) AS d USING(dept_id) -- where u.del_flag = '0'
JOIN ( SELECT * FROM sys_user
SELECT user_id, GROUP_CONCAT(post_name SEPARATOR ',') AS post_name, GROUP_CONCAT(post_id SEPARATOR ',') AS post_id JOIN (SELECT dept_id, dept_name FROM sys_dept) AS d USING(dept_id)
FROM ( JOIN (
SELECT * FROM sys_user_post SELECT user_id, GROUP_CONCAT(post_name SEPARATOR ',') AS post_name, GROUP_CONCAT(post_id SEPARATOR ',') AS post_id
JOIN (SELECT post_id, post_name FROM sys_post) AS p USING(post_id) FROM (
SELECT * FROM sys_user_post
JOIN (SELECT post_id, post_name FROM sys_post) AS p USING(post_id)
) AS up GROUP BY user_id ) AS ups USING(user_id) ) AS up GROUP BY user_id ) AS ups USING(user_id)
WHERE del_flag = '0' WHERE del_flag = '0'
<if test="userName != null and userName != ''"> <if test="userName != null and userName != ''">
AND (user_name like concat('%', #{userName}, '%') OR nick_name like concat('%', #{userName}, '%')) AND (user_name like concat('%', #{userName}, '%') OR nick_name like concat('%', #{userName}, '%'))
</if> </if>
<if test="status != null and status != ''"> <if test="status != null and status != ''">
AND status = #{status} AND status = #{status}
</if> </if>
<if test="phonenumber != null and phonenumber != ''"> <if test="phonenumber != null and phonenumber != ''">
AND phonenumber like concat('%', #{phonenumber}, '%') AND phonenumber like concat('%', #{phonenumber}, '%')
</if> </if>
<if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
AND date_format(create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d') AND date_format(create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
</if> </if>
<if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
AND date_format(create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d') AND date_format(create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if> </if>
<if test="deptId != null and deptId != 0"> <if test="deptId != null and deptId != 0">
AND (dept_id = #{deptId} OR dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) )) AND (dept_id = #{deptId} OR dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId},
</if> ancestors) ))
<!-- 数据范围过滤 --> </if>
${params.dataScope} <!-- 数据范围过滤 -->
</select> ${params.dataScope}
</select>
<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult"> <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
<include refid="selectUserVo"/> <include refid="selectUserVo"/>
where user_name = #{userName} where user_name = #{userName}
</select> </select>
<select id="selectUserById" parameterType="Long" resultMap="SysUserResult"> <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
<include refid="selectUserVo"/> <include refid="selectUserVo"/>
where user_id = #{userId} where user_id = #{userId}
</select> </select>
<select id="checkUserNameUnique" parameterType="String" resultType="int"> <select id="checkUserNameUnique" parameterType="String" resultType="int">
select count(1) from sys_user where user_name = #{userName} limit 1 select count(1) from sys_user where user_name = #{userName} limit 1
</select> </select>
<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult"> <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} limit 1 select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} limit 1
</select> </select>
<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult"> <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
select user_id, email from sys_user where email = #{email} limit 1 select user_id, email from sys_user where email = #{email} limit 1
</select> </select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user( insert into sys_user(
<if test="userId != null and userId != 0">user_id,</if> <if test="userId != null and userId != 0">user_id,</if>
<if test="deptId != null and deptId != 0">dept_id,</if> <if test="deptId != null and deptId != 0">dept_id,</if>
<if test="userName != null and userName != ''">user_name,</if> <if test="userName != null and userName != ''">user_name,</if>
<if test="nickName != null and nickName != ''">nick_name,</if> <if test="nickName != null and nickName != ''">nick_name,</if>
<if test="email != null and email != ''">email,</if> <if test="email != null and email != ''">email,</if>
<if test="avatar != null and avatar != ''">avatar,</if> <if test="avatar != null and avatar != ''">avatar,</if>
<if test="phonenumber != null and phonenumber != ''">phonenumber,</if> <if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
<if test="sex != null and sex != ''">sex,</if> <if test="sex != null and sex != ''">sex,</if>
<if test="password != null and password != ''">password,</if> <if test="password != null and password != ''">password,</if>
<if test="status != null and status != ''">status,</if> <if test="status != null and status != ''">status,</if>
<if test="createBy != null and createBy != ''">create_by,</if> <if test="createBy != null and createBy != ''">create_by,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
create_time create_time
)values( )values(
<if test="userId != null and userId != ''">#{userId},</if> <if test="userId != null and userId != ''">#{userId},</if>
<if test="deptId != null and deptId != ''">#{deptId},</if> <if test="deptId != null and deptId != ''">#{deptId},</if>
<if test="userName != null and userName != ''">#{userName},</if> <if test="userName != null and userName != ''">#{userName},</if>
<if test="nickName != null and nickName != ''">#{nickName},</if> <if test="nickName != null and nickName != ''">#{nickName},</if>
<if test="email != null and email != ''">#{email},</if> <if test="email != null and email != ''">#{email},</if>
<if test="avatar != null and avatar != ''">#{avatar},</if> <if test="avatar != null and avatar != ''">#{avatar},</if>
<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if> <if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
<if test="sex != null and sex != ''">#{sex},</if> <if test="sex != null and sex != ''">#{sex},</if>
<if test="password != null and password != ''">#{password},</if> <if test="password != null and password != ''">#{password},</if>
<if test="status != null and status != ''">#{status},</if> <if test="status != null and status != ''">#{status},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if> <if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
sysdate() sysdate()
) )
</insert> </insert>
<update id="updateUser" parameterType="SysUser"> <update id="updateUser" parameterType="SysUser">
update sys_user update sys_user
<set> <set>
<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if> <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if> <if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if> <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
<if test="email != null and email != ''">email = #{email},</if> <if test="email != null and email != ''">email = #{email},</if>
<if test="phonenumber != null and phonenumber != ''">phonenumber = #{phonenumber},</if> <if test="phonenumber != null and phonenumber != ''">phonenumber = #{phonenumber},</if>
<if test="sex != null and sex != ''">sex = #{sex},</if> <if test="sex != null and sex != ''">sex = #{sex},</if>
<if test="avatar != null and avatar != ''">avatar = #{avatar},</if> <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
<if test="password != null and password != ''">password = #{password},</if> <if test="password != null and password != ''">password = #{password},</if>
<if test="status != null and status != ''">status = #{status},</if> <if test="status != null and status != ''">status = #{status},</if>
<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if> <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
<if test="loginDate != null">login_date = #{loginDate},</if> <if test="loginDate != null">login_date = #{loginDate},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
update_time = sysdate() update_time = sysdate()
</set> </set>
where user_id = #{userId} where user_id = #{userId}
</update> </update>
<update id="updateUserStatus" parameterType="SysUser"> <update id="updateUserStatus" parameterType="SysUser">
update sys_user set status = #{status} where user_id = #{userId} update sys_user set status = #{status} where user_id = #{userId}
</update> </update>
<update id="updateUserAvatar" parameterType="SysUser"> <update id="updateUserAvatar" parameterType="SysUser">
update sys_user set avatar = #{avatar} where user_name = #{userName} update sys_user set avatar = #{avatar} where user_name = #{userName}
</update> </update>
<update id="resetUserPwd" parameterType="SysUser"> <update id="resetUserPwd" parameterType="SysUser">
update sys_user set password = #{password} where user_name = #{userName} update sys_user set password = #{password} where user_name = #{userName}
</update> </update>
<delete id="deleteUserById" parameterType="Long"> <delete id="deleteUserById" parameterType="Long">
delete from sys_user where user_id = #{userId} delete from sys_user where user_id = #{userId}
</delete> </delete>
<delete id="deleteUserByIds" parameterType="Long"> <delete id="deleteUserByIds" parameterType="Long">
update sys_user set del_flag = '2' where user_id in update sys_user set del_flag = '2' where user_id in
<foreach collection="array" item="userId" open="(" separator="," close=")"> <foreach collection="array" item="userId" open="(" separator="," close=")">
#{userId} #{userId}
</foreach> </foreach>
</delete> </delete>
</mapper> </mapper>