feat(adminUser): 支持直销人员区域信息及报价编码生成
- 在 AccountAddRequest 中新增 List<Integer> areaIds 字段以支持区域列表 - 在 AdminUser 实体添加 areaIds 字段,多个区域以逗号分隔保存 - AdminUserController 中设置区域信息,并根据 categoryId 生成唯一报价编码 - 在 AdminUserServiceImpl 中校验直销人员必须选择区域,否则抛出业务异常 - 新增代码逻辑实现区域信息持久化及报价编码生成流程 - 优化查询代码格式,保持一致的代码风格
This commit is contained in:
parent
50901bf40e
commit
88f1e8779e
|
|
@ -18,10 +18,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.entity.TBaseDepartment;
|
||||
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.repository.service.*;
|
||||
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
|
||||
import com.nflg.mobilebroken.starter.service.EmailService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
|
@ -82,6 +79,9 @@ public class AdminUserController extends ControllerBase {
|
|||
@Resource
|
||||
private StringRedisTemplate stringRedisTemplate;
|
||||
|
||||
@Resource
|
||||
private IAdminBaseSerialNumberService serialNumberService;
|
||||
|
||||
/**
|
||||
* 获取部门列表
|
||||
* @return 部门列表
|
||||
|
|
@ -161,11 +161,16 @@ public class AdminUserController extends ControllerBase {
|
|||
.setGongFuHandler(request.isGongFuHandler())
|
||||
.setGongfu(StrUtil.contains(request.getProductLine(), Constant.MOBILE_BROKEN))
|
||||
.setCategoryId(request.getCategoryId())
|
||||
.setAreaIds(StrUtil.join(",", request.getAreaIds()))
|
||||
.setUpdateBy(AdminUserUtil.getUserId())
|
||||
.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());
|
||||
}
|
||||
if (Objects.nonNull(request.getCategoryId()) && StrUtil.isBlank(user.getQuotationCode())) {
|
||||
String quotationCode = serialNumberService.generateSerialNumber(0, "NF", "", false, 6);
|
||||
user.setQuotationCode(quotationCode);
|
||||
}
|
||||
adminUserService.updateById(user);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import lombok.Data;
|
|||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AccountAddRequest {
|
||||
|
|
@ -59,4 +60,9 @@ public class AccountAddRequest {
|
|||
* 直销类别(国内、国外),字典id
|
||||
*/
|
||||
private Long categoryId;
|
||||
|
||||
/**
|
||||
* 区域id列表
|
||||
*/
|
||||
private List<Integer> areaIds;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,6 +144,11 @@ public class AdminUser implements Serializable {
|
|||
*/
|
||||
private String quotationCode;
|
||||
|
||||
/**
|
||||
* 区域id,多个用逗号分隔
|
||||
*/
|
||||
private String areaIds;
|
||||
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
|
|
|
|||
|
|
@ -97,6 +97,8 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
.exists()
|
||||
)
|
||||
.throwMessage("部门已存在负责人");
|
||||
VUtils.trueThrowBusinessError(Objects.nonNull(request.getCategoryId()) && CollectionUtil.isEmpty(request.getAreaIds()))
|
||||
.throwMessage("直销人员需要选择区域");
|
||||
AdminUser user = lambdaQuery().eq(AdminUser::getLoginName, request.getLoginName()).one();
|
||||
if (Objects.nonNull(user)) {
|
||||
VUtils.trueThrowBusinessError(!user.getIsDel())
|
||||
|
|
@ -113,11 +115,15 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
.setGongFuHandler(request.isGongFuHandler())
|
||||
.setGongfu(StrUtil.contains(request.getProductLine(), Constant.MOBILE_BROKEN))
|
||||
.setCategoryId(request.getCategoryId())
|
||||
.setAreaIds(StrUtil.join(",", request.getAreaIds()))
|
||||
.setUpdateBy(AdminUserUtil.getUserId())
|
||||
.setUpdateTime(LocalDateTime.now());
|
||||
if (Objects.nonNull(request.getCategoryId()) && StrUtil.isBlank(user.getQuotationCode())) {
|
||||
String quotationCode = serialNumberService.generateSerialNumber(0, "NF", "", false, 6);
|
||||
user.setQuotationCode(quotationCode);
|
||||
}
|
||||
updateById(user);
|
||||
} else {
|
||||
String quotationCode = serialNumberService.generateSerialNumber(0, "NF", "", false, 6);
|
||||
user = new AdminUser()
|
||||
.setUserCode(request.getUserCode())
|
||||
.setUserName(request.getUserName())
|
||||
|
|
@ -132,9 +138,13 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
.setGongfu(StrUtil.contains(request.getProductLine(), Constant.MOBILE_BROKEN))
|
||||
.setCategoryId(request.getCategoryId())
|
||||
.setTitleId(request.getTitleId())
|
||||
.setQuotationCode(quotationCode)
|
||||
.setAreaIds(StrUtil.join(",", request.getAreaIds()))
|
||||
.setCreateBy(AdminUserUtil.getUserId())
|
||||
.setCreateTime(LocalDateTime.now());
|
||||
if (Objects.nonNull(request.getCategoryId())) {
|
||||
String quotationCode = serialNumberService.generateSerialNumber(0, "NF", "", false, 6);
|
||||
user.setQuotationCode(quotationCode);
|
||||
}
|
||||
save(user);
|
||||
}
|
||||
departmentService.lambdaUpdate()
|
||||
|
|
@ -186,8 +196,8 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
List<DictionaryItem> categories = CollectionUtil.isEmpty(categoryIds) ? Collections.emptyList() : dictionaryItemService.lambdaQuery()
|
||||
.in(DictionaryItem::getId, categoryIds)
|
||||
.list();
|
||||
.in(DictionaryItem::getId, categoryIds)
|
||||
.list();
|
||||
pageData.setItems(page.getRecords().stream().map(u -> {
|
||||
AdminUser userCreate = users.stream()
|
||||
.filter(it -> Objects.equals(it.getId(), u.getCreateBy()))
|
||||
|
|
|
|||
Loading…
Reference in New Issue