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

View File

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

View File

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

View File

@ -41,7 +41,7 @@ public class MessageController extends ControllerBase {
*/
@PostMapping("searchMessages")
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")
public ApiResult<Void> setReaded(@Valid @RequestBody List<Integer> ids) {
appMessageService.setReaded(AppUserUtil.getUserId(),AppUserUtil.getFrom(),ids);
appMessageService.setReaded(AppUserUtil.getUserId(),ids);
return ApiResult.success();
}
@ -60,7 +60,7 @@ public class MessageController extends ControllerBase {
*/
@PostMapping("setNotRead")
public ApiResult<Void> setNotRead(@Valid @RequestBody List<Integer> ids) {
appMessageService.setNotRead(AppUserUtil.getUserId(),AppUserUtil.getFrom(),ids);
appMessageService.setNotRead(AppUserUtil.getUserId(),ids);
return ApiResult.success();
}
@ -71,7 +71,7 @@ public class MessageController extends ControllerBase {
*/
@GetMapping("getNotReadMessages")
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")
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")
public ApiResult<Void> followTiket(@Valid @RequestBody FollowRequest request){
ticketFollowService.handle(request, AppUserUtil.getUserId(),AppUserUtil.getFrom());
ticketFollowService.handle(request, AppUserUtil.getUserId());
return ApiResult.success();
}
@ -198,27 +198,17 @@ public class TicketController extends ControllerBase {
public ApiResult<TicketInfoVO> getTicket(@Valid @RequestParam @NotNull Integer id) {
Ticket ticket = ticketService.getById(id);
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单");
AppUser user = appUserService.getById(ticket.getUserId());
String areaName = "";
List<TBaseCustomer> companys=new ArrayList<>();
String userName,userAvatar;
if (StrUtil.equals(ticket.getUserPlatform(),"app")) {
AppUser user = appUserService.getById(ticket.getUserId());
userName = user.getName();
userAvatar = user.getAvatar();
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();
}
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());
String handle = ticket.getHandle();
if (StrUtil.isNotBlank(handle)) {
@ -240,8 +230,8 @@ public class TicketController extends ControllerBase {
.setImages(getFileVOs(ticket.getImages()))
.setAttachments(getFileVOs(ticket.getAttachments()))
.setCreateUserId(ticket.getUserId())
.setCreateUserName(userName)
.setCreateUserAvatar(userAvatar)
.setCreateUserName(user.getName())
.setCreateUserAvatar(user.getAvatar())
.setCreateTime(ticket.getCreateTime())
.setAreaName(areaName)
.setSolveTime(ticket.getSolveTime())
@ -348,25 +338,22 @@ public class TicketController extends ControllerBase {
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.Processing.getState()) > 1)
.throwMessage("当前工单状态不允许发送消息");
VUtils.trueThrowBusinessError(!(Objects.equals(ticket.getUserId(),AppUserUtil.getUserId()) && StrUtil.equals(ticket.getUserPlatform(), AppUserUtil.getFrom())))
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(),AppUserUtil.getUserId()))
.throwMessage("工单创建人才能发送消息");
AppUser user = appUserService.getById(AppUserUtil.getUserId());
ChatMessageDTO message = new ChatMessageDTO()
.setId(IdUtil.getSnowflakeNextIdStr())
.setFrom("app")
.setTicketState(ticket.getState())
.setSenderId(user.getId())
.setSenderName(user.getName())
.setSenderAvatar(user.getAvatar())
.setContent(request.getContent())
.setCreateTime(Instant.now())
.setAttachments(request.getAttachments())
.setImages(request.getImages())
.setRemindUsers(request.getRemindUsers())
.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())){
ChatMessageDTO quoteMessage = ticketChatService.getMessage(request.getTicketId(), request.getQuoteId());
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.date.DatePattern;
import cn.hutool.core.util.StrUtil;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.constant.MessageSubType;
import com.nflg.mobilebroken.common.constant.MessageType;
@ -88,19 +87,12 @@ public class TicketCreateEvent extends ApplicationEvent implements ApplicationCo
private void sendEmail(){
try {
String tickerUserName;
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();
}
AppUser appUser=appUserService.getById(ticket.getUserId());
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)
.replace("${no}",ticket.getNo())
.replace("${title}",ticket.getTitle())
.replace("${createUser}",tickerUserName)
.replace("${createUser}",appUser.getName())
.replace("${handleUser}","")
.replace("${createTime}",toTimeString(ticket.getCreateTime()))
.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_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";

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -49,11 +49,6 @@ public class TicketFavorites implements Serializable {
*/
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> {
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> {
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);
@ -37,7 +37,7 @@ public interface TicketMapper extends BaseMapper<Ticket> {
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);
}

View File

@ -18,15 +18,15 @@ import java.util.List;
*/
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);
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> {
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> {
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<TicketVO> getAdminFavorites(Integer userId,String from,Integer favoritesId);
List<TicketVO> getAdminFavorites(Integer userId,Integer favoritesId);
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.extension.plugins.pagination.Page;
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.EnableRequest;
import com.nflg.mobilebroken.common.pojo.vo.AreaVO;
@ -57,9 +56,6 @@ public class AppAreaServiceImpl extends ServiceImpl<AppAreaMapper, AppArea> impl
@Override
public IPage<AreaVO> search(AreaSearchRequest request) {
if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_ADMIN)){
return new Page<>(request.getPage(), request.getPageSize());
}
if (AppUserUtil.isPrimary()){
request.setCreateBy(AppUserUtil.getUserId());
}else {

View File

@ -37,13 +37,13 @@ public class AppMessageServiceImpl extends ServiceImpl<AppMessageMapper, AppMess
private RedisTemplate<String,Object> redisTemplate;
@Override
public IPage<AppMessageVO> getNotReadMessage(Integer userId,String from, Integer num) {
return baseMapper.getNotReadMessage(userId,from, num, new Page<>(1, num));
public IPage<AppMessageVO> getNotReadMessage(Integer userId, Integer num) {
return baseMapper.getNotReadMessage(userId, num, new Page<>(1, num));
}
@Override
public IPage<AppMessageVO> search(Integer userId,String from, AppMessageSearchRequest request) {
IPage<AppMessageVO> datas = baseMapper.search(userId,from, request.getTitle(), new Page<>(request.getPage(), request.getPageSize()));
public IPage<AppMessageVO> search(Integer userId, AppMessageSearchRequest request) {
IPage<AppMessageVO> datas = baseMapper.search(userId, request.getTitle(), new Page<>(request.getPage(), request.getPageSize()));
Map<Integer, String> userMap = new HashMap<>();
datas.getRecords().forEach(d -> {
if (StrUtil.isNotBlank(d.getTicketHandleBy())) {
@ -64,23 +64,23 @@ public class AppMessageServiceImpl extends ServiceImpl<AppMessageMapper, AppMess
}
@Override
public void setReaded(Integer userId,String from,List<Integer> ids) {
public void setReaded(Integer userId,List<Integer> ids) {
lambdaUpdate()
.set(AppMessage::getIsRead, true)
.eq(AppMessage::getUserId, userId)
.in(AppMessage::getId, ids)
.update();
setUnreadMessageCount(userId,from);
setUnreadMessageCount(userId);
}
@Override
public void setNotRead(Integer userId,String from,List<Integer> ids) {
public void setNotRead(Integer userId,List<Integer> ids) {
lambdaUpdate()
.set(AppMessage::getIsRead, false)
.eq(AppMessage::getUserId, userId)
.in(AppMessage::getId, ids)
.update();
setUnreadMessageCount(userId,from);
setUnreadMessageCount(userId);
}
@Override
@ -88,23 +88,21 @@ public class AppMessageServiceImpl extends ServiceImpl<AppMessageMapper, AppMess
remove(new LambdaQueryWrapper<AppMessage>()
.eq(AppMessage::getIsRead, false)
.eq(AppMessage::getSubType, message.getSubType())
.eq(AppMessage::getUserId, message.getUserId())
.eq(AppMessage::getUserPlatform, message.getUserPlatform()));
.eq(AppMessage::getUserId, message.getUserId()));
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()
.eq(AppMessage::getIsRead, false)
.eq(AppMessage::getUserId, userId)
.eq(AppMessage::getUserPlatform, from)
.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
public Integer getNotReadMessageCount(Integer userId, String from) {
return Optional.ofNullable((Integer) redisTemplate.opsForHash().get(StrUtil.format(Constant.REDIS_KEY_MESSAGE_NOT_READ_COUNT_APP,from), userId)).orElse(0);
public Integer getNotReadMessageCount(Integer userId) {
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("随机码不正确");
appUser.setState(UserState.Activated.getState());
appUser.setPassword(PASSWORDENCODER.encode(request.getPassword()));
appUser.setUpdateBy(AppUserUtil.getUserName());
appUser.setUpdateTime(LocalDateTime.now());
updateById(appUser);
}else if (StrUtil.equals("1", type)){

View File

@ -1,9 +1,7 @@
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.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
import com.nflg.mobilebroken.common.pojo.request.SearchDeviceRequest;
import com.nflg.mobilebroken.common.pojo.vo.DeviceAgentVO;
@ -52,10 +50,13 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
@Override
public Page<DeviceVO> searchDevice(SearchDeviceRequest request,String language) {
List<Integer> companyIds = null;
if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_APP)){
companyIds = AppUserUtil.getCompanyIds();
}
// IPage<Device> page = lambdaQuery()
// .like(StrUtil.isNotBlank(request.getDeviceNo()), Device::getDeviceNo, request.getDeviceNo())
// .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()));
}

View File

@ -1,6 +1,5 @@
package com.nflg.mobilebroken.repository.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.pojo.request.AdminFavoritesRequest;
import com.nflg.mobilebroken.common.pojo.request.FavoritesMoveRequest;
@ -40,46 +39,45 @@ public class TicketFavoritesServiceImpl extends ServiceImpl<TicketFavoritesMappe
private ITicketFollowService ticketFollowService;
@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();
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()));
vo.setTickets(ticketService.getAdminFavorites(userId,from,id));
vo.setTickets(ticketService.getAdminFavorites(userId,id));
return vo;
}
@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())
.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
@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();
VUtils.trueThrowBusinessError(Objects.isNull(favorites)).throwMessage("该收藏夹不存在");
VUtils.trueThrowBusinessError(!Objects.equals(favorites.getCreateBy(), userId)).throwMessage("无权限删除该收藏夹");
ticketFollowService.deleteFavorites(userId,from, favoritesId);
ticketFollowService.deleteFavorites(userId, favoritesId);
if (!Objects.equals(favoritesId, 0)){
lambdaUpdate().eq(TicketFavorites::getId,favoritesId).remove();
}
}
@Override
public void updateFavorites(FavoritesUpdateRequest request, Integer userId,String from) {
public void updateFavorites(FavoritesUpdateRequest request, Integer userId) {
lambdaUpdate()
.set(TicketFavorites::getName,request.getName())
.eq(TicketFavorites::getId,request.getId())
.eq(TicketFavorites::getCreateBy,userId)
.eq(TicketFavorites::getUserPlatform,from)
.update();
}
@Override
public void moveFavorites(FavoritesMoveRequest request) {
public void moveFavorites(Integer userId, FavoritesMoveRequest request) {
int orderNum=100000;
if (Objects.nonNull(request.getNextFavoritesId())){
orderNum=lambdaQuery()
@ -94,12 +92,12 @@ public class TicketFavoritesServiceImpl extends ServiceImpl<TicketFavoritesMappe
}
@Override
public void moveFavoritesTicket(Integer userId,String from, FavoritesTicketMoveRequest request) {
public void moveFavoritesTicket(Integer userId, FavoritesTicketMoveRequest request) {
ticketFollowService.lambdaUpdate()
.set(TicketFollow::getFavoritesId,request.getFavoritesId())
.eq(TicketFollow::getTicketId,request.getTicketId())
.eq(TicketFollow::getUserId,userId)
.eq(TicketFollow::getFrom, StrUtil.equals(from, "app")?0:1)
.eq(TicketFollow::getFrom,(byte) 1)
.update();
}
}

View File

@ -1,6 +1,5 @@
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.extension.service.impl.ServiceImpl;
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 {
@Override
public void handle(FollowRequest request, Integer userId,String from) {
byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1);
public void handle(FollowRequest request, Integer userId) {
if (request.getIsFollow()) {
TicketFollow ticketFollow = lambdaQuery()
.eq(TicketFollow::getTicketId, request.getTicketId())
.eq(TicketFollow::getUserId, userId)
.eq(TicketFollow::getFrom, bf)
.eq(TicketFollow::getFrom, (byte) 0)
.one();
if (Objects.isNull(ticketFollow)) {
TicketFollow follow = new TicketFollow()
.setTicketId(request.getTicketId())
.setUserId(userId)
.setFrom(bf)
.setFrom((byte) 0)
.setCreateTime(LocalDateTime.now());
save(follow);
}
@ -46,43 +44,40 @@ public class TicketFollowServiceImpl extends ServiceImpl<TicketFollowMapper, Tic
LambdaQueryWrapper<TicketFollow> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(TicketFollow::getTicketId, request.getTicketId());
lambdaQueryWrapper.eq(TicketFollow::getUserId, userId);
lambdaQueryWrapper.eq(TicketFollow::getFrom, bf);
lambdaQueryWrapper.eq(TicketFollow::getFrom, (byte) 0);
this.remove(lambdaQueryWrapper);
}
}
@Transactional
@Override
public void follow(AdminFollowRequest request, Integer userId,String from) {
byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1);
public void follow(AdminFollowRequest request, Integer userId) {
this.remove(new LambdaQueryWrapper<TicketFollow>()
.eq(TicketFollow::getTicketId, request.getTicketId())
.eq(TicketFollow::getUserId, userId)
.eq(TicketFollow::getFrom, bf));
.eq(TicketFollow::getFrom, (byte) 1));
TicketFollow ticketFollow = new TicketFollow()
.setTicketId(request.getTicketId())
.setUserId(userId)
.setFavoritesId(request.getFavoritesId())
.setFrom(bf)
.setFrom((byte) 1)
.setCreateTime(LocalDateTime.now());
save(ticketFollow);
}
@Override
public void unfollow(Integer userId,String from, Integer ticketId) {
byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1);
public void unfollow(Integer userId, Integer ticketId) {
this.remove(new LambdaQueryWrapper<TicketFollow>()
.eq(TicketFollow::getTicketId, ticketId)
.eq(TicketFollow::getUserId, userId)
.eq(TicketFollow::getFrom, bf));
.eq(TicketFollow::getFrom, (byte) 1));
}
@Override
public void deleteFavorites(Integer userId,String from, Integer favoritesId) {
byte bf = (byte) (StrUtil.equals(from, "app") ? 0 : 1);
public void deleteFavorites(Integer userId, Integer favoritesId) {
this.remove(new LambdaQueryWrapper<TicketFollow>()
.eq(TicketFollow::getFavoritesId, favoritesId)
.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.extension.plugins.pagination.Page;
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.TicketUrgency;
import com.nflg.mobilebroken.common.pojo.dto.UserDTO;
@ -82,7 +81,6 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
.setDescription(request.getDescription())
.setState(TicketState.PendingProcessing.getState())
.setUserId(userId)
.setUserPlatform(AppUserUtil.getFrom())
.setCreateTime(LocalDateTime.now());
save(ticket);
// 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));
}
if (request.getType()==1){
return baseMapper.searchMy(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(), user.getFrom(), language);
} else if (request.getType() == 2) {
return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(), user.getFrom(), language);
} else if (request.getType() == 3) {
if (StrUtil.equals(AppUserUtil.getFrom(), Constant.FROM_ADMIN)) {
return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request, null, user.getId(), language, null, null, user.getFrom());
} else {
String companyCode = "";
if (!user.getIsPrimary()) {
TBaseCustomer customer = customerService.getById(user.getCompanyIds().get(0));
if (Objects.nonNull(customer)) {
companyCode = customer.getAgencyCompanyCode();
}
return baseMapper.searchMy(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),language);
}else if (request.getType()==2){
return baseMapper.searchFollow(new Page<>(request.getPage(), request.getPageSize()), request, user.getId(),language);
}else if (request.getType()==3) {
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, user.getFrom());
}
return baseMapper.searchArea(new Page<>(request.getPage(), request.getPageSize()), request
, StrUtil.join(",",user.getCompanyIds()), user.getId(),language,user.getIsPrimary(),companyCode);
}
return null;
}
@ -311,7 +305,7 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
@Override
public Ticket revoked(Integer id) {
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("无权操作该工单");
VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0)
.throwMessage("当前工单状态不允许撤销");
@ -326,7 +320,7 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
@Override
public Ticket reopen(Integer id) {
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("无权操作该工单");
VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0)
.throwMessage("当前工单状态不允许重新打开");
@ -373,8 +367,8 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
}
@Override
public List<TicketVO> getAdminFavorites(Integer userId,String from,Integer favoritesId) {
return baseMapper.getAdminFavorites(userId,from,favoritesId);
public List<TicketVO> getAdminFavorites(Integer userId,Integer favoritesId) {
return baseMapper.getAdminFavorites(userId,favoritesId);
}
@Override

View File

@ -7,7 +7,7 @@
FROM app_message m
INNER JOIN ticket t ON m.ticket_id=t.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
</select>
<select id="search" resultType="com.nflg.mobilebroken.common.pojo.vo.AppMessageVO">
@ -15,7 +15,7 @@
FROM app_message m
INNER JOIN ticket t ON m.ticket_id=t.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 != ''">
AND (t.title LIKE CONCAT('%',#{title},'%') OR t.no LIKE CONCAT('%',#{title},'%'))
</if>

View File

@ -67,13 +67,10 @@
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_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'
<if test="companyIds!=null">
AND c.id IN
<foreach collection="companyIds" open="(" close=")" item="companyId" separator=",">
#{companyId}
</foreach>
</if>
WHERE d.data_valid_state=1 AND di.`code`='Normal' AND c.id IN
<foreach collection="companyIds" open="(" close=")" item="companyId" separator=",">
#{companyId}
</foreach>
<if test="request.deviceNo!=null and request.deviceNo!=''">
and d.device_no LIKE concat('%', #{request.deviceNo}, '%')
</if>

View File

@ -36,8 +36,6 @@
FROM device d
INNER JOIN t_base_device_type dt ON d.device_type=dt.device_type
WHERE dt.device_state=1 AND d.device_no=#{deviceNo}
ORDER BY d.id desc
LIMIT 1
</select>
<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 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
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 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 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.user_id=#{userId} AND t.user_platform=#{from} AND t.state!=4
WHERE t.user_id=#{userId} AND t.state!=4
<include refid="searchWhereCondition"/>
ORDER BY t.id DESC
</select>
<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'
,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.*
FROM ticket t
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
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 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 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"/>
ORDER BY t.id DESC
</select>
<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'
,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.*
FROM ticket t
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 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 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}
@ -136,9 +133,6 @@
<if test="isPrimary==true">
AND (u.id=#{userId} OR FIND_IN_SET(u.company_id,#{companyId}))
</if>
<if test="isPrimary==null">
AND t.user_platform='admin'
</if>
<include refid="searchWhereCondition"/>
ORDER BY t.id DESC
</select>
@ -146,16 +140,15 @@
<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
,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'
,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.handle_name AS 'handle'
FROM ticket t
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 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 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
@ -169,16 +162,15 @@
<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
,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'
,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.handle_name AS 'handle'
FROM ticket t
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 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 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
@ -192,17 +184,16 @@
<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
,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'
,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.handle_name AS 'handle'
FROM ticket t
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
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 dictionary_item di ON d.warranty_state=di.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 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'
,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'
,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'
FROM ticket t
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
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 dictionary_item di ON d.warranty_state=di.id
LEFT JOIN admin_user auc ON t.cqm=auc.id
@ -239,7 +229,7 @@
FROM ticket_follow tf
INNER JOIN ticket t ON tf.ticket_id = t.id
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}
ORDER BY t.state,t.id DESC
</select>
@ -247,20 +237,19 @@
<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
,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'
,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.handle_name AS 'handle'
FROM ticket t
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
INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId} AND tf.from=1
<if test="favouritesId>0">
AND tf.favorites_id=#{favouritesId}
</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 dictionary_item di ON d.warranty_state=di.id
LEFT JOIN admin_user auc ON t.cqm=auc.id