Compare commits

..

No commits in common. "5df11931f1ad975d5c0b330f02ff3613676ff760" and "7239f9007df33ce5e0d586a9b7be745300482cc0" have entirely different histories.

30 changed files with 141 additions and 220 deletions

View File

@ -154,7 +154,7 @@ public class TicketController extends ControllerBase {
@GetMapping("getFavorites") @GetMapping("getFavorites")
@ApiMark(moduleName = "工单管理", apiName = "获取收藏夹",isPublic = true) @ApiMark(moduleName = "工单管理", apiName = "获取收藏夹",isPublic = true)
public ApiResult<FavoritesVO> getFavorites(@RequestParam(defaultValue ="0") Integer id){ public ApiResult<FavoritesVO> getFavorites(@RequestParam(defaultValue ="0") Integer id){
return ApiResult.success(ticketFavoritesService.getList(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),id)); return ApiResult.success(ticketFavoritesService.getList(AdminUserUtil.getUserId(),id));
} }
/** /**
@ -165,7 +165,7 @@ public class TicketController extends ControllerBase {
@PostMapping("addFavorites") @PostMapping("addFavorites")
@ApiMark(moduleName = "工单管理", apiName = "添加收藏夹",isPublic = true) @ApiMark(moduleName = "工单管理", apiName = "添加收藏夹",isPublic = true)
public ApiResult<Void> addFavorites(@Valid @RequestBody AdminFavoritesRequest request){ public ApiResult<Void> addFavorites(@Valid @RequestBody AdminFavoritesRequest request){
ticketFavoritesService.addFavorites(request,AdminUserUtil.getUserId(),AppUserUtil.getFrom()); ticketFavoritesService.addFavorites(request,AdminUserUtil.getUserId());
return ApiResult.success(); return ApiResult.success();
} }
@ -175,7 +175,7 @@ public class TicketController extends ControllerBase {
*/ */
@PostMapping("updateFavorites") @PostMapping("updateFavorites")
public ApiResult<Void> updateFavorites(@Valid @RequestBody FavoritesUpdateRequest request){ public ApiResult<Void> updateFavorites(@Valid @RequestBody FavoritesUpdateRequest request){
ticketFavoritesService.updateFavorites(request,AdminUserUtil.getUserId(),AppUserUtil.getFrom()); ticketFavoritesService.updateFavorites(request,AdminUserUtil.getUserId());
return ApiResult.success(); return ApiResult.success();
} }
@ -187,7 +187,7 @@ public class TicketController extends ControllerBase {
@PostMapping("deleteFavorites") @PostMapping("deleteFavorites")
@ApiMark(moduleName = "工单管理", apiName = "删除收藏夹",isPublic = true) @ApiMark(moduleName = "工单管理", apiName = "删除收藏夹",isPublic = true)
public ApiResult<Void> deleteFavorites(@Valid @RequestParam @NotNull Integer favoritesId){ public ApiResult<Void> deleteFavorites(@Valid @RequestParam @NotNull Integer favoritesId){
ticketFavoritesService.deleteFavorites(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),favoritesId); ticketFavoritesService.deleteFavorites(AdminUserUtil.getUserId(),favoritesId);
return ApiResult.success(); return ApiResult.success();
} }
@ -197,7 +197,7 @@ public class TicketController extends ControllerBase {
*/ */
@PostMapping("moveFavorites") @PostMapping("moveFavorites")
public ApiResult<Void> moveFavorites(@Valid @RequestBody FavoritesMoveRequest request){ public ApiResult<Void> moveFavorites(@Valid @RequestBody FavoritesMoveRequest request){
ticketFavoritesService.moveFavorites(request); ticketFavoritesService.moveFavorites(AdminUserUtil.getUserId(),request);
return ApiResult.success(); return ApiResult.success();
} }
@ -207,7 +207,7 @@ public class TicketController extends ControllerBase {
*/ */
@PostMapping("moveFavoritesTicket") @PostMapping("moveFavoritesTicket")
public ApiResult<Void> moveFavoritesTicket(@Valid @RequestBody FavoritesTicketMoveRequest request){ public ApiResult<Void> moveFavoritesTicket(@Valid @RequestBody FavoritesTicketMoveRequest request){
ticketFavoritesService.moveFavoritesTicket(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),request); ticketFavoritesService.moveFavoritesTicket(AdminUserUtil.getUserId(),request);
return ApiResult.success(); return ApiResult.success();
} }
@ -218,7 +218,7 @@ public class TicketController extends ControllerBase {
@PostMapping("followTiket") @PostMapping("followTiket")
@ApiMark(moduleName = "工单管理", apiName = "关注工单") @ApiMark(moduleName = "工单管理", apiName = "关注工单")
public ApiResult<Void> followTiket(@Valid @RequestBody AdminFollowRequest request){ public ApiResult<Void> followTiket(@Valid @RequestBody AdminFollowRequest request){
ticketFollowService.follow(request, AdminUserUtil.getUserId(),AppUserUtil.getFrom()); ticketFollowService.follow(request, AdminUserUtil.getUserId());
return ApiResult.success(); return ApiResult.success();
} }
@ -228,7 +228,7 @@ public class TicketController extends ControllerBase {
**/ **/
@PostMapping("unfollowTicket") @PostMapping("unfollowTicket")
public ApiResult<Void> unfollowTicket(@Valid @RequestParam @NotNull Integer ticketId){ public ApiResult<Void> unfollowTicket(@Valid @RequestParam @NotNull Integer ticketId){
ticketFollowService.unfollow(AdminUserUtil.getUserId(),AppUserUtil.getFrom(),ticketId); ticketFollowService.unfollow(AdminUserUtil.getUserId(),ticketId);
return ApiResult.success(); return ApiResult.success();
} }
@ -570,10 +570,8 @@ public class TicketController extends ControllerBase {
@GetMapping("getTicket") @GetMapping("getTicket")
public ApiResult<TicketInfoVO> getTicket(@Valid @RequestParam @NotNull Integer id) { public ApiResult<TicketInfoVO> getTicket(@Valid @RequestParam @NotNull Integer id) {
Ticket ticket = ticketService.getById(id); Ticket ticket = ticketService.getById(id);
AdminUser adminUser=StrUtil.equals(ticket.getUserPlatform(),Constant.FROM_ADMIN)?adminUserService.getById(ticket.getUserId()):null; AppUser user = appUserService.getById(ticket.getUserId());
AppUser user = StrUtil.equals(ticket.getUserPlatform(), Constant.FROM_APP) ? appUserService.getById(ticket.getUserId()) : null;
String areaName = ""; String areaName = "";
if (Objects.nonNull(user))
if (user.getIsPrimary()){ if (user.getIsPrimary()){
areaName=StrUtil.join(",",customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()))); areaName=StrUtil.join(",",customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())));
}else if (Objects.nonNull(user.getAreaId())){ }else if (Objects.nonNull(user.getAreaId())){
@ -619,8 +617,8 @@ public class TicketController extends ControllerBase {
.setImages(getFileVOs(ticket.getImages())) .setImages(getFileVOs(ticket.getImages()))
.setAttachments(getFileVOs(ticket.getAttachments())) .setAttachments(getFileVOs(ticket.getAttachments()))
.setCreateUserId(ticket.getUserId()) .setCreateUserId(ticket.getUserId())
.setCreateUserName(Objects.nonNull(user)?user.getName():adminUser.getUserName()) .setCreateUserName(user.getName())
.setCreateUserAvatar(Objects.nonNull(user)?user.getAvatar():adminUser.getAvatar()) .setCreateUserAvatar(user.getAvatar())
.setCreateTime(ticket.getCreateTime()) .setCreateTime(ticket.getCreateTime())
.setAreaName(areaName) .setAreaName(areaName)
.setCompanyName(device.getCustomerName()) .setCompanyName(device.getCustomerName())

View File

@ -58,7 +58,6 @@ public class TicketCompleteEvent extends ApplicationEvent implements Application
//我的消息 //我的消息
appMessageService.add(new AppMessage() appMessageService.add(new AppMessage()
.setUserId(ticket.getUserId()) .setUserId(ticket.getUserId())
.setUserPlatform(ticket.getUserPlatform())
.setTicketId(ticket.getId()) .setTicketId(ticket.getId())
.setSubType(MessageSubType.TicketCompletion.getState()) .setSubType(MessageSubType.TicketCompletion.getState())
.setIsRead(false) .setIsRead(false)

View File

@ -60,7 +60,6 @@ public class TicketReplyEvent extends ApplicationEvent implements ApplicationCon
//我的消息 //我的消息
appMessageService.add(new AppMessage() appMessageService.add(new AppMessage()
.setUserId(ticket.getUserId()) .setUserId(ticket.getUserId())
.setUserPlatform(ticket.getUserPlatform())
.setTicketId(ticket.getId()) .setTicketId(ticket.getId())
.setSubType(MessageSubType.TicketNewMessage.getState()) .setSubType(MessageSubType.TicketNewMessage.getState())
.setIsRead(false) .setIsRead(false)

View File

@ -41,7 +41,7 @@ public class MessageController extends ControllerBase {
*/ */
@PostMapping("searchMessages") @PostMapping("searchMessages")
public ApiResult<PageData<AppMessageVO>> searchMessages(@RequestBody AppMessageSearchRequest request) { public ApiResult<PageData<AppMessageVO>> searchMessages(@RequestBody AppMessageSearchRequest request) {
return ApiResult.success(appMessageService.search(AppUserUtil.getUserId(),AppUserUtil.getFrom(), request)); return ApiResult.success(appMessageService.search(AppUserUtil.getUserId(), request));
} }
/** /**
@ -50,7 +50,7 @@ public class MessageController extends ControllerBase {
*/ */
@PostMapping("setReaded") @PostMapping("setReaded")
public ApiResult<Void> setReaded(@Valid @RequestBody List<Integer> ids) { public ApiResult<Void> setReaded(@Valid @RequestBody List<Integer> ids) {
appMessageService.setReaded(AppUserUtil.getUserId(),AppUserUtil.getFrom(),ids); appMessageService.setReaded(AppUserUtil.getUserId(),ids);
return ApiResult.success(); return ApiResult.success();
} }
@ -60,7 +60,7 @@ public class MessageController extends ControllerBase {
*/ */
@PostMapping("setNotRead") @PostMapping("setNotRead")
public ApiResult<Void> setNotRead(@Valid @RequestBody List<Integer> ids) { public ApiResult<Void> setNotRead(@Valid @RequestBody List<Integer> ids) {
appMessageService.setNotRead(AppUserUtil.getUserId(),AppUserUtil.getFrom(),ids); appMessageService.setNotRead(AppUserUtil.getUserId(),ids);
return ApiResult.success(); return ApiResult.success();
} }
@ -71,7 +71,7 @@ public class MessageController extends ControllerBase {
*/ */
@GetMapping("getNotReadMessages") @GetMapping("getNotReadMessages")
public ApiResult<PageData<AppMessageVO>> getNotReadMessages(@RequestParam(defaultValue = "10") Integer num) { public ApiResult<PageData<AppMessageVO>> getNotReadMessages(@RequestParam(defaultValue = "10") Integer num) {
return ApiResult.success(appMessageService.getNotReadMessage(AppUserUtil.getUserId(),AppUserUtil.getFrom(), num)); return ApiResult.success(appMessageService.getNotReadMessage(AppUserUtil.getUserId(), num));
} }
/** /**
@ -80,7 +80,7 @@ public class MessageController extends ControllerBase {
*/ */
@GetMapping("getNotReadMessageCount") @GetMapping("getNotReadMessageCount")
public ApiResult<Integer> getNotReadMessageCount(){ public ApiResult<Integer> getNotReadMessageCount(){
return ApiResult.success(appMessageService.getNotReadMessageCount(AppUserUtil.getUserId(),AppUserUtil.getFrom())); return ApiResult.success(appMessageService.getNotReadMessageCount(AppUserUtil.getUserId()));
} }
/** /**

View File

@ -185,7 +185,7 @@ public class TicketController extends ControllerBase {
**/ **/
@PostMapping("followTiket") @PostMapping("followTiket")
public ApiResult<Void> followTiket(@Valid @RequestBody FollowRequest request){ public ApiResult<Void> followTiket(@Valid @RequestBody FollowRequest request){
ticketFollowService.handle(request, AppUserUtil.getUserId(),AppUserUtil.getFrom()); ticketFollowService.handle(request, AppUserUtil.getUserId());
return ApiResult.success(); return ApiResult.success();
} }
@ -198,27 +198,17 @@ public class TicketController extends ControllerBase {
public ApiResult<TicketInfoVO> getTicket(@Valid @RequestParam @NotNull Integer id) { public ApiResult<TicketInfoVO> getTicket(@Valid @RequestParam @NotNull Integer id) {
Ticket ticket = ticketService.getById(id); Ticket ticket = ticketService.getById(id);
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单"); VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单");
AppUser user = appUserService.getById(ticket.getUserId());
String areaName = ""; String areaName = "";
List<TBaseCustomer> companys=new ArrayList<>(); if (user.getIsPrimary()){
String userName,userAvatar; areaName=StrUtil.join(",",customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())));
if (StrUtil.equals(ticket.getUserPlatform(),"app")) { }else if (Objects.nonNull(user.getAreaId())){
AppUser user = appUserService.getById(ticket.getUserId()); AppArea area = appAreaService.getById(user.getAreaId());
userName = user.getName(); if (Objects.nonNull(area)) {
userAvatar = user.getAvatar(); areaName = area.getName();
if (user.getIsPrimary()) {
areaName = StrUtil.join(",", customerService.getAreas(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())));
} else if (Objects.nonNull(user.getAreaId())) {
AppArea area = appAreaService.getById(user.getAreaId());
if (Objects.nonNull(area)) {
areaName = area.getName();
}
} }
companys = customerService.listByIds(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()));
}else {
AdminUser adminUser=adminUserService.getById(ticket.getUserId());
userName = adminUser.getUserName();
userAvatar = adminUser.getAvatar();
} }
List<TBaseCustomer> companys = customerService.listByIds(Arrays.stream(user.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList()));
DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo()); DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo());
String handle = ticket.getHandle(); String handle = ticket.getHandle();
if (StrUtil.isNotBlank(handle)) { if (StrUtil.isNotBlank(handle)) {
@ -240,8 +230,8 @@ public class TicketController extends ControllerBase {
.setImages(getFileVOs(ticket.getImages())) .setImages(getFileVOs(ticket.getImages()))
.setAttachments(getFileVOs(ticket.getAttachments())) .setAttachments(getFileVOs(ticket.getAttachments()))
.setCreateUserId(ticket.getUserId()) .setCreateUserId(ticket.getUserId())
.setCreateUserName(userName) .setCreateUserName(user.getName())
.setCreateUserAvatar(userAvatar) .setCreateUserAvatar(user.getAvatar())
.setCreateTime(ticket.getCreateTime()) .setCreateTime(ticket.getCreateTime())
.setAreaName(areaName) .setAreaName(areaName)
.setSolveTime(ticket.getSolveTime()) .setSolveTime(ticket.getSolveTime())
@ -348,25 +338,22 @@ public class TicketController extends ControllerBase {
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在"); VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.Processing.getState()) > 1) VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.Processing.getState()) > 1)
.throwMessage("当前工单状态不允许发送消息"); .throwMessage("当前工单状态不允许发送消息");
VUtils.trueThrowBusinessError(!(Objects.equals(ticket.getUserId(),AppUserUtil.getUserId()) && StrUtil.equals(ticket.getUserPlatform(), AppUserUtil.getFrom()))) VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(),AppUserUtil.getUserId()))
.throwMessage("工单创建人才能发送消息"); .throwMessage("工单创建人才能发送消息");
AppUser user = appUserService.getById(AppUserUtil.getUserId());
ChatMessageDTO message = new ChatMessageDTO() ChatMessageDTO message = new ChatMessageDTO()
.setId(IdUtil.getSnowflakeNextIdStr()) .setId(IdUtil.getSnowflakeNextIdStr())
.setFrom("app") .setFrom("app")
.setTicketState(ticket.getState()) .setTicketState(ticket.getState())
.setSenderId(user.getId())
.setSenderName(user.getName())
.setSenderAvatar(user.getAvatar())
.setContent(request.getContent()) .setContent(request.getContent())
.setCreateTime(Instant.now()) .setCreateTime(Instant.now())
.setAttachments(request.getAttachments()) .setAttachments(request.getAttachments())
.setImages(request.getImages()) .setImages(request.getImages())
.setRemindUsers(request.getRemindUsers()) .setRemindUsers(request.getRemindUsers())
.setAudioUrl(request.getAudioUrl()); .setAudioUrl(request.getAudioUrl());
if (StrUtil.equals(ticket.getUserPlatform(),"app")){
AppUser user = appUserService.getById(AppUserUtil.getUserId());
message.setSenderId(user.getId()).setSenderName(user.getName()).setSenderAvatar(user.getAvatar());
}else {
AdminUser adminUser= adminUserService.getById(AppUserUtil.getUserId());
message.setSenderId(adminUser.getId()).setSenderName(adminUser.getUserName()).setSenderAvatar(adminUser.getAvatar());
}
if(Objects.nonNull(request.getQuoteId())){ if(Objects.nonNull(request.getQuoteId())){
ChatMessageDTO quoteMessage = ticketChatService.getMessage(request.getTicketId(), request.getQuoteId()); ChatMessageDTO quoteMessage = ticketChatService.getMessage(request.getTicketId(), request.getQuoteId());
message.setQuote(quoteMessage); message.setQuote(quoteMessage);

View File

@ -2,7 +2,6 @@ package com.nflg.mobilebroken.cfs.event;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.util.StrUtil;
import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.constant.MessageSubType; import com.nflg.mobilebroken.common.constant.MessageSubType;
import com.nflg.mobilebroken.common.constant.MessageType; import com.nflg.mobilebroken.common.constant.MessageType;
@ -88,19 +87,12 @@ public class TicketCreateEvent extends ApplicationEvent implements ApplicationCo
private void sendEmail(){ private void sendEmail(){
try { try {
String tickerUserName; AppUser appUser=appUserService.getById(ticket.getUserId());
if (StrUtil.equals(ticket.getUserPlatform(),"app")){
AppUser appUser=appUserService.getById(ticket.getUserId());
tickerUserName=appUser.getName();
}else {
AdminUser adminUser=adminUserService.getById(ticket.getUserId());
tickerUserName=adminUser.getUserName();
}
String subject=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_TITLE_TICKET_CREATE,language); String subject=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_TITLE_TICKET_CREATE,language);
String content=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_CONTENT_TICKET_NOTIFY,language) String content=dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY,Constant.DICTIONARY_ITEM_EMAIL_CONTENT_TICKET_NOTIFY,language)
.replace("${no}",ticket.getNo()) .replace("${no}",ticket.getNo())
.replace("${title}",ticket.getTitle()) .replace("${title}",ticket.getTitle())
.replace("${createUser}",tickerUserName) .replace("${createUser}",appUser.getName())
.replace("${handleUser}","") .replace("${handleUser}","")
.replace("${createTime}",toTimeString(ticket.getCreateTime())) .replace("${createTime}",toTimeString(ticket.getCreateTime()))
.replace("${msg}",subject); .replace("${msg}",subject);

View File

@ -24,7 +24,7 @@ public class Constant {
public static final String REDIS_KEY_MESSAGE_NOT_READ_COUNT_ADMIN = "admin:message:unread"; public static final String REDIS_KEY_MESSAGE_NOT_READ_COUNT_ADMIN = "admin:message:unread";
public static final String REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP = "app:message:unread:{}"; public static final String REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP = "app:message:unread";
public static final String REDIS_KEY_MESSAGECONFIG_WX = "wxNotifyEnabled"; public static final String REDIS_KEY_MESSAGECONFIG_WX = "wxNotifyEnabled";

View File

@ -24,9 +24,6 @@ public class UserDTO {
//是否是主账号 //是否是主账号
private Boolean isPrimary; private Boolean isPrimary;
//用户来源平台app或者admin
private String from;
//公司id //公司id
private List<Integer> companyIds; private List<Integer> companyIds;
} }

View File

@ -17,6 +17,4 @@ public class AreaSearchRequest extends PageRequest {
//区域创建人id //区域创建人id
@JsonIgnore @JsonIgnore
private Integer createBy; private Integer createBy;
} }

View File

@ -44,7 +44,6 @@ public class AppUserUtil {
user.setEmail(getEmail()); user.setEmail(getEmail());
user.setCompanyIds(getCompanyIds()); user.setCompanyIds(getCompanyIds());
user.setIsPrimary(isPrimary()); user.setIsPrimary(isPrimary());
user.setFrom(getFrom());
return user; return user;
} }
} }

View File

@ -39,11 +39,6 @@ public class AppMessage implements Serializable {
*/ */
private Integer userId; private Integer userId;
/**
* 用户来源平台app或者admin
*/
private String userPlatform;
/** /**
* 任务事项5工单新消息6工单完成10工单超时 * 任务事项5工单新消息6工单完成10工单超时
*/ */

View File

@ -82,11 +82,6 @@ public class Ticket implements Serializable {
*/ */
private Integer userId; private Integer userId;
/**
* 用户来源平台app或者admin
*/
private String userPlatform;
/** /**
* 创建时间 * 创建时间
*/ */

View File

@ -49,11 +49,6 @@ public class TicketFavorites implements Serializable {
*/ */
private Integer createBy; private Integer createBy;
/**
* 用户来源平台app或者admin
*/
private String userPlatform;
/** /**
* 创建时间 * 创建时间
*/ */

View File

@ -15,7 +15,7 @@ import com.nflg.mobilebroken.repository.entity.AppMessage;
*/ */
public interface AppMessageMapper extends BaseMapper<AppMessage> { public interface AppMessageMapper extends BaseMapper<AppMessage> {
IPage<AppMessageVO> getNotReadMessage(Integer userId,String from, Integer num, IPage<AppMessageVO> page); IPage<AppMessageVO> getNotReadMessage(Integer userId, Integer num, IPage<AppMessageVO> page);
IPage<AppMessageVO> search(Integer userId,String from, String title, IPage<AppMessageVO> page); IPage<AppMessageVO> search(Integer userId, String title, IPage<AppMessageVO> page);
} }

View File

@ -21,11 +21,11 @@ import java.util.List;
*/ */
public interface TicketMapper extends BaseMapper<Ticket> { public interface TicketMapper extends BaseMapper<Ticket> {
IPage<TicketVO> searchMy(IPage<?> page, TicketSearchRequest request, Integer userId,String from,String language); IPage<TicketVO> searchMy(IPage<?> page, TicketSearchRequest request, Integer userId,String language);
IPage<TicketVO> searchFollow(IPage<?> page, TicketSearchRequest request, Integer userId,String from,String language); IPage<TicketVO> searchFollow(IPage<?> page, TicketSearchRequest request, Integer userId,String language);
IPage<TicketVO> searchArea(IPage<?> page, TicketSearchRequest request, String companyId, Integer userId,String language,Boolean isPrimary,String companyCode,String from); 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);
@ -37,7 +37,7 @@ public interface TicketMapper extends BaseMapper<Ticket> {
List<AdminTicketVO> searchAllFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId); List<AdminTicketVO> searchAllFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId);
List<TicketVO> getAdminFavorites(Integer userId,String from,Integer favoritesId); List<TicketVO> getAdminFavorites(Integer userId,Integer favoritesId);
IPage<AdminTicketVO> searchByFavouritesId(Integer userId, Integer favouritesId, Page<?> page); IPage<AdminTicketVO> searchByFavouritesId(Integer userId, Integer favouritesId, Page<?> page);
} }

View File

@ -18,15 +18,15 @@ import java.util.List;
*/ */
public interface IAppMessageService extends IService<AppMessage> { public interface IAppMessageService extends IService<AppMessage> {
IPage<AppMessageVO> getNotReadMessage(Integer userId,String from, Integer num); IPage<AppMessageVO> getNotReadMessage(Integer userId, Integer num);
IPage<AppMessageVO> search(Integer userId,String from, AppMessageSearchRequest request); IPage<AppMessageVO> search(Integer userId, AppMessageSearchRequest request);
void setReaded(Integer userId,String from,List<Integer> ids); void setReaded(Integer userId,List<Integer> ids);
void setNotRead(Integer userId,String from,List<Integer> ids); void setNotRead(Integer userId,List<Integer> ids);
void add(AppMessage message); void add(AppMessage message);
Integer getNotReadMessageCount(Integer userId,String from); Integer getNotReadMessageCount(Integer userId);
} }

View File

@ -18,15 +18,15 @@ import com.nflg.mobilebroken.repository.entity.TicketFavorites;
*/ */
public interface ITicketFavoritesService extends IService<TicketFavorites> { public interface ITicketFavoritesService extends IService<TicketFavorites> {
FavoritesVO getList(Integer userId,String from,Integer id); FavoritesVO getList(Integer userId,Integer id);
void addFavorites(AdminFavoritesRequest request, Integer userId,String from); void addFavorites(AdminFavoritesRequest request, Integer userId);
void deleteFavorites(Integer userId,String from,Integer favoritesId); void deleteFavorites(Integer userId,Integer favoritesId);
void updateFavorites(FavoritesUpdateRequest request, Integer userId,String from); void updateFavorites(FavoritesUpdateRequest request, Integer userId);
void moveFavorites(FavoritesMoveRequest request); void moveFavorites(Integer userId, FavoritesMoveRequest request);
void moveFavoritesTicket(Integer userId,String from, FavoritesTicketMoveRequest request); void moveFavoritesTicket(Integer userId, FavoritesTicketMoveRequest request);
} }

View File

@ -15,11 +15,11 @@ import com.nflg.mobilebroken.repository.entity.TicketFollow;
*/ */
public interface ITicketFollowService extends IService<TicketFollow> { public interface ITicketFollowService extends IService<TicketFollow> {
void handle(FollowRequest request, Integer userId,String from); void handle(FollowRequest request, Integer userId);
void follow(AdminFollowRequest request, Integer userId,String from); void follow(AdminFollowRequest request, Integer userId);
void unfollow(Integer userId,String from, Integer ticketId); void unfollow(Integer userId, Integer ticketId);
void deleteFavorites(Integer userId,String from, Integer favoritesId); void deleteFavorites(Integer userId, Integer favoritesId);
} }

View File

@ -51,7 +51,7 @@ public interface ITicketService extends IService<Ticket> {
List<AdminUserSimpleVO> getTicketHandle(Integer id); List<AdminUserSimpleVO> getTicketHandle(Integer id);
List<TicketVO> getAdminFavorites(Integer userId,String from,Integer favoritesId); List<TicketVO> getAdminFavorites(Integer userId,Integer favoritesId);
Ticket rejectTicket(Integer id); Ticket rejectTicket(Integer id);

View File

@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.pojo.request.AreaSearchRequest; import com.nflg.mobilebroken.common.pojo.request.AreaSearchRequest;
import com.nflg.mobilebroken.common.pojo.request.EnableRequest; import com.nflg.mobilebroken.common.pojo.request.EnableRequest;
import com.nflg.mobilebroken.common.pojo.vo.AreaVO; import com.nflg.mobilebroken.common.pojo.vo.AreaVO;
@ -57,9 +56,6 @@ public class AppAreaServiceImpl extends ServiceImpl<AppAreaMapper, AppArea> impl
@Override @Override
public IPage<AreaVO> search(AreaSearchRequest request) { public IPage<AreaVO> search(AreaSearchRequest request) {
if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_ADMIN)){
return new Page<>(request.getPage(), request.getPageSize());
}
if (AppUserUtil.isPrimary()){ if (AppUserUtil.isPrimary()){
request.setCreateBy(AppUserUtil.getUserId()); request.setCreateBy(AppUserUtil.getUserId());
}else { }else {

View File

@ -37,13 +37,13 @@ public class AppMessageServiceImpl extends ServiceImpl<AppMessageMapper, AppMess
private RedisTemplate<String,Object> redisTemplate; private RedisTemplate<String,Object> redisTemplate;
@Override @Override
public IPage<AppMessageVO> getNotReadMessage(Integer userId,String from, Integer num) { public IPage<AppMessageVO> getNotReadMessage(Integer userId, Integer num) {
return baseMapper.getNotReadMessage(userId,from, num, new Page<>(1, num)); return baseMapper.getNotReadMessage(userId, num, new Page<>(1, num));
} }
@Override @Override
public IPage<AppMessageVO> search(Integer userId,String from, AppMessageSearchRequest request) { public IPage<AppMessageVO> search(Integer userId, AppMessageSearchRequest request) {
IPage<AppMessageVO> datas = baseMapper.search(userId,from, request.getTitle(), new Page<>(request.getPage(), request.getPageSize())); IPage<AppMessageVO> datas = baseMapper.search(userId, request.getTitle(), new Page<>(request.getPage(), request.getPageSize()));
Map<Integer, String> userMap = new HashMap<>(); Map<Integer, String> userMap = new HashMap<>();
datas.getRecords().forEach(d -> { datas.getRecords().forEach(d -> {
if (StrUtil.isNotBlank(d.getTicketHandleBy())) { if (StrUtil.isNotBlank(d.getTicketHandleBy())) {
@ -64,23 +64,23 @@ public class AppMessageServiceImpl extends ServiceImpl<AppMessageMapper, AppMess
} }
@Override @Override
public void setReaded(Integer userId,String from,List<Integer> ids) { public void setReaded(Integer userId,List<Integer> ids) {
lambdaUpdate() lambdaUpdate()
.set(AppMessage::getIsRead, true) .set(AppMessage::getIsRead, true)
.eq(AppMessage::getUserId, userId) .eq(AppMessage::getUserId, userId)
.in(AppMessage::getId, ids) .in(AppMessage::getId, ids)
.update(); .update();
setUnreadMessageCount(userId,from); setUnreadMessageCount(userId);
} }
@Override @Override
public void setNotRead(Integer userId,String from,List<Integer> ids) { public void setNotRead(Integer userId,List<Integer> ids) {
lambdaUpdate() lambdaUpdate()
.set(AppMessage::getIsRead, false) .set(AppMessage::getIsRead, false)
.eq(AppMessage::getUserId, userId) .eq(AppMessage::getUserId, userId)
.in(AppMessage::getId, ids) .in(AppMessage::getId, ids)
.update(); .update();
setUnreadMessageCount(userId,from); setUnreadMessageCount(userId);
} }
@Override @Override
@ -88,23 +88,21 @@ public class AppMessageServiceImpl extends ServiceImpl<AppMessageMapper, AppMess
remove(new LambdaQueryWrapper<AppMessage>() remove(new LambdaQueryWrapper<AppMessage>()
.eq(AppMessage::getIsRead, false) .eq(AppMessage::getIsRead, false)
.eq(AppMessage::getSubType, message.getSubType()) .eq(AppMessage::getSubType, message.getSubType())
.eq(AppMessage::getUserId, message.getUserId()) .eq(AppMessage::getUserId, message.getUserId()));
.eq(AppMessage::getUserPlatform, message.getUserPlatform()));
save(message); save(message);
setUnreadMessageCount(message.getUserId(),message.getUserPlatform()); setUnreadMessageCount(message.getUserId());
} }
private void setUnreadMessageCount(Integer userId,String from){ private void setUnreadMessageCount(Integer userId){
Integer count= Math.toIntExact(lambdaQuery() Integer count= Math.toIntExact(lambdaQuery()
.eq(AppMessage::getIsRead, false) .eq(AppMessage::getIsRead, false)
.eq(AppMessage::getUserId, userId) .eq(AppMessage::getUserId, userId)
.eq(AppMessage::getUserPlatform, from)
.count()); .count());
redisTemplate.opsForHash().put(StrUtil.format(Constant.REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP,from), userId, count); redisTemplate.opsForHash().put(Constant.REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP, userId, count);
} }
@Override @Override
public Integer getNotReadMessageCount(Integer userId, String from) { public Integer getNotReadMessageCount(Integer userId) {
return Optional.ofNullable((Integer) redisTemplate.opsForHash().get(StrUtil.format(Constant.REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP,from), userId)).orElse(0); return Optional.ofNullable((Integer) redisTemplate.opsForHash().get(Constant.REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP, userId)).orElse(0);
} }
} }

View File

@ -694,6 +694,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
.throwMessage("随机码不正确"); .throwMessage("随机码不正确");
appUser.setState(UserState.Activated.getState()); appUser.setState(UserState.Activated.getState());
appUser.setPassword(PASSWORDENCODER.encode(request.getPassword())); appUser.setPassword(PASSWORDENCODER.encode(request.getPassword()));
appUser.setUpdateBy(AppUserUtil.getUserName());
appUser.setUpdateTime(LocalDateTime.now()); appUser.setUpdateTime(LocalDateTime.now());
updateById(appUser); updateById(appUser);
}else if (StrUtil.equals("1", type)){ }else if (StrUtil.equals("1", type)){

View File

@ -1,9 +1,7 @@
package com.nflg.mobilebroken.repository.service.impl; package com.nflg.mobilebroken.repository.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery; import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
import com.nflg.mobilebroken.common.pojo.request.SearchDeviceRequest; import com.nflg.mobilebroken.common.pojo.request.SearchDeviceRequest;
import com.nflg.mobilebroken.common.pojo.vo.DeviceAgentVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceAgentVO;
@ -52,10 +50,13 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
@Override @Override
public Page<DeviceVO> searchDevice(SearchDeviceRequest request,String language) { public Page<DeviceVO> searchDevice(SearchDeviceRequest request,String language) {
List<Integer> companyIds = null; // IPage<Device> page = lambdaQuery()
if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_APP)){ // .like(StrUtil.isNotBlank(request.getDeviceNo()), Device::getDeviceNo, request.getDeviceNo())
companyIds = AppUserUtil.getCompanyIds(); // .like(StrUtil.isNotBlank(request.getModelNo()), Device::getModelNo, request.getModelNo())
} // .between(Objects.nonNull(request.getStartTime()), Device::getShipmentDate, request.getStartTime(), request.getEndTime())
// .page(new Page<>(request.getPage(), request.getPageSize()));
// return PageUtil.convert(page, d -> Convert.convert(DeviceVO.class, d));
List<Integer> companyIds = AppUserUtil.getCompanyIds();
return baseMapper.searchDevice(request, companyIds,language ,new Page<>(request.getPage(), request.getPageSize())); return baseMapper.searchDevice(request, companyIds,language ,new Page<>(request.getPage(), request.getPageSize()));
} }

View File

@ -1,6 +1,5 @@
package com.nflg.mobilebroken.repository.service.impl; package com.nflg.mobilebroken.repository.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.pojo.request.AdminFavoritesRequest; import com.nflg.mobilebroken.common.pojo.request.AdminFavoritesRequest;
import com.nflg.mobilebroken.common.pojo.request.FavoritesMoveRequest; import com.nflg.mobilebroken.common.pojo.request.FavoritesMoveRequest;
@ -40,46 +39,45 @@ public class TicketFavoritesServiceImpl extends ServiceImpl<TicketFavoritesMappe
private ITicketFollowService ticketFollowService; private ITicketFollowService ticketFollowService;
@Override @Override
public FavoritesVO getList(Integer userId,String from,Integer id) { public FavoritesVO getList(Integer userId,Integer id) {
TicketFavorites favorites= Objects.equals(id, 0)? new TicketFavorites().setId(0).setName("收藏夹") : lambdaQuery().eq(TicketFavorites::getId,id).one(); TicketFavorites favorites= Objects.equals(id, 0)? new TicketFavorites().setId(0).setName("收藏夹") : lambdaQuery().eq(TicketFavorites::getId,id).one();
FavoritesVO vo=new FavoritesVO().setId(favorites.getId()).setName(favorites.getName()); FavoritesVO vo=new FavoritesVO().setId(favorites.getId()).setName(favorites.getName());
vo.setChildren(lambdaQuery().eq(TicketFavorites::getParentId,id).eq(TicketFavorites::getCreateBy,userId).eq(TicketFavorites::getUserPlatform,from).orderByAsc(TicketFavorites::getOrderNum).list() vo.setChildren(lambdaQuery().eq(TicketFavorites::getParentId,id).eq(TicketFavorites::getCreateBy,userId).orderByAsc(TicketFavorites::getOrderNum).list()
.stream().map(f->new FavoritesVO().setId(f.getId()).setName(f.getName())).collect(Collectors.toList())); .stream().map(f->new FavoritesVO().setId(f.getId()).setName(f.getName())).collect(Collectors.toList()));
vo.setTickets(ticketService.getAdminFavorites(userId,from,id)); vo.setTickets(ticketService.getAdminFavorites(userId,id));
return vo; return vo;
} }
@Override @Override
public void addFavorites(AdminFavoritesRequest request, Integer userId,String from) { public void addFavorites(AdminFavoritesRequest request, Integer userId) {
VUtils.trueThrowBusinessError(lambdaQuery().eq(TicketFavorites::getParentId,request.getParentId()).eq(TicketFavorites::getName,request.getName()).exists()) VUtils.trueThrowBusinessError(lambdaQuery().eq(TicketFavorites::getParentId,request.getParentId()).eq(TicketFavorites::getName,request.getName()).exists())
.throwMessage("已存在该名称的收藏夹"); .throwMessage("已存在该名称的收藏夹");
save(new TicketFavorites().setParentId(request.getParentId()).setName(request.getName()).setCreateBy(userId).setUserPlatform(from).setCreateTime(LocalDateTime.now())); save(new TicketFavorites().setParentId(request.getParentId()).setName(request.getName()).setCreateBy(userId).setCreateTime(LocalDateTime.now()));
} }
@Transactional @Transactional
@Override @Override
public void deleteFavorites(Integer userId,String from, Integer favoritesId) { public void deleteFavorites(Integer userId, Integer favoritesId) {
TicketFavorites favorites = lambdaQuery().eq(TicketFavorites::getId, favoritesId).one(); TicketFavorites favorites = lambdaQuery().eq(TicketFavorites::getId, favoritesId).one();
VUtils.trueThrowBusinessError(Objects.isNull(favorites)).throwMessage("该收藏夹不存在"); VUtils.trueThrowBusinessError(Objects.isNull(favorites)).throwMessage("该收藏夹不存在");
VUtils.trueThrowBusinessError(!Objects.equals(favorites.getCreateBy(), userId)).throwMessage("无权限删除该收藏夹"); VUtils.trueThrowBusinessError(!Objects.equals(favorites.getCreateBy(), userId)).throwMessage("无权限删除该收藏夹");
ticketFollowService.deleteFavorites(userId,from, favoritesId); ticketFollowService.deleteFavorites(userId, favoritesId);
if (!Objects.equals(favoritesId, 0)){ if (!Objects.equals(favoritesId, 0)){
lambdaUpdate().eq(TicketFavorites::getId,favoritesId).remove(); lambdaUpdate().eq(TicketFavorites::getId,favoritesId).remove();
} }
} }
@Override @Override
public void updateFavorites(FavoritesUpdateRequest request, Integer userId,String from) { public void updateFavorites(FavoritesUpdateRequest request, Integer userId) {
lambdaUpdate() lambdaUpdate()
.set(TicketFavorites::getName,request.getName()) .set(TicketFavorites::getName,request.getName())
.eq(TicketFavorites::getId,request.getId()) .eq(TicketFavorites::getId,request.getId())
.eq(TicketFavorites::getCreateBy,userId) .eq(TicketFavorites::getCreateBy,userId)
.eq(TicketFavorites::getUserPlatform,from)
.update(); .update();
} }
@Override @Override
public void moveFavorites(FavoritesMoveRequest request) { public void moveFavorites(Integer userId, FavoritesMoveRequest request) {
int orderNum=100000; int orderNum=100000;
if (Objects.nonNull(request.getNextFavoritesId())){ if (Objects.nonNull(request.getNextFavoritesId())){
orderNum=lambdaQuery() orderNum=lambdaQuery()
@ -94,12 +92,12 @@ public class TicketFavoritesServiceImpl extends ServiceImpl<TicketFavoritesMappe
} }
@Override @Override
public void moveFavoritesTicket(Integer userId,String from, FavoritesTicketMoveRequest request) { public void moveFavoritesTicket(Integer userId, FavoritesTicketMoveRequest request) {
ticketFollowService.lambdaUpdate() ticketFollowService.lambdaUpdate()
.set(TicketFollow::getFavoritesId,request.getFavoritesId()) .set(TicketFollow::getFavoritesId,request.getFavoritesId())
.eq(TicketFollow::getTicketId,request.getTicketId()) .eq(TicketFollow::getTicketId,request.getTicketId())
.eq(TicketFollow::getUserId,userId) .eq(TicketFollow::getUserId,userId)
.eq(TicketFollow::getFrom, StrUtil.equals(from, "app")?0:1) .eq(TicketFollow::getFrom,(byte) 1)
.update(); .update();
} }
} }

View File

@ -1,6 +1,5 @@
package com.nflg.mobilebroken.repository.service.impl; package com.nflg.mobilebroken.repository.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.pojo.request.AdminFollowRequest; import com.nflg.mobilebroken.common.pojo.request.AdminFollowRequest;
@ -26,19 +25,18 @@ import java.util.Objects;
public class TicketFollowServiceImpl extends ServiceImpl<TicketFollowMapper, TicketFollow> implements ITicketFollowService { public class TicketFollowServiceImpl extends ServiceImpl<TicketFollowMapper, TicketFollow> implements ITicketFollowService {
@Override @Override
public void handle(FollowRequest request, Integer userId,String from) { public void handle(FollowRequest request, Integer userId) {
byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1);
if (request.getIsFollow()) { if (request.getIsFollow()) {
TicketFollow ticketFollow = lambdaQuery() TicketFollow ticketFollow = lambdaQuery()
.eq(TicketFollow::getTicketId, request.getTicketId()) .eq(TicketFollow::getTicketId, request.getTicketId())
.eq(TicketFollow::getUserId, userId) .eq(TicketFollow::getUserId, userId)
.eq(TicketFollow::getFrom, bf) .eq(TicketFollow::getFrom, (byte) 0)
.one(); .one();
if (Objects.isNull(ticketFollow)) { if (Objects.isNull(ticketFollow)) {
TicketFollow follow = new TicketFollow() TicketFollow follow = new TicketFollow()
.setTicketId(request.getTicketId()) .setTicketId(request.getTicketId())
.setUserId(userId) .setUserId(userId)
.setFrom(bf) .setFrom((byte) 0)
.setCreateTime(LocalDateTime.now()); .setCreateTime(LocalDateTime.now());
save(follow); save(follow);
} }
@ -46,43 +44,40 @@ public class TicketFollowServiceImpl extends ServiceImpl<TicketFollowMapper, Tic
LambdaQueryWrapper<TicketFollow> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TicketFollow> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(TicketFollow::getTicketId, request.getTicketId()); lambdaQueryWrapper.eq(TicketFollow::getTicketId, request.getTicketId());
lambdaQueryWrapper.eq(TicketFollow::getUserId, userId); lambdaQueryWrapper.eq(TicketFollow::getUserId, userId);
lambdaQueryWrapper.eq(TicketFollow::getFrom, bf); lambdaQueryWrapper.eq(TicketFollow::getFrom, (byte) 0);
this.remove(lambdaQueryWrapper); this.remove(lambdaQueryWrapper);
} }
} }
@Transactional @Transactional
@Override @Override
public void follow(AdminFollowRequest request, Integer userId,String from) { public void follow(AdminFollowRequest request, Integer userId) {
byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1);
this.remove(new LambdaQueryWrapper<TicketFollow>() this.remove(new LambdaQueryWrapper<TicketFollow>()
.eq(TicketFollow::getTicketId, request.getTicketId()) .eq(TicketFollow::getTicketId, request.getTicketId())
.eq(TicketFollow::getUserId, userId) .eq(TicketFollow::getUserId, userId)
.eq(TicketFollow::getFrom, bf)); .eq(TicketFollow::getFrom, (byte) 1));
TicketFollow ticketFollow = new TicketFollow() TicketFollow ticketFollow = new TicketFollow()
.setTicketId(request.getTicketId()) .setTicketId(request.getTicketId())
.setUserId(userId) .setUserId(userId)
.setFavoritesId(request.getFavoritesId()) .setFavoritesId(request.getFavoritesId())
.setFrom(bf) .setFrom((byte) 1)
.setCreateTime(LocalDateTime.now()); .setCreateTime(LocalDateTime.now());
save(ticketFollow); save(ticketFollow);
} }
@Override @Override
public void unfollow(Integer userId,String from, Integer ticketId) { public void unfollow(Integer userId, Integer ticketId) {
byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1);
this.remove(new LambdaQueryWrapper<TicketFollow>() this.remove(new LambdaQueryWrapper<TicketFollow>()
.eq(TicketFollow::getTicketId, ticketId) .eq(TicketFollow::getTicketId, ticketId)
.eq(TicketFollow::getUserId, userId) .eq(TicketFollow::getUserId, userId)
.eq(TicketFollow::getFrom, bf)); .eq(TicketFollow::getFrom, (byte) 1));
} }
@Override @Override
public void deleteFavorites(Integer userId,String from, Integer favoritesId) { public void deleteFavorites(Integer userId, Integer favoritesId) {
byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1);
this.remove(new LambdaQueryWrapper<TicketFollow>() this.remove(new LambdaQueryWrapper<TicketFollow>()
.eq(TicketFollow::getFavoritesId, favoritesId) .eq(TicketFollow::getFavoritesId, favoritesId)
.eq(TicketFollow::getUserId, userId) .eq(TicketFollow::getUserId, userId)
.eq(TicketFollow::getFrom, bf)); .eq(TicketFollow::getFrom, (byte) 1));
} }
} }

View File

@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.constant.TicketState; import com.nflg.mobilebroken.common.constant.TicketState;
import com.nflg.mobilebroken.common.constant.TicketUrgency; import com.nflg.mobilebroken.common.constant.TicketUrgency;
import com.nflg.mobilebroken.common.pojo.dto.UserDTO; import com.nflg.mobilebroken.common.pojo.dto.UserDTO;
@ -82,7 +81,6 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
.setDescription(request.getDescription()) .setDescription(request.getDescription())
.setState(TicketState.PendingProcessing.getState()) .setState(TicketState.PendingProcessing.getState())
.setUserId(userId) .setUserId(userId)
.setUserPlatform(AppUserUtil.getFrom())
.setCreateTime(LocalDateTime.now()); .setCreateTime(LocalDateTime.now());
save(ticket); save(ticket);
// Collection<String> files=CollectionUtil.addAll(request.getImages(),request.getAttachments()); // Collection<String> files=CollectionUtil.addAll(request.getImages(),request.getAttachments());
@ -133,23 +131,19 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
request.setEndTime(request.getEndTime().plusDays(1)); request.setEndTime(request.getEndTime().plusDays(1));
} }
if (request.getType()==1){ if (request.getType()==1){
return baseMapper.searchMy(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(), user.getFrom(), language); return baseMapper.searchMy(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),language);
} else if (request.getType() == 2) { }else if (request.getType()==2){
return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(), user.getFrom(), language); return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),language);
} else if (request.getType() == 3) { }else if (request.getType()==3) {
if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_ADMIN)) { String companyCode = "";
return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request, null, user.getId(), language, null, null, user.getFrom()); if (!user.getIsPrimary()){
} else { TBaseCustomer customer=customerService.getById(user.getCompanyIds().get(0));
String companyCode = ""; if (Objects.nonNull(customer)){
if (!user.getIsPrimary()) { companyCode = customer.getAgencyCompanyCode();
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, user.getFrom());
} }
return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request
, StrUtil.join(",",user.getCompanyIds()), user.getId(),language,user.getIsPrimary(),companyCode);
} }
return null; return null;
} }
@ -311,7 +305,7 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
@Override @Override
public Ticket revoked(Integer id) { public Ticket revoked(Integer id) {
Ticket ticket=lambdaQuery().eq(Ticket::getId, id).one(); Ticket ticket=lambdaQuery().eq(Ticket::getId, id).one();
VUtils.trueThrowBusinessError(!(Objects.equals(ticket.getUserId(), AppUserUtil.getUserId()) && StrUtil.equals(ticket.getUserPlatform(), AppUserUtil.getFrom()))) VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(), AppUserUtil.getUserId()))
.throwMessage("无权操作该工单"); .throwMessage("无权操作该工单");
VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0) VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0)
.throwMessage("当前工单状态不允许撤销"); .throwMessage("当前工单状态不允许撤销");
@ -326,7 +320,7 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
@Override @Override
public Ticket reopen(Integer id) { public Ticket reopen(Integer id) {
Ticket ticket=lambdaQuery().eq(Ticket::getId, id).one(); Ticket ticket=lambdaQuery().eq(Ticket::getId, id).one();
VUtils.trueThrowBusinessError(!(Objects.equals(ticket.getUserId(), AppUserUtil.getUserId()) && StrUtil.equals(ticket.getUserPlatform(), AppUserUtil.getFrom()))) VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(), AppUserUtil.getUserId()))
.throwMessage("无权操作该工单"); .throwMessage("无权操作该工单");
VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0) VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0)
.throwMessage("当前工单状态不允许重新打开"); .throwMessage("当前工单状态不允许重新打开");
@ -373,8 +367,8 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
} }
@Override @Override
public List<TicketVO> getAdminFavorites(Integer userId,String from,Integer favoritesId) { public List<TicketVO> getAdminFavorites(Integer userId,Integer favoritesId) {
return baseMapper.getAdminFavorites(userId,from,favoritesId); return baseMapper.getAdminFavorites(userId,favoritesId);
} }
@Override @Override

View File

@ -7,7 +7,7 @@
FROM app_message m FROM app_message m
INNER JOIN ticket t ON m.ticket_id=t.id INNER JOIN ticket t ON m.ticket_id=t.id
INNER JOIN app_user u ON t.user_id=u.id INNER JOIN app_user u ON t.user_id=u.id
WHERE m.is_read=0 AND m.user_id=#{userId} AND m.user_platform=#{from} WHERE m.is_read=0 AND m.user_id=#{userId}
ORDER BY m.create_time DESC ORDER BY m.create_time DESC
</select> </select>
<select id="search" resultType="com.nflg.mobilebroken.common.pojo.vo.AppMessageVO"> <select id="search" resultType="com.nflg.mobilebroken.common.pojo.vo.AppMessageVO">
@ -15,7 +15,7 @@
FROM app_message m FROM app_message m
INNER JOIN ticket t ON m.ticket_id=t.id INNER JOIN ticket t ON m.ticket_id=t.id
INNER JOIN app_user u ON t.user_id=u.id INNER JOIN app_user u ON t.user_id=u.id
WHERE m.user_id=#{userId} AND m.user_platform=#{from} WHERE m.user_id=#{userId}
<if test="title != null and title != ''"> <if test="title != null and title != ''">
AND (t.title LIKE CONCAT('%',#{title},'%') OR t.no LIKE CONCAT('%',#{title},'%')) AND (t.title LIKE CONCAT('%',#{title},'%') OR t.no LIKE CONCAT('%',#{title},'%'))
</if> </if>

View File

@ -67,13 +67,10 @@
INNER JOIN dictionary_item di ON di.id=d.device_state INNER JOIN dictionary_item di ON di.id=d.device_state
LEFT JOIN dictionary_item di2 ON di2.id=d.warranty_state LEFT JOIN dictionary_item di2 ON di2.id=d.warranty_state
LEFT JOIN dictionary_item_translate dit2 ON dit2.dictionary_item_id=d.warranty_state AND dit2.language_code=#{language} LEFT JOIN dictionary_item_translate dit2 ON dit2.dictionary_item_id=d.warranty_state AND dit2.language_code=#{language}
WHERE d.data_valid_state=1 AND di.`code`='Normal' WHERE d.data_valid_state=1 AND di.`code`='Normal' AND c.id IN
<if test="companyIds!=null"> <foreach collection="companyIds" open="(" close=")" item="companyId" separator=",">
AND c.id IN #{companyId}
<foreach collection="companyIds" open="(" close=")" item="companyId" separator=","> </foreach>
#{companyId}
</foreach>
</if>
<if test="request.deviceNo!=null and request.deviceNo!=''"> <if test="request.deviceNo!=null and request.deviceNo!=''">
and d.device_no LIKE concat('%', #{request.deviceNo}, '%') and d.device_no LIKE concat('%', #{request.deviceNo}, '%')
</if> </if>

View File

@ -36,8 +36,6 @@
FROM device d FROM device d
INNER JOIN t_base_device_type dt ON d.device_type=dt.device_type INNER JOIN t_base_device_type dt ON d.device_type=dt.device_type
WHERE dt.device_state=1 AND d.device_no=#{deviceNo} WHERE dt.device_state=1 AND d.device_no=#{deviceNo}
ORDER BY d.id desc
LIMIT 1
</select> </select>
<select id="getDeviceTypeCqmList" resultType="com.nflg.mobilebroken.common.pojo.vo.CqmPersionResultVO"> <select id="getDeviceTypeCqmList" resultType="com.nflg.mobilebroken.common.pojo.vo.CqmPersionResultVO">

View File

@ -85,46 +85,43 @@
<select id="searchMy" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO"> <select id="searchMy" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
SELECT IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName',IF(tf.id IS NULL, false, true) AS 'followed' SELECT IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName',IF(tf.id IS NULL, false, true) AS 'followed'
,IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',IF(LENGTH(l.language_value)>0,l.language_value,p.part_name) AS 'component',t.* ,u.`name` AS 'createBy',IF(LENGTH(l.language_value)>0,l.language_value,p.part_name) AS 'component',t.*
FROM ticket t FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN admin_user au ON t.user_id=au.id
LEFT JOIN app_area a2 ON u.area_id=a2.id LEFT JOIN app_area a2 ON u.area_id=a2.id
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=IF(#{from}='app',0,1) LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=0
LEFT JOIN ticket_evaluate te ON t.id=te.ticket_id AND t.state=2 LEFT JOIN ticket_evaluate te ON t.id=te.ticket_id AND t.state=2
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.user_id=#{userId} AND t.user_platform=#{from} AND t.state!=4 WHERE t.user_id=#{userId} AND t.state!=4
<include refid="searchWhereCondition"/> <include refid="searchWhereCondition"/>
ORDER BY t.id DESC ORDER BY t.id DESC
</select> </select>
<select id="searchFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO"> <select id="searchFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
SELECT IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName',true AS 'followed' SELECT IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName',true AS 'followed'
,IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',true AS 'followed',t.handle,IF(LENGTH(l.language_value)>0 ,u.`name` AS 'createBy',true AS 'followed',t.handle,IF(LENGTH(l.language_value)>0
,l.language_value,p.part_name) AS 'component',t.* ,l.language_value,p.part_name) AS 'component',t.*
FROM ticket t FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN admin_user au ON t.user_id=au.id
LEFT JOIN app_area a2 ON u.area_id=a2.id LEFT JOIN app_area a2 ON u.area_id=a2.id
INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.from=IF(#{from}='app',0,1) INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.from=0
LEFT JOIN ticket_evaluate te ON t.id=te.ticket_id AND t.state=2 LEFT JOIN ticket_evaluate te ON t.id=te.ticket_id AND t.state=2
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 tf.user_id=#{userId} AND t.user_platform=#{from} AND t.state!=4 WHERE tf.user_id=#{userId} AND t.state!=4
<include refid="searchWhereCondition"/> <include refid="searchWhereCondition"/>
ORDER BY t.id DESC ORDER BY t.id DESC
</select> </select>
<select id="searchArea" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO"> <select id="searchArea" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
SELECT IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName' SELECT IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),a2.`name`) AS 'areaName'
,IF(tf.id IS NULL, false, true) AS 'followed',IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',IF(LENGTH(l.language_value)>0 ,IF(tf.id IS NULL, false, true) AS 'followed',u.`name` AS 'createBy',IF(LENGTH(l.language_value)>0
,l.language_value,p.part_name) AS 'component',t.* ,l.language_value,p.part_name) AS 'component',t.*
FROM ticket t FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN admin_user au ON t.user_id=au.id
LEFT JOIN app_area a2 ON u.area_id=a2.id LEFT JOIN app_area a2 ON u.area_id=a2.id
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=IF(#{from}='app',0,1) LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=0
LEFT JOIN ticket_evaluate te ON t.id=te.ticket_id AND t.state=2 LEFT JOIN ticket_evaluate te ON t.id=te.ticket_id AND t.state=2
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}
@ -136,9 +133,6 @@
<if test="isPrimary==true"> <if test="isPrimary==true">
AND (u.id=#{userId} OR FIND_IN_SET(u.company_id,#{companyId})) AND (u.id=#{userId} OR FIND_IN_SET(u.company_id,#{companyId}))
</if> </if>
<if test="isPrimary==null">
AND t.user_platform='admin'
</if>
<include refid="searchWhereCondition"/> <include refid="searchWhereCondition"/>
ORDER BY t.id DESC ORDER BY t.id DESC
</select> </select>
@ -146,16 +140,15 @@
<select id="searchFromAdmin" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO"> <select id="searchFromAdmin" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason
,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName' ,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName'
,d.customer_name AS 'customerName',d.agent_name AS 'agentName',IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime' ,d.customer_name AS 'customerName',d.agent_name AS 'agentName',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType' ,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType'
,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',IF(tf.id IS NULL, false, true) AS 'followed',auc.user_name AS 'cqm' ,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',IF(tf.id IS NULL, false, true) AS 'followed',auc.user_name AS 'cqm'
,t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle',dt.cqm_person_name AS 'cqms' ,t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle',dt.cqm_person_name AS 'cqms'
,t.handle_name AS 'handle' ,t.handle_name AS 'handle'
FROM ticket t FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN admin_user au ON t.user_id=au.id
LEFT JOIN app_area a2 ON u.area_id=a2.id LEFT JOIN app_area a2 ON u.area_id=a2.id
LEFT JOIN device d ON t.device_no=d.device_no and d.data_valid_state=1 LEFT JOIN device d ON t.device_no=d.device_no
LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type
LEFT JOIN dictionary_item di ON d.warranty_state=di.id LEFT JOIN dictionary_item di ON d.warranty_state=di.id
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1 LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1
@ -169,16 +162,15 @@
<select id="searchAllFromAdmin" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO"> <select id="searchAllFromAdmin" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason
,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName' ,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName'
,d.customer_name AS 'customerName',d.agent_name AS 'agentName',IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime' ,d.customer_name AS 'customerName',d.agent_name AS 'agentName',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType' ,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType'
,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',IF(tf.id IS NULL, false, true) AS 'followed',auc.user_name AS 'cqm' ,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',IF(tf.id IS NULL, false, true) AS 'followed',auc.user_name AS 'cqm'
,t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle',dt.cqm_person_name AS 'cqms' ,t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle',dt.cqm_person_name AS 'cqms'
,t.handle_name AS 'handle' ,t.handle_name AS 'handle'
FROM ticket t FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN admin_user au ON t.user_id=au.id
LEFT JOIN app_area a2 ON u.area_id=a2.id LEFT JOIN app_area a2 ON u.area_id=a2.id
LEFT JOIN device d ON t.device_no=d.device_no and d.data_valid_state=1 LEFT JOIN device d ON t.device_no=d.device_no
LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type
LEFT JOIN dictionary_item di ON d.warranty_state=di.id LEFT JOIN dictionary_item di ON d.warranty_state=di.id
LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1 LEFT JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1
@ -192,17 +184,16 @@
<select id="searchFromAdminAndFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO"> <select id="searchFromAdminAndFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason
,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName' ,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName'
,d.customer_name AS 'customerName',d.agent_name AS 'agentName',IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime' ,d.customer_name AS 'customerName',d.agent_name AS 'agentName',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType' ,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType'
,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',true AS 'followed',auc.user_name AS 'cqm' ,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',true AS 'followed',auc.user_name AS 'cqm'
,t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle',dt.cqm_person_name AS 'cqms' ,t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle',dt.cqm_person_name AS 'cqms'
,t.handle_name AS 'handle' ,t.handle_name AS 'handle'
FROM ticket t FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN admin_user au ON t.user_id=au.id
LEFT JOIN app_area a2 ON u.area_id=a2.id LEFT JOIN app_area a2 ON u.area_id=a2.id
INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1 INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1
LEFT JOIN device d ON t.device_no=d.device_no and d.data_valid_state=1 LEFT JOIN device d ON t.device_no=d.device_no
LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type
LEFT JOIN dictionary_item di ON d.warranty_state=di.id LEFT JOIN dictionary_item di ON d.warranty_state=di.id
LEFT JOIN admin_user auc ON t.cqm=auc.id LEFT JOIN admin_user auc ON t.cqm=auc.id
@ -215,16 +206,15 @@
<select id="searchAllFromAdminAndFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO"> <select id="searchAllFromAdminAndFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason
,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName' ,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName'
,d.customer_name AS 'customerName',d.agent_name AS 'agentName',IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime' ,d.customer_name AS 'customerName',d.agent_name AS 'agentName',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',true AS 'followed' ,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',true AS 'followed'
,auc.user_name AS 'cqm',t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle' ,auc.user_name AS 'cqm',t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle'
,dt.cqm_person_name AS 'cqms',t.handle_name AS 'handle' ,dt.cqm_person_name AS 'cqms',t.handle_name AS 'handle'
FROM ticket t FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN admin_user au ON t.user_id=au.id
LEFT JOIN app_area a2 ON u.area_id=a2.id LEFT JOIN app_area a2 ON u.area_id=a2.id
INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1 INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1
LEFT JOIN device d ON t.device_no=d.device_no and d.data_valid_state=1 LEFT JOIN device d ON t.device_no=d.device_no
LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type
LEFT JOIN dictionary_item di ON d.warranty_state=di.id LEFT JOIN dictionary_item di ON d.warranty_state=di.id
LEFT JOIN admin_user auc ON t.cqm=auc.id LEFT JOIN admin_user auc ON t.cqm=auc.id
@ -239,7 +229,7 @@
FROM ticket_follow tf FROM ticket_follow tf
INNER JOIN ticket t ON tf.ticket_id = t.id INNER JOIN ticket t ON tf.ticket_id = t.id
WHERE tf.`from` = 1 WHERE tf.`from` = 1
AND tf.user_id = #{userId} AND tf.from=IF(#{from}='app',0,1) AND tf.user_id = #{userId}
AND tf.favorites_id = #{favoritesId} AND tf.favorites_id = #{favoritesId}
ORDER BY t.state,t.id DESC ORDER BY t.state,t.id DESC
</select> </select>
@ -247,20 +237,19 @@
<select id="searchByFavouritesId" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO"> <select id="searchByFavouritesId" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason SELECT t.id,t.`no`,t.title,t.state,t.urgency,p.part_name AS 'component',t.question,t.reason
,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName' ,IF(u.is_primary,fun_getPrimaryUserArea(u.company_id),'') AS 'areaName',IF(u.is_primary,'',a2.`name`) AS 'agentAreaName'
,d.customer_name AS 'customerName',d.agent_name AS 'agentName',IF(t.user_platform='admin',au.user_name,u.`name`) AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime' ,d.customer_name AS 'customerName',d.agent_name AS 'agentName',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType' ,t.create_time AS 'createTime',t.update_time AS 'completeTime',di.name AS 'warrantyStatusDesc',d.device_type AS 'deviceType'
,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',true AS 'followed',auc.user_name AS 'cqm' ,d.model_no AS 'equipmentModel',d.shipment_date AS 'shipmentDate',true AS 'followed',auc.user_name AS 'cqm'
,t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle',dt.cqm_person_name AS 'cqms' ,t.solve_time AS 'closeTime',auh.user_name AS 'currentHandle',dt.cqm_person_name AS 'cqms'
,t.handle_name AS 'handle' ,t.handle_name AS 'handle'
FROM ticket t FROM ticket t
LEFT JOIN app_user u ON t.user_id=u.id LEFT JOIN app_user u ON t.user_id=u.id
LEFT JOIN admin_user au ON t.user_id=au.id
LEFT JOIN app_area a2 ON u.area_id=a2.id LEFT JOIN app_area a2 ON u.area_id=a2.id
INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1 INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1
<if test="favouritesId>0"> <if test="favouritesId>0">
AND tf.favorites_id=#{favouritesId} AND tf.favorites_id=#{favouritesId}
</if> </if>
LEFT JOIN device d ON t.device_no=d.device_no and d.data_valid_state=1 LEFT JOIN device d ON t.device_no=d.device_no
LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type LEFT JOIN t_base_device_type dt ON d.device_type=dt.device_type
LEFT JOIN dictionary_item di ON d.warranty_state=di.id LEFT JOIN dictionary_item di ON d.warranty_state=di.id
LEFT JOIN admin_user auc ON t.cqm=auc.id LEFT JOIN admin_user auc ON t.cqm=auc.id