From 14b8f8b4343747d781d969924571883732ca2aff Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 7 Jan 2025 10:17:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:H5=E5=95=86=E6=88=B7=E3=80=81=E8=AE=A2?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/enums/MerchantTypeEnum.java | 2 +- .../controller/hard/HardApiController.java | 2 +- ...ntroller.java => HardOrderController.java} | 20 +++++- .../hard/service/HardOrderService.java | 2 +- .../impl/order/HardwareOrderServiceImpl.java | 3 +- .../controller/SysUserFaceController.java | 68 ++++++------------- .../pjcloud/wallet/api/dto/MchManageDto.java | 2 + .../recharge/app/WalletAppRechargeDto.java | 28 ++++++++ .../controller/MchManageController.java | 16 ++++- .../recharge/WalletRechargeController.java | 9 +++ .../wallet/mapper/MchManageMapper.java | 4 +- .../service/WalletRechargePackageService.java | 7 ++ .../wallet/service/WalletRechargeService.java | 7 ++ .../service/impl/MchManageServiceImpl.java | 2 +- .../WalletRechargePackageServiceImpl.java | 13 ++++ .../recharge/WalletRechargeServiceImpl.java | 45 +++++++++++- 16 files changed, 173 insertions(+), 57 deletions(-) rename pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/{HardwareOrderController.java => HardOrderController.java} (79%) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/app/WalletAppRechargeDto.java diff --git a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/MerchantTypeEnum.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/MerchantTypeEnum.java index 110b0e974..f5d2f76ad 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/MerchantTypeEnum.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/MerchantTypeEnum.java @@ -9,7 +9,7 @@ import lombok.RequiredArgsConstructor; public enum MerchantTypeEnum { CANTEEN("1", "食堂"), SUPERMARKET("2", "超市"), - ; + ; /** * 类型 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java index c4b8ffcad..d30f56395 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java @@ -56,7 +56,7 @@ public class HardApiController { @GetMapping("/get-order") @Operation(summary = "获取订单详情") public R getOrderJoin(@RequestParam Long id) { - return R.ok(hardwareOrderService.getOrderDetail(id)); + return R.ok(hardwareOrderService.join(id)); } @PostMapping("/create-order") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardwareOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java similarity index 79% rename from pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardwareOrderController.java rename to pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java index 308bbfb01..2de3e45c9 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardwareOrderController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java @@ -7,6 +7,8 @@ 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.log.annotation.SysLog; +import com.bsd.pjcloud.common.security.service.PjcloudUser; +import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity; import com.bsd.pjcloud.hard.service.HardOrderService; @@ -33,10 +35,26 @@ import java.util.List; @RequestMapping("/hard-order") @Tag(description = "hard-order", name = "订单表管理") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -public class HardwareOrderController { +public class HardOrderController { private final HardOrderService hardwareOrderService; + /* ************************************* start app start ************************************* */ + @Operation(summary = "app查询订单列表", description = "app查询订单列表") + @GetMapping("/app/page-join") + public R appPageJoin(@ParameterObject Page page, @ParameterObject HardOrderDto dto) { + PjcloudUser user = SecurityUtils.getUser(); + dto.setUserId(user.getId()); + return R.ok(hardwareOrderService.pageJoin(page, dto)); + } + + @Operation(summary = "app查询订单详情", description = "app查询订单详情") + @GetMapping("/app/detail") + public R appDetail(@RequestParam Long id) { + return R.ok(hardwareOrderService.join(id)); + } + /* ************************************* end app end ************************************* */ + @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_view')") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java index 493aadb41..46c655050 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java @@ -13,7 +13,7 @@ public interface HardOrderService extends IService { Page pageJoin(Page page, HardOrderDto dto); - HardOrderVo getOrderDetail(Long id); + HardOrderVo join(Long id); Long createOrder(HardCreateOrderDto dto); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardwareOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardwareOrderServiceImpl.java index d0bb17a1d..e8b0d2e79 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardwareOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardwareOrderServiceImpl.java @@ -67,12 +67,13 @@ public class HardwareOrderServiceImpl extends ServiceImpl wrapper = Wrappers.lambdaQuery(); return R.ok(sysUserFaceService.page(page, wrapper)); @@ -55,80 +62,47 @@ public class SysUserFaceController { @Operation(summary = "分页复杂查询", description = "分页复杂查询") @GetMapping("/page-join") -// @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_view')") + // @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_view')") public R getSysUserFacePageJoin(@ParameterObject Page page, @ParameterObject SysUserFaceDto dto) { return R.ok(sysUserFaceService.pageJoin(page, dto)); } - - /** - * 通过id查询人脸样本表 - * - * @param id id - * @return R - */ @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") -// @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_view')") + // @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_view')") public R getById(@PathVariable("id") Long id) { return R.ok(sysUserFaceService.getById(id)); } - /** - * 新增人脸样本表 - * - * @param sysUserFace 人脸样本表 - * @return R - */ @Operation(summary = "新增人脸样本表", description = "新增人脸样本表") @SysLog("新增人脸样本表") @PostMapping -// @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_add')") + // @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_add')") public R save(@RequestBody SysUserFaceEntity sysUserFace) { return R.ok(sysUserFaceService.create(sysUserFace)); } - /** - * 修改人脸样本表 - * - * @param sysUserFace 人脸样本表 - * @return R - */ @Operation(summary = "修改人脸样本表", description = "修改人脸样本表") @SysLog("修改人脸样本表") @PutMapping -// @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_edit')") + // @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_edit')") public R updateById(@RequestBody SysUserFaceEntity sysUserFace) { sysUserFaceService.edit(sysUserFace); return R.ok(true); } - /** - * 通过id删除人脸样本表 - * - * @param ids id列表 - * @return R - */ @Operation(summary = "通过id删除人脸样本表", description = "通过id删除人脸样本表") @SysLog("通过id删除人脸样本表") @DeleteMapping -// @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_del')") + // @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_del')") public R removeById(@RequestBody Long[] ids) { sysUserFaceService.delByIds(CollUtil.toList(ids)); return R.ok(true); } - - /** - * 导出excel 表格 - * - * @param sysUserFace 查询条件 - * @param ids 导出指定ID - * @return excel 文件流 - */ @ResponseExcel @GetMapping("/export") -// @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_export')") + // @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_export')") public List export(SysUserFaceEntity sysUserFace, Long[] ids) { return sysUserFaceService.list(Wrappers.lambdaQuery(sysUserFace).in(ArrayUtil.isNotEmpty(ids), SysUserFaceEntity::getId, ids)); } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java index 508ace06f..04c1d4bc1 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java @@ -18,4 +18,6 @@ public class MchManageDto extends MchManageEntity { private List ids; + private String type; + } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/app/WalletAppRechargeDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/app/WalletAppRechargeDto.java new file mode 100644 index 000000000..6875d31c6 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/recharge/app/WalletAppRechargeDto.java @@ -0,0 +1,28 @@ +package com.bsd.pjcloud.wallet.api.dto.recharge.app; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.AssertTrue; +import jakarta.validation.constraints.Min; +import lombok.Data; + +import java.util.Objects; + +@Data +public class WalletAppRechargeDto { + + @Schema(description = "支付金额") + @Min(value = 1, message = "支付金额必须大于零") + private Integer payPrice; + + @Schema(description = "充值套餐编号") + private Long packageId; + + @Schema(description = "钱包Id") + private Long walletId; + + @AssertTrue(message = "充值金额和充钱套餐不能同时为空") + public boolean isValidPayPriceAndPackageId() { + return Objects.nonNull(payPrice) || Objects.nonNull(packageId); + } + +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java index a8b000725..c057cad89 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java @@ -42,7 +42,6 @@ public class MchManageController { private final MchManageService mchManageService; /* ************************************* start 远程调用 start ************************************* */ - @Inner @GetMapping("/get-by-id") public R getById(@RequestParam Long id) { @@ -82,9 +81,22 @@ public class MchManageController { if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); return R.ok(mchManage); } - /* ************************************* end 远程调用 end ************************************* */ + /* ************************************* start app start ************************************* */ + @Operation(summary = "app查询商铺", description = "app查询商铺") + @GetMapping("/app/page-join") + public R> appPageJoin(@ParameterObject Page page, @ParameterObject MchManageDto dto) { + return R.ok(mchManageService.pageJoin(page, dto)); + } + + @Operation(summary = "app查询店铺详情", description = "app查询店铺详情") + @GetMapping("/app/detail") + public R appPageJoin(@RequestParam Long id) { + return R.ok(mchManageService.join(id)); + } + /* ************************************* end app end ************************************* */ + @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('wallet_mchManage_view')") diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeController.java index dd46be96b..487c9c8d8 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeDto; +import com.bsd.pjcloud.wallet.api.dto.recharge.app.WalletAppRechargeDto; import com.bsd.pjcloud.wallet.api.entity.recharge.WalletRechargeEntity; import com.bsd.pjcloud.wallet.service.WalletRechargeService; import org.springframework.security.access.prepost.PreAuthorize; @@ -37,6 +38,14 @@ public class WalletRechargeController { private final WalletRechargeService walletRechargeService; + /* ************************************* start app start ************************************* */ + @Operation(summary = "模拟充值", description = "模拟充值") + @PostMapping("/app/create") + public R appRecharge(@RequestBody WalletAppRechargeDto dto) { + return R.ok(walletRechargeService.createWalletRecharge(dto)); + } + /* ************************************* end app end ************************************* */ + @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('wallet_walletRecharge_view')") diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/MchManageMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/MchManageMapper.java index 73131679c..2fdf13047 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/MchManageMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/MchManageMapper.java @@ -7,6 +7,7 @@ import com.bsd.pjcloud.wallet.api.dto.MchManageDto; import com.bsd.pjcloud.wallet.api.entity.MchManageEntity; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import com.github.yulichang.query.MPJLambdaQueryWrapper; +import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -19,7 +20,8 @@ public interface MchManageMapper extends PjcloudBaseMapper { MPJLambdaQueryWrapper wrapper = new MPJLambdaQueryWrapper() .selectAll(MchManageEntity.class) .likeIfExists(MchManageEntity::getName, dto.getName()) - .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()); + .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()) + .apply(ObjectUtil.isNotEmpty(dto.getType()), "FIND_IN_SET({0}, types)", dto.getType()); return selectJoinPage(page, MchManageVo.class, wrapper); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargePackageService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargePackageService.java index 4ba5a4c8f..533f005c4 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargePackageService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargePackageService.java @@ -9,4 +9,11 @@ import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargePackageVo; public interface WalletRechargePackageService extends IService { Page pageJoin(Page page, WalletRechargePackageDto dto); + + /** + * 校验是否有效 + * @param packageId + * @return + */ + WalletRechargePackageEntity validEffective(Long packageId); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeService.java index 195b341ee..63ffb7e99 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeService.java @@ -3,6 +3,7 @@ package com.bsd.pjcloud.wallet.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeDto; +import com.bsd.pjcloud.wallet.api.dto.recharge.app.WalletAppRechargeDto; import com.bsd.pjcloud.wallet.api.entity.recharge.WalletRechargeEntity; import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeVo; @@ -10,4 +11,10 @@ public interface WalletRechargeService extends IService { Page pageJoin(Page page, WalletRechargeDto dto); + /** + * app充值 + * @param dto + * @return + */ + WalletRechargeEntity createWalletRecharge(WalletAppRechargeDto dto); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java index 8265ab031..fd8e34ef5 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java @@ -134,7 +134,7 @@ public class MchManageServiceImpl extends ServiceImpl implements WalletRechargeService { + @Lazy + private final WalletRechargeService walletRechargeService; + private final WalletRechargePackageService walletRechargePackageService; + private final WalletManageService walletManageService; + private final WalletTransactionService walletTransactionService; + @Override public Page pageJoin(Page page, WalletRechargeDto dto) { return baseMapper.pageJoin(page, dto); } - + @Override + @Transactional(rollbackFor = Exception.class) + public WalletRechargeEntity createWalletRecharge(WalletAppRechargeDto dto) { + // 计算充值金额 + int payPrice = 0, bonusPrice = 0; + if (ObjectUtil.isNotEmpty(dto.getPackageId())) { + WalletRechargePackageEntity rechargePackage = walletRechargePackageService.validEffective(dto.getPackageId()); + payPrice = rechargePackage.getPayPrice(); + bonusPrice = rechargePackage.getBonusPrice(); + } else { + payPrice = dto.getPayPrice(); + } + // 插入充值记录 + WalletManageEntity wallet = walletManageService.getWallet(dto.getWalletId()); + WalletRechargeEntity rechargeObj = WalletRechargeEntity.builder().walletId(wallet.getId()).payPrice(payPrice).bonusPrice(bonusPrice).totalPrice(payPrice + bonusPrice).packageId(dto.getPackageId()).build(); + walletRechargeService.save(rechargeObj); + // 增加余额 + walletTransactionService.addWalletBalance(wallet.getId(), rechargeObj.getTotalPrice(), String.valueOf(rechargeObj.getId()), WalletBizEnum.RECHARGE); + return rechargeObj; + } } \ No newline at end of file