feat: 一些调整
This commit is contained in:
parent
44281ff108
commit
fd8912351d
|
|
@ -17,6 +17,7 @@ import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
|||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminUser;
|
||||
import com.nflg.mobilebroken.repository.service.IAdminUserService;
|
||||
import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseDepartmentService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBasePositionService;
|
||||
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
|
||||
|
|
@ -52,6 +53,9 @@ public class AdminUserController extends ControllerBase {
|
|||
@Value("${email.activate.admin.url}")
|
||||
private String activateUrl;
|
||||
|
||||
@Value("${email.activate.admin.website}")
|
||||
private String websiteUrl;
|
||||
|
||||
@Resource
|
||||
private IAdminUserService adminUserService;
|
||||
|
||||
|
|
@ -67,6 +71,9 @@ public class AdminUserController extends ControllerBase {
|
|||
@Resource
|
||||
private WXQRCodeService wxQRCodeService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemTranslateService dictionaryItemTranslateService;
|
||||
|
||||
@Resource
|
||||
private RedisTemplate<String, String> redisTemplate;
|
||||
|
||||
|
|
@ -99,11 +106,16 @@ public class AdminUserController extends ControllerBase {
|
|||
@ApiMark(moduleName = "账号管理", apiName = "新增账号")
|
||||
public ApiResult<Void> addAccount(@Valid @RequestBody AccountAddRequest request) {
|
||||
request.setPassword(RandomUtil.randomString(6));
|
||||
adminUserService.add(request);
|
||||
AdminUser adminUser=adminUserService.add(request);
|
||||
try {
|
||||
String email = request.getEmail();
|
||||
emailService.sendEmail(email, "新增账号",
|
||||
"您的账号已创建,随机码为:" + request.getPassword() + ",点击链接激活账号: " + activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()));
|
||||
String email = adminUser.getEmail();
|
||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_ACTIVATION, "cn");
|
||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_ACCOUNT_ACTIVATION_NOTIFY, "cn")
|
||||
.replace("${loginName}",adminUser.getLoginName())
|
||||
.replace("${url}",activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()))
|
||||
.replace("${password}",request.getPassword())
|
||||
.replace("${website}",websiteUrl);
|
||||
emailService.sendEmail(email, subject, content);
|
||||
} catch (MessagingException e) {
|
||||
log.error("发送邮件失败", e);
|
||||
}
|
||||
|
|
@ -168,9 +180,13 @@ public class AdminUserController extends ControllerBase {
|
|||
try {
|
||||
for (Integer id : ids) {
|
||||
String password = RandomUtil.randomString(6);
|
||||
String email = adminUserService.resetPassword(id, password);
|
||||
emailService.sendEmail(email, "密码重置",
|
||||
"随机码为:" + password + ",点击链接激活账号: " + activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()));
|
||||
AdminUser adminUser = adminUserService.resetPassword(id, password);
|
||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_RESET_PASSWORD, "cn");
|
||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_RESET_PASSWORD_NOTIFY, "cn")
|
||||
.replace("${loginName}",adminUser.getLoginName())
|
||||
.replace("${url}",activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(adminUser.getEmail().getBytes()))
|
||||
.replace("${password}",password);
|
||||
emailService.sendEmail(adminUser.getEmail(), subject, content);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
throw new NflgException(STATE.BusinessError, "发送邮件失败:" + ex.getMessage());
|
||||
|
|
@ -188,9 +204,13 @@ public class AdminUserController extends ControllerBase {
|
|||
public ApiResult<Void> forgetPassword(@Valid @RequestParam @NotBlank String email) {
|
||||
try {
|
||||
String password = RandomUtil.randomString(6);
|
||||
adminUserService.forgetPassword(email, password);
|
||||
emailService.sendEmail(email, "忘记密码",
|
||||
"随机码为:" + password + ",点击链接激活账号: " + activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()));
|
||||
AdminUser adminUser=adminUserService.forgetPassword(email, password);
|
||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_RESET_PASSWORD, "cn");
|
||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_RESET_PASSWORD_NOTIFY, "cn")
|
||||
.replace("${loginName}",adminUser.getLoginName())
|
||||
.replace("${url}",activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()))
|
||||
.replace("${password}",password);
|
||||
emailService.sendEmail(email, subject, content);
|
||||
} catch (Exception ex) {
|
||||
throw new NflgException(STATE.BusinessError, "发送邮件失败:" + ex.getMessage());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,17 +3,16 @@ package com.nflg.mobilebroken.admin.controller;
|
|||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.nflg.mobilebroken.admin.annotation.ApiMark;
|
||||
import com.nflg.mobilebroken.common.constant.AppUserApplyforType;
|
||||
import com.nflg.mobilebroken.common.constant.Constant;
|
||||
import com.nflg.mobilebroken.common.constant.STATE;
|
||||
import com.nflg.mobilebroken.common.exception.NflgException;
|
||||
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.repository.entity.AppUser;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUserApplyfor;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserApplyforService;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseAreaService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseCustomerService;
|
||||
import com.nflg.mobilebroken.repository.service.*;
|
||||
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
|
||||
import com.nflg.mobilebroken.starter.service.EmailService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -41,6 +40,9 @@ public class AppUserController extends ControllerBase {
|
|||
@Value("${email.activate.app.url}")
|
||||
private String activateUrl;
|
||||
|
||||
@Value("${email.activate.app.website}")
|
||||
private String websiteUrl;
|
||||
|
||||
@Resource
|
||||
private IAppUserService appUserService;
|
||||
|
||||
|
|
@ -56,6 +58,9 @@ public class AppUserController extends ControllerBase {
|
|||
@Resource
|
||||
private EmailService emailService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemTranslateService dictionaryItemTranslateService;
|
||||
|
||||
/**
|
||||
* 获取公司列表
|
||||
* @return 部门列表
|
||||
|
|
@ -85,11 +90,16 @@ public class AppUserController extends ControllerBase {
|
|||
@ApiMark(moduleName = "代理商管理", apiName = "添加代理商主账号")
|
||||
public ApiResult<Void> addPrimaryAppUser(@Valid @RequestBody PrimaryAppUserAddRequest request) {
|
||||
request.setPassword(RandomUtil.randomNumbers(6));
|
||||
appUserService.addPrimaryAppUser(request);
|
||||
AppUser appUser =appUserService.addPrimaryAppUser(request);
|
||||
try {
|
||||
String email = request.getEmail();
|
||||
emailService.sendEmail(email, "账号开通",
|
||||
"您的账号已开通,随机码为:" + request.getPassword() + ",点击链接激活账号: " + activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()));
|
||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_ACTIVATION, appUser.getLanguageCode());
|
||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_ACCOUNT_ACTIVATION_NOTIFY, appUser.getLanguageCode())
|
||||
.replace("${loginName}",appUser.getLoginName())
|
||||
.replace("${url}",activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()))
|
||||
.replace("${password}",request.getPassword())
|
||||
.replace("${website}",websiteUrl);
|
||||
emailService.sendEmail(email, subject, content);
|
||||
} catch (MessagingException e) {
|
||||
log.error("发送邮件失败", e);
|
||||
}
|
||||
|
|
@ -131,9 +141,13 @@ public class AppUserController extends ControllerBase {
|
|||
AppUserApplyfor applyfor = appUserApplyforService.getById(request.getId());
|
||||
if (applyfor.getType() == AppUserApplyforType.ADD.getState().byteValue()) {
|
||||
try {
|
||||
String email = applyfor.getUserEmail();
|
||||
emailService.sendEmail(email, "账号审核通过",
|
||||
"您的账号审核通过,随机码为:" + request.getPassword() + ",点击链接激活账号: " + activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()));
|
||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_ACTIVATION, applyfor.getLanguageCode());
|
||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_ACCOUNT_ACTIVATION_NOTIFY, applyfor.getLanguageCode())
|
||||
.replace("${loginName}",applyfor.getUserEmail())
|
||||
.replace("${url}",activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(applyfor.getUserEmail().getBytes()))
|
||||
.replace("${password}",request.getPassword())
|
||||
.replace("${website}",websiteUrl);
|
||||
emailService.sendEmail(applyfor.getUserEmail(), subject, content);
|
||||
} catch (MessagingException e) {
|
||||
log.error("发送邮件失败", e);
|
||||
}
|
||||
|
|
@ -219,9 +233,13 @@ public class AppUserController extends ControllerBase {
|
|||
try {
|
||||
for (Integer id : ids) {
|
||||
String password=RandomUtil.randomString(6);
|
||||
String email=appUserService.resetPassword(id,password);
|
||||
emailService.sendEmail(email, "密码重置",
|
||||
"随机码为:" + password + ",点击链接激活账号: " + activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()));
|
||||
AppUser appUser=appUserService.resetPassword(id,password);
|
||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_RESET_PASSWORD, appUser.getLanguageCode());
|
||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_RESET_PASSWORD_NOTIFY, appUser.getLanguageCode())
|
||||
.replace("${loginName}",appUser.getLoginName())
|
||||
.replace("${url}",activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(appUser.getEmail().getBytes()))
|
||||
.replace("${password}",password);
|
||||
emailService.sendEmail(appUser.getEmail(), subject, content);
|
||||
}
|
||||
}catch (Exception ex){
|
||||
throw new NflgException(STATE.BusinessError,"发送邮件失败:"+ex.getMessage());
|
||||
|
|
|
|||
|
|
@ -81,6 +81,9 @@ public class TicketController extends ControllerBase {
|
|||
@Resource
|
||||
private IAppAreaService appAreaService;
|
||||
|
||||
@Resource
|
||||
private ITBaseAreaService adminAreaService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemService dictionaryItemService;
|
||||
|
||||
|
|
@ -336,7 +339,12 @@ 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());
|
||||
AppArea appArea = appAreaService.getById(user.getAreaId());
|
||||
String areaName;
|
||||
if (user.getIsPrimary()){
|
||||
areaName=adminAreaService.getById(user.getAreaId()).getAreaName();
|
||||
}else {
|
||||
areaName = appAreaService.getById(user.getAreaId()).getName();
|
||||
}
|
||||
// TBaseCustomer company = customerService.getById(Integer.valueOf(user.getCompanyId()));
|
||||
DeviceInfoVO device = deviceService.getByDeviceNo(ticket.getDeviceNo());
|
||||
String warrantyStateDesc = "";
|
||||
|
|
@ -376,7 +384,7 @@ public class TicketController extends ControllerBase {
|
|||
.setCreateUserName(user.getName())
|
||||
.setCreateUserAvatar(user.getAvatar())
|
||||
.setCreateTime(ticket.getCreateTime())
|
||||
.setAreaName(appArea.getName())
|
||||
.setAreaName(areaName)
|
||||
.setCompanyName(device.getCustomerName())
|
||||
.setHandle(handle)
|
||||
.setSolution(ticket.getSolution())
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
package com.nflg.mobilebroken.admin.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class TiketTimeoutDTO {
|
||||
|
||||
private Integer emergency;
|
||||
|
||||
private Integer general;
|
||||
|
||||
private Integer nonemergency;
|
||||
}
|
||||
|
|
@ -3,7 +3,8 @@ package com.nflg.mobilebroken.admin.task;
|
|||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.nflg.mobilebroken.admin.service.NotificationService;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.nflg.mobilebroken.admin.pojo.dto.TiketTimeoutDTO;
|
||||
import com.nflg.mobilebroken.common.constant.Constant;
|
||||
import com.nflg.mobilebroken.common.constant.MessageSubType;
|
||||
import com.nflg.mobilebroken.repository.entity.*;
|
||||
|
|
@ -39,19 +40,23 @@ public class TicketScheduledTasks {
|
|||
@Resource
|
||||
private ITicketFollowService ticketFollowService;
|
||||
|
||||
@Resource
|
||||
private NotificationService notificationService;
|
||||
|
||||
private static final DateTimeFormatter FORMATTER= DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN);
|
||||
|
||||
@Resource
|
||||
private IAppMessageService appMessageService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemTranslateService dictionaryItemTranslateService;
|
||||
|
||||
@Resource
|
||||
private ITBaseDeviceTypeService deviceTypeService;
|
||||
|
||||
@Resource
|
||||
private EmailService emailService;
|
||||
|
||||
@Resource
|
||||
private IParamConfigService paramConfigService;
|
||||
|
||||
/**
|
||||
* 工单超时提醒
|
||||
* 每天午夜12点执行一次
|
||||
|
|
@ -59,32 +64,31 @@ public class TicketScheduledTasks {
|
|||
@Scheduled(cron = "0 0 0 * * ?")
|
||||
public void timeoutRemind() {
|
||||
log.info("开始执行工单超时提醒");
|
||||
emergencyRemind();
|
||||
generalRemind();
|
||||
nonemergencyRemind();
|
||||
ParamConfig config = paramConfigService.lambdaQuery().eq(ParamConfig::getCode, "TiketTimeout").one();
|
||||
TiketTimeoutDTO cfgTimeout= JSONUtil.toBean(config.getValue(), TiketTimeoutDTO.class);
|
||||
emergencyRemind(cfgTimeout);
|
||||
generalRemind(cfgTimeout);
|
||||
nonemergencyRemind(cfgTimeout);
|
||||
log.info("执行工单超时提醒完成");
|
||||
}
|
||||
|
||||
private void emergencyRemind() {
|
||||
int days = 3;
|
||||
log.info("获取状态为紧急且{}天未解决的工单", days);
|
||||
List<Ticket> tickets = ticketService.getEmergencys(days);
|
||||
private void emergencyRemind(TiketTimeoutDTO cfgTimeout) {
|
||||
log.info("获取状态为紧急且{}天未解决的工单", cfgTimeout.getEmergency());
|
||||
List<Ticket> tickets = ticketService.getEmergencys(cfgTimeout.getEmergency());
|
||||
log.info("共{}条数据", tickets.size());
|
||||
tickets.forEach(this::ticketHande);
|
||||
}
|
||||
|
||||
private void generalRemind() {
|
||||
int days = 7;
|
||||
log.info("获取状态为普通且{}天未解决的工单", days);
|
||||
List<Ticket> tickets = ticketService.getGenerals(days);
|
||||
private void generalRemind(TiketTimeoutDTO cfgTimeout) {
|
||||
log.info("获取状态为普通且{}天未解决的工单", cfgTimeout.getGeneral());
|
||||
List<Ticket> tickets = ticketService.getGenerals(cfgTimeout.getGeneral());
|
||||
log.info("共{}条数据", tickets.size());
|
||||
tickets.forEach(this::ticketHande);
|
||||
}
|
||||
|
||||
private void nonemergencyRemind() {
|
||||
int days = 15;
|
||||
log.info("获取状态为普通且{}天未解决的工单", days);
|
||||
List<Ticket> tickets = ticketService.getNonemergency(days);
|
||||
private void nonemergencyRemind(TiketTimeoutDTO cfgTimeout) {
|
||||
log.info("获取状态为非紧急且{}天未解决的工单", cfgTimeout.getNonemergency());
|
||||
List<Ticket> tickets = ticketService.getNonemergency(cfgTimeout.getNonemergency());
|
||||
log.info("共{}条数据", tickets.size());
|
||||
tickets.forEach(this::ticketHande);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,6 +73,9 @@ public class TiketController extends ControllerBase {
|
|||
@Resource
|
||||
private IAppAreaService appAreaService;
|
||||
|
||||
@Resource
|
||||
private ITBaseAreaService adminAreaService;
|
||||
|
||||
@Resource
|
||||
private ITBaseCustomerService customerService;
|
||||
|
||||
|
|
@ -104,7 +107,6 @@ public class TiketController extends ControllerBase {
|
|||
|
||||
/**
|
||||
* 获取所有设备部件
|
||||
*
|
||||
* @return 设备部件列表
|
||||
**/
|
||||
@GetMapping("getAllDeviceComponents")
|
||||
|
|
@ -186,7 +188,12 @@ public class TiketController extends ControllerBase {
|
|||
public ApiResult<TicketInfoVO> getTicket(@Valid @RequestParam @NotNull Integer id) {
|
||||
Ticket ticket = ticketService.getById(id);
|
||||
AppUser user = appUserService.getById(ticket.getUserId());
|
||||
AppArea appArea = appAreaService.getById(user.getAreaId());
|
||||
String areaName;
|
||||
if (user.getIsPrimary()){
|
||||
areaName=adminAreaService.getById(user.getAreaId()).getAreaName();
|
||||
}else {
|
||||
areaName = appAreaService.getById(user.getAreaId()).getName();
|
||||
}
|
||||
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();
|
||||
|
|
@ -210,7 +217,7 @@ public class TiketController extends ControllerBase {
|
|||
.setCreateUserName(user.getName())
|
||||
.setCreateUserAvatar(user.getAvatar())
|
||||
.setCreateTime(ticket.getCreateTime())
|
||||
.setAreaName(appArea.getName())
|
||||
.setAreaName(areaName)
|
||||
.setSolveTime(ticket.getSolveTime())
|
||||
.setCompanyName(StrUtil.join(",",companys.stream().map(TBaseCustomer::getAgencyCompanyName).collect(Collectors.toList())))
|
||||
.setHandle(handle)
|
||||
|
|
|
|||
|
|
@ -55,6 +55,9 @@ public class UserController extends ControllerBase {
|
|||
@Value("${email.activate.app.url}")
|
||||
private String activateUrl;
|
||||
|
||||
@Value("${email.activate.app.website}")
|
||||
private String websiteUrl;
|
||||
|
||||
@Resource
|
||||
private IAppUserService appUserService;
|
||||
|
||||
|
|
@ -82,6 +85,9 @@ public class UserController extends ControllerBase {
|
|||
@Resource
|
||||
private IAdminMessageService adminMessageService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemTranslateService dictionaryItemTranslateService;
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
* @return 用户信息
|
||||
|
|
@ -259,11 +265,15 @@ public class UserController extends ControllerBase {
|
|||
@Transactional
|
||||
@PostMapping("forgetPassword")
|
||||
public ApiResult<Void> forgetPassword(@Valid @RequestParam @NotBlank String email) {
|
||||
String password = RandomUtil.randomString(6);
|
||||
AppUser appUser=appUserService.forgetPassword(email, password);
|
||||
try {
|
||||
String password = RandomUtil.randomString(6);
|
||||
appUserService.forgetPassword(email, password);
|
||||
emailService.sendEmail(email, "忘记密码",
|
||||
"随机码为:" + password + ",点击链接激活账号: " + activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()));
|
||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_RESET_PASSWORD, appUser.getLanguageCode());
|
||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_RESET_PASSWORD_NOTIFY, appUser.getLanguageCode())
|
||||
.replace("${loginName}",appUser.getLoginName())
|
||||
.replace("${url}",activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()))
|
||||
.replace("${password}",password);
|
||||
emailService.sendEmail(email, subject,content);
|
||||
} catch (Exception ex) {
|
||||
throw new NflgException(STATE.BusinessError, "发送邮件失败:" + ex.getMessage());
|
||||
}
|
||||
|
|
@ -281,9 +291,14 @@ public class UserController extends ControllerBase {
|
|||
try {
|
||||
for (Integer id : ids) {
|
||||
String password=RandomUtil.randomString(6);
|
||||
String email=appUserService.resetPassword(id,password);
|
||||
emailService.sendEmail(email, "密码重置",
|
||||
"随机码为:" + password + ",点击链接激活账号: " + activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(email.getBytes()));
|
||||
AppUser appUser=appUserService.resetPassword(id,password);
|
||||
String subject = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_RESET_PASSWORD, appUser.getLanguageCode());
|
||||
String content = dictionaryItemTranslateService.getValueByCode(Constant.DICTIONARY_EMAIL_NOTIFY, Constant.DICTIONARY_ITEM_EMAIL_CONTENT_RESET_PASSWORD_NOTIFY, appUser.getLanguageCode())
|
||||
.replace("${loginName}",appUser.getLoginName())
|
||||
.replace("${url}",activateUrl + "?code=" + Base64.getUrlEncoder().encodeToString(appUser.getEmail().getBytes()))
|
||||
.replace("${password}",password)
|
||||
.replace("${website}",websiteUrl);
|
||||
emailService.sendEmail(appUser.getEmail(), subject, content);
|
||||
}
|
||||
}catch (Exception ex){
|
||||
throw new NflgException(STATE.BusinessError,"发送邮件失败:"+ex.getMessage());
|
||||
|
|
|
|||
|
|
@ -42,6 +42,14 @@ public class Constant {
|
|||
|
||||
public static final String DICTIONARY_ITEM_EMAIL_CONTENT_TICKET_NOTIFY="TicketNotify";
|
||||
|
||||
public static final String DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_RESET_PASSWORD="TitleResetPassword";
|
||||
|
||||
public static final String DICTIONARY_ITEM_EMAIL_TITLE_ACCOUNT_ACTIVATION="TitleAccountActivation";
|
||||
|
||||
public static final String DICTIONARY_ITEM_EMAIL_CONTENT_RESET_PASSWORD_NOTIFY="ResetPassword";
|
||||
|
||||
public static final String DICTIONARY_ITEM_EMAIL_CONTENT_ACCOUNT_ACTIVATION_NOTIFY="AccountActivation";
|
||||
|
||||
/**
|
||||
* 事业部部长
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ public class TicketAddRequest {
|
|||
private String title;
|
||||
|
||||
//描述
|
||||
@NotBlank
|
||||
@Size(max = 500, message = "描述长度不能超过500")
|
||||
private String description;
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ public class AppUserApplyforInfoVO {
|
|||
private String avatar;
|
||||
|
||||
//申请类型,0:新增账号;1:账号启用,2:账号延期
|
||||
private Integer type;
|
||||
private Byte type;
|
||||
|
||||
//公司名称
|
||||
private String companyName;
|
||||
|
|
|
|||
|
|
@ -81,6 +81,9 @@ public class AppUserForAdminVO {
|
|||
*/
|
||||
private String languageCode;
|
||||
|
||||
//职位
|
||||
private String title;
|
||||
|
||||
//下级账号
|
||||
private List<AppUserForAdminVO> children;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MenuVO {
|
||||
|
||||
private Integer id;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public interface IAdminUserService extends IService<AdminUser> {
|
|||
|
||||
AdminUser getUser(String userName, String password);
|
||||
|
||||
void add(AccountAddRequest request);
|
||||
AdminUser add(AccountAddRequest request);
|
||||
|
||||
void update(AccountUpdateRequest request);
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ public interface IAdminUserService extends IService<AdminUser> {
|
|||
|
||||
void authorizeRole(AuthorizeRoleRequest request);
|
||||
|
||||
String resetPassword(Integer id, String password);
|
||||
AdminUser resetPassword(Integer id, String password);
|
||||
|
||||
void setAvatar(Integer userId, String avatar);
|
||||
|
||||
|
|
@ -40,7 +40,7 @@ public interface IAdminUserService extends IService<AdminUser> {
|
|||
|
||||
void activateUser(UserActivateRequest request);
|
||||
|
||||
void forgetPassword(String email, String password);
|
||||
AdminUser forgetPassword(String email, String password);
|
||||
|
||||
List<AdminUser> getByTitleCode(String titleCode);
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public interface IAppUserService extends IService<AppUser> {
|
|||
|
||||
void disable(Integer id);
|
||||
|
||||
String resetPassword(Integer id, String password);
|
||||
AppUser resetPassword(Integer id, String password);
|
||||
|
||||
IPage<CompanyVO> search(UserSearchRequest request);
|
||||
|
||||
|
|
@ -33,7 +33,7 @@ public interface IAppUserService extends IService<AppUser> {
|
|||
|
||||
AppUserVO getInfo(Integer userId);
|
||||
|
||||
void addPrimaryAppUser(PrimaryAppUserAddRequest request);
|
||||
AppUser addPrimaryAppUser(PrimaryAppUserAddRequest request);
|
||||
|
||||
void updatePrimaryAppUser(PrimaryAppUserUpdateRequest request);
|
||||
|
||||
|
|
@ -51,7 +51,7 @@ public interface IAppUserService extends IService<AppUser> {
|
|||
|
||||
void activateUser(UserActivateRequest request);
|
||||
|
||||
void forgetPassword(String email, String password);
|
||||
AppUser forgetPassword(String email, String password);
|
||||
|
||||
AppUser getPrimaryByCompanyId(String companyId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,14 +12,18 @@ import com.nflg.mobilebroken.common.pojo.vo.ButtonVO;
|
|||
import com.nflg.mobilebroken.common.pojo.vo.MenuVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.RoleVO;
|
||||
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminMenu;
|
||||
import com.nflg.mobilebroken.repository.entity.AdminRole;
|
||||
import com.nflg.mobilebroken.repository.mapper.AdminRoleMapper;
|
||||
import com.nflg.mobilebroken.repository.service.IAdminMenuService;
|
||||
import com.nflg.mobilebroken.repository.service.IAdminRoleService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -32,6 +36,9 @@ import java.util.List;
|
|||
@Service
|
||||
public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole> implements IAdminRoleService {
|
||||
|
||||
@Resource
|
||||
private IAdminMenuService menuService;
|
||||
|
||||
@Override
|
||||
public void add(RoleAddRequest request) {
|
||||
AdminRole adminRole = new AdminRole()
|
||||
|
|
@ -75,7 +82,22 @@ public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole
|
|||
if (CollectionUtil.isEmpty(roleCodes)){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return baseMapper.getMenusByRoleCodes(roleCodes);
|
||||
List<MenuVO> menus=baseMapper.getMenusByRoleCodes(roleCodes);
|
||||
for (int i = 0; i < menus.size(); i++) {
|
||||
MenuVO menu = menus.get(i);
|
||||
bindParent(menu, menus);
|
||||
}
|
||||
return menus;
|
||||
}
|
||||
|
||||
private void bindParent(MenuVO menu,List<MenuVO> datas){
|
||||
if (!Objects.equals(0,menu.getParentId())){
|
||||
AdminMenu mp=menuService.getById(menu.getParentId());
|
||||
if (datas.stream().noneMatch(d->Objects.equals(d.getId(),mp.getId()))){
|
||||
MenuVO m=new MenuVO().setId(mp.getId()).setName(mp.getName()).setUrl(mp.getUrl()).setComponent(mp.getComponent()).setParentId(mp.getParentId());
|
||||
datas.add(m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
}
|
||||
|
||||
@Override
|
||||
public void add(AccountAddRequest request) {
|
||||
public AdminUser add(AccountAddRequest request) {
|
||||
VUtils.trueThrowBusinessError(lambdaQuery().eq(AdminUser::getLoginName, request.getLoginName()).exists())
|
||||
.throwMessage("已存在登录名为"+request.getLoginName()+"的账号");
|
||||
AdminUser user = new AdminUser()
|
||||
|
|
@ -83,6 +83,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
.setCreateBy(AdminUserUtil.getUserId())
|
||||
.setCreateTime(LocalDateTime.now());
|
||||
save(user);
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -172,7 +173,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
}
|
||||
|
||||
@Override
|
||||
public String resetPassword(Integer id, String password) {
|
||||
public AdminUser resetPassword(Integer id, String password) {
|
||||
String encodePassword = PASSWORDENCODER.encode(password);
|
||||
AdminUser user = getById(id);
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(user)).throwMessage("用户不存在");
|
||||
|
|
@ -180,7 +181,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
user.setUpdateTime(LocalDateTime.now());
|
||||
user.setState(UserState.ToBeActivated.getState());
|
||||
updateById(user);
|
||||
return user.getEmail();
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -223,7 +224,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
}
|
||||
|
||||
@Override
|
||||
public void forgetPassword(String email, String password) {
|
||||
public AdminUser forgetPassword(String email, String password) {
|
||||
String encodePassword = PASSWORDENCODER.encode(password);
|
||||
AdminUser user = lambdaQuery().eq(AdminUser::getLoginName, email).one();
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(user)).throwMessage("用户不存在");
|
||||
|
|
@ -233,6 +234,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
user.setPassword(encodePassword);
|
||||
user.setUpdateTime(LocalDateTime.now());
|
||||
updateById(user);
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -50,16 +50,12 @@ public class AppAreaServiceImpl extends ServiceImpl<AppAreaMapper, AppArea> impl
|
|||
|
||||
@Override
|
||||
public IPage<AreaVO> search(AreaSearchRequest request) {
|
||||
if (StrUtil.isBlank(request.getName())) {
|
||||
if (StrUtil.isBlank(request.getName()) && Objects.isNull(request.getEnabled())) {
|
||||
return getPage(request);
|
||||
}else {
|
||||
LambdaQueryWrapper<AppArea> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (StrUtil.isNotBlank(request.getName())) {
|
||||
queryWrapper.like(AppArea::getName, request.getName());
|
||||
}
|
||||
if (Objects.nonNull(request.getEnabled())) {
|
||||
queryWrapper.eq(AppArea::getEnable, request.getEnabled());
|
||||
}
|
||||
queryWrapper.like(StrUtil.isNotBlank(request.getName()),AppArea::getName, request.getName());
|
||||
queryWrapper.eq(Objects.nonNull(request.getEnabled()),AppArea::getEnable, request.getEnabled());
|
||||
queryWrapper.orderByDesc(AppArea::getId);
|
||||
List<AppArea> list = baseMapper.selectList(queryWrapper);
|
||||
//找出非根节点
|
||||
|
|
|
|||
|
|
@ -14,15 +14,9 @@ import com.nflg.mobilebroken.common.pojo.vo.AppUserVO;
|
|||
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||
import com.nflg.mobilebroken.common.util.AppUserUtil;
|
||||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.AppArea;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUser;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUserApplyfor;
|
||||
import com.nflg.mobilebroken.repository.entity.TBasePosition;
|
||||
import com.nflg.mobilebroken.repository.entity.*;
|
||||
import com.nflg.mobilebroken.repository.mapper.AppUserApplyforMapper;
|
||||
import com.nflg.mobilebroken.repository.service.IAppAreaService;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserApplyforService;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBasePositionService;
|
||||
import com.nflg.mobilebroken.repository.service.*;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -54,6 +48,9 @@ public class AppUserApplyforServiceImpl extends ServiceImpl<AppUserApplyforMappe
|
|||
@Resource
|
||||
private ITBasePositionService positionService;
|
||||
|
||||
@Resource
|
||||
private ITBaseCustomerService customerService;
|
||||
|
||||
@Override
|
||||
public AppUserApplyfor add(AddUserRequest request) {
|
||||
VUtils.trueThrowBusinessError(appUserService.lambdaQuery().eq(AppUser::getEmail, request.getEmail()).exists())
|
||||
|
|
@ -115,13 +112,17 @@ public class AppUserApplyforServiceImpl extends ServiceImpl<AppUserApplyforMappe
|
|||
AppArea area = appAreaService.getById(applyfor.getAreaId());
|
||||
TBasePosition position = positionService.getById(applyfor.getTitleId());
|
||||
String titleName = Objects.isNull(position) ? "" : position.getPositionName();
|
||||
TBaseCustomer customer =customerService.getById(applyfor.getCompanyId());
|
||||
vo.setApplyfor(new AppUserApplyforInfoVO()
|
||||
.setType(applyfor.getType())
|
||||
.setAreaName(area.getName())
|
||||
.setPhone(applyfor.getUserPhone())
|
||||
.setEmail(applyfor.getUserEmail())
|
||||
.setAvatar(applyfor.getUserAvatar())
|
||||
.setUserName(applyfor.getUserName())
|
||||
.setTitleName(titleName)
|
||||
.setPhone(applyfor.getUserPhone())
|
||||
.setCompanyName(customer.getAgencyCompanyName())
|
||||
.setReason(applyfor.getReason())
|
||||
.setCreateTime(applyfor.getCreateTime()));
|
||||
AppUser appUser = appUserService.getById(applyfor.getCreateBy());
|
||||
|
|
@ -129,6 +130,7 @@ public class AppUserApplyforServiceImpl extends ServiceImpl<AppUserApplyforMappe
|
|||
vo.setUser(new AppUserVO()
|
||||
.setAreaName(area.getName())
|
||||
.setSalesUserName(appUser.getSalesUserName())
|
||||
.setState(1)
|
||||
.setExpireTime(appUser.getExpireTime())
|
||||
.setEmail(appUser.getEmail())
|
||||
.setName(appUser.getName())
|
||||
|
|
|
|||
|
|
@ -59,7 +59,10 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
private IAdminUserService adminUserService;
|
||||
|
||||
@Resource
|
||||
private ILanguageService languageService;
|
||||
private ITBasePositionService positionService;
|
||||
|
||||
@Resource
|
||||
private ITBaseAreaService adminAreaService;
|
||||
|
||||
@Override
|
||||
public AppUser getUser(String userName, String password) {
|
||||
|
|
@ -83,7 +86,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public String resetPassword(Integer id, String password) {
|
||||
public AppUser resetPassword(Integer id, String password) {
|
||||
String encodePassword=PASSWORDENCODER.encode(password);
|
||||
AppUser user=getById(id);
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(user)).throwMessage("用户不存在");
|
||||
|
|
@ -91,7 +94,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
user.setPassword(encodePassword);
|
||||
user.setUpdateTime(LocalDateTime.now());
|
||||
updateById(user);
|
||||
return user.getEmail();
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -130,7 +133,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public void addPrimaryAppUser(PrimaryAppUserAddRequest request) {
|
||||
public AppUser addPrimaryAppUser(PrimaryAppUserAddRequest request) {
|
||||
VUtils.trueThrowBusinessError(lambdaQuery().eq(AppUser::getLoginName, request.getLoginName()).exists())
|
||||
.throwMessage("登录名已存在");
|
||||
List<Integer> companyIds = lambdaQuery()
|
||||
|
|
@ -167,6 +170,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
.setState(UserState.ToBeActivated.getState())
|
||||
.setExpireTime(LocalDateTime.of(LocalDateTime.now().getYear(), 12, 31, 0, 0, 0).toLocalDate());
|
||||
save(user);
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -234,7 +238,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
.like(StrUtil.isNotBlank(request.getName()), AppUser::getName, request.getName())
|
||||
.page(new Page<>(request.getPage(), request.getPageSize()));
|
||||
return PageUtil.convert(page, d -> {
|
||||
AppArea area = appAreaService.getById(d.getAreaId());
|
||||
TBaseArea area = adminAreaService.getById(d.getAreaId());
|
||||
String createBy = "";
|
||||
if (d.getIsPrimary()) {
|
||||
if (Objects.nonNull(d.getCreateBy())) {
|
||||
|
|
@ -267,7 +271,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
.setPhone(d.getPhone())
|
||||
.setAreaId(d.getAreaId())
|
||||
.setSalesUserName(d.getSalesUserName())
|
||||
.setAreaName(area.getName())
|
||||
.setAreaName(area.getAreaName())
|
||||
.setUserState(d.getState())
|
||||
.setExpireTime(d.getExpireTime())
|
||||
.setCreateBy(createBy)
|
||||
|
|
@ -329,15 +333,18 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
if (Objects.nonNull(d.getUpdateBy())) {
|
||||
updateBy = getById(d.getUpdateBy()).getName();
|
||||
}
|
||||
TBaseCustomer customer=customerService.getById(d.getCompanyId());
|
||||
TBasePosition title=positionService.getById(d.getTitleId());
|
||||
return new AppUserForAdminVO()
|
||||
.setKey("u-" + d.getId())
|
||||
.setId(d.getId())
|
||||
.setAvatar(d.getAvatar())
|
||||
.setLoginName(d.getLoginName())
|
||||
.setUserName(d.getName())
|
||||
.setCompanyName(d.getCompanyId())
|
||||
.setCompanyName(customer.getAgencyCompanyName())
|
||||
.setName(d.getName())
|
||||
.setEmail(d.getEmail())
|
||||
.setTitle(title.getPositionName())
|
||||
.setLanguageCode(d.getLanguageCode())
|
||||
.setSalesUserName(d.getSalesUserName())
|
||||
.setAreaName(area.getName())
|
||||
|
|
@ -473,7 +480,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
}
|
||||
|
||||
@Override
|
||||
public void forgetPassword(String email, String password) {
|
||||
public AppUser forgetPassword(String email, String password) {
|
||||
String encodePassword = PASSWORDENCODER.encode(password);
|
||||
AppUser user = lambdaQuery().eq(AppUser::getLoginName, email).one();
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(user)).throwMessage("用户不存在");
|
||||
|
|
@ -483,6 +490,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
user.setPassword(encodePassword);
|
||||
user.setUpdateTime(LocalDateTime.now());
|
||||
updateById(user);
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public class DictionaryItemServiceImpl extends ServiceImpl<DictionaryItemMapper,
|
|||
.setCreateBy(AdminUserUtil.getUserName())
|
||||
.setCreateTime(LocalDateTime.now());
|
||||
save(dictionaryItem);
|
||||
id = dictionary.getId();
|
||||
id = dictionaryItem.getId();
|
||||
} else {
|
||||
DictionaryItem dictionaryItem = new DictionaryItem()
|
||||
.setId(request.getId())
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
</select>
|
||||
|
||||
<select id="getMenusByRoleCodes" resultType="com.nflg.mobilebroken.common.pojo.vo.MenuVO">
|
||||
SELECT DISTINCT m.id,m.`name`,m.url,m.component
|
||||
SELECT DISTINCT m.id,m.`name`,m.url,m.component,m.parent_id AS 'parentId'
|
||||
FROM admin_role r
|
||||
INNER JOIN admin_role_menu_map rmm ON r.id=rmm.role_id
|
||||
INNER JOIN admin_menu m ON rmm.menu_id=m.id
|
||||
|
|
|
|||
|
|
@ -72,11 +72,12 @@
|
|||
</sql>
|
||||
|
||||
<select id="searchMy" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
|
||||
SELECT t.*,a.`name` AS 'areaName',IF(tf.id IS NULL, false, true) AS 'followed',u.`name` AS 'createBy'
|
||||
SELECT t.*,IF(u.is_primary,a1.area_name,a2.`name`) AS 'areaName',IF(tf.id IS NULL, false, true) AS 'followed',u.`name` AS 'createBy'
|
||||
,IF(tf.id IS NULL, false, true) AS 'followed',t.handle
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
LEFT JOIN t_base_area a1 ON u.area_id=a1.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=0
|
||||
WHERE t.user_id=#{userId} AND t.state!=4
|
||||
<include refid="searchWhereCondition"/>
|
||||
|
|
@ -84,10 +85,11 @@
|
|||
</select>
|
||||
|
||||
<select id="searchFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
|
||||
SELECT t.*,a.`name` AS 'areaName',true AS 'followed',u.`name` AS 'createBy',true AS 'followed',t.handle
|
||||
SELECT t.*,IF(u.is_primary,a1.area_name,a2.`name`) AS 'areaName',true AS 'followed',u.`name` AS 'createBy',true AS 'followed',t.handle
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
LEFT JOIN t_base_area a1 ON u.area_id=a1.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.from=0
|
||||
WHERE tf.user_id=#{userId} AND t.state!=4
|
||||
<include refid="searchWhereCondition"/>
|
||||
|
|
@ -95,10 +97,11 @@
|
|||
</select>
|
||||
|
||||
<select id="searchArea" resultType="com.nflg.mobilebroken.common.pojo.vo.TicketVO">
|
||||
SELECT t.*,a.`name` AS 'areaName',u.`name` AS 'createBy',t.handle
|
||||
SELECT t.*,IF(u.is_primary,a1.area_name,a2.`name`) AS 'areaName',u.`name` AS 'createBy',t.handle
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN t_base_area a1 ON u.area_id=a1.id
|
||||
LEFT JOIN app_area a2 ON u.area_id=a2.id
|
||||
WHERE t.state!=4 AND u.company_id IN
|
||||
<foreach collection="companyIds" item="companyId" open="(" separator="," close=")">
|
||||
#{companyId}
|
||||
|
|
@ -108,14 +111,15 @@
|
|||
</select>
|
||||
|
||||
<select id="searchFromAdmin" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName'
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,IF(u.is_primary,a1.area_name,a2.`name`) AS 'areaName'
|
||||
,d.customer_name AS 'companyName',u.company_id AS 'companyId',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',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',t.cqm
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
LEFT JOIN t_base_area a1 ON u.area_id=a1.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 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
|
||||
|
|
@ -133,13 +137,14 @@
|
|||
<!-- </select>-->
|
||||
|
||||
<select id="searchAllFromAdmin" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName'
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,IF(u.is_primary,a1.area_name,a2.`name`) AS 'areaName'
|
||||
,d.customer_name AS 'companyName',u.company_id AS 'companyId',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
LEFT JOIN t_base_area a1 ON u.area_id=a1.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 dictionary_item di ON d.warranty_state=di.id
|
||||
<include refid="adminSearchWhereCondition"/>
|
||||
|
|
@ -147,14 +152,15 @@
|
|||
</select>
|
||||
|
||||
<select id="searchFromAdminAndFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName'
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,IF(u.is_primary,a1.area_name,a2.`name`) AS 'areaName'
|
||||
,d.customer_name AS 'companyName',u.company_id AS 'companyId',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',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',t.cqm
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
LEFT JOIN t_base_area a1 ON u.area_id=a1.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 dictionary_item di ON d.warranty_state=di.id
|
||||
|
|
@ -163,13 +169,14 @@
|
|||
</select>
|
||||
|
||||
<select id="searchAllFromAdminAndFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName'
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,IF(u.is_primary,a1.area_name,a2.`name`) AS 'areaName'
|
||||
,d.customer_name AS 'companyName',u.company_id AS 'companyId',u.`name` AS 'createBy',t.device_no AS 'deviceNo',t.use_time AS 'useTime'
|
||||
,t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime',di.name AS 'warrantyStatusDesc',IF(tf.id IS NULL, false, true) AS 'followed'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
LEFT JOIN t_base_area a1 ON u.area_id=a1.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 dictionary_item di ON d.warranty_state=di.id
|
||||
|
|
|
|||
Loading…
Reference in New Issue