Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
aa6ca8aa56
|
|
@ -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<List<String>> getAreasByCompany(@Valid @RequestParam @NotNull List<Integer> 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());
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,6 +131,18 @@ public class MenuController extends ControllerBase {
|
|||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用/禁用菜单按钮
|
||||
* @param request 菜单按钮信息
|
||||
*/
|
||||
@PostMapping("enableMenuButton")
|
||||
@MethodInfoMark(value = "启用/禁用菜单按钮", menuName = "菜单管理")
|
||||
@ApiMark(moduleName = "菜单管理", apiName = "启用/禁用菜单按钮")
|
||||
public ApiResult<Void> enableMenuButton(@Valid @RequestBody EnableMenuRequest request) {
|
||||
adminMenuService.enableMenuButton(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除菜单按钮
|
||||
* @param ids 菜单按钮id列表
|
||||
|
|
|
|||
|
|
@ -314,6 +314,9 @@ public class TicketController extends ControllerBase {
|
|||
public ApiResult<Void> addTicketHandle(@Valid @RequestBody TicketHandleAddRequest request){
|
||||
Ticket ticket=ticketService.getById(request.getTicketId());
|
||||
List<Integer> 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<Void> rejectTicket(@Valid @RequestBody @NotEmpty List<Integer> 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<TicketInfoVO> 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()));
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -11,4 +11,7 @@ public class AppUserUpdateRequest extends PrimaryAppUserAddRequest {
|
|||
|
||||
//是否启用
|
||||
private Boolean enable;
|
||||
|
||||
//区域id
|
||||
private Integer areaId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@ import java.util.List;
|
|||
@Data
|
||||
public class EnableMenuRequest {
|
||||
|
||||
// 是否启用
|
||||
//是否启用
|
||||
@NotNull
|
||||
private boolean enable;
|
||||
|
||||
// 菜单id列表
|
||||
//id列表
|
||||
@NotEmpty
|
||||
private List<Integer> ids;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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<Integer> companyIds;
|
||||
|
||||
public List<Integer> 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<AppUserForAdminVO> children;
|
||||
private List<AppUserForAdminVO> 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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ComponentInfo {
|
||||
|
||||
//部位名称
|
||||
private String name;
|
||||
|
||||
//语言对应的名称
|
||||
private String languageValue;
|
||||
}
|
||||
|
|
@ -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<String> components;
|
||||
|
||||
public List<String> getComponents(){
|
||||
return StrUtil.split(component,";");
|
||||
}
|
||||
private List<ComponentInfo> components;
|
||||
|
||||
//客户名称
|
||||
private String customerName;
|
||||
|
||||
@JsonIgnore
|
||||
private Integer componentId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<AppUser> {
|
|||
AppUserVO getInfo(Integer userId);
|
||||
|
||||
List<AppUserVO> searchByCompany(UserSearchRequest aa);
|
||||
|
||||
List<AppUserForAdminVO> searchAppUserForAdmin(SearchAppUserForAdminRequest request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Device> {
|
|||
void taskWarrantyStateNotOutsideWarranty();
|
||||
|
||||
void taskWarrantyStateNotOutsideWithinWarranty();
|
||||
|
||||
List<ComponentInfo> getComponents(Integer componentId,String language);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,4 +33,6 @@ public interface IAdminMenuService extends IService<AdminMenu> {
|
|||
IPage<MenuVO> search(MenuSearchRequest request);
|
||||
|
||||
void delete(List<Integer> ids);
|
||||
|
||||
void enableMenuButton(EnableMenuRequest request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,4 +29,6 @@ public interface ITBaseCustomerService extends IService<TBaseCustomer> {
|
|||
List<CompanySimpleVO> getSimpleCompanys();
|
||||
|
||||
List<CompanySimpleVO> getSimpleCompanysFromAdmin(Integer userId);
|
||||
|
||||
List<String> getAreas(List<Integer> companyIds);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,4 +52,6 @@ public interface ITicketService extends IService<Ticket> {
|
|||
List<AdminUserSimpleVO> getTicketHandle(Integer id);
|
||||
|
||||
List<TicketVO> getAdminFavorites(Integer userId,Integer favoritesId);
|
||||
|
||||
Ticket rejectTicket(Integer id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -197,6 +197,16 @@ public class AdminMenuServiceImpl extends ServiceImpl<AdminMenuMapper, AdminMenu
|
|||
removeByIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enableMenuButton(EnableMenuRequest request) {
|
||||
adminMenuButtonService.lambdaUpdate()
|
||||
.set(AdminMenuButton::getEnable, request.isEnable())
|
||||
.set(AdminMenuButton::getUpdateBy, AdminUserUtil.getUserName())
|
||||
.set(AdminMenuButton::getUpdateTime, LocalDateTime.now())
|
||||
.in(AdminMenuButton::getId, request.getIds())
|
||||
.update();
|
||||
}
|
||||
|
||||
private void getParent(MenuVO child, List<MenuVO> datas) {
|
||||
AdminMenu parent = lambdaQuery().eq(AdminMenu::getId, child.getParentId()).one();
|
||||
if (Objects.nonNull(parent)) {
|
||||
|
|
|
|||
|
|
@ -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<AppUserMapper, AppUser> impl
|
|||
List<Integer> 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<AppUserMapper, AppUser> 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<AppUserMapper, AppUser> 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<AppUserMapper, AppUser> impl
|
|||
|
||||
@Override
|
||||
public List<AppUser> getChildren(AppUser primaryUser) {
|
||||
if (!primaryUser.getIsPrimary()){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
String[] companyIds = primaryUser.getCompanyId().split(",");
|
||||
LambdaQueryWrapper<AppUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AppUser::getIsDel, false);
|
||||
|
|
@ -250,13 +253,15 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
.eq(AppUser::getId, id)
|
||||
.update();
|
||||
AppUser primaryUser=getById(id);
|
||||
List<AppUser> 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<AppUser> 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<AppUserMapper, AppUser> impl
|
|||
|
||||
@Override
|
||||
public PageData<AppUserForAdminVO> searchAppUserForAdmin(SearchAppUserForAdminRequest request) {
|
||||
List<AppUserForAdminVO> datas = baseMapper.searchAppUserForAdmin(request);
|
||||
List<AppUserForAdminVO> primarys=datas.stream().filter(AppUserForAdminVO::isPrimary).collect(Collectors.toList());
|
||||
List<AppUserForAdminVO> 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<TBaseCustomer> 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<AppUserForAdminVO> page=primarys.stream().skip((long) (request.getPage() - 1) *request.getPageSize()).limit(request.getPageSize()).collect(Collectors.toList());
|
||||
return new PageData<AppUserForAdminVO>().setPage(request.getPage()).setPageSize(request.getPageSize()).setTotal(primarys.size()).setItems(page);
|
||||
}
|
||||
|
||||
public PageData<AppUserForAdminVO> searchAppUserForAdmin1(SearchAppUserForAdminRequest request) {
|
||||
Page<AppUser> page = lambdaQuery()
|
||||
.eq(AppUser::getIsDel, false)
|
||||
.eq(AppUser::getIsPrimary, true)
|
||||
|
|
@ -631,7 +691,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> 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()
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -28,7 +30,11 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> 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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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<DictionaryMapper, Diction
|
|||
public void delete(List<Integer> ids) {
|
||||
removeByIds(ids);
|
||||
List<Integer> itemIds=dictionaryItemService.lambdaQuery().eq(DictionaryItem::getDictionaryId, ids).list().stream().map(DictionaryItem::getId).collect(Collectors.toList());
|
||||
dictionaryItemService.removeByIds(itemIds);
|
||||
dictionaryItemTranslateService.remove(new LambdaQueryWrapper<DictionaryItemTranslate>().in(DictionaryItemTranslate::getDictionaryItemId, itemIds));
|
||||
if (CollectionUtil.isNotEmpty(itemIds)) {
|
||||
dictionaryItemService.removeByIds(itemIds);
|
||||
dictionaryItemTranslateService.remove(new LambdaQueryWrapper<DictionaryItemTranslate>().in(DictionaryItemTranslate::getDictionaryItemId, itemIds));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,4 +102,17 @@ public class TBaseCustomerServiceImpl extends ServiceImpl<TBaseCustomerMapper, T
|
|||
.setCode(d.getAgencyCompanyCode()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getAreas(List<Integer> 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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class TicketFavoritesServiceImpl extends ServiceImpl<TicketFavoritesMappe
|
|||
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).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,id));
|
||||
return vo;
|
||||
|
|
|
|||
|
|
@ -311,4 +311,19 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
|
|||
public List<TicketVO> 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<Integer> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,4 +95,56 @@
|
|||
)
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="searchAppUserForAdmin" parameterType="com.nflg.mobilebroken.common.pojo.request.SearchAppUserForAdminRequest" resultType="com.nflg.mobilebroken.common.pojo.vo.AppUserForAdminVO">
|
||||
SELECT IF(aua.id IS NULL,CONCAT('u-',au.id),CONCAT('f-',aua.id)) AS 'key',au.id,au.avatar,au.login_name,au.`name` AS 'userName',fun_getUserCompanys(au.company_id) AS 'companyName',au.`name`,au.email,au.sales_user_name,IF(au.is_primary,fun_getPrimaryUserArea(au.company_id),aa.`name`) AS 'areaName',au.state AS 'userState',au.expire_time,IF(aua.id IS NOT NULL,0,IF(CONVERT_TZ(NOW(), @@session.time_zone, '+00:00') < au.expire_time,1,2)) AS 'state',au.create_by,au.create_time,au.update_by,au.update_time,au.last_login_time,au.is_primary,au.company_id,au.phone,au.area_id,au.language_code,p.position_name AS 'title',au.title_id
|
||||
FROM app_user au
|
||||
LEFT JOIN app_area aa ON au.area_id=aa.id
|
||||
LEFT JOIN app_user_applyfor aua ON aua.user_id=au.id AND aua.state=0
|
||||
LEFT JOIN t_base_position p ON au.title_id=p.id
|
||||
WHERE au.is_del=0
|
||||
<if test="loginName!=null and loginName!=''">
|
||||
AND au.login_name LIKE concat('%', #{loginName}, '%')
|
||||
</if>
|
||||
<if test="name!=null and name!=''">
|
||||
AND au.`name` LIKE concat('%', #{name}, '%')
|
||||
</if>
|
||||
<if test="companyName!=null and companyName!=''">
|
||||
AND fun_getUserCompanys(au.company_id) LIKE concat('%', #{companyName}, '%')
|
||||
</if>
|
||||
<if test="userState!=null">
|
||||
AND au.state=#{userState}
|
||||
</if>
|
||||
<if test="state==0">
|
||||
AND aua.id IS NOT NULL
|
||||
</if>
|
||||
<if test="state==1">
|
||||
AND aua.id IS NULL AND CONVERT_TZ(NOW(), @@session.time_zone, '+00:00') < au.expire_time
|
||||
</if>
|
||||
<if test="state==2">
|
||||
AND aua.id IS NULL AND CONVERT_TZ(NOW(), @@session.time_zone, '+00:00') >= au.expire_time
|
||||
</if>
|
||||
UNION
|
||||
SELECT CONCAT('f-',aua.id) AS 'key',aua.id,aua.user_avatar AS 'avatar',aua.user_email AS 'loginName',aua.`user_name` AS 'userName',fun_getUserCompanys(aua.company_id) AS 'companyName',aua.user_name AS 'name',aua.user_email AS 'email',aua.sales_user_name,IF(aua.is_primary,fun_getPrimaryUserArea(aua.company_id),aa.`name`) AS 'areaName',0 AS 'userState',null AS 'expireTime',0 AS 'state',au.name AS 'createBy',aua.create_time,null AS 'updateBy',null AS 'updateTime',null AS 'lastLoginTime',aua.is_primary,aua.company_id,aua.user_phone AS 'phone',aua.area_id,aua.language_code,p.position_name AS 'title',aua.title_id
|
||||
FROM app_user_applyfor aua
|
||||
LEFT JOIN app_user au ON au.id=aua.create_by
|
||||
LEFT JOIN app_area aa ON aua.area_id=aa.id
|
||||
LEFT JOIN t_base_position p ON aua.title_id=p.id
|
||||
WHERE aua.type=0 AND aua.state=0
|
||||
<if test="loginName!=null and loginName!=''">
|
||||
AND aua.user_email LIKE concat('%', #{loginName}, '%')
|
||||
</if>
|
||||
<if test="name!=null and name!=''">
|
||||
AND aua.user_name LIKE concat('%', #{name}, '%')
|
||||
</if>
|
||||
<if test="companyName!=null and companyName!=''">
|
||||
AND fun_getUserCompanys(aua.company_id) LIKE concat('%', #{companyName}, '%')
|
||||
</if>
|
||||
<if test="userState!=null">
|
||||
AND 0=#{userState}
|
||||
</if>
|
||||
<if test="state!=null">
|
||||
AND 1=2
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@
|
|||
<mapper namespace="com.nflg.mobilebroken.repository.mapper.DeviceMapper">
|
||||
|
||||
<select id="getByDeviceNo" resultType="com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO">
|
||||
SELECT d.device_no AS 'deviceNo',d.model_no AS 'modelNo',dc.component AS 'component',d.device_type AS 'deviceType'
|
||||
SELECT d.device_no AS 'deviceNo',d.model_no AS 'modelNo',d.device_type AS 'deviceType'
|
||||
,d.device_type_sub AS 'deviceTypeSub',d.warranty_state AS 'warrantyState',d.shipment_date AS 'shipmentDate'
|
||||
,d.start_warranty_date AS 'startWarrantyDate',d.warranty_month AS 'warrantyMonth',d.customer_name AS 'customerName'
|
||||
,dc.id AS 'componentId'
|
||||
FROM device d
|
||||
LEFT JOIN device_component dc ON d.model_no=dc.model_no AND dc.`enable`=1
|
||||
WHERE d.device_no=#{deviceNo}
|
||||
|
|
@ -87,4 +88,12 @@
|
|||
join dictionary_item b on a.id=b.dictionary_id
|
||||
where a.code='deviceWarrantyState' and b.`code`='WithinWarranty') where start_warranty_date <= now() and DATE_ADD(start_warranty_date, INTERVAL warranty_month MONTH) >= now() ;
|
||||
</update>
|
||||
|
||||
<select id="getComponents" resultType="com.nflg.mobilebroken.common.pojo.vo.ComponentInfo">
|
||||
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}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue