refactor(ticket): 优化区域搜索逻辑
This commit is contained in:
parent
cf07bbee4c
commit
b3552cf4e7
|
|
@ -25,7 +25,7 @@ public interface TicketMapper extends BaseMapper<Ticket> {
|
||||||
|
|
||||||
IPage<TicketVO> searchFollow(IPage<?> page, TicketSearchRequest request, Integer userId,String language);
|
IPage<TicketVO> searchFollow(IPage<?> page, TicketSearchRequest request, Integer userId,String language);
|
||||||
|
|
||||||
IPage<TicketVO> searchArea(IPage<?> page, TicketSearchRequest request, List<Integer> companyIds, Integer userId,String language);
|
IPage<TicketVO> searchArea(IPage<?> page, TicketSearchRequest request, String companyId, Integer userId,String language,Boolean isPrimary,String companyCode);
|
||||||
|
|
||||||
IPage<AdminTicketVO> searchFromAdmin(AdminTicketSearchRequest request, Integer userId, IPage<?> page);
|
IPage<AdminTicketVO> searchFromAdmin(AdminTicketSearchRequest request, Integer userId, IPage<?> page);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,9 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
|
||||||
@Resource
|
@Resource
|
||||||
private ITicketSolutionService ticketSolutionService;
|
private ITicketSolutionService ticketSolutionService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ITBaseCustomerService customerService;
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public Ticket add(TicketAddRequest request, Integer userId) {
|
public Ticket add(TicketAddRequest request, Integer userId) {
|
||||||
|
|
@ -132,7 +135,15 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
|
||||||
}else if (request.getType()==2){
|
}else if (request.getType()==2){
|
||||||
return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),language);
|
return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),language);
|
||||||
}else if (request.getType()==3) {
|
}else if (request.getType()==3) {
|
||||||
return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request, user.getCompanyIds(), user.getId(),language);
|
String companyCode = "";
|
||||||
|
if (!user.getIsPrimary()){
|
||||||
|
TBaseCustomer customer=customerService.getById(user.getCompanyIds().get(0));
|
||||||
|
if (Objects.nonNull(customer)){
|
||||||
|
companyCode = customer.getAgencyCompanyCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request
|
||||||
|
, StrUtil.join(",",user.getCompanyIds()), user.getId(),language,user.getIsPrimary(),companyCode);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,10 +114,14 @@
|
||||||
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=0
|
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=0
|
||||||
LEFT JOIN t_base_part p ON t.component_id=p.id
|
LEFT JOIN t_base_part p ON t.component_id=p.id
|
||||||
LEFT JOIN t_base_language_data l ON p.id=l.source_id AND l.language_code=#{language}
|
LEFT JOIN t_base_language_data l ON p.id=l.source_id AND l.language_code=#{language}
|
||||||
WHERE t.state!=4 AND u.company_id IN
|
LEFT JOIN v_device vd ON t.device_no=vd.device_no
|
||||||
<foreach collection="companyIds" item="companyId" open="(" separator="," close=")">
|
WHERE t.state!=4
|
||||||
#{companyId}
|
<if test="request.isPrimary==false">
|
||||||
</foreach>
|
AND FIND_IN_SET(#{companyId},u.company_id) AND vd.agent_code=#{companyCode}
|
||||||
|
</if>
|
||||||
|
<if test="request.isPrimary==true">
|
||||||
|
AND (u.id=#{userId} OR FIND_IN_SET(u.company_id,#{companyId}))
|
||||||
|
</if>
|
||||||
<include refid="searchWhereCondition"/>
|
<include refid="searchWhereCondition"/>
|
||||||
ORDER BY t.id DESC
|
ORDER BY t.id DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue