diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java index 7e7b2050..f431972a 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AppUserController.java @@ -13,6 +13,7 @@ import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.request.*; import com.nflg.mobilebroken.common.pojo.vo.*; +import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.AppUser; import com.nflg.mobilebroken.repository.entity.AppUserApplyfor; @@ -60,9 +61,6 @@ public class AppUserController extends ControllerBase { @Resource private ITBaseCustomerService customerService; - @Resource - private ITBaseAreaService areaService; - @Resource private IAppUserApplyforService appUserApplyforService; @@ -114,6 +112,17 @@ public class AppUserController extends ControllerBase { return ApiResult.success(list); } + /** + * 根据公司id获取区域列表 + * @param companyIds 公司id列表 + * @return 区域列表 + */ + @GetMapping("getAreasByCompany") + @ApiMark(moduleName = "代理商管理", apiName = "根据公司id获取区域列表",isPublic = true) + public ApiResult> getAreasByCompany(@Valid @RequestParam @NotNull List companyIds){ + return ApiResult.success(customerService.getAreas(companyIds)); + } + /** * 添加代理商主账号 * @param request 请求参数 @@ -187,6 +196,7 @@ public class AppUserController extends ControllerBase { .setAreaId(request.getAreaId()) .setTitleId(request.getTitleId()) .setCompanyId(StrUtil.join(",", request.getCompanyIds())) + .setUpdateBy(AdminUserUtil.getUserName()) .setUpdateTime(LocalDateTime.now()); if (!Objects.equals(user.getState(), UserState.ToBeActivated.getState()) && Objects.nonNull(request.getEnable())) { user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState()); @@ -240,9 +250,9 @@ public class AppUserController extends ControllerBase { .setSalesUserName(request.getSalesUserName()) .setPhone(request.getPhone()) .setLanguageCode(request.getLanguageCode()) - .setAreaId(request.getAreaId()) .setTitleId(request.getTitleId()) .setCompanyId(StrUtil.join(",", request.getCompanyIds())) + .setUpdateBy(AdminUserUtil.getUserName()) .setUpdateTime(LocalDateTime.now()); if (!Objects.equals(user.getState(), UserState.ToBeActivated.getState()) && Objects.nonNull(request.getEnable())) { user.setState(request.getEnable() ? UserState.Activated.getState() : UserState.Disabled.getState()); diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java index e9adde7d..eac6c8d7 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java @@ -234,7 +234,7 @@ public class DeviceComponentController extends ControllerBase { ent.setDeviceComponentId(extstsModeMap.get(key).getId()); ent.setModelPartId(exitsPartMap.get(componment.getModelPartName()).getId()); ent.setModelPartName(componment.getModelPartName()); - ent.setCreateBy("fdf"); + ent.setCreateBy(AdminUserUtil.getUserName()); ent.setCreateTime(LocalDateTime.now()); result.add(ent); } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MenuController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MenuController.java index 4f1188a4..f19d4b0c 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MenuController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/MenuController.java @@ -131,6 +131,18 @@ public class MenuController extends ControllerBase { return ApiResult.success(); } + /** + * 启用/禁用菜单按钮 + * @param request 菜单按钮信息 + */ + @PostMapping("enableMenuButton") + @MethodInfoMark(value = "启用/禁用菜单按钮", menuName = "菜单管理") + @ApiMark(moduleName = "菜单管理", apiName = "启用/禁用菜单按钮") + public ApiResult enableMenuButton(@Valid @RequestBody EnableMenuRequest request) { + adminMenuService.enableMenuButton(request); + return ApiResult.success(); + } + /** * 删除菜单按钮 * @param ids 菜单按钮id列表 diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java index 1cebd898..833f06cb 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/TicketController.java @@ -314,6 +314,9 @@ public class TicketController extends ControllerBase { public ApiResult addTicketHandle(@Valid @RequestBody TicketHandleAddRequest request){ Ticket ticket=ticketService.getById(request.getTicketId()); List handleIds= Arrays.stream(ticket.getHandle().split(",")).map(Integer::parseInt).collect(Collectors.toList()); + VUtils.trueThrowBusinessError(handleIds.stream().anyMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId())) + && request.getUserIds().stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId()))) + .throwMessage("不可以移除自己"); Ticket ticket1=ticketService.addTicketHandle(request); request.getUserIds().removeAll(handleIds); if(CollectionUtil.isNotEmpty(request.getUserIds())) { @@ -344,6 +347,22 @@ public class TicketController extends ControllerBase { ticketChatService.addMessage(id, message); //推送消息 ssePushService.sendTicketMessageToAdmin(id,message); + ssePushService.sendTicketMessageToApp(id,message); + } + return ApiResult.success(); + } + + /** + * 驳回工单 + * @param ids 工单id列表 + */ + @PostMapping("rejectTicket") + @MethodInfoMark(value = "驳回工单", menuName = "工单管理") + @ApiMark(moduleName = "工单管理", apiName = "驳回工单") + public ApiResult rejectTicket(@Valid @RequestBody @NotEmpty List ids) { + for (Integer id : ids){ + Ticket ticket=ticketService.rejectTicket(id); +// ticketEventPublisher.publishTicketCompleteEvent(ticket); } return ApiResult.success(); } @@ -369,6 +388,7 @@ public class TicketController extends ControllerBase { ticketChatService.addMessage(request.getTicketId(), message); //推送消息 ssePushService.sendTicketMessageToAdmin(ticket.getId(),message); + ssePushService.sendTicketMessageToApp(ticket.getId(),message); return ApiResult.success(); } @@ -479,10 +499,10 @@ public class TicketController extends ControllerBase { public ApiResult getTicket(@Valid @RequestParam @NotNull Integer id) { Ticket ticket = ticketService.getById(id); AppUser user = appUserService.getById(ticket.getUserId()); - String areaName; + String areaName = ""; if (user.getIsPrimary()){ areaName=adminAreaService.getById(user.getAreaId()).getAreaName(); - }else { + }else if (Objects.nonNull(user.getAreaId())){ areaName = appAreaService.getById(user.getAreaId()).getName(); } // TBaseCustomer company = customerService.getById(Integer.valueOf(user.getCompanyId())); diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java index 9ae7f291..b062a808 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/UserController.java @@ -245,7 +245,7 @@ public class UserController extends ControllerBase { adminUsers.forEach(c -> adminMessageService.add( new AdminMessage() .setNo(applyfor.getUserEmail()) - .setTitle(createdUser.getName()+"请账号延期") + .setTitle(createdUser.getName()+"申请账号延期") .setUserId(c.getId()) .setSourceId(applyfor.getId()) .setSource(1) diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AppUserUpdateRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AppUserUpdateRequest.java index cbd95f11..ed0651fb 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AppUserUpdateRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AppUserUpdateRequest.java @@ -11,4 +11,7 @@ public class AppUserUpdateRequest extends PrimaryAppUserAddRequest { //是否启用 private Boolean enable; + + //区域id + private Integer areaId; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/EnableMenuRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/EnableMenuRequest.java index 2eca8f4e..a4895c87 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/EnableMenuRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/EnableMenuRequest.java @@ -9,11 +9,11 @@ import java.util.List; @Data public class EnableMenuRequest { - // 是否启用 + //是否启用 @NotNull private boolean enable; - // 菜单id列表 + //id列表 @NotEmpty private List ids; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/PrimaryAppUserAddRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/PrimaryAppUserAddRequest.java index d2567807..dedba80f 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/PrimaryAppUserAddRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/PrimaryAppUserAddRequest.java @@ -7,7 +7,6 @@ import lombok.Data; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; import java.util.List; @Data @@ -41,10 +40,6 @@ public class PrimaryAppUserAddRequest { //手机 private String phone; - //区域id - @NotNull - private Integer areaId; - //头像 private String avatar; diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java index db651a19..6212819f 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/AppUserForAdminVO.java @@ -1,11 +1,16 @@ package com.nflg.mobilebroken.common.pojo.vo; +import cn.hutool.core.util.StrUtil; import lombok.Data; import lombok.experimental.Accessors; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; @Data @Accessors(chain = true) @@ -40,6 +45,13 @@ public class AppUserForAdminVO { //区域名称 private String areaName; + public String getAreaName(){ + if (StrUtil.isBlank(areaName)){ + return areaName; + } + return StrUtil.join(",",Arrays.stream(areaName.split(",")).distinct().collect(Collectors.toList())); + } + //状态,0:待激活,1-启用,2:禁用 private Byte userState; @@ -67,9 +79,16 @@ public class AppUserForAdminVO { //是否主账号 private boolean isPrimary; + //公司id + private String companyId; + //公司id列表 private List companyIds; + public List getCompanyIds() { + return Arrays.stream(companyId.split(",")).map(Integer::parseInt).collect(Collectors.toList()); + } + //手机号 private String phone; @@ -88,5 +107,18 @@ public class AppUserForAdminVO { private Integer titleId; //下级账号 - private List children; + private List children=new ArrayList<>(); + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + AppUserForAdminVO vo = (AppUserForAdminVO) obj; + return Objects.equals(key, vo.key); + } + + @Override + public int hashCode() { + return Objects.hash(key); + } } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ComponentInfo.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ComponentInfo.java new file mode 100644 index 00000000..0b9a787a --- /dev/null +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ComponentInfo.java @@ -0,0 +1,13 @@ +package com.nflg.mobilebroken.common.pojo.vo; + +import lombok.Data; + +@Data +public class ComponentInfo { + + //部位名称 + private String name; + + //语言对应的名称 + private String languageValue; +} diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java index e174fd4f..9bc42c31 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/DeviceInfoVO.java @@ -1,6 +1,6 @@ package com.nflg.mobilebroken.common.pojo.vo; -import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import lombok.experimental.Accessors; @@ -35,16 +35,12 @@ public class DeviceInfoVO { //质保期(月) private Integer warrantyMonth; - //机型部件 - private String component; - //设备部件列表 - private List components; - - public List getComponents(){ - return StrUtil.split(component,";"); - } + private List components; //客户名称 private String customerName; + + @JsonIgnore + private Integer componentId; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AppUserMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AppUserMapper.java index 6b4142f5..edf09a9d 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AppUserMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AppUserMapper.java @@ -2,7 +2,9 @@ package com.nflg.mobilebroken.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.nflg.mobilebroken.common.pojo.request.SearchAppUserForAdminRequest; import com.nflg.mobilebroken.common.pojo.request.UserSearchRequest; +import com.nflg.mobilebroken.common.pojo.vo.AppUserForAdminVO; import com.nflg.mobilebroken.common.pojo.vo.AppUserVO; import com.nflg.mobilebroken.repository.entity.AppUser; @@ -23,4 +25,6 @@ public interface AppUserMapper extends BaseMapper { AppUserVO getInfo(Integer userId); List searchByCompany(UserSearchRequest aa); + + List searchAppUserForAdmin(SearchAppUserForAdminRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java index 44a9a95f..cad31b1f 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery; import com.nflg.mobilebroken.common.pojo.request.SearchDeviceRequest; +import com.nflg.mobilebroken.common.pojo.vo.ComponentInfo; import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceVO; import com.nflg.mobilebroken.repository.entity.Device; @@ -40,4 +41,6 @@ public interface DeviceMapper extends BaseMapper { void taskWarrantyStateNotOutsideWarranty(); void taskWarrantyStateNotOutsideWithinWarranty(); + + List getComponents(Integer componentId,String language); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMenuService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMenuService.java index 7d48157e..30441f1c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMenuService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminMenuService.java @@ -33,4 +33,6 @@ public interface IAdminMenuService extends IService { IPage search(MenuSearchRequest request); void delete(List ids); + + void enableMenuButton(EnableMenuRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITBaseCustomerService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITBaseCustomerService.java index 32f1d35d..7ba0fcd1 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITBaseCustomerService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITBaseCustomerService.java @@ -29,4 +29,6 @@ public interface ITBaseCustomerService extends IService { List getSimpleCompanys(); List getSimpleCompanysFromAdmin(Integer userId); + + List getAreas(List companyIds); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java index 3f6063d7..8e0bc1c6 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java @@ -52,4 +52,6 @@ public interface ITicketService extends IService { List getTicketHandle(Integer id); List getAdminFavorites(Integer userId,Integer favoritesId); + + Ticket rejectTicket(Integer id); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java index 9efca4ef..6b246667 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminMenuServiceImpl.java @@ -197,6 +197,16 @@ public class AdminMenuServiceImpl extends ServiceImpl datas) { AdminMenu parent = lambdaQuery().eq(AdminMenu::getId, child.getParentId()).one(); if (Objects.nonNull(parent)) { diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java index 7b25eb24..815dbe9e 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java @@ -29,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.nio.charset.Charset; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.chrono.ChronoLocalDate; import java.util.*; @@ -137,6 +138,7 @@ public class AppUserServiceImpl extends ServiceImpl impl List companyIds = lambdaQuery() .select(AppUser::getCompanyId) .eq(AppUser::getIsPrimary, true) + .eq(AppUser::getIsDel, false) .list() .stream() .map(AppUser::getCompanyId) @@ -160,7 +162,6 @@ public class AppUserServiceImpl extends ServiceImpl impl .setAvatar(request.getAvatar()) .setEmail(request.getEmail()) .setPhone(request.getPhone()) - .setAreaId(request.getAreaId()) .setTitleId(request.getTitleId()) .setPassword(encodePassword) .setCompanyId(StrUtil.join(",", request.getCompanyIds())) @@ -179,7 +180,6 @@ public class AppUserServiceImpl extends ServiceImpl impl .setAvatar(request.getAvatar()) .setEmail(request.getEmail()) .setPhone(request.getPhone()) - .setAreaId(request.getAreaId()) .setTitleId(request.getTitleId()) .setPassword(encodePassword) .setCompanyId(StrUtil.join(",", request.getCompanyIds())) @@ -197,6 +197,9 @@ public class AppUserServiceImpl extends ServiceImpl impl @Override public List getChildren(AppUser primaryUser) { + if (!primaryUser.getIsPrimary()){ + return Collections.emptyList(); + } String[] companyIds = primaryUser.getCompanyId().split(","); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(AppUser::getIsDel, false); @@ -250,13 +253,15 @@ public class AppUserServiceImpl extends ServiceImpl impl .eq(AppUser::getId, id) .update(); AppUser primaryUser=getById(id); - List children=getChildren(primaryUser); - if (CollectionUtil.isNotEmpty(children)){ - lambdaUpdate() - .set(AppUser::getIsDel, true) - .set(AppUser::getUpdateTime, LocalDateTime.now()) - .in(AppUser::getId, children.stream().map(AppUser::getId).collect(Collectors.toList())) - .update(); + if (primaryUser.getIsPrimary()) { + List children = getChildren(primaryUser); + if (CollectionUtil.isNotEmpty(children)) { + lambdaUpdate() + .set(AppUser::getIsDel, true) + .set(AppUser::getUpdateTime, LocalDateTime.now()) + .in(AppUser::getId, children.stream().map(AppUser::getId).collect(Collectors.toList())) + .update(); + } } } @@ -316,6 +321,61 @@ public class AppUserServiceImpl extends ServiceImpl impl @Override public PageData searchAppUserForAdmin(SearchAppUserForAdminRequest request) { + List datas = baseMapper.searchAppUserForAdmin(request); + List primarys=datas.stream().filter(AppUserForAdminVO::isPrimary).collect(Collectors.toList()); + List subs=datas.stream().filter(d->!d.isPrimary()).collect(Collectors.toList()); + subs.forEach(d->{ + AppUserForAdminVO primary=primarys.stream() + .filter(p-> Arrays.stream(p.getCompanyId().split(",")).anyMatch(c->c.equals(d.getCompanyId()))) + .findFirst().orElse(null); + if (Objects.isNull(primary)){ + AppUser appUser=getPrimaryByCompanyId(d.getCompanyId()); + List customers=customerService.lambdaQuery() + .in(TBaseCustomer::getId, Arrays.stream(appUser.getCompanyId().split(",")).map(Integer::parseInt).collect(Collectors.toList())) + .list(); + String areaName=StrUtil.join(",",customers.stream().map(TBaseCustomer::getAreaName).flatMap(name->StrUtil.split(name, ",").stream()).collect(Collectors.toSet())); + primary=new AppUserForAdminVO() + .setPrimary(true) + .setUserName(appUser.getName()) + .setAvatar(appUser.getAvatar()) + .setUserState(appUser.getState()) + .setEmail(appUser.getEmail()) + .setCompanyId(appUser.getCompanyId()) + .setCompanyName(StrUtil.join(",",customers.stream().map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList()))) + .setAreaName(areaName) + .setCreateBy(appUser.getCreateBy()) + .setCreateTime(appUser.getCreateTime()) + .setUpdateBy(appUser.getUpdateBy()) + .setUpdateTime(appUser.getUpdateTime()) + .setExpireTime(appUser.getExpireTime()) + .setId(appUser.getId()) + .setKey("u"+appUser.getId()) + .setLanguageCode(appUser.getLanguageCode()) + .setLastLoginTime(appUser.getLastLoginTime()) + .setName(appUser.getName()) + .setPhone(appUser.getPhone()) + .setSalesUserName(appUser.getSalesUserName()) + .setTitleId(appUser.getTitleId()) + .setTitle(positionService.getById(appUser.getTitleId()).getPositionName()) + .setState(appUser.getExpireTime().isAfter(LocalDate.now()) ?1:2); + AppUserApplyfor applyFor=appUserApplyforService.lambdaQuery() + .eq(AppUserApplyfor::getUserId, appUser.getId()) + .eq(AppUserApplyfor::getState, AppUserApplyForState.PENDINGAPPROVAL.getState().byteValue()) + .ne(AppUserApplyfor::getType, AppUserApplyforType.ADD.getState().byteValue()) + .one(); + if (Objects.nonNull(applyFor)) { + primary.setKey("f-" + applyFor.getId()).setId(applyFor.getId()).setState(0); + } + primarys.add(primary); + } + primary.getChildren().add(d); + }); + datas.removeAll(subs); + List page=primarys.stream().skip((long) (request.getPage() - 1) *request.getPageSize()).limit(request.getPageSize()).collect(Collectors.toList()); + return new PageData().setPage(request.getPage()).setPageSize(request.getPageSize()).setTotal(primarys.size()).setItems(page); + } + + public PageData searchAppUserForAdmin1(SearchAppUserForAdminRequest request) { Page page = lambdaQuery() .eq(AppUser::getIsDel, false) .eq(AppUser::getIsPrimary, true) @@ -631,7 +691,7 @@ public class AppUserServiceImpl extends ServiceImpl impl return lambdaQuery() .eq(AppUser::getIsDel,false) .eq(AppUser::getCompanyId, companyId.toString()) - .eq(AppUser::getState, UserState.Activated.getState()) +// .eq(AppUser::getState, UserState.Activated.getState()) .eq(AppUser::getIsPrimary, false) .list() .stream() diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java index 33a3c6b4..4cdeb569 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java @@ -7,6 +7,7 @@ import com.nflg.mobilebroken.common.pojo.request.SearchDeviceRequest; import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceVO; import com.nflg.mobilebroken.common.util.AppUserUtil; +import com.nflg.mobilebroken.common.util.MultilingualUtil; import com.nflg.mobilebroken.repository.entity.Device; import com.nflg.mobilebroken.repository.mapper.DeviceMapper; import com.nflg.mobilebroken.repository.service.IDeviceService; @@ -14,6 +15,7 @@ import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; /** *

@@ -28,7 +30,11 @@ public class DeviceServiceImpl extends ServiceImpl impleme @Override public DeviceInfoVO getByDeviceNo(String deviceNo) { - return baseMapper.getByDeviceNo(deviceNo); + DeviceInfoVO vo=baseMapper.getByDeviceNo(deviceNo); + if (Objects.nonNull(vo.getComponentId())){ + vo.setComponents(baseMapper.getComponents(vo.getComponentId(), MultilingualUtil.getLanguage())); + } + return vo; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryServiceImpl.java index 2f8fda23..e50ef60c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryServiceImpl.java @@ -1,5 +1,6 @@ package com.nflg.mobilebroken.repository.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -78,7 +79,9 @@ public class DictionaryServiceImpl extends ServiceImpl ids) { removeByIds(ids); List itemIds=dictionaryItemService.lambdaQuery().eq(DictionaryItem::getDictionaryId, ids).list().stream().map(DictionaryItem::getId).collect(Collectors.toList()); - dictionaryItemService.removeByIds(itemIds); - dictionaryItemTranslateService.remove(new LambdaQueryWrapper().in(DictionaryItemTranslate::getDictionaryItemId, itemIds)); + if (CollectionUtil.isNotEmpty(itemIds)) { + dictionaryItemService.removeByIds(itemIds); + dictionaryItemTranslateService.remove(new LambdaQueryWrapper().in(DictionaryItemTranslate::getDictionaryItemId, itemIds)); + } } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBaseCustomerServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBaseCustomerServiceImpl.java index 3dc76ff6..b67c430c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBaseCustomerServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TBaseCustomerServiceImpl.java @@ -102,4 +102,17 @@ public class TBaseCustomerServiceImpl extends ServiceImpl getAreas(List companyIds) { + return lambdaQuery() + .eq(TBaseCustomer::getDelIs, 0) + .eq(TBaseCustomer::getEnableState, 1) + .in(TBaseCustomer::getId, companyIds) + .list() + .stream() + .map(TBaseCustomer::getAreaName) + .flatMap(name -> StrUtil.split(name, ",").stream()) + .collect(Collectors.toList()); + } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketFavoritesServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketFavoritesServiceImpl.java index 229500a2..b89cbd95 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketFavoritesServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketFavoritesServiceImpl.java @@ -42,7 +42,7 @@ public class TicketFavoritesServiceImpl extends ServiceImplnew FavoritesVO().setId(f.getId()).setName(f.getName())).collect(Collectors.toList())); vo.setTickets(ticketService.getAdminFavorites(userId,id)); return vo; diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java index c53e51cd..acc6cab7 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java @@ -311,4 +311,19 @@ public class TicketServiceImpl extends ServiceImpl impleme public List getAdminFavorites(Integer userId,Integer favoritesId) { return baseMapper.getAdminFavorites(userId,favoritesId); } + + @Override + public Ticket rejectTicket(Integer id) { + Ticket ticket = getById(id); + VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("未找到工单"); + VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.ProcessingCompleted.getState())) + .throwMessage("工单状态不允许驳回"); + List tickerMangagers = adminUserService.getTickerMangagers(); + VUtils.trueThrowBusinessError(tickerMangagers.stream().noneMatch(uid -> Objects.equals(uid, AdminUserUtil.getUserId()))) + .throwMessage("你无权驳回工单"); + ticket.setState(TicketState.Processing.getState()); + ticket.setUpdateTime(LocalDateTime.now()); + updateById(ticket); + return ticket; + } } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AppUserMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AppUserMapper.xml index 37f62558..f4bdc51d 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AppUserMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AppUserMapper.xml @@ -95,4 +95,56 @@ ) + + diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml index ca879e12..986a7f24 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml @@ -3,9 +3,10 @@ + SELECT dcd.model_part_name AS 'name',ld.language_value AS 'languageValue' + FROM device_component_detail dcd + INNER JOIN t_base_part p ON dcd.model_part_id=p.id + LEFT JOIN t_base_language_data ld ON dcd.model_part_id=ld.source_id + WHERE dcd.device_component_id=#{componentId} AND ld.language_code=#{language} +