|
|
@@ -21,6 +21,7 @@ import com.cyksj.mapper.GroupsMapper;
|
|
|
import com.cyksj.mapper.HomeGroupMapper;
|
|
|
import com.cyksj.mapper.UserMapper;
|
|
|
import com.cyksj.mapper.UserTicketClearedRecordMapper;
|
|
|
+import com.cyksj.mapper.manage.cms.CmsUserMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.excel.ExcelImportAccountData;
|
|
|
import com.cyksj.model.excel.ExcelManageAccountData;
|
|
|
@@ -29,10 +30,12 @@ import com.cyksj.model.manage.views.AccountView;
|
|
|
import com.cyksj.model.manage.views.GroupsRelationView;
|
|
|
import com.cyksj.model.response.ExpiredAccountRep;
|
|
|
import com.cyksj.model.response.OrderDonAccountRep;
|
|
|
+import com.cyksj.model.views.CustomerServiceUpdatePwdDetail;
|
|
|
import com.cyksj.model.views.GoodsDonSkuView;
|
|
|
import com.cyksj.model.views.UserTicketClearedRecordView;
|
|
|
import com.cyksj.service.mange.CmsAccountService;
|
|
|
import com.cyksj.service.mange.CmsGroupService;
|
|
|
+import com.cyksj.service.mange.cms.CmsUserManager;
|
|
|
import com.cyksj.service.template.TemplateCommonService;
|
|
|
import com.cyksj.web.util.EasyExcelUtils;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
@@ -51,7 +54,9 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
import java.util.Set;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -82,6 +87,10 @@ public class CmsAccountController {
|
|
|
|
|
|
private final UserMapper userMapper;
|
|
|
|
|
|
+ private final CmsUserMapper cmsUserMapper;
|
|
|
+
|
|
|
+ private final CmsUserManager cmsUserManager;
|
|
|
+
|
|
|
@GetMapping("/get")
|
|
|
@SaCheckPermission("account:view")
|
|
|
public Result<SearchResult<AccountView>> get(Long userId ,String nickName ,String submitAccount ,String expiryStartTime, String expiryEndTime) {
|
|
|
@@ -115,6 +124,10 @@ public class CmsAccountController {
|
|
|
.orderBy(AccountUpdatePasswordRecord::getId)
|
|
|
.build());
|
|
|
accountView.setUpdatePwdNum(recordList.size());
|
|
|
+ if (accountView.getCustomerServiceId() != 0) {
|
|
|
+ CmsUser cmsUser = cmsUserMapper.selectById(accountView.getCustomerServiceId());
|
|
|
+ Optional.ofNullable(cmsUser).ifPresent(customer -> accountView.setCustomerServiceName(cmsUser.getNickname()));
|
|
|
+ }
|
|
|
if (recordList.size() > 0) {
|
|
|
accountView.setLastUpdatePwdDate(recordList.get(0).getCreatedTime());
|
|
|
}
|
|
|
@@ -190,6 +203,7 @@ public class CmsAccountController {
|
|
|
String new_pass = data.getPassword();
|
|
|
if (StrUtil.isNotBlank(new_pass) && !new_pass.trim().equals(account.getPassword())) {
|
|
|
account.setPassword(new_pass.trim());
|
|
|
+ account.setCustomerServiceId(0l);
|
|
|
flag = true;
|
|
|
isUpdatePwd = true;
|
|
|
//发放模板消息
|
|
|
@@ -315,7 +329,13 @@ public class CmsAccountController {
|
|
|
}
|
|
|
long userId = StpUtil.getLoginIdAsLong();
|
|
|
if (!db.getPassword().equals(account.getPassword())) {
|
|
|
+ account.setCustomerServiceId(0l);
|
|
|
accountService.saveRecord(userId, account.getId(), db.getPassword(), account.getPassword(), "操作编辑");
|
|
|
+
|
|
|
+ //清空过期账号 逻辑删除
|
|
|
+ userTicketClearedRecordMapper.update(null, Wrappers.lambdaUpdate(UserTicketClearedRecord.class)
|
|
|
+ .set(UserTicketClearedRecord::getDeleted, false)
|
|
|
+ .eq(UserTicketClearedRecord::getAccountId, account.getId()));
|
|
|
}
|
|
|
if (StrUtil.isNotBlank(account.getAccount())){
|
|
|
account.setAccount(account.getAccount().trim());
|
|
|
@@ -351,6 +371,7 @@ public class CmsAccountController {
|
|
|
String updatePWd = account.getPassword().trim();
|
|
|
if (!oldPwd.equals(updatePWd)) {
|
|
|
db.setPassword(updatePWd);
|
|
|
+ db.setCustomerServiceId(0l);
|
|
|
accountService.updateById(db);
|
|
|
//记录
|
|
|
accountService.saveRecord(userId, account.getId(), oldPwd, updatePWd, "多选修改密码");
|
|
|
@@ -504,11 +525,14 @@ public class CmsAccountController {
|
|
|
String new_pass = accountReq.getPassword();
|
|
|
if (StrUtil.isNotBlank(new_pass) && !new_pass.trim().equals(account.getPassword())) {
|
|
|
account.setPassword(new_pass.trim());
|
|
|
+ account.setCustomerServiceId(0l);
|
|
|
flag = true;
|
|
|
//发放模板消息
|
|
|
templateCommonService.sendAccountTemplateMsg(account);
|
|
|
//记录操作日志
|
|
|
accountService.recordAutoUpdatePwd(account.getId(), account.getAccount(), oldPwd, new_pass, ServletUtil.getClientIP(request));
|
|
|
+ //记录
|
|
|
+ accountService.saveRecord(0l, account.getId(), oldPwd, new_pass, "自动修改密码");
|
|
|
}
|
|
|
if (flag) {
|
|
|
accountService.updateById(account);
|
|
|
@@ -516,4 +540,35 @@ public class CmsAccountController {
|
|
|
}
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 客服需要修改密码详情
|
|
|
+ */
|
|
|
+ @GetMapping("/get/updatePwd/num")
|
|
|
+ public Result<CustomerServiceUpdatePwdDetail> updatePwdDetails() {
|
|
|
+ long userId = StpUtil.getLoginIdAsLong();
|
|
|
+ CmsUser user = cmsUserManager.getUser(userId);
|
|
|
+ MapBuilder builder = MapUtils.builder();
|
|
|
+ if (user != null && user.getRoleNames() != null && user.getRoleNames().contains("客服")) {
|
|
|
+ builder.field(AccountView::getCustomerServiceId, userId);
|
|
|
+ }
|
|
|
+ AtomicInteger numOfExpiredAccount = new AtomicInteger(0);
|
|
|
+
|
|
|
+ AtomicInteger numOfExpiredAllAccount = new AtomicInteger(0);
|
|
|
+
|
|
|
+ List<AccountView> accountViews = beanSearcher.searchAll(AccountView.class, builder.onlySelect(AccountView::getId, AccountView::getExpiryCount, AccountView::getExpiredAll).build());
|
|
|
+ accountViews.forEach(account -> {
|
|
|
+ if (account.getExpiryCount() > 0) {
|
|
|
+ numOfExpiredAccount.getAndAdd(1);
|
|
|
+ }
|
|
|
+ if (account.getExpiredAll()) {
|
|
|
+ numOfExpiredAllAccount.getAndAdd(1);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ CustomerServiceUpdatePwdDetail updatePwdDetail = new CustomerServiceUpdatePwdDetail();
|
|
|
+ updatePwdDetail.setNumOfExpiredAccount(numOfExpiredAccount.get());
|
|
|
+ updatePwdDetail.setNumOfExpiredAllAccount(numOfExpiredAllAccount.get());
|
|
|
+
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(updatePwdDetail);
|
|
|
+ }
|
|
|
}
|