提交 6f8b86ef authored 作者: hzh's avatar hzh

代码优化

上级 2a670693
......@@ -21,4 +21,11 @@ public interface RemoteProjectService {
*/
List<RemoteProjectVo> queryList(String tenantId, String phone);
/**
* 通过项目ID查询项目名称
*
* @param projectIds 项目ID串逗号分隔
* @return 项目名称串逗号分隔
*/
String selectProjectNameByIds(String projectIds);
}
......@@ -137,6 +137,14 @@ public interface RemoteUserService {
*/
List<RemoteUserVo> selectListByIds(List<Long> userIds);
/**
* 通过用户id查询用户信息
*
* @param userId 用户id
* @return 用户信息
*/
RemoteUserVo selectById(Long userId);
/**
* 通过角色ID查询用户ID
*
......
......@@ -23,6 +23,11 @@ public interface TransConstant {
*/
String DEPT_ID_TO_NAME = "dept_id_to_name";
/**
* 项目id转名称
*/
String PROJECT_ID_TO_NAME = "project_id_to_name";
/**
* 字典type转label
*/
......
package org.dromara.common.translation.core.impl;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.translation.annotation.TranslationType;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.common.translation.core.TranslationInterface;
import org.dromara.system.api.RemoteProjectService;
/**
* 部门翻译实现
*
* @author Lion Li
*/
@AllArgsConstructor
@TranslationType(type = TransConstant.PROJECT_ID_TO_NAME)
public class ProjectNameTranslationImpl implements TranslationInterface<String> {
@DubboReference
private RemoteProjectService remoteProjectService;
@Override
public String translation(Object key, String other) {
return remoteProjectService.selectProjectNameByIds(key.toString());
}
}
package org.dromara.server.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
import java.util.Date;
/**
* 开票订单关联对象 biz_order_invoicing
......@@ -69,6 +70,21 @@ public class OrderInvoicing extends TenantEntity {
*/
private Date useTime;
/**
* 用户id
*/
private Long userId;
/**
* 项目id
*/
private Long projectId;
/**
* 用户类型
*/
private String userType;
/**
* 删除标志(0代表存在 2代表删除)
*/
......
......@@ -72,14 +72,27 @@ public class OrderInvoicingBo extends BaseEntity {
/**
* 开票策略
*/
@NotBlank(message = "开票策略不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "开票策略不能为空", groups = {AddGroup.class, EditGroup.class})
private String strategy;
/**
* 使用时间
*/
@NotNull(message = "使用时间不能为空", groups = { EditGroup.class })
@NotNull(message = "使用时间不能为空", groups = {EditGroup.class})
private Date useTime;
/**
* 用户id
*/
private Long userId;
/**
* 项目id
*/
private Long projectId;
/**
* 用户类型
*/
private String userType;
}
package org.dromara.server.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.server.domain.OrderInvoicing;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.server.domain.OrderInvoicing;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import static org.dromara.common.translation.constant.TransConstant.DEPT_ID_TO_NAME;
import static org.dromara.common.translation.constant.TransConstant.PROJECT_ID_TO_NAME;
/**
......@@ -84,5 +83,26 @@ public class OrderInvoicingVo implements Serializable {
@ExcelProperty(value = "使用时间")
private Date useTime;
/**
* 用户id
*/
private Long userId;
/**
* 项目id
*/
@Translation(type = PROJECT_ID_TO_NAME)
private Long projectId;
/**
* 用户类型
*/
private String userType;
/**
* 创建部门
*/
@Translation(type = DEPT_ID_TO_NAME)
private Long createDept;
}
......@@ -298,6 +298,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
.setPersonCode(order.getPersonCode())
.setOrderNo(order.getOrderNo())
.setUseName(Optional.ofNullable(order).map(OrderAirport::getPsg).orElse(null))
.setUserId(order.getCreateBy())
.setUseTime(
Optional.ofNullable(rangeMapper.selectOne(OrderAirportRange::getOrderNo, order.getOrderNo()))
.map(o -> DateUtil.parse(o.getDepartTime(), "yyyy-MM-dd HH:mm"))
......
......@@ -267,6 +267,7 @@ public class OrderHotelServiceImpl extends AbstractBaseService<OrderHotelVo, Ord
.setType(OrderType.HOTEL.getType())
.setPersonCode(order.getPersonCode())
.setOrderNo(order.getOrderNo())
.setUserId(order.getCreateBy())
.setUseName(Optional.ofNullable(order).map(OrderHotel::getPsgName).orElse(null))
.setUseTime(Optional.ofNullable(order)
.map(o -> DateUtil.parse(o.getCheckInDate(), "yyyy-MM-dd"))
......
......@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.enums.UserType;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.service.AbstractBaseService;
......@@ -15,6 +17,8 @@ import org.dromara.server.domain.vo.OrderInvoicingVo;
import org.dromara.server.mapper.OrderInvoicingMapper;
import org.dromara.server.mapper.OrderInvoicingStrategyMapper;
import org.dromara.server.service.IOrderInvoicingService;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.stereotype.Service;
import java.util.Map;
......@@ -33,6 +37,8 @@ public class OrderInvoicingServiceImpl extends AbstractBaseService<OrderInvoicin
private final OrderInvoicingMapper baseMapper;
private final OrderInvoicingStrategyMapper strategyMapper;
@DubboReference
private final RemoteUserService remoteUserService;
@Override
public BaseMapperPlus<OrderInvoicing, OrderInvoicingVo> mapper() {
......@@ -48,6 +54,15 @@ public class OrderInvoicingServiceImpl extends AbstractBaseService<OrderInvoicin
if (strategy == null) {
log.info("订单类型:{},未配置开票策略", bo.getType());
}
//设置用户信息
RemoteUserVo user = remoteUserService.selectById(bo.getUserId());
bo.setUserType(user.getUserType())
.setProjectId(
StringUtils.contains(user.getUserType(), UserType.PROJECT_USER.getUserType()) ?
Long.parseLong(user.getUserType().split(":")[1]) : null
);
bo.setCreateBy(bo.getUserId());
bo.setCreateDept(user.getDeptId());
insertByBo(bo);
}else {
invoicing.setUseName(bo.getUseName());
......
......@@ -305,6 +305,7 @@ public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, Ord
.setType(OrderType.TRAIN.getType())
.setPersonCode(order.getPersonCode())
.setOrderNo(order.getOrderNo())
.setUserId(order.getCreateBy())
.setUseName(Optional.ofNullable(order).map(OrderTrain::getPassengerNames).orElse(null))
.setUseTime(Optional.ofNullable(rangeMapper.selectOne(OrderTrainRange::getOrderNo, order.getOrderNo()))
.map(o -> DateUtil.parse(o.getFromDate() + " " + o.getFromTime(), "yyyy-MM-dd HH:mm"))
......
......@@ -270,6 +270,7 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
.setType(OrderType.CAR.getType())
.setPersonCode(order.getPersonCode())
.setOrderNo(order.getOrderNo())
.setUserId(order.getCreateBy())
.setUseName(Optional.ofNullable(orderVehicles).map(OrderVehicles::getPhoneNumber).orElse(null))
.setUseTime(Optional.ofNullable(orderVehicles).map(ov -> {
if (StringUtils.isNotEmpty(ov.getStartTime())) {
......
......@@ -2,6 +2,8 @@ package org.dromara.system.dubbo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
......@@ -11,11 +13,13 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.system.api.RemoteProjectService;
import org.dromara.system.api.domain.vo.RemoteProjectVo;
import org.dromara.system.constant.Constant;
import org.dromara.system.domain.SysProject;
import org.dromara.system.domain.SysUser;
import org.dromara.system.mapper.SysProjectMapper;
import org.dromara.system.mapper.SysUserMapper;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
......@@ -39,7 +43,7 @@ public class RemoteProjectServiceImpl implements RemoteProjectService {
.eq(StringUtils.isNotEmpty(tenantId), SysUser::getTenantId, tenantId)
.eq(StringUtils.isNotEmpty(phone), SysUser::getPhonenumber, phone)
.likeRight(SysUser::getUserType, SysUser.PROJECT_USER_TYPE)
.eq(SysUser::getStatus, UserConstants.USER_NORMAL)
.eq(SysUser::getStatus, UserConstants.USER_NORMAL)
.select(SysUser::getUserType)
);
Set<Long> projectIds = StreamUtils.toSet(userList, u -> {
......@@ -48,4 +52,16 @@ public class RemoteProjectServiceImpl implements RemoteProjectService {
});
return CollectionUtil.isEmpty(projectIds) ? List.of() : BeanUtil.copyToList(StreamUtils.filter(sysProjectMapper.selectByIds(projectIds), sp -> StringUtils.equals(sp.getStatus(), Constant.PROJECT_NORMAL)), RemoteProjectVo.class);
}
@Override
public String selectProjectNameByIds(String projectIds) {
List<String> list = new ArrayList<>();
for (Long id : StringUtils.splitTo(projectIds, Convert::toLong)) {
SysProject project = sysProjectMapper.selectById(id);
if (ObjectUtil.isNotNull(project)) {
list.add(project.getProjectName());
}
}
return String.join(StringUtils.SEPARATOR, list);
}
}
......@@ -351,6 +351,21 @@ public class RemoteUserServiceImpl implements RemoteUserService {
return MapstructUtils.convert(sysUserVos, RemoteUserVo.class);
}
/**
* 通过用户id查询用户信息
*
* @param userId 用户id
* @return 用户信息
*/
@Override
public RemoteUserVo selectById(Long userId) {
if (userId == null) {
return null;
}
SysUserBo user = userService.selectById(userId);
return BeanUtil.copyProperties(user, RemoteUserVo.class);
}
/**
* 通过角色ID查询用户ID
*
......
......@@ -289,7 +289,8 @@ public class SysUserServiceImpl implements ISysUserService {
@Override
public List<SysUserVo> selectUserByIds(List<Long> userIds, Long deptId) {
return baseMapper.selectUserList(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber) .eq(SysUser::getStatus, UserConstants.USER_NORMAL)
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber)
.eq(SysUser::getStatus, UserConstants.USER_NORMAL)
.eq(ObjectUtil.isNotNull(deptId), SysUser::getDeptId, deptId)
.in(CollUtil.isNotEmpty(userIds), SysUser::getUserId, userIds));
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论