更新0725

This commit is contained in:
xyc 2025-07-25 13:43:02 +08:00
parent 0eb106be5b
commit 692250c4ba
26 changed files with 372 additions and 15 deletions

View File

@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import cn.iocoder.yudao.module.app.company.vo.CompanyToServerVO;
import cn.iocoder.yudao.module.company.entity.Company;
@ -89,6 +90,8 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
@DSTransactional // 多数据源使用 @DSTransactional 保证本地事务以及数据源的切换
public void saveDataObj(CompanyRespVO companyRespVO) {
try {
//获取当前租户id
Long tenantId = TenantContextHolder.getTenantId();
/*1.保存企业信息*/
this.save(companyRespVO);
/*2.新增企业部门信息*/
@ -104,7 +107,7 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
/*3.新增企业管理员用户信息并配置角色*/
// 查询账号是否存在
Long userId = null;
AdminUserRespDTO adminUserRespDTO = adminUserApi.getUserByUsername(companyRespVO.getLoginAccount());
AdminUserRespDTO adminUserRespDTO = adminUserApi.getUserByUsername(companyRespVO.getLoginAccount(),tenantId);
if (adminUserRespDTO == null) {
UserDTO userDTO = new UserDTO();
userDTO.setUsername(companyRespVO.getLoginAccount());

View File

@ -24,9 +24,9 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@ -98,6 +98,8 @@ public class ApiAppLoginServiceImpl implements ApiAppLoginService {
throw new Exception(CommonErrorCodeConstants.LOGIN_ACCOUNT_NOT_AUTH.getMsg());
}
List<RoleReqDTO> roleList = roleApi.getRoleList();
//当前登录人的所有角色
List<RoleReqDTO> loginRoles = new ArrayList<>();
//所拥有的角色code集和
List<String> roleCodeList = new ArrayList<>();
//所拥有的角色名称集和
@ -106,8 +108,10 @@ public class ApiAppLoginServiceImpl implements ApiAppLoginService {
if (roleIdsByUserId.contains(item.getId())) {
roleCodeList.add(item.getCode());
roleNames.add(item.getName());
loginRoles.add(item);
}
}
user.setRoleNames(String.join(",", roleNames));
//默认无权限登录
boolean flag = false;
if (SystemEnum.REPAIR.getCode().equals(loginBody.getSysCode())) {
@ -115,6 +119,17 @@ public class ApiAppLoginServiceImpl implements ApiAppLoginService {
flag = this.checkRepairCanLogin(user, roleCodeList);
} else if (SystemEnum.INSPECTION.getCode().equals(loginBody.getSysCode())) {
//检测业务系统
/*过滤出服务套餐为jiance的角色*/
String newRoleNames = Optional.ofNullable(loginRoles)
.orElse(Collections.emptyList())
.stream()
.filter(item -> "jiance".equals(item.getServicePackageId()))
.map(RoleReqDTO::getName)
.filter(Objects::nonNull)
.filter(name -> !name.trim().isEmpty())
.collect(Collectors.joining(","));
user.setRoleNames(newRoleNames);
flag = true;
} else if (SystemEnum.SCHOOL.getCode().equals(loginBody.getSysCode())) {
//驾校业务系统

View File

@ -219,4 +219,12 @@ public class InspectionFileController extends BaseController {
public CommonResult<?> queryTreeFolderForJx(){
return success(inspectionFileService.queryTreeFolderForJx());
}
/**
* 提醒
*/
@RequestMapping("/warnReminder")
public void warnReminder(){
inspectionFileService.warnReminder();
}
}

View File

@ -0,0 +1,41 @@
package cn.iocoder.yudao.module.inspection.controller.admin;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrder;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrderQuery;
import cn.iocoder.yudao.module.inspection.service.IInspectionBatchSettlementOrderService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/batchSettlement")
@RequiredArgsConstructor
public class InspectionBatchSettlementOrderController {
private final IInspectionBatchSettlementOrderService batchSettlementOrderService;
/**
* 分页查询
*
* @param pageNo 页码
* @param pageSize 每页数量
* @param query 查询条件
* @return 分页结果
*/
@GetMapping("/page")
public CommonResult<?> page(@RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize,
InspectionBatchSettlementOrderQuery query) {
Page<InspectionBatchSettlementOrder> page = new Page<>(pageNo, pageSize);
return CommonResult.success(batchSettlementOrderService.pageVo(page, query));
}
}

View File

@ -43,4 +43,24 @@ public class InspectionBatchSettlementOrder extends TenantBaseDO implements Seri
* 订单id集合
*/
private String orderIds;
/**
* 支付方式
*/
private String payType;
/**
* 出纳备注
*/
private String cashierConfirmRemark;
/**
* 账务备注
*/
private String accountingConfirmRemark;
/**
* 出纳确认 0-未到账 1-已到账 null-待确认
*/
private String accountingConfirm;
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.inspection.entity;
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
/**
* <p>
* 批量结算订单记录
* </p>
*
* @author author
* @since 2025-07-09
*/
@Data
public class InspectionBatchSettlementOrderQuery extends InspectionBatchSettlementOrder implements Serializable {
/**
* 时间范围
*/
private List<String> datetimeRange;
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.inspection.entity;
import cn.iocoder.yudao.module.payment.entity.OrderInfo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* <p>
* 批量结算订单记录
* </p>
*
* @author author
* @since 2025-07-09
*/
@Data
public class InspectionBatchSettlementOrderQueryVo extends InspectionBatchSettlementOrder implements Serializable {
/**
* 订单集合
*/
private List<OrderInfo> orderInfoList;
/**
*
*/
private String cashierName;
}

View File

@ -1,8 +1,15 @@
package cn.iocoder.yudao.module.inspection.mapper;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrder;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrderQuery;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrderQueryVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
@ -15,4 +22,11 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface InspectionBatchSettlementOrderMapper extends BaseMapper<InspectionBatchSettlementOrder> {
/**
* 分页查询
* @param page 分页参数
* @param query 查询参数
* @return 查询结果
*/
IPage<InspectionBatchSettlementOrderQueryVo> pageVo(Page<InspectionBatchSettlementOrder> page, @Param("query") InspectionBatchSettlementOrderQuery query);
}

View File

@ -1,8 +1,14 @@
package cn.iocoder.yudao.module.inspection.service;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrder;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrderQuery;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrderQueryVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 批量结算订单记录 服务类
@ -13,4 +19,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IInspectionBatchSettlementOrderService extends IService<InspectionBatchSettlementOrder> {
/**
* 分页查询
*
* @param page 分页参数
* @param query 查询参数
* @return List<InspectionBatchSettlementOrderQueryVo>
*/
IPage<InspectionBatchSettlementOrderQueryVo> pageVo(Page<InspectionBatchSettlementOrder> page, InspectionBatchSettlementOrderQuery query);
}

View File

@ -124,8 +124,5 @@ public interface IInspectionFileService extends IService<InspectionFile> {
List<TreeCommonResult> queryTreeFolder();
List<TreeCommonResult> queryTreeFolderForJx();
/**
* 文件提醒
*/
void warnReminder();
}

View File

@ -2738,11 +2738,38 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
.collect(Collectors.joining(",")));
inspectionBatchSettlementOrder.setPayMoney(realPayMoney);
inspectionBatchSettlementOrder.setReduceMoney(reduceMoney);
inspectionBatchSettlementOrder.setPayType(query.getPayType());
inspectionBatchSettlementOrder.setCashierConfirmRemark(query.getRemark());
batchSettlementOrderService.save(inspectionBatchSettlementOrder);
} else {
if (query.getIds().isEmpty()) {
throw new RuntimeException("请选择工单");
}
// 查询出批次ids
List<InspectionBatchSettlementOrder> batchs = batchSettlementOrderService.list(Wrappers.<InspectionBatchSettlementOrder>lambdaQuery()
.in(InspectionBatchSettlementOrder::getId, query.getIds()));
List<Long> newOrderIds = new ArrayList<>();
batchs.stream().forEach(batch -> {
batch.setAccountingConfirmRemark(query.getRemark());
batch.setAccountingConfirm("1");
// 将OrderIds以逗号隔开放入newOrderIds
if (StringUtils.isNotEmpty(batch.getOrderIds())) {
Arrays.stream(batch.getOrderIds().split(","))
.map(String::trim)
.filter(StringUtils::isNotEmpty)
.forEach(orderId -> {
newOrderIds.add(Long.valueOf(orderId));
});
}
});
//更新批次
batchSettlementOrderService.saveOrUpdateBatch(batchs);
// 会计审核
orderService.update(Wrappers.<OrderInfo>lambdaUpdate()
.in(OrderInfo::getId, orderIds)
.in(OrderInfo::getId, newOrderIds)
.set(OrderInfo::getAccountingConfirm, "1")
.set(ObjectUtil.isNotEmpty(query.getRemark()), OrderInfo::getAccountingConfirmRemark, query.getRemark())
.set(OrderInfo::getAccountingConfirmTime, new Date())

View File

@ -1,11 +1,24 @@
package cn.iocoder.yudao.module.inspection.service.impl;
import cn.hutool.core.util.ArrayUtil;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrder;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrderQuery;
import cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrderQueryVo;
import cn.iocoder.yudao.module.inspection.mapper.InspectionBatchSettlementOrderMapper;
import cn.iocoder.yudao.module.inspection.service.IInspectionBatchSettlementOrderService;
import cn.iocoder.yudao.module.inspection.service.IInspectionInfoService;
import cn.iocoder.yudao.module.payment.entity.OrderInfo;
import cn.iocoder.yudao.module.payment.service.OrderInfoService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
* 批量结算订单记录 服务实现类
@ -15,6 +28,46 @@ import org.springframework.stereotype.Service;
* @since 2025-07-09
*/
@Service
@RequiredArgsConstructor
public class InspectionBatchSettlementOrderServiceImpl extends ServiceImpl<InspectionBatchSettlementOrderMapper, InspectionBatchSettlementOrder> implements IInspectionBatchSettlementOrderService {
private final OrderInfoService orderInfoService;
/**
* 分页查询
*
* @param page 分页参数
* @param query 查询参数
* @return List<InspectionBatchSettlementOrderQueryVo>
*/
@Override
public IPage<InspectionBatchSettlementOrderQueryVo> pageVo(Page<InspectionBatchSettlementOrder> page, InspectionBatchSettlementOrderQuery query) {
IPage<InspectionBatchSettlementOrderQueryVo> pageResp = baseMapper.pageVo(page, query);
// 收集所有orderIds
Set<Long> allOrderIds = new HashSet<>();
for (InspectionBatchSettlementOrderQueryVo record : pageResp.getRecords()) {
Set<Long> orderIds = ArrayUtil.mapToSet(record.getOrderIds().split(","), Long::parseLong);
allOrderIds.addAll(orderIds);
}
// 一次性批量查询所有订单信息
if (!allOrderIds.isEmpty()) {
Map<Long, OrderInfo> orderInfoMap = orderInfoService.queryByIds(allOrderIds)
.stream()
.collect(Collectors.toMap(OrderInfo::getId, Function.identity()));
// 填充订单信息
for (InspectionBatchSettlementOrderQueryVo record : pageResp.getRecords()) {
Set<Long> orderIds = ArrayUtil.mapToSet(record.getOrderIds().split(","), Long::parseLong);
List<OrderInfo> orderInfos = orderIds.stream()
.map(orderInfoMap::get)
.filter(Objects::nonNull)
.collect(Collectors.toList());
record.setOrderInfoList(orderInfos);
}
}
return pageResp;
}
}

View File

@ -598,13 +598,13 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
InspectionFile inspectionFile = baseMapper.selectOne(new LambdaQueryWrapper<InspectionFile>().eq(InspectionFile::getDefaultKey, InspectionFileEnum.INSPECTION_CUSTOMER.getType()));
if (inspectionFile != null) {
// 查询出code中所有带这个文件夹id的文件
List<InspectionFile> inspectionFiles = baseMapper.selectList(new LambdaQueryWrapper<InspectionFile>().like(InspectionFile::getFileCode, inspectionFile.getId()).eq(InspectionFile::getFileType, InspectionConstants.INSPECTION_FILE));
List<InspectionFile> inspectionFiles = baseMapper.selectList(Wrappers.<InspectionFile>lambdaQuery().like(InspectionFile::getFileCode, inspectionFile.getId()).eq(InspectionFile::getType, InspectionConstants.INSPECTION_FILE));
// 判断获取提醒时间判断是否有过期的
inspectionFiles.forEach(file -> {
if (file.getWarnTime() != null && file.getWarnTime().before(new Date())) {
if (file.getWarnTime() != null && DateUtil.isSameDay(file.getWarnTime(), new Date())) {
String message = String.format(InspectionConstants.INSPECTION_NOTICE_TEMPLATE_USER_FILE_EXPIRE, file.getFileName());
// 提醒
noticeService.sentMessage(Long.valueOf(file.getCreator()), message);
// 站内信
noticeService.sentMessageToMember(Long.valueOf(file.getCreator()), message, null);
}
});
}

View File

@ -203,7 +203,7 @@ public class InspectionStaffServiceImpl extends ServiceImpl<InspectionStaffMappe
if (CollUtil.isEmpty(inspectionStaffVo.getAdminUsers())) {
//新增system_users主表
// 判断账号是否存在
AdminUserDO one = userService.getOne(Wrappers.<AdminUserDO>lambdaQuery().eq(AdminUserDO::getUsername, inspectionStaffVo.getUsername()).eq(AdminUserDO::getTenantId, loginUser.getTenantId()).last("LIMIT 1"));
AdminUserDO one = userService.getOne(Wrappers.<AdminUserDO>lambdaQuery().eq(AdminUserDO::getUsername, inspectionStaffVo.getUsername()).eq(AdminUserDO::getUserType, USER_TYPE_STAFF).last("LIMIT 1"));
Long userId = null;
if (one == null) {
UserSaveReqVO userDTO = BeanUtil.copyProperties(inspectionStaffVo, UserSaveReqVO.class);

View File

@ -224,6 +224,21 @@ public class OrderInfo extends TenantBaseDO {
@TableField(exist = false)
private String type;
@TableField(exist = false)
private String carNum;
//客户来源
@TableField(exist = false)
private String customerSource;
@TableField(exist = false)
private String businessChannel;
@TableField(exist = false)
private String buyName;
@TableField(exist = false)
private String buyPhone;
}

View File

@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Set;
/**
* (OrderInfo)表数据库访问层
@ -64,5 +65,7 @@ public interface OrderInfoMapper extends BaseMapper<OrderInfo> {
IPage<commentVo> getCommentOrderList(Page<commentVo> page, @Param("tenantId") Long tenantId);
IPage<OrderInfo> orderListPc(Page<OrderInfo> page,@Param("vo") OrderInfo orderInfo);
List<OrderInfo> queryByIds(@Param("orderIds") Set<Long> orderIds);
}

View File

@ -17,6 +17,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* (OrderInfo)表服务接口
@ -94,5 +95,7 @@ public interface OrderInfoService extends IService<OrderInfo> {
* @param page 分页
*/
void exportExcel(HttpServletResponse response, OrderInfo shopInspectionOrder, Page<OrderInfo> page) throws IOException;
List<OrderInfo> queryByIds(Set<Long> orderIds);
}

View File

@ -1007,5 +1007,14 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
.doWrite(data); // 写入数据
}
/**
* @param orderIds
* @return
*/
@Override
public List<OrderInfo> queryByIds(Set<Long> orderIds) {
return baseMapper.queryByIds(orderIds);
}
}

View File

@ -16,8 +16,11 @@ import cn.iocoder.yudao.module.reminder.service.IInspectionReminderConfigService
import cn.iocoder.yudao.module.reminder.service.IInspectionReminderRecordService;
import cn.iocoder.yudao.module.shop.entity.ShopUserCar;
import cn.iocoder.yudao.module.shop.service.IShopUserCarService;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.service.permission.RoleService;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import cn.iocoder.yudao.util.SendSmsUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -47,6 +50,7 @@ public class InspectionReminderConfigServiceImpl extends ServiceImpl<InspectionR
private final InspectionNoticeService inspectionNoticeService;
private final AdminUserService adminUserService;
private final IInspectionReminderRecordService reminderRecordService;
private final RoleService roleService;
@Override
@ -78,7 +82,7 @@ public class InspectionReminderConfigServiceImpl extends ServiceImpl<InspectionR
.filter(ObjectUtil::isNotEmpty)
.collect(Collectors.toList());
List<UserDTO> users = roleService.getUserListByCodes(Collections.singletonList("jcxxgly"));
// 发送站内信
for (InspectionInfo inspectionInfo : inspectionInfos) {
@ -129,6 +133,15 @@ public class InspectionReminderConfigServiceImpl extends ServiceImpl<InspectionR
}
break;
}
// 提醒信息管理员
if (CollUtil.isNotEmpty(users)) {
for (UserDTO user : users) {
String msgBoth = String.format(InspectionConstants.INSPECTION_NOTICE_TEMPLATE_USER_CAR_INSURANCE_EXPIRE, inspectionInfo.getCarNum(), formattedDate, inspectionInfo.getBuyPhone());
inspectionNoticeService.sentMessageToMember(user.getId(), msgBoth, null);
}
}
}
// 发送短信
sendSmsByConfig(config, ownerPhones);
@ -150,6 +163,8 @@ public class InspectionReminderConfigServiceImpl extends ServiceImpl<InspectionR
.filter(ObjectUtil::isNotEmpty)
.collect(Collectors.toList());
List<UserDTO> users = roleService.getUserListByCodes(Collections.singletonList("jcxxgly"));
for (InspectionInfo inspectionInfo : inspectionInfos) {
@ -195,6 +210,14 @@ public class InspectionReminderConfigServiceImpl extends ServiceImpl<InspectionR
}
break;
}
// 提醒信息管理员
if (CollUtil.isNotEmpty(users)) {
for (UserDTO user : users) {
String msgBoth = String.format(InspectionConstants.INSPECTION_NOTICE_TEMPLATE_USER_CAR_INSURANCE_EXPIRE, inspectionInfo.getCarNum(), formattedDate, inspectionInfo.getBuyPhone());
inspectionNoticeService.sentMessageToMember(user.getId(), msgBoth, null);
}
}
}
sendSmsByConfig(config, ownerPhones);
}
@ -228,8 +251,8 @@ public class InspectionReminderConfigServiceImpl extends ServiceImpl<InspectionR
*/
private void sendSmsByConfig(InspectionReminderConfig config, List<String> phoneNums) {
if (CollUtil.isEmpty(phoneNums)) return;
// String[] phoneArray = phoneNums.toArray(new String[0]);
String[] phoneArray = {"19392873837"};
String[] phoneArray = phoneNums.toArray(new String[0]);
// String[] phoneArray = {"19392873837"};
switch (config.getReminderPeople()) {
case 0: // 车主

View File

@ -2,4 +2,20 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.inspection.mapper.InspectionBatchSettlementOrderMapper">
<select id="pageVo"
resultType="cn.iocoder.yudao.module.inspection.entity.InspectionBatchSettlementOrderQueryVo">
SELECT batch.* , user.nickname AS cashierName
FROM inspection_batch_settlement_order batch
LEFT JOIN system_users user ON batch.creator = user.id
<where>
<if test="query.accountingConfirm != null">
AND batch.accounting_confirm != #{query.accountingConfirm}
</if>
<if test="query.datetimeRange != null">
<if test="query.datetimeRange.size() == 2">
AND batch.create_time BETWEEN CONCAT(#{query.datetimeRange[0]}, ' 00:00:00') AND CONCAT(#{query.datetimeRange[1]}, ' 23:59:59')
</if>
</if>
</where>
</select>
</mapper>

View File

@ -326,4 +326,14 @@
</if>
order by oi.order_time desc
</select>
<select id="queryByIds" resultType="cn.iocoder.yudao.module.payment.entity.OrderInfo">
SELECT oi.*, info.*
FROM order_info AS oi
LEFT JOIN inspection_info AS info ON info.inspection_order_id = oi.id
WHERE oi.id IN
<foreach item="item" collection="orderIds" separator="," open="(" close=")" index="">
#{item}
</foreach>
</select>
</mapper>

View File

@ -31,5 +31,9 @@ public class RoleReqDTO {
* 备注
*/
private String remark;
/**
* 服务套餐编号
*/
private String servicePackageId;
}

View File

@ -57,6 +57,14 @@ public interface AdminUserApi {
* @return 用户对象信息
*/
AdminUserRespDTO getUserByUsername(String username);
/**
* 通过用户 登录账户 查询用户---手动拼租户
*
* @param username 用户登录账户
* @return 用户对象信息
*/
AdminUserRespDTO getUserByUsername(String username, Long tenantId);
/**
* 通过用户 登录账户 查询用户---不带租户
*

View File

@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.service.dept.DeptService;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -96,6 +97,20 @@ public class AdminUserApiImpl implements AdminUserApi {
AdminUserDO user = userService.getUserByUsername(username);
return BeanUtils.toBean(user, AdminUserRespDTO.class);
}
/**
* 通过用户 登录账户 查询用户---手动拼租户
*
* @param username 用户登录账户
* @return 用户对象信息
*/
@Override
public AdminUserRespDTO getUserByUsername(String username, Long tenantId) {
AdminUserDO user = userService.getOne(Wrappers.<AdminUserDO>lambdaQuery()
.eq(AdminUserDO::getUsername, username)
.eq(AdminUserDO::getTenantId, tenantId));
return BeanUtils.toBean(user, AdminUserRespDTO.class);
}
/**
* 通过用户 登录账户 查询用户---不带租户
*

View File

@ -10,6 +10,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.security.config.SecurityProperties;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import cn.iocoder.yudao.module.system.api.permission.RoleApi;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
@ -288,6 +289,7 @@ public class AuthController {
@GetMapping("/getListByPhone")
@PermitAll
@Operation(summary = "根据用户手机号查询所在的所有租户--员工登录", description = "根据用户手机号查询所在的所有租户--员工登录")
@TenantIgnore
public CommonResult<?> getListByPhone(@RequestParam("phone") String phone) {
List<AdminUserDO> list = userService.selectListByPhoneStaff(phone);
List<TenantDO> tenants = new ArrayList<>();

View File

@ -307,6 +307,7 @@ yudao:
- /admin-api/jx/**
- /admin-api/jx/auth/getAppInfo
- /admin-api/cos/**
- /admin-api/system/auth/getListByPhone
ignore-tables:
- system_tenant
- system_tenant_package