权限区分超市、食堂
This commit is contained in:
1 parent
ac75e72a49
commit
686ef7abca
12 files changed
+224
-105
No files matched your search
+14
@@ -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";
|
||||
|
||||
|
||||
+40
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
+2
@@ -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>
|
||||
|
||||
+9
-1
@@ -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查询")
|
||||
|
||||
+3
-11
@@ -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);
|
||||
|
||||
|
||||
+6
@@ -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);
|
||||
}
|
||||
+30
@@ -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)
|
||||
|
||||
+2
-10
@@ -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()) {
|
||||
|
||||
+57
-64
@@ -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)) {
|
||||
|
||||
+30
@@ -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);
|
||||
}
|
||||
}
|
||||
+27
-19
@@ -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>
|
||||
|
||||
Reference in new issue
Block a user