feat: 一些调整
This commit is contained in:
parent
148ff6dbb0
commit
5684456193
|
|
@ -1,5 +1,7 @@
|
|||
package com.nflg.mobilebroken.admin.controller;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import com.nflg.mobilebroken.common.constant.AppUserApplyforType;
|
||||
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
||||
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||
|
|
@ -7,14 +9,18 @@ import com.nflg.mobilebroken.common.pojo.vo.AppUserApplyforVO;
|
|||
import com.nflg.mobilebroken.common.pojo.vo.AppUserForAdminVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.CompanySimpleVO;
|
||||
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.starter.annotation.MethodInfoMark;
|
||||
import com.nflg.mobilebroken.starter.service.EmailService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.mail.MessagingException;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
|
@ -24,6 +30,7 @@ import java.util.List;
|
|||
*
|
||||
* @author 曹鹏飞
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/appuser")
|
||||
public class AppUserController extends ControllerBase {
|
||||
|
|
@ -40,6 +47,9 @@ public class AppUserController extends ControllerBase {
|
|||
@Resource
|
||||
private IAppUserApplyforService appUserApplyforService;
|
||||
|
||||
@Resource
|
||||
private EmailService emailService;
|
||||
|
||||
/**
|
||||
* 获取公司列表
|
||||
*
|
||||
|
|
@ -105,7 +115,16 @@ public class AppUserController extends ControllerBase {
|
|||
@PostMapping("approveAppUserApplyfor")
|
||||
@MethodInfoMark(value = "代理商子账号审核", menuName = "代理商管理")
|
||||
public ApiResult<Void> approveAppUserApplyfor(@Valid @RequestBody ApproveAppUserApplyforRequest request) {
|
||||
request.setPassword(RandomUtil.randomNumbers(6));
|
||||
appUserApplyforService.approveAppUserApplyfor(request);
|
||||
AppUserApplyfor applyfor = appUserApplyforService.getById(request.getId());
|
||||
if (applyfor.getType() == AppUserApplyforType.ADD.getState().byteValue()) {
|
||||
try {
|
||||
emailService.sendEmail(applyfor.getUserEmail(), "账号审核通过", "您的账号审核通过,密码为:" + request.getPassword());
|
||||
} catch (MessagingException e) {
|
||||
log.error("发送邮件失败", e);
|
||||
}
|
||||
}
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.nflg.mobilebroken.admin.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
@ -18,6 +19,7 @@ import com.nflg.mobilebroken.common.pojo.vo.DictionaryItemVO;
|
|||
import com.nflg.mobilebroken.common.pojo.vo.DictionaryVO;
|
||||
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||
import com.nflg.mobilebroken.common.util.EecExcelUtil;
|
||||
import com.nflg.mobilebroken.common.util.PageUtil;
|
||||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.DictionaryItemTranslate;
|
||||
import com.nflg.mobilebroken.repository.entity.Language;
|
||||
|
|
@ -106,18 +108,13 @@ public class DictionaryController extends ControllerBase {
|
|||
|
||||
/**
|
||||
* 搜索字典值
|
||||
*
|
||||
* @param request 请求参数
|
||||
* @return 字典列表
|
||||
*/
|
||||
@PostMapping("searchDictionaryItem")
|
||||
@MethodInfoMark(value = "搜索字典值", menuName = "字典管理")
|
||||
public ApiResult<PageData<DictionaryItemVO>> searchDictionaryItem(@RequestBody DictionaryItemSearchRequest request) {
|
||||
IPage<DictionaryItemVO> page = new Page<>();
|
||||
page.setCurrent(request.getPage());
|
||||
page.setSize(request.getPageSize());
|
||||
dictionaryItemService.search(request, page);
|
||||
return ApiResult.success(page);
|
||||
return ApiResult.success(PageUtil.convert(dictionaryItemService.search(request), d -> Convert.convert(DictionaryItemVO.class, d)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,22 +2,22 @@ package com.nflg.mobilebroken.cfs.controller;
|
|||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
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.AppUserVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.CompanySimpleVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.TitleVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.*;
|
||||
import com.nflg.mobilebroken.common.util.AppUserUtil;
|
||||
import com.nflg.mobilebroken.common.util.MultilingualUtil;
|
||||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUser;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserApplyforService;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||
import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseCustomerService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBasePositionService;
|
||||
import com.nflg.mobilebroken.starter.service.EmailService;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -25,10 +25,11 @@ import org.springframework.web.bind.annotation.*;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 用户相关接口
|
||||
|
|
@ -55,7 +56,7 @@ public class UserController extends ControllerBase {
|
|||
private ITBaseCustomerService customerService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemTranslateService dictionaryItemTranslateService;
|
||||
ITBasePositionService positionService;
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
|
|
@ -99,8 +100,15 @@ public class UserController extends ControllerBase {
|
|||
**/
|
||||
@GetMapping("getTitles")
|
||||
//@SaUserCheckRole("primary")
|
||||
public ApiResult<List<TitleVO>> getTitles(@RequestParam @NotBlank(message = "语言不能为空") String language){
|
||||
return ApiResult.success(dictionaryItemTranslateService.getTitles(language));
|
||||
public ApiResult<List<TitleVO>> getTitles() {
|
||||
List<TitleSimpleVO> datas = positionService.getSimpleTitles(2);
|
||||
String language = MultilingualUtil.getLanguage();
|
||||
List<TitleVO> list = datas.stream().map(d -> {
|
||||
List<PositionLanguageVO> lvos = JSONUtil.toList(d.getPositionLanguage(), PositionLanguageVO.class);
|
||||
PositionLanguageVO lvo = lvos.stream().filter(l -> StrUtil.equals(l.getCode(), language)).findFirst().orElse(null);
|
||||
return new TitleVO().setId(d.getId()).setName(d.getName()).setValue(Objects.isNull(lvo) ? d.getName() : lvo.getLanguageValue());
|
||||
}).collect(Collectors.toList());
|
||||
return ApiResult.success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -10,15 +10,10 @@ public class Constant {
|
|||
|
||||
public static final String DICTIONARY_TYPE_EXPERIENCE_EVALUATION_SELECT = "ExperienceEvaluationSelect";
|
||||
|
||||
//字典 类型 用户职位
|
||||
public static final String DICTIONARY_TYPE_TITLE="UserTitle";
|
||||
|
||||
public static final String DICTIONARY_TYPE_TITLE_CQM = "CQM";
|
||||
|
||||
public static final String REDIS_KEY_USER_UPDATE_KAPTCHA = "kaptcha:userupdate:{}";
|
||||
|
||||
public static final String DICTIONARY_TYPE_SYSTEMERROR_CQMNOTCONFIG = "CQMNotConfig";
|
||||
|
||||
public static final String REDIS_KEY_MESSAGECONFIG_WX = "wxNotifyEnabled";
|
||||
|
||||
public static final String REDIS_KEY_MESSAGECONFIG_EMAIL = "emailNotifyEnabled";
|
||||
|
|
|
|||
|
|
@ -28,10 +28,6 @@ public class AddUserRequest {
|
|||
@NotBlank(message = "邮箱不能为空")
|
||||
private String email;
|
||||
|
||||
//密码
|
||||
@NotBlank(message = "密码不能为空")
|
||||
private String password;
|
||||
|
||||
//手机号
|
||||
private String phone;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
|
|
@ -9,4 +10,7 @@ public class ApproveAppUserApplyforRequest {
|
|||
|
||||
// 通过/不通过
|
||||
private Boolean pass;
|
||||
|
||||
@JsonIgnore
|
||||
private String password;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,16 @@ package com.nflg.mobilebroken.common.pojo.request;
|
|||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Data
|
||||
public class DictionaryItemSearchRequest extends PageRequest {
|
||||
|
||||
//字典id
|
||||
@NotNull
|
||||
private Integer dictionaryId;
|
||||
|
||||
//字典名称
|
||||
private String name;
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ package com.nflg.mobilebroken.common.pojo.request;
|
|||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Max;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
|
|
@ -22,12 +22,12 @@ public class TicketAddRequest {
|
|||
|
||||
//标题
|
||||
@NotBlank
|
||||
@Max(value = 20, message = "标题长度不能超过20")
|
||||
@Size(max = 20, message = "标题长度不能超过20")
|
||||
private String title;
|
||||
|
||||
//描述
|
||||
@NotBlank
|
||||
@Max(value = 500, message = "描述长度不能超过500")
|
||||
@Size(max = 500, message = "描述长度不能超过500")
|
||||
private String description;
|
||||
|
||||
//附件
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PositionLanguageVO {
|
||||
|
||||
/**
|
||||
* 语言编码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 语言名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String languageValue;
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
|
|
@ -12,4 +13,10 @@ public class TitleSimpleVO {
|
|||
|
||||
//职位名称
|
||||
private String name;
|
||||
|
||||
// 语言对应的值
|
||||
private String languageValue;
|
||||
|
||||
@JsonIgnore
|
||||
private String positionLanguage;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,12 +3,13 @@ package com.nflg.mobilebroken.repository.entity;
|
|||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户端-用户申请
|
||||
|
|
@ -38,11 +39,6 @@ public class AppUserApplyfor implements Serializable {
|
|||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 被申请人用户密码,BCrypt
|
||||
*/
|
||||
private String userPassword;
|
||||
|
||||
/**
|
||||
* 被申请人头像
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -16,11 +16,9 @@ import com.nflg.mobilebroken.repository.entity.DictionaryItem;
|
|||
*/
|
||||
public interface IDictionaryItemService extends IService<DictionaryItem> {
|
||||
|
||||
void search(DictionaryItemSearchRequest request, IPage page);
|
||||
IPage<DictionaryItem> search(DictionaryItemSearchRequest request);
|
||||
|
||||
void save(SaveDictionaryItemRequest request);
|
||||
|
||||
Integer getId(String dictionaryName, String dictionaryItemName);
|
||||
|
||||
String getTitleName(String titleCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,9 +53,6 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
@Resource
|
||||
private IAdminUserRoleMapService adminUserRoleMapService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemService dictionaryItemService;
|
||||
|
||||
@Override
|
||||
public AdminUser getUser(String userName, String password) {
|
||||
String encodePassword= PASSWORDENCODER.encode(password);
|
||||
|
|
@ -134,12 +131,15 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
|
|||
|
||||
@Override
|
||||
public List<AdminUser> getCQM() {
|
||||
DictionaryItem cqm = dictionaryItemService
|
||||
.lambdaQuery()
|
||||
.eq(DictionaryItem::getCode, Constant.DICTIONARY_TYPE_TITLE_CQM)
|
||||
TBasePosition position = positionService.lambdaQuery()
|
||||
.eq(TBasePosition::getDataValidState, 1)
|
||||
.eq(TBasePosition::getPositionCode, Constant.DICTIONARY_TYPE_TITLE_CQM)
|
||||
.one();
|
||||
if (Objects.isNull(position)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return lambdaQuery()
|
||||
.eq(AdminUser::getTitleId, cqm.getId())
|
||||
.eq(AdminUser::getTitleId, position.getId())
|
||||
.list();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,11 +15,14 @@ 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.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.IDictionaryItemService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBasePositionService;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
|
@ -38,14 +41,16 @@ import java.util.Objects;
|
|||
@Service
|
||||
public class AppUserApplyforServiceImpl extends ServiceImpl<AppUserApplyforMapper, AppUserApplyfor> implements IAppUserApplyforService {
|
||||
|
||||
private static final PasswordEncoder PASSWORDENCODER = new BCryptPasswordEncoder();
|
||||
|
||||
@Resource
|
||||
private IAppAreaService appAreaService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemService dictionaryItemService;
|
||||
private IAppUserService appUserService;
|
||||
|
||||
@Resource
|
||||
private IAppUserService appUserService;
|
||||
private ITBasePositionService positionService;
|
||||
|
||||
@Override
|
||||
public void add(AddUserRequest request) {
|
||||
|
|
@ -94,7 +99,11 @@ public class AppUserApplyforServiceImpl extends ServiceImpl<AppUserApplyforMappe
|
|||
VUtils.trueThrowBusinessError(Objects.isNull(applyfor)).throwMessage("审批信息不存在");
|
||||
AppUserApplyforVO vo = new AppUserApplyforVO();
|
||||
AppArea area = appAreaService.getById(applyfor.getAreaId());
|
||||
String titleName = dictionaryItemService.getTitleName(applyfor.getTitleCode());
|
||||
TBasePosition position = positionService.lambdaQuery()
|
||||
.eq(TBasePosition::getDataValidState, 1)
|
||||
.eq(TBasePosition::getPositionCode, applyfor.getTitleCode())
|
||||
.one();
|
||||
String titleName = Objects.isNull(position) ? "" : position.getPositionName();
|
||||
vo.setApplyfor(new AppUserApplyforInfoVO()
|
||||
.setAreaName(area.getName())
|
||||
.setPhone(applyfor.getUserPhone())
|
||||
|
|
@ -129,6 +138,7 @@ public class AppUserApplyforServiceImpl extends ServiceImpl<AppUserApplyforMappe
|
|||
.setEmail(applyfor.getUserEmail())
|
||||
.setAvatar(applyfor.getUserAvatar())
|
||||
.setPhone(applyfor.getUserPhone())
|
||||
.setPassword(PASSWORDENCODER.encode(request.getPassword()))
|
||||
.setAreaId(applyfor.getAreaId())
|
||||
.setCompanyId(String.valueOf(applyfor.getCompanyId()))
|
||||
.setTitleCode(applyfor.getTitleCode())
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ 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;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.mobilebroken.common.constant.Constant;
|
||||
import com.nflg.mobilebroken.common.pojo.request.DictionaryItemSearchRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.SaveDictionaryItemRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.TranslateMap;
|
||||
|
|
@ -46,8 +46,9 @@ public class DictionaryItemServiceImpl extends ServiceImpl<DictionaryItemMapper,
|
|||
private IDictionaryService dictionaryService;
|
||||
|
||||
@Override
|
||||
public void search(DictionaryItemSearchRequest request, IPage page) {
|
||||
public IPage<DictionaryItem> search(DictionaryItemSearchRequest request) {
|
||||
LambdaQueryWrapper<DictionaryItem> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(DictionaryItem::getDictionaryId, request.getDictionaryId());
|
||||
if (StrUtil.isNotBlank(request.getName())) {
|
||||
queryWrapper.like(DictionaryItem::getName, request.getName());
|
||||
}
|
||||
|
|
@ -55,7 +56,7 @@ public class DictionaryItemServiceImpl extends ServiceImpl<DictionaryItemMapper,
|
|||
queryWrapper.like(DictionaryItem::getCode, request.getCode());
|
||||
}
|
||||
queryWrapper.orderByDesc(DictionaryItem::getId);
|
||||
baseMapper.selectPage(page, queryWrapper);
|
||||
return baseMapper.selectPage(new Page<>(request.getPage(), request.getPageSize()), queryWrapper);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
|
|
@ -129,9 +130,4 @@ public class DictionaryItemServiceImpl extends ServiceImpl<DictionaryItemMapper,
|
|||
public Integer getId(String dictionaryName, String dictionaryItemName) {
|
||||
return baseMapper.getId(dictionaryName, dictionaryItemName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTitleName(String titleCode) {
|
||||
return baseMapper.getName(Constant.DICTIONARY_TYPE_TITLE, titleCode);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
package com.nflg.mobilebroken.repository.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
|
||||
|
|
@ -13,6 +11,7 @@ import org.apache.ibatis.annotations.Param;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -38,8 +37,10 @@ public class TBasePositionServiceImpl extends ServiceImpl<TBasePositionMapper, T
|
|||
public List<TitleSimpleVO> getSimpleTitles(Integer type) {
|
||||
List<TBasePosition> datas = lambdaQuery()
|
||||
.eq(TBasePosition::getDataValidState, 1)
|
||||
.in(TBasePosition::getPositionAttribute, type, ListUtil.of(type, 3))
|
||||
.in(TBasePosition::getPositionAttribute, type, 3)
|
||||
.list();
|
||||
return Convert.toList(TitleSimpleVO.class, datas);
|
||||
return datas.stream()
|
||||
.map(d -> new TitleSimpleVO().setId(d.getId()).setName(d.getPositionName()).setPositionLanguage(d.getPositionLanguage()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import java.sql.ResultSet;
|
|||
import java.sql.SQLException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 本地时间与UTC时间转换
|
||||
|
|
@ -32,26 +33,30 @@ public class UTCLocalDateTimeTypeHandler extends BaseTypeHandler<LocalDateTime>
|
|||
public LocalDateTime getNullableResult(ResultSet rs, String columnName) throws SQLException {
|
||||
LocalDateTime utcTime = rs.getObject(columnName, LocalDateTime.class);
|
||||
// 将 UTC 时间转换为本地时间
|
||||
return utcTime != null ? utcTime.atZone(ZoneId.of(MultilingualUtil.getZone()))
|
||||
.withZoneSameInstant(ZoneId.systemDefault())
|
||||
.toLocalDateTime() : null;
|
||||
return convertToLocalDateTime(utcTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalDateTime getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
|
||||
LocalDateTime utcTime = rs.getObject(columnIndex, LocalDateTime.class);
|
||||
// 将 UTC 时间转换为本地时间
|
||||
return utcTime != null ? utcTime.atZone(ZoneId.of(MultilingualUtil.getZone()))
|
||||
.withZoneSameInstant(ZoneId.systemDefault())
|
||||
.toLocalDateTime() : null;
|
||||
return convertToLocalDateTime(utcTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LocalDateTime getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
|
||||
LocalDateTime utcTime = cs.getObject(columnIndex, LocalDateTime.class);
|
||||
// 将 UTC 时间转换为本地时间
|
||||
return utcTime != null ? utcTime.atZone(ZoneId.of(MultilingualUtil.getZone()))
|
||||
return convertToLocalDateTime(utcTime);
|
||||
}
|
||||
|
||||
private LocalDateTime convertToLocalDateTime(LocalDateTime utcTime) {
|
||||
if (utcTime == null) {
|
||||
return null;
|
||||
}
|
||||
String zone = MultilingualUtil.getZone();
|
||||
return utcTime.atZone(ZoneId.of(Objects.isNull(zone) ? "Asia/Shanghai" : zone))
|
||||
.withZoneSameInstant(ZoneId.systemDefault())
|
||||
.toLocalDateTime() : null;
|
||||
.toLocalDateTime();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue