用户仪器绑定查询优化

master
382696293@qq.com 2 years ago
parent 74e527e1e0
commit f25fb65cab

@ -66,4 +66,6 @@ public interface WxUserInstrumentMapper
List<WxUserInstrument> selectListByUserIdAndInstrumentId(WxUserInstrument wxUserInstrument);
void deleteByUserId(@Param("userId") Long userId);
List<WxUserInstrument> selectListByCondition(WxUserInstrument wxUserInstrument);
}

@ -26,6 +26,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, user_id, serial, instrument_id, instrument_name, serial_image, guarantee, guarantee_endtime, binding_status, status, create_by, create_time, update_by, update_time, remark from wx_user_instrument
</sql>
<select id="selectListByCondition" parameterType="WxUserInstrument" resultMap="WxUserInstrumentResult">
<include refid="selectWxUserInstrumentVo"/>
<where>
<if test="serial != null and serial != ''"> and serial like concat('%', #{serial}, '%')</if>
<if test="bindingStatus != null "> and binding_status = #{bindingStatus}</if>
<if test="instrumentIds != null">
and instrument_id in
<foreach item="instrumentId" collection="instrumentIds.split(',')" open="(" separator="," close=")">
#{instrumentId}
</foreach>
</if>
<if test="userIds != null and userIds !=''">
and user_id in
<foreach collection="userIds.split(',')" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="instrumentId != null "> and instrument_id like concat('%', #{instrumentId}, '%')</if>
<if test="startTime != null and endTime != null">
and create_time &gt;= #{startTime}
</if>
<if test="startTime != null and endTime != null">
and create_time &lt;= #{endTime}
</if>
</where>
order by create_time desc
</select>
<select id="selectWxUserInstrumentList" parameterType="WxUserInstrument" resultMap="WxUserInstrumentResult">
<include refid="selectWxUserInstrumentVo"/>
<where>

@ -1,19 +1,16 @@
package com.flossom.system.controller;
import java.util.List;
import java.io.IOException;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.flossom.common.core.domain.entity.WxInstrument;
import com.flossom.common.core.domain.entity.WxUserInstrument;
import com.flossom.common.core.domain.entity.WxUserMember;
import com.flossom.common.core.domain.req.WxUserInstrumentExportVm;
import com.flossom.common.core.domain.req.WxUserMemberExportVm;
import com.flossom.common.core.domain.ret.WxUserMemberRet;
import com.flossom.common.core.domain.vo.WxUserMemberVo;
import com.flossom.common.core.exception.ServiceException;
import com.flossom.common.core.domain.req.WxUserMemberVm;
import com.flossom.common.core.utils.poi.ExcelUtil;
import com.flossom.common.core.web.controller.BaseController;
import com.flossom.common.core.web.domain.AjaxResult;
@ -58,6 +55,19 @@ public class WxUserInstrumentController extends BaseController
@GetMapping("/list")
public TableDataInfo list(WxUserInstrument wxUserInstrument)
{
// 用户相关信息
WxUserMemberVm wxUserMemberVm = new WxUserMemberVm();
wxUserMemberVm.setNickname(wxUserInstrument.getNickName());
if(wxUserInstrument.getUserIdArray() != null && wxUserInstrument.getUserIdArray().size() > 0) {
wxUserMemberVm.setId(wxUserInstrument.getUserIdArray().stream().map(String::valueOf).collect(Collectors.joining(",")));
}
wxUserMemberVm.setMobile(wxUserInstrument.getUserPhone());
List<WxUserMember> wxUserMemberList = wxUserMemberService.selectWxUserMemberList(wxUserMemberVm);
if(wxUserMemberList != null && wxUserMemberList.size() > 0) {
String collect = wxUserMemberList.stream().map(WxUserMember::getId).map(String::valueOf).collect(Collectors.joining(","));
wxUserInstrument.setUserIds(collect);
}
startPage();
List<WxUserInstrument> list = wxUserInstrumentService.selectWxUserInstrumentList(wxUserInstrument);
//循环查询对应的信息

@ -1,7 +1,5 @@
package com.flossom.system.service.impl;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
@ -11,14 +9,12 @@ import com.flossom.common.core.domain.req.WxUserInstrumentExportVm;
import com.flossom.common.core.enums.BindingStatusEnums;
import com.flossom.common.core.mapper.*;
import com.flossom.common.core.utils.DateUtils;
import com.flossom.common.core.utils.StringUtils;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.flossom.system.service.IWxUserInstrumentService;
import org.springframework.util.CollectionUtils;
import org.springframework.util.unit.DataUnit;
/**
* Service
@ -62,47 +58,6 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService
@Override
public List<WxUserInstrument> selectWxUserInstrumentList(WxUserInstrument wxUserInstrument)
{
// 处理用户昵称
if (StringUtils.isNotEmpty(wxUserInstrument.getNickName())){
WxUserMember userMember = new WxUserMember();
userMember.setNickname(wxUserInstrument.getNickName());
List<WxUserMember> wxUserMembersList = wxUserMemberMapper.selectWxUserMemberList(userMember);
if (!CollectionUtils.isEmpty(wxUserMembersList)) {
String userIds = (wxUserMembersList.stream().map(WxUserMember::getId).collect(Collectors.toList())).stream().map(String::valueOf).collect(Collectors.joining(","));
wxUserInstrument.setUserIds(userIds);
}
}
// 处理用户ID
if (!CollectionUtils.isEmpty(wxUserInstrument.getUserIdArray())){
String userIds =wxUserInstrument.getUserIdArray().stream().map(String::valueOf).collect(Collectors.joining(","));
if (StringUtils.isNotEmpty(wxUserInstrument.getUserIds())) {
wxUserInstrument.setUserIds(wxUserInstrument.getUserIds()+","+userIds);
} else {
wxUserInstrument.setUserIds(userIds);
}
}
// 处理手机号码
if (StringUtils.isNotEmpty(wxUserInstrument.getUserPhone())){
List<Long> userIdList = Lists.newArrayList();
// 获取手机集合
List<String> mobileList = Arrays.asList(wxUserInstrument.getUserPhone().split(",")).stream().map(String::valueOf).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(mobileList)) {
for (String mobile: mobileList) {
List<WxUserMember> wxUserMembers = wxUserMemberMapper.selectWxUserMemberByMobile(mobile);
if (!CollectionUtils.isEmpty(wxUserMembers)) {
userIdList.add(wxUserMembers.get(0).getId());
}
}
}
if(!CollectionUtils.isEmpty(userIdList)) {
String userIds = userIdList.stream().map(String::valueOf).collect(Collectors.joining(","));
if (StringUtils.isNotEmpty(wxUserInstrument.getUserIds())) {
wxUserInstrument.setUserIds(wxUserInstrument.getUserIds()+","+userIds);
} else {
wxUserInstrument.setUserIds(userIds);
}
}
}
// 处理仪器字段
if (!CollectionUtils.isEmpty(wxUserInstrument.getInstrumentIdArray())) {
String instrumentIds = wxUserInstrument.getInstrumentIdArray().stream().map(String::valueOf).collect(Collectors.joining(","));
@ -114,7 +69,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService
wxUserInstrument.setMapperBindStatus(bindStatus);
}
return wxUserInstrumentMapper.selectWxUserInstrumentList(wxUserInstrument);
return wxUserInstrumentMapper.selectListByCondition(wxUserInstrument);
}
/**

@ -56,8 +56,8 @@
clearable
>
<el-option label="全部" value="" />
<el-option label="未绑定" value="1" />
<el-option label="已绑定" value="0" />
<el-option label="已解绑" value="2" />
</el-select>
</el-form-item>
<el-form-item label="仪器ID" prop="instrumentId">

Loading…
Cancel
Save