!362 优化未打卡用户列表

Merge pull request !362 from 德仔/xzj
This commit is contained in:
德仔 2021-08-27 10:33:34 +00:00 committed by Gitee
commit 09ecef5aac
10 changed files with 92 additions and 26 deletions

View File

@ -115,6 +115,7 @@ public class SysNutritionQuestionController extends BaseController
/** /**
* 重新生成知识问答索引 * 重新生成知识问答索引
*/ */
@PreAuthorize("@ss.hasPermi('custom:nutritionQuestion:regenerateIndex')")
@Log(title = "重新生成知识问答索引", businessType = BusinessType.UPDATE) @Log(title = "重新生成知识问答索引", businessType = BusinessType.UPDATE)
@GetMapping("/regenerateNutritionQuestionIndex") @GetMapping("/regenerateNutritionQuestionIndex")
public AjaxResult regenerateNutritionQuestionIndex() public AjaxResult regenerateNutritionQuestionIndex()

View File

@ -45,4 +45,7 @@ public class SysNutritionQuestion extends BaseEntity
//解答问题对应的ID //解答问题对应的ID
private Long askQuestionId; private Long askQuestionId;
//创建人名称
private String createByName;
} }

View File

@ -28,4 +28,7 @@ public class NutritionQuestionResponse implements Serializable {
private String showFlag; private String showFlag;
private String createTime; private String createTime;
//创建人
private String createByName;
} }

View File

@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import com.stdiet.common.utils.DateUtils; import com.stdiet.common.utils.DateUtils;
import com.stdiet.common.utils.SecurityUtils;
import com.stdiet.common.utils.StringUtils; import com.stdiet.common.utils.StringUtils;
import com.stdiet.common.utils.reflect.ReflectUtils; import com.stdiet.common.utils.reflect.ReflectUtils;
import com.stdiet.custom.dto.response.NutritionQuestionResponse; import com.stdiet.custom.dto.response.NutritionQuestionResponse;
@ -40,7 +41,7 @@ public class SysNutritionQuestionServiceImpl implements ISysNutritionQuestionSer
public String index_path; public String index_path;
//建立索引的字段名称 //建立索引的字段名称
public static final String[] index_field_array = {"id", "title", "content", "key", "showFlag", "createTime"}; public static final String[] index_field_array = {"id", "title", "content", "key", "showFlag", "createTime", "createByName"};
//查询字段 //查询字段
public static final String[] index_select_field_array = {"title", "content", "key"}; public static final String[] index_select_field_array = {"title", "content", "key"};
@ -87,6 +88,7 @@ public class SysNutritionQuestionServiceImpl implements ISysNutritionQuestionSer
public int insertSysNutritionQuestion(SysNutritionQuestion sysNutritionQuestion) public int insertSysNutritionQuestion(SysNutritionQuestion sysNutritionQuestion)
{ {
sysNutritionQuestion.setCreateTime(DateUtils.getNowDate()); sysNutritionQuestion.setCreateTime(DateUtils.getNowDate());
sysNutritionQuestion.setCreateBy(String.valueOf(SecurityUtils.getLoginUser().getUser().getUserId()));
if(sysNutritionQuestionMapper.insertSysNutritionQuestion(sysNutritionQuestion) > 0){ if(sysNutritionQuestionMapper.insertSysNutritionQuestion(sysNutritionQuestion) > 0){
return createNutritionQuestionIndex(sysNutritionQuestion.getId()) ? 1 : 0; return createNutritionQuestionIndex(sysNutritionQuestion.getId()) ? 1 : 0;
} }
@ -291,9 +293,10 @@ public class SysNutritionQuestionServiceImpl implements ISysNutritionQuestionSer
for (String fieldName : index_field_array) { for (String fieldName : index_field_array) {
TextField field = null; TextField field = null;
if("createTime".equals(fieldName)){ if("createTime".equals(fieldName)){
field = new TextField(fieldName, DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sysNutritionQuestion.getCreateTime()), Field.Store.YES); field = new TextField(fieldName, sysNutritionQuestion.getCreateTime() == null ? "" : DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,sysNutritionQuestion.getCreateTime()), Field.Store.YES);
} else{ } else{
field = new TextField(fieldName, ReflectUtils.getFieldValue(sysNutritionQuestion, fieldName)+"", Field.Store.YES); Object v = ReflectUtils.getFieldValue(sysNutritionQuestion, fieldName);
field = new TextField(fieldName, v == null ? "" : String.valueOf(v) , Field.Store.YES);
} }
if(nutritionQuestionBoostMap.containsKey(fieldName)){ if(nutritionQuestionBoostMap.containsKey(fieldName)){
field.setBoost(nutritionQuestionBoostMap.get(fieldName).floatValue()); field.setBoost(nutritionQuestionBoostMap.get(fieldName).floatValue());

View File

@ -16,6 +16,7 @@
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
<result property="createByName" column="createByName"></result>
</resultMap> </resultMap>
<!-- 部分字段resultMap --> <!-- 部分字段resultMap -->
@ -28,6 +29,10 @@
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
</resultMap> </resultMap>
<sql id="base_field">
id, title, content, `key`, title_content_index, show_flag, create_time, create_by, update_time, update_by, del_flag
</sql>
<sql id="selectSysNutritionQuestionVo"> <sql id="selectSysNutritionQuestionVo">
select id, title, content, `key`, title_content_index, show_flag, create_time, create_by, update_time, update_by, del_flag from sys_nutrition_question select id, title, content, `key`, title_content_index, show_flag, create_time, create_by, update_time, update_by, del_flag from sys_nutrition_question
</sql> </sql>
@ -37,8 +42,11 @@
</select> </select>
<select id="selectSysNutritionQuestionById" parameterType="Long" resultMap="SysNutritionQuestionResult"> <select id="selectSysNutritionQuestionById" parameterType="Long" resultMap="SysNutritionQuestionResult">
<include refid="selectSysNutritionQuestionVo"/> select
where id = #{id} and del_flag = 0 nq.*,u.nick_name as createByName
from sys_nutrition_question nq
left join sys_user u on u.user_id = nq.create_by
where nq.del_flag = 0 and nq.id = #{id}
</select> </select>
<insert id="insertSysNutritionQuestion" parameterType="SysNutritionQuestion" useGeneratedKeys="true" keyProperty="id"> <insert id="insertSysNutritionQuestion" parameterType="SysNutritionQuestion" useGeneratedKeys="true" keyProperty="id">
@ -115,7 +123,11 @@
<!-- 分页查询--> <!-- 分页查询-->
<select id="getNutritionQuestionListByPage" resultMap="SysNutritionQuestionResult"> <select id="getNutritionQuestionListByPage" resultMap="SysNutritionQuestionResult">
select * from sys_nutrition_question where del_flag = 0 order by id asc limit #{start},#{pageSize} select
nq.*,u.nick_name as createByName
from sys_nutrition_question nq
left join sys_user u on u.user_id = nq.create_by
where nq.del_flag = 0 order by id asc limit #{start},#{pageSize}
</select> </select>

View File

@ -473,21 +473,21 @@
<!-- 根据日期查询该日期中未打卡客户(根据食谱计划判断今日是否需要打卡) --> <!-- 根据日期查询该日期中未打卡客户(根据食谱计划判断今日是否需要打卡) -->
<select id="selectNotPunchCustomerByDate" parameterType="SysCustomer" resultType="SysCustomer"> <select id="selectNotPunchCustomerByDate" parameterType="SysCustomer" resultType="SysCustomer">
select plan.cus_id as id, cus.name, cus.main_dietitian as mainDietitian, cus.assistant_dietitian as assistantDietitian,cus.after_dietitian as afterDietitian from select cus.id, cus.name, cus.main_dietitian as mainDietitian, cus.assistant_dietitian as assistantDietitian,cus.after_dietitian as afterDietitian from
( (
select DISTINCT cus_id from sys_recipes_plan where end_date >= DATE_FORMAT(#{startDate},'%Y-%m-%d') and DATE_FORMAT(#{startDate},'%Y-%m-%d') >= start_date and del_flag = 0 and instr(pause_date, DATE_FORMAT(#{startDate},'%Y%m%d')) = 0 select distinct info.cus_id from sys_wx_user_log log left join sys_wx_user_info info on info.openid = log.openid where log.del_flag = 0 and info.cus_id is not null
) as plan )
as punchCus
left join sys_customer cus on cus.id = plan.cus_id and cus.del_flag = 0 left join sys_customer cus on cus.id = punchCus.cus_id
where cus.del_flag = 0 and punchCus.cus_id in
where plan.cus_id not in (
select DISTINCT cus_id from sys_recipes_plan where end_date >= DATE_FORMAT(#{startDate},'%Y-%m-%d') and DATE_FORMAT(#{startDate},'%Y-%m-%d') >= start_date and del_flag = 0 and instr(pause_date, DATE_FORMAT('2021-08-26','%Y%m%d')) = 0
( )
select info.cus_id from sys_wx_user_log log left join sys_wx_user_info info on info.openid = log.openid and punchCus.cus_id not in
where log.del_flag = 0 and DATE_FORMAT(log.log_time,'%Y-%m-%d') = DATE_FORMAT(#{startDate},'%Y-%m-%d') (
select info.cus_id from sys_wx_user_log log left join sys_wx_user_info info on info.openid = log.openid
where log.del_flag = 0 and DATE_FORMAT(log.log_time,'%Y-%m-%d') = DATE_FORMAT(#{startDate},'%Y-%m-%d')
) )
<if test="mainDietitian != null"> <if test="mainDietitian != null">
and cus.main_dietitian = #{mainDietitian} and cus.main_dietitian = #{mainDietitian}
</if> </if>
@ -498,7 +498,7 @@
and cus.after_dietitian = #{afterDietitian} and cus.after_dietitian = #{afterDietitian}
</if> </if>
order by plan.cus_id desc order by cus.id desc
</select> </select>
<!-- 获取打卡详情(上一天、下一天) --> <!-- 获取打卡详情(上一天、下一天) -->

View File

@ -106,7 +106,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
"/wap/**", "/wap/**",
"/investigate/**", "/investigate/**",
"/common/customerUploadFile", "/common/customerUploadFile",
"/custom/nutritionQuestion/regenerateNutritionQuestionIndex",
"/web/**" "/web/**"
).anonymous() ).anonymous()
.antMatchers( .antMatchers(

View File

@ -59,4 +59,15 @@ export function updateWxShow(data){
method: 'get', method: 'get',
params: data params: data
}) })
} }
//重新生成索引
export function regenerateQuestionIndex(){
return request({
url: '/custom/nutritionQuestion/regenerateNutritionQuestionIndex',
method: 'get',
params: {}
})
}

View File

@ -70,7 +70,16 @@
</el-form> </el-form>
<div style="height: 550px; overflow: auto"> <div style="height: 550px; overflow: auto">
<el-table v-loading="loading" :data="notPunchCustomerList"> <el-table v-loading="loading" :data="notPunchCustomerList">
<el-table-column label="客户姓名" align="center" prop="name" /> <el-table-column label="客户姓名" align="center" prop="name">
<template slot-scope="scope">
<div
@click="handleOnNameClick(scope.row.name)"
class="user_name_style"
>
{{ scope.row.name }}
</div>
</template>
</el-table-column>
<el-table-column label="营养师" align="center" prop="mainDietitian" :formatter="nutritionistFormat"/> <el-table-column label="营养师" align="center" prop="mainDietitian" :formatter="nutritionistFormat"/>
<el-table-column label="售后营养师" align="center" prop="afterDietitian" :formatter="afterDietitianFormat"/> <el-table-column label="售后营养师" align="center" prop="afterDietitian" :formatter="afterDietitianFormat"/>
</el-table> </el-table>
@ -199,10 +208,16 @@ export default {
afterDietitianFormat(row, column) { afterDietitianFormat(row, column) {
return this.selectDictLabel(this.afterSaleIdOptions, row.afterDietitian); return this.selectDictLabel(this.afterSaleIdOptions, row.afterDietitian);
}, },
handleOnNameClick(name) {
// console.log({ name });
this.$router.push(`/customer?cusName=${name}`);
},
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.user_name_style {
cursor: pointer;
}
</style> </style>

View File

@ -59,6 +59,14 @@
>删除</el-button> >删除</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button
type="success"
size="mini"
@click="regenerateIndex"
v-hasPermi="['custom:nutritionQuestion:regenerateIndex']"
>重新生成索引</el-button>
</el-col>
<!--<el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
@ -66,7 +74,7 @@
@click="handleAskQuestion" @click="handleAskQuestion"
v-hasPermi="['custom:askQuestion:list']" v-hasPermi="['custom:askQuestion:list']"
>问题解答</el-button> >问题解答</el-button>
</el-col> </el-col>-->
<!--<el-col :span="1.5"> <!--<el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
@ -117,6 +125,9 @@
<span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }}</span> <span>{{ parseTime(scope.row.createTime, "{y}-{m}-{d} {h}:{i}") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建人" align="center" prop="createByName">
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
@ -212,7 +223,7 @@
</template> </template>
<script> <script>
import { listNutritionQuestion, getNutritionQuestion, delNutritionQuestion, addNutritionQuestion, updateNutritionQuestion, exportNutritionQuestion,updateWxShow } from "@/api/custom/nutritionQuestion"; import { listNutritionQuestion, getNutritionQuestion, delNutritionQuestion, addNutritionQuestion, updateNutritionQuestion, exportNutritionQuestion,updateWxShow,regenerateQuestionIndex } from "@/api/custom/nutritionQuestion";
import Editor from '@/components/Wangeditor'; import Editor from '@/components/Wangeditor';
import AutoHideMessage from "@/components/AutoHideMessage"; import AutoHideMessage from "@/components/AutoHideMessage";
import AskQuestion from "../askQuestion"; import AskQuestion from "../askQuestion";
@ -437,6 +448,14 @@ export default {
}, },
onClosedAskQuestion(){ onClosedAskQuestion(){
console.log(this.$refs.askQuestionListRef.isUpdateFlag); console.log(this.$refs.askQuestionListRef.isUpdateFlag);
},
regenerateIndex(){
regenerateQuestionIndex().then(response => {
if(response.code == 200){
this.msgSuccess("生成成功");
this.getList();
}
});
} }
} }
}; };