权限区分超市、食堂

This commit is contained in:
dzc committed 2025-03-25 19:06:46 +08:00
1 parent ac75e72a49
commit 686ef7abca
12 files changed
+224 -105

No files matched your search

@@ -1,11 +1,25 @@
package com.bsd.pjcloud.common.core.constant;
/**
* 权限对应常量
*/
public interface CommonRoleConstant {
// 普通用户
String DEFAULT_USER = "GENERAL_USER";
// 管理员
String ROLE_ADMIN = "ROLE_ADMIN";
// 部门管理员
String DEPT_ADMIN = "DEPT_ADMIN";
// 超市管理员
String SUPERMARKET_ADMIN = "SUPERMARKET_ADMIN";
// 食堂管理员
String CANTEEN_ADMIN = "CANTEEN_ADMIN";
// 自动创建钱包
String AUTO_CREATE_WALLET = "WALLET_AUTO_CREATE";
@@ -0,0 +1,40 @@
package com.bsd.pjcloud.hard.api.dto.hard;
import cn.hutool.core.util.ObjectUtil;
import com.bsd.pjcloud.hard.api.constant.HardTypeEnum;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class CurrentUserHardTypeInfoDto {
/**
* 是否有查询食堂权限
*/
private Boolean canteenView = false;
/**
* 是否有查询超市权限
*/
private Boolean supermarket = false;
public boolean isAll() {
return this.getCanteenView() != null && this.getCanteenView() && this.getSupermarket() != null && this.getSupermarket();
}
/**
* 硬件类型集合
*/
public List<String> getHardTypeList() {
List<String> list = new ArrayList<>();
if (isAll()) return list;
if (this.getCanteenView() != null && this.getCanteenView()) {
list.add(HardTypeEnum.CANTEEN.getType());
}
if (this.getSupermarket() != null && this.getSupermarket()) {
list.add(HardTypeEnum.SUPERMARKET.getType());
}
return list;
}
}
@@ -23,6 +23,8 @@ public class HardOrderDto extends HardOrderEntity implements BaseIsIncludeTreeIn
private List<Long> hardIds;
private List<String> hardTypeCodes;
private List<Long> mchIds;
private List<String> orderStatusCodes;
@@ -144,6 +144,10 @@
<version>5.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
</dependencies>
<profiles>
<profile>
@@ -25,6 +25,7 @@ import com.bsd.pjcloud.hard.api.constant.order.HardHourTypeEnum;
import com.bsd.pjcloud.hard.api.constant.order.HardOrderTypeEnum;
import com.bsd.pjcloud.hard.api.constant.order.HardPayTypeEnum;
import com.bsd.pjcloud.hard.api.dto.app.HardAppCreateOrderScancode;
import com.bsd.pjcloud.hard.api.dto.hard.CurrentUserHardTypeInfoDto;
import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto;
import com.bsd.pjcloud.hard.api.dto.order.HardOrderPreferencesDto;
import com.bsd.pjcloud.hard.api.dto.order.app.HardAppCreateOrderDto;
@@ -32,6 +33,7 @@ import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity;
import com.bsd.pjcloud.hard.api.vo.order.HardOrderVo;
import com.bsd.pjcloud.hard.api.vo.order.excel.HardOrderExcelVo;
import com.bsd.pjcloud.hard.mapper.order.HardOrderMapper;
import com.bsd.pjcloud.hard.service.HardManagerService;
import com.bsd.pjcloud.hard.service.HardOrderService;
import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum;
import jakarta.servlet.http.HttpServletResponse;
@@ -67,6 +69,7 @@ import java.util.Map;
public class HardOrderController {
private final HardOrderService hardwareOrderService;
private final HardManagerService hardManagerService;
private final HardOrderMapper hardOrderMapper;
@@ -148,7 +151,12 @@ public class HardOrderController {
@GetMapping("/page-join")
@PreAuthorize("@pms.hasPermission('hard_hardwareOrder_view')")
public R pageJoin(@ParameterObject Page page, @ParameterObject HardOrderDto dto) {
return R.ok(hardwareOrderService.scopePageList(page, dto, DataScope.of()));
DataScope dataScope = DataScope.of();
dataScope.setScopeDeptName("user_dept_id");
PjcloudUser user = SecurityUtils.getUser();
CurrentUserHardTypeInfoDto hardTypeInfo = hardManagerService.getCurrentUserHardTypeInfo(user);
dto.setHardTypeCodes(hardTypeInfo.getHardTypeList());
return R.ok(hardwareOrderService.scopePageList(page, dto, dataScope));
}
@Operation(summary = "通过id查询", description = "通过id查询")
@@ -52,12 +52,6 @@ public interface HardOrderMapper extends PjcloudBaseMapper<HardOrderEntity> {
return wrapper;
}
default Page<HardOrderVo> scopePageList(Page page, HardOrderDto dto, DataScope dataScope) {
Page list = selectPageByScope(page, commonWrapper(dto), DataScope.of());
list.setRecords(BeanUtils.toBean(list.getRecords(), HardOrderVo.class));
return list;
}
default Page<HardOrderVo> pageJoin(Page page, HardOrderDto dto) {
MPJLambdaWrapper<HardOrderEntity> wrapper = new MPJLambdaWrapper<HardOrderEntity>()
.selectAll(HardOrderEntity.class)
@@ -90,13 +84,11 @@ public interface HardOrderMapper extends PjcloudBaseMapper<HardOrderEntity> {
return selectListByScope(commonWrapper(dto), DataScope.of());
}
Page<HardOrderSbVo> listSb(Page page, @Param("dto") HardOrderDto dto);
Page<HardOrderVo> scopePageList(Page page, @Param("dto") HardOrderDto dto, @Param("dataScope") DataScope dataScope);
List<HardOrderSbVo> listSb(@Param("dto") HardOrderDto dto);
List<HardOrderSbVo> listSb(@Param("dto") HardOrderDto dto, DataScope dataScope);
Page<HardOrderCsVo> pageListCs(Page page, @Param("dto") HardOrderDto dto);
List<HardOrderCsVo> listCs(@Param("dto") HardOrderDto dto);
List<HardOrderCsVo> listCs(@Param("dto") HardOrderDto dto, DataScope dataScope);
List<HardOrderCsVo> listCsByDay(@Param("dto") HardOrderDto totalDto);
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
import com.bsd.pjcloud.hard.api.dto.HardManagerDto;
import com.bsd.pjcloud.hard.api.dto.hard.CurrentUserHardTypeInfoDto;
import com.bsd.pjcloud.hard.api.dto.hard.HardBindDto;
import com.bsd.pjcloud.hard.api.entity.HardManagerEntity;
import com.bsd.pjcloud.hard.api.vo.HardManagerVo;
@@ -21,4 +22,9 @@ public interface HardManagerService extends IService<HardManagerEntity> {
HardManagerVo bind(HardBindDto dto);
HardManagerVo getById(Long hardId);
/**
* 判断当前用户是否有食堂或者超市管理元权限
*/
CurrentUserHardTypeInfoDto getCurrentUserHardTypeInfo(PjcloudUser user);
}
@@ -5,15 +5,19 @@ import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.admin.api.dto.UserInfo;
import com.bsd.pjcloud.admin.api.entity.SysDept;
import com.bsd.pjcloud.admin.api.feign.RemoteDeptService;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
import com.bsd.pjcloud.admin.api.utils.DataUtil;
import com.bsd.pjcloud.common.core.constant.CommonRoleConstant;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.CollectionUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
import com.bsd.pjcloud.hard.api.dto.HardGroupDto;
import com.bsd.pjcloud.hard.api.dto.HardManagerDto;
import com.bsd.pjcloud.hard.api.dto.hard.CurrentUserHardTypeInfoDto;
import com.bsd.pjcloud.hard.api.dto.hard.HardBindDto;
import com.bsd.pjcloud.hard.api.entity.HardGroupEntity;
import com.bsd.pjcloud.hard.api.entity.HardManagerEntity;
@@ -34,6 +38,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -54,6 +59,7 @@ public class HardManagerServiceImpl extends ServiceImpl<HardManagerMapper, HardM
private final HardGroupMapper hardGroupMapper;
private final RemoteUserService userService;
private final RemoteMchService mchService;
private final RemoteDeptService deptService;
private final RemoteMqttEventService remoteMqttEventService;
@@ -205,6 +211,30 @@ public class HardManagerServiceImpl extends ServiceImpl<HardManagerMapper, HardM
return vo;
}
@Override
public CurrentUserHardTypeInfoDto getCurrentUserHardTypeInfo(PjcloudUser user) {
CurrentUserHardTypeInfoDto result = new CurrentUserHardTypeInfoDto();
Long userId = user.getId();
if (ObjectUtil.isEmpty(userId)) return result;
UserInfo userInfo = userService.getByUserId(userId).getData();
if (ObjectUtil.isEmpty(userInfo)) return result;
String[] roles = userInfo.getRoleCodes();
if (roles.length == 0) return result;
List<String> roleList = Arrays.asList(roles);
if (roleList.contains(CommonRoleConstant.ROLE_ADMIN)) {
result.setCanteenView(true);
result.setSupermarket(true);
return result;
}
if (roleList.contains(CommonRoleConstant.SUPERMARKET_ADMIN)) {
result.setSupermarket(true);
}
if (roleList.contains(CommonRoleConstant.CANTEEN_ADMIN)) {
result.setCanteenView(true);
}
return result;
}
private boolean existUniqueCode(String uniqueCode, Long id) {
Long count = baseMapper.selectCount(new LambdaQueryWrapper<HardManagerEntity>()
.eq(ObjectUtil.isNotEmpty(uniqueCode), HardManagerEntity::getUniqueCode, uniqueCode)
@@ -19,11 +19,13 @@ import com.bsd.pjcloud.common.core.util.CollectionUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.hard.api.constant.HardTypeEnum;
import com.bsd.pjcloud.hard.api.constant.order.HardOrderStatusEnum;
import com.bsd.pjcloud.hard.api.constant.order.HardOrderTypeEnum;
import com.bsd.pjcloud.hard.api.constant.order.HardPayTypeEnum;
import com.bsd.pjcloud.hard.api.dto.HardManagerDto;
import com.bsd.pjcloud.hard.api.dto.hard.CurrentUserHardTypeInfoDto;
import com.bsd.pjcloud.hard.api.dto.hard.HandCancelCodeDto;
import com.bsd.pjcloud.hard.api.dto.hard.HardCreateOrderDto;
import com.bsd.pjcloud.hard.api.dto.order.HardCreateCarDto;
@@ -161,16 +163,6 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
WalletDataUtil.convertMchList(list.getRecords(), CollectionUtils.convertMap(mchList.getData(), MchManageVo::getId));
}
}
// 设备
List<Long> hardIds = list.getRecords().stream().map(HardOrderVo::getHardId).filter(ObjectUtil::isNotEmpty).distinct().toList();
if (ObjectUtil.isNotEmpty(mchIds)) {
HardManagerDto hardManagerDto = new HardManagerDto();
hardManagerDto.setIds(hardIds);
List<HardManagerEntity> hardList = hardManagerMapper.list(hardManagerDto);
if (ObjectUtil.isNotEmpty(hardList)) {
HardUtil.convertHardList(list.getRecords(), CollectionUtils.convertMap(hardList, HardManagerEntity::getId));
}
}
// 购物车
if (dto.getIsFindCarList()) {
for (HardOrderVo v : list.getRecords()) {
@@ -8,10 +8,13 @@ import com.bsd.pjcloud.admin.api.dto.DeptAllListDto;
import com.bsd.pjcloud.admin.api.entity.SysDept;
import com.bsd.pjcloud.admin.api.feign.RemoteDeptService;
import com.bsd.pjcloud.common.core.util.CollectionUtils;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.hard.api.constant.order.HardOrderStatusEnum;
import com.bsd.pjcloud.hard.api.constant.order.HardPayTypeEnum;
import com.bsd.pjcloud.hard.api.dto.HardManagerDto;
import com.bsd.pjcloud.hard.api.dto.hard.CurrentUserHardTypeInfoDto;
import com.bsd.pjcloud.hard.api.dto.order.HardDeptTotalDto;
import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto;
import com.bsd.pjcloud.hard.api.dto.order.HardOrderSumAndCountDto;
@@ -20,6 +23,7 @@ import com.bsd.pjcloud.hard.api.utils.HardUtil;
import com.bsd.pjcloud.hard.api.vo.order.*;
import com.bsd.pjcloud.hard.mapper.HardManagerMapper;
import com.bsd.pjcloud.hard.mapper.order.HardOrderMapper;
import com.bsd.pjcloud.hard.service.HardManagerService;
import com.bsd.pjcloud.hard.service.HardOrderTotalService;
import com.bsd.pjcloud.wallet.api.constant.WalletBizEnum;
import com.bsd.pjcloud.wallet.api.dto.WalletTransactionSumAndCountDto;
@@ -30,12 +34,14 @@ import com.bsd.pjcloud.wallet.api.vo.MchManageVo;
import com.bsd.pjcloud.wallet.api.vo.WalletTransactionSumAndCountVo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.jcajce.provider.util.SecretKeyUtil;
import org.springframework.security.concurrent.DelegatingSecurityContextExecutor;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.context.request.RequestContextHolder;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Stream;
@Validated
@Slf4j
@@ -46,38 +52,37 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService {
private final HardOrderMapper hardOrderMapper;
private final HardManagerMapper hardManagerMapper;
private final HardManagerService hardManagerService;
private final RemoteMchService remoteMchService;
private final RemoteWalletTransactionService remoteWalletTransactionService;
private final RemoteDeptService remoteDeptService;
// private final DelegatingSecurityContextExecutor securityContextExecutor;
/**
* 设备交易记录
*/
@Override
public List<HardOrderSbVo> listSb(HardOrderDto dto) {
DataScope dataScope = DataScope.of();
dataScope.setScopeDeptName("user_dept_id");
PjcloudUser user = SecurityUtils.getUser();
CurrentUserHardTypeInfoDto hardTypeInfo = hardManagerService.getCurrentUserHardTypeInfo(user);
dto.setHardTypeCodes(hardTypeInfo.getHardTypeList());
// 查询总流水
CompletableFuture<List<HardOrderSbVo>> totalListFuture = CompletableFuture.supplyAsync(() -> {
HardOrderDto totalDto = BeanUtil.toBean(dto, HardOrderDto.class);
totalDto.setOrderStatusCodes(HardOrderStatusEnum.getPayPrice());
return hardOrderMapper.listSb(totalDto);
});
HardOrderDto totalDto = BeanUtil.toBean(dto, HardOrderDto.class);
totalDto.setOrderStatusCodes(HardOrderStatusEnum.getPayPrice());
List<HardOrderSbVo> totalList = hardOrderMapper.listSb(totalDto, dataScope);
// 扣款总流水
CompletableFuture<List<HardOrderSbVo>> refundListFuture = CompletableFuture.supplyAsync(() -> {
HardOrderDto refundDto = BeanUtil.toBean(dto, HardOrderDto.class);
refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes());
return hardOrderMapper.listSb(refundDto);
});
HardOrderDto refundDto = BeanUtil.toBean(dto, HardOrderDto.class);
refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes());
List<HardOrderSbVo> refundList = hardOrderMapper.listSb(refundDto, dataScope);
// 盈利
CompletableFuture<List<HardOrderSbVo>> profitListFuture = CompletableFuture.supplyAsync(() -> {
HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class);
profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes());
return hardOrderMapper.listSb(profitDto);
});
CompletableFuture<Void> allFutures = CompletableFuture.allOf(totalListFuture, refundListFuture, profitListFuture);
allFutures.join();
List<HardOrderSbVo> totalList = totalListFuture.join();
List<HardOrderSbVo> refundList = refundListFuture.join();
List<HardOrderSbVo> profitList = profitListFuture.join();
HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class);
profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes());
List<HardOrderSbVo> profitList = hardOrderMapper.listSb(profitDto, dataScope);
// 聚合一下数据
for (HardOrderSbVo v : totalList) {
// 退款
@@ -123,29 +128,23 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService {
*/
@Override
public List<HardOrderCsVo> listCs(HardOrderDto dto) {
DataScope dataScope = DataScope.of();
dataScope.setScopeDeptName("user_dept_id");
PjcloudUser user = SecurityUtils.getUser();
CurrentUserHardTypeInfoDto hardTypeInfo = hardManagerService.getCurrentUserHardTypeInfo(user);
dto.setHardTypeCodes(hardTypeInfo.getHardTypeList());
// 查询总流水
CompletableFuture<List<HardOrderCsVo>> totalListFuture = CompletableFuture.supplyAsync(() -> {
HardOrderDto totalDto = BeanUtil.toBean(dto, HardOrderDto.class);
totalDto.setOrderStatusCodes(HardOrderStatusEnum.getPayPrice());
return hardOrderMapper.listCs(totalDto);
});
HardOrderDto totalDto = BeanUtil.toBean(dto, HardOrderDto.class);
totalDto.setOrderStatusCodes(HardOrderStatusEnum.getPayPrice());
List<HardOrderCsVo> totalList = hardOrderMapper.listCs(totalDto, DataScope.of());
// 扣款总流水
CompletableFuture<List<HardOrderCsVo>> refundListFuture = CompletableFuture.supplyAsync(() -> {
HardOrderDto refundDto = BeanUtil.toBean(dto, HardOrderDto.class);
refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes());
return hardOrderMapper.listCs(refundDto);
});
HardOrderDto refundDto = BeanUtil.toBean(dto, HardOrderDto.class);
refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes());
List<HardOrderCsVo> refundList = hardOrderMapper.listCs(refundDto, DataScope.of());
// 盈利
CompletableFuture<List<HardOrderCsVo>> profitListFuture = CompletableFuture.supplyAsync(() -> {
HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class);
profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes());
return hardOrderMapper.listCs(profitDto);
});
CompletableFuture<Void> allFutures = CompletableFuture.allOf(totalListFuture, refundListFuture, profitListFuture);
allFutures.join();
List<HardOrderCsVo> totalList = totalListFuture.join();
List<HardOrderCsVo> refundList = refundListFuture.join();
List<HardOrderCsVo> profitList = profitListFuture.join();
HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class);
profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes());
List<HardOrderCsVo> profitList = hardOrderMapper.listCs(profitDto, DataScope.of());
for (HardOrderCsVo v : totalList) {
// 退款
if (ObjectUtil.isNotEmpty(refundList)) {
@@ -424,32 +423,26 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService {
public List<HardOrderPayTypeVo> listPayType(HardOrderDto dto) {
// 获取所有支付方式
List<String> payTypeList = HardPayTypeEnum.payTypeTotalDisplayList.stream().map(HardPayTypeEnum::getType).toList();
DataScope dataScope = DataScope.of();
dataScope.setScopeDeptName("user_dept_id");
PjcloudUser user = SecurityUtils.getUser();
CurrentUserHardTypeInfoDto hardTypeInfo = hardManagerService.getCurrentUserHardTypeInfo(user);
dto.setHardTypeCodes(hardTypeInfo.getHardTypeList());
// 查询总流水
CompletableFuture<List<HardOrderPayTypeVo>> totalListFuture = CompletableFuture.supplyAsync(() -> {
HardOrderDto totalDto = BeanUtil.toBean(dto, HardOrderDto.class);
totalDto.setOrderStatusCodes(HardOrderStatusEnum.getPayPrice());
totalDto.setOrderPayTypeCodes(payTypeList);
return hardOrderMapper.listOrerPayType(totalDto);
});
HardOrderDto totalDto = BeanUtil.toBean(dto, HardOrderDto.class);
totalDto.setOrderStatusCodes(HardOrderStatusEnum.getPayPrice());
totalDto.setOrderPayTypeCodes(payTypeList);
List<HardOrderPayTypeVo> totalList = hardOrderMapper.listOrerPayType(totalDto);
// 扣款总流水
CompletableFuture<List<HardOrderPayTypeVo>> refundListFuture = CompletableFuture.supplyAsync(() -> {
HardOrderDto refundDto = BeanUtil.toBean(dto, HardOrderDto.class);
refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes());
refundDto.setOrderPayTypeCodes(payTypeList);
return hardOrderMapper.listOrerPayType(refundDto);
});
HardOrderDto refundDto = BeanUtil.toBean(dto, HardOrderDto.class);
refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes());
refundDto.setOrderPayTypeCodes(payTypeList);
List<HardOrderPayTypeVo> refundList = hardOrderMapper.listOrerPayType(refundDto);
// 盈利
CompletableFuture<List<HardOrderPayTypeVo>> profitListFuture = CompletableFuture.supplyAsync(() -> {
HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class);
profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes());
profitDto.setOrderPayTypeCodes(payTypeList);
return hardOrderMapper.listOrerPayType(profitDto);
});
CompletableFuture<Void> allFutures = CompletableFuture.allOf(totalListFuture, refundListFuture, profitListFuture);
allFutures.join();
List<HardOrderPayTypeVo> totalList = totalListFuture.join();
List<HardOrderPayTypeVo> refundList = refundListFuture.join();
List<HardOrderPayTypeVo> profitList = profitListFuture.join();
HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class);
profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes());
profitDto.setOrderPayTypeCodes(payTypeList);
List<HardOrderPayTypeVo> profitList = hardOrderMapper.listOrerPayType(profitDto);
for (HardOrderPayTypeVo v : totalList) {
// 退款
if (ObjectUtil.isNotEmpty(refundList)) {
@@ -0,0 +1,30 @@
package com.bsd.pjcloud.hard.task;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.security.concurrent.DelegatingSecurityContextExecutor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Configuration
public class ExecutorConfig {
@Bean
public ThreadPoolTaskExecutor hardTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(25);
executor.setThreadNamePrefix("hard-async-");
executor.initialize();
return executor;
}
@Bean
public DelegatingSecurityContextExecutor delegatingSecurityContextExecutor() {
ExecutorService executorService = Executors.newFixedThreadPool(10);
return new DelegatingSecurityContextExecutor(executorService);
}
}
@@ -145,52 +145,60 @@
</if>
</sql>
<select id="listSb" resultType="com.bsd.pjcloud.hard.api.vo.order.HardOrderSbVo">
select
a.hard_id,
a.merchant_id,
sum(a.pay_price) as totalPayPrice,
count(0) as totalPayCount
<select id="scopePageList" resultType="com.bsd.pjcloud.hard.api.vo.order.HardOrderVo">
<include refid="selectA"/>
m.name as hardName,
m.type as hardType
from hard_order a
left join hard_manager m on m.id = a.hard_id
<where>
<include refid="whereA"/>
<if test="dto.hardTypeCodes != null and dto.hardTypeCodes.size() != 0">
and m.unique_code in
<foreach collection="dto.hardTypeCodes" item="v" open="(" close=")" separator=",">
#{v}
</foreach>
</if>
</where>
group by a.hard_id
order by a.create_time desc, a.user_id desc
</select>
<select id="listSb" resultType="com.bsd.pjcloud.hard.api.vo.order.HardOrderSbVo">
select
a.hard_id,
a.merchant_id,
a.user_dept_id,
sum(a.pay_price) as totalPayPrice,
count(0) as totalPayCount
from hard_order a
left join hard_manager m on a.hard_id = m.id
<where>
<include refid="whereA"/>
<if test="dto.hardTypeCodes != null and dto.hardTypeCodes.size() != 0">
and m.unique_code in
<foreach collection="dto.hardTypeCodes" item="v" open="(" close=")" separator=",">
#{v}
</foreach>
</if>
</where>
group by a.hard_id
</select>
<select id="pageListCs" resultType="com.bsd.pjcloud.hard.api.vo.order.HardOrderCsVo">
select
a.merchant_id,
sum(a.pay_price) as totalPayPrice,
count(0) as totalPayCount
from hard_order a
<where>
<include refid="whereA"/>
</where>
group by a.merchant_id
</select>
<select id="listCs" resultType="com.bsd.pjcloud.hard.api.vo.order.HardOrderCsVo">
select
a.merchant_id,
a.user_dept_id,
sum(a.pay_price) as totalPayPrice,
count(0) as totalPayCount
from hard_order a
<where>
<include refid="whereA"/>
<if test="dto.hardTypeCodes != null and dto.hardTypeCodes.size() != 0">
and m.unique_code in
<foreach collection="dto.hardTypeCodes" item="v" open="(" close=")" separator=",">
#{v}
</foreach>
</if>
</where>
group by a.merchant_id
</select>