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

代码优化

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