Merge remote-tracking branch 'origin/master'

This commit is contained in:
zjf committed 2025-01-08 17:54:28 +08:00
commit 2ebaf4a211
7 files changed
+31 -14

No files matched your search

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.idempotent.annotation.Idempotent;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
@@ -14,7 +15,6 @@ import com.bsd.pjcloud.hard.api.dto.order.HardDisagreeDto;
import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity;
import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleLogEntity;
import com.bsd.pjcloud.hard.service.HardAfterSaleService;
import io.swagger.v3.oas.annotations.Parameter;
import org.springframework.security.access.prepost.PreAuthorize;
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -26,7 +26,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
/**
* 售后订单
@@ -51,6 +50,7 @@ public class HardAfterSaleController {
@PutMapping("/agree")
@Operation(summary = "同意售后")
@Idempotent(expireTime = 10, info = "正在处理中,请勿重复操作")
public R<Boolean> agreeRefund(@RequestParam Long id) {
PjcloudUser user = SecurityUtils.getUser();
return R.ok(hardAfterSaleService.agreeAfterSale(user.getId(), id));
@@ -58,6 +58,7 @@ public class HardAfterSaleController {
@PutMapping("/disagree")
@Operation(summary = "拒绝售后")
@Idempotent(expireTime = 10, info = "正在处理中,请勿重复操作")
public R<Boolean> disagreeRefund(@RequestBody HardDisagreeDto dto) {
PjcloudUser user = SecurityUtils.getUser();
return R.ok(hardAfterSaleService.disagreeRefund(user.getId(), dto));
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.idempotent.annotation.Idempotent;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
@@ -61,6 +62,7 @@ public class HardOrderController {
@Operation(summary = "app创建订单", description = "app创建订单")
@GetMapping("/app/create-order")
@Idempotent(expireTime = 10, info = "正在创建订单中,请勿重复操作")
public R appCreateOrder(@RequestParam Long carParentId) {
PjcloudUser user = SecurityUtils.getUser();
HardAppCreateOrderDto dto = HardAppCreateOrderDto.builder().carParentId(carParentId).walletType(WalletTypeCodeEnum.CANTEEN).userId(user.getId()).orderType(HardOrderTypeEnum.RESERVE).payType(HardPayTypeEnum.WALLET_DEFAULT).build();
@@ -32,9 +32,9 @@ import com.bsd.pjcloud.hard.service.HardOrderService;
import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeRefundDto;
import com.bsd.pjcloud.wallet.api.feign.RemoteWalletRechargeService;
import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeVo;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.seata.spring.annotation.GlobalTransactional;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@@ -93,7 +93,7 @@ public class HardAfterSaleServiceImpl extends ServiceImpl<HardAfterSaleMapper, H
}
@Override
@GlobalTransactional
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public void refund(Long afterSaleId) {
HardAfterSaleEntity afterSale = baseMapper.selectById(afterSaleId);
@@ -6,7 +6,7 @@ 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.canteen.api.feign.RemoteOnlineCanteenSpuService;
import com.bsd.pjcloud.canteen.entity.CanteenOnlineSpuEntity;
import com.bsd.pjcloud.canteen.vo.app.CanteenOnlineSpuAppVO;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.hard.api.constant.HardTypeEnum;
import com.bsd.pjcloud.hard.api.constant.order.HardOrderStatusEnum;
@@ -108,7 +108,7 @@ public class HardCarServiceImpl extends ServiceImpl<HardCarMapper, HardCarEntity
return switch (sysType) {
case CANTEEN -> {
// 查询食堂商品
List<CanteenOnlineSpuEntity> supList = onlineCanteenSpuService.getSpuListByIds(productIds).getData();
List<CanteenOnlineSpuAppVO> supList = onlineCanteenSpuService.getSpuListByIds(productIds).getData();
AtomicInteger canteenTotalPrice = new AtomicInteger();
for (HardCreateCarDto v : list) {
supList.stream().filter(i -> ObjectUtil.equals(i.getId(), v.getProductId())).findFirst().ifPresent(spu -> {
@@ -145,7 +145,7 @@ public class HardCarServiceImpl extends ServiceImpl<HardCarMapper, HardCarEntity
// 食堂
if (ObjectUtil.equals(sysType, HardTypeEnum.CANTEEN)) {
List<HardCarEntity> carObjectList = new ArrayList<>();
List<CanteenOnlineSpuEntity> supList = onlineCanteenSpuService.getSpuListByIds(productIds).getData();
List<CanteenOnlineSpuAppVO> supList = onlineCanteenSpuService.getSpuListByIds(productIds).getData();
for (HardCreateCarDto v : productList) {
HardCarEntity item = HardCarEntity.builder().parentCarId(parentCarId).build();
supList.stream().filter(i -> ObjectUtil.equals(i.getId(), v.getProductId())).findFirst().ifPresent(spu -> {
@@ -190,7 +190,7 @@ public class HardCarServiceImpl extends ServiceImpl<HardCarMapper, HardCarEntity
StringBuffer str = new StringBuffer();
List<Long> productIds = list.stream().map(HardCreateCarDto::getProductId).toList();
if (ObjectUtil.equals(sysType, HardTypeEnum.CANTEEN)) {
List<CanteenOnlineSpuEntity> supList = onlineCanteenSpuService.getSpuListByIds(productIds).getData();
List<CanteenOnlineSpuAppVO> supList = onlineCanteenSpuService.getSpuListByIds(productIds).getData();
for (HardCreateCarDto v : list) {
supList.stream().filter(i -> ObjectUtil.equals(i.getId(), v.getProductId())).findFirst().ifPresent(spu -> {
str.append(spu.getName()).append("x").append(v.getProductCount()).append(";");
@@ -1,6 +1,7 @@
package com.bsd.pjcloud.hard.service.impl.order;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.admin.api.entity.SysDept;
@@ -41,6 +42,7 @@ import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeApplyVo;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.seata.spring.annotation.GlobalTransactional;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@@ -108,6 +110,7 @@ public class HardwareOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardO
/* ************************************* start 支付相关 start ************************************* */
@Override
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public Long createOrder(HardCreateOrderDto dto) {
if (!validateCreateOrderDto(dto)) return null;
@@ -155,11 +158,12 @@ public class HardwareOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardO
if (isPay) orderObj.setWalletId(wallet.getId());
baseMapper.insert(orderObj);
// 钱包扣款
if (isPay) fastReduceBalance(orderObj);
if (isPay) getSelf().fastReduceBalance(orderObj);
return orderObj.getId();
}
@Override
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public Long appCreateOrder(@Valid HardAppCreateOrderDto dto) {
// 钱包
@@ -206,11 +210,13 @@ public class HardwareOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardO
if (isPay) orderObj.setWalletId(wallet.getId());
baseMapper.insert(orderObj);
// 钱包扣款
if (isPay) fastReduceBalance(orderObj);
if (isPay) getSelf().fastReduceBalance(orderObj);
return orderObj.getId();
}
@Override
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public void fastReduceBalance(HardOrderEntity order) {
boolean isPay = isPay(HardOrderTypeEnum.valueOfByType(order.getOrderType()), HardPayTypeEnum.valueOfByType(order.getPayType()));
WalletBalanceTransactionDto reduceBuild = WalletBalanceTransactionDto.builder().walletId(order.getWalletId()).price(order.getPayPrice()).bizId(String.valueOf(order.getId())).bizType(WalletBizEnum.PAYMENT).build();
@@ -317,4 +323,8 @@ public class HardwareOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardO
}
/* ************************************* end 支付相关 end ************************************* */
private HardwareOrderServiceImpl getSelf() {
return SpringUtil.getBean(getClass());
}
}
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.idempotent.annotation.Idempotent;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.common.security.annotation.Inner;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
@@ -64,15 +65,16 @@ public class WalletForeignController {
return R.ok(walletForeignService.pageJoin(page, dto));
}
@Operation(summary = "app查询详情", description = "app分页")
@Operation(summary = "app查询详情", description = "app查询详情")
@GetMapping("/app/detail")
public R<WalletForeignVo> appPageJoin(@RequestParam Long id) {
return R.ok(walletForeignService.join(id));
}
@Operation(summary = "App新增外来人员电子餐券表", description = "App新增外来人员电子餐券表")
@SysLog("App新增外来人员电子餐券表")
@Operation(summary = "app申请外来人员电子餐券表", description = "app申请外来人员电子餐券表")
@SysLog("app申请外来人员电子餐券")
@PostMapping("/app/apply")
@Idempotent(expireTime = 10, info = "正在申请中,请勿重复操作")
public R appSave(@RequestBody WalletForeignDto dto) {
PjcloudUser loginUser = SecurityUtils.getUser();
dto.setUserId(loginUser.getId());
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.idempotent.annotation.Idempotent;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.common.security.annotation.Inner;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
@@ -67,8 +68,9 @@ public class WalletStrideController {
}
@Operation(summary = "app申请", description = "app申请")
@SysLog("app申请")
@SysLog("app申请跨单位就餐")
@PostMapping("/app/apply")
@Idempotent(expireTime = 10, info = "正在申请中,请勿重复操作")
public R appSave(@RequestBody WalletStrideDto dto) {
PjcloudUser loginUser = SecurityUtils.getUser();
dto.setUserId(loginUser.getId());