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> 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);
|
||||
|
||||
|
|
|
|||
|
|
@ -59,6 +59,9 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
|
|||
@Resource
|
||||
private ITicketSolutionService ticketSolutionService;
|
||||
|
||||
@Resource
|
||||
private ITBaseCustomerService customerService;
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public Ticket add(TicketAddRequest request, Integer userId) {
|
||||
|
|
@ -132,7 +135,15 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
|
|||
}else if (request.getType()==2){
|
||||
return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),language);
|
||||
}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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 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}
|
||||
WHERE t.state!=4 AND u.company_id IN
|
||||
<foreach collection="companyIds" item="companyId" open="(" separator="," close=")">
|
||||
#{companyId}
|
||||
</foreach>
|
||||
LEFT JOIN v_device vd ON t.device_no=vd.device_no
|
||||
WHERE t.state!=4
|
||||
<if test="request.isPrimary==false">
|
||||
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"/>
|
||||
ORDER BY t.id DESC
|
||||
</select>
|
||||
|
|
|
|||
Loading…
Reference in New Issue