diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/IStoreService.java b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/IStoreService.java index 640fa762..548da4fb 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/IStoreService.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/IStoreService.java @@ -116,7 +116,14 @@ public interface IStoreService /** * ids查询列表 */ - List selectSmStoreListByIds(List ids); + default List selectSmStoreListByIds(List ids) { + return selectSmStoreListByIds(ids, null); + } + + /** + * ids查询列表 + */ + List selectSmStoreListByIds(List ids, Long userId); /** * 用户ID查询店铺列表 diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreServiceImpl.java index 16716e99..71ccdf2c 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/store/service/impl/StoreServiceImpl.java @@ -290,14 +290,16 @@ public class StoreServiceImpl implements IStoreService * ids查询列表 * * @param ids + * @param userId */ @Override - public List selectSmStoreListByIds(List ids) { + public List selectSmStoreListByIds(List ids, Long userId) { if (CollectionUtils.isEmptyElement(ids)) { return Collections.emptyList(); } StoreQuery query = new StoreQuery(); query.setStoreIds(ids); + query.setUserId(userId); return selectSmStoreList(query); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/domain/TransactionBill.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/domain/TransactionBill.java index b9562cf4..924a41d4 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/domain/TransactionBill.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/domain/TransactionBill.java @@ -89,6 +89,7 @@ public class TransactionBill extends BaseEntity implements Payable @Excel(name = "手续费") @ApiModelProperty("手续费") @Min(value = 0, message = "手续费不允许小于0", groups = { ValidGroup.Withdraw.class}) + @JsonView(JsonViewProfile.AppMch.class) private BigDecimal serviceCharge; @ApiModelProperty("订单状态:1未支付,2支付成功,3已退款,4已取消") @@ -96,6 +97,7 @@ public class TransactionBill extends BaseEntity implements Payable private String status; @ApiModelProperty("渠道id") + @JsonView(JsonViewProfile.App.class) private Long channelId; @ApiModelProperty("到账后余额") @@ -104,6 +106,7 @@ public class TransactionBill extends BaseEntity implements Payable @ApiModelProperty("支付成功的时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonView(JsonViewProfile.App.class) private Date payTime; @ApiModelProperty("支付过期时间") @@ -111,10 +114,11 @@ public class TransactionBill extends BaseEntity implements Payable private Date expireTime; @ApiModelProperty("交易账号(银行卡号、微信openId)") - @JsonView(JsonViewProfile.AppMch.class) + @JsonView(JsonViewProfile.App.class) private String accountNo; @ApiModelProperty("已支付/提现金额") + @JsonView(JsonViewProfile.App.class) private BigDecimal payedAmount; @ApiModelProperty("微信商家提现明细id列表") @@ -124,6 +128,7 @@ public class TransactionBill extends BaseEntity implements Payable private BigDecimal channelCost; @ApiModelProperty("设备充值状态,0未充值,1充值成功") + @JsonView(JsonViewProfile.App.class) private String deviceRechargeStatus; @ApiModelProperty("套餐id") @@ -139,7 +144,7 @@ public class TransactionBill extends BaseEntity implements Payable @ApiModelProperty("套餐时长单位") @NotBlank(message = "套餐时长单位不允许为空", groups = {ValidGroup.Recharge.class}) @DictValid(type = DictTypeConstants.TIME_UNIT, message = "非法的套餐时长单位", groups = {ValidGroup.Recharge.class}) - @JsonView(JsonViewProfile.AppUser.class) + @JsonView(JsonViewProfile.App.class) private String suitTimeUnit; @ApiModelProperty("套餐开始使用时间") @@ -179,18 +184,23 @@ public class TransactionBill extends BaseEntity implements Payable private String deviceMac; @ApiModelProperty("总计退款金额") + @JsonView(JsonViewProfile.App.class) private BigDecimal refundAmount; @ApiModelProperty("商户退款金额") + @JsonView(JsonViewProfile.AppMch.class) private BigDecimal refundMchAmount; @ApiModelProperty("服务费退款金额") + @JsonView(JsonViewProfile.AppMch.class) private BigDecimal refundServiceAmount; @ApiModelProperty("支付凭证") + @JsonView(JsonViewProfile.AppMch.class) private String payPicture; @ApiModelProperty("提现方式") + @JsonView(JsonViewProfile.AppMch.class) private String withdrawType; /** diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/domain/vo/TransactionBillVO.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/domain/vo/TransactionBillVO.java index 4db622be..61e5cb30 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/domain/vo/TransactionBillVO.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/domain/vo/TransactionBillVO.java @@ -28,6 +28,7 @@ public class TransactionBillVO extends TransactionBill { private String channelName; @ApiModelProperty("商户手机号") + @JsonView(JsonViewProfile.AppMch.class) private String mchMobile; @ApiModelProperty("设备编号") diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillValidator.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillValidator.java index 05933c92..732a4d45 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillValidator.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillValidator.java @@ -2,6 +2,7 @@ package com.ruoyi.ss.transactionBill.service; import com.ruoyi.common.core.domain.ValidateResult; import com.ruoyi.ss.transactionBill.domain.bo.RechargeBO; +import com.ruoyi.ss.transactionBill.domain.vo.TransactionBillVO; /** * 2024/4/22 @@ -30,4 +31,10 @@ public interface TransactionBillValidator { */ boolean canRechargeOnline(Long deviceId); + /** + * 判断用户是否订单收款人 + * @param bill 订单 + * @param userId 用户ID + */ + boolean isMch(TransactionBillVO bill, Long userId); } diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillValidatorImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillValidatorImpl.java index f4d480ec..e23ca998 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillValidatorImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillValidatorImpl.java @@ -14,6 +14,7 @@ import com.ruoyi.ss.suit.domain.SuitVo; import com.ruoyi.ss.suit.service.SuitService; import com.ruoyi.ss.transactionBill.domain.TransactionBill; import com.ruoyi.ss.transactionBill.domain.bo.RechargeBO; +import com.ruoyi.ss.transactionBill.domain.vo.TransactionBillVO; import com.ruoyi.ss.transactionBill.service.TransactionBillService; import com.ruoyi.ss.transactionBill.service.TransactionBillValidator; import com.ruoyi.ss.user.domain.SmUserVo; @@ -156,4 +157,9 @@ public class TransactionBillValidatorImpl extends BaseValidator implements Trans // 4G和WIFI可以进行在线充值 return device.getModelTags().contains(ModelTag.FOUR_G.getTag()) || device.getModelTags().contains(ModelTag.WIFI.getTag()); } + + @Override + public boolean isMch(TransactionBillVO bill, Long userId) { + return bill != null && bill.getMchId() != null && bill.getMchId().equals(userId); + } } diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/mch/MchStoreController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/mch/MchStoreController.java new file mode 100644 index 00000000..7f840cc7 --- /dev/null +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/mch/MchStoreController.java @@ -0,0 +1,36 @@ +package com.ruoyi.web.controller.mch; + +import com.fasterxml.jackson.annotation.JsonView; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.JsonViewProfile; +import com.ruoyi.ss.store.domain.StoreVo; +import com.ruoyi.ss.store.service.IStoreService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Arrays; +import java.util.List; + +/** + * @author wjh + * 2024/7/30 + */ +@RestController +@RequestMapping("/mch/store") +public class MchStoreController extends BaseController { + + @Autowired + private IStoreService storeService; + + @GetMapping("/listByIds/{ids}") + @JsonView(JsonViewProfile.AppMch.class) + public AjaxResult listByIds(@PathVariable List ids) { + List list = storeService.selectSmStoreListByIds(ids, getUserId()); + return success(list); + } + +} diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/mch/MchTransactionBillController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/mch/MchTransactionBillController.java index 8ded2a35..c2ffccc9 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/mch/MchTransactionBillController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/mch/MchTransactionBillController.java @@ -1,16 +1,25 @@ package com.ruoyi.web.controller.mch; +import com.fasterxml.jackson.annotation.JsonView; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.JsonViewProfile; +import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.ss.transactionBill.domain.TransactionBillQuery; +import com.ruoyi.ss.transactionBill.domain.vo.TransactionBillVO; +import com.ruoyi.ss.transactionBill.service.TransactionAssembler; import com.ruoyi.ss.transactionBill.service.TransactionBillService; +import com.ruoyi.ss.transactionBill.service.TransactionBillValidator; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Collections; + /** * @author wjh * 2024/7/29 @@ -22,6 +31,12 @@ public class MchTransactionBillController extends BaseController { @Autowired private TransactionBillService transactionBillService; + @Autowired + private TransactionBillValidator transactionBillValidator; + + @Autowired + private TransactionAssembler transactionAssembler; + @ApiOperation("商户查询统计信息") @GetMapping("/count") public AjaxResult count(TransactionBillQuery query) @@ -30,5 +45,17 @@ public class MchTransactionBillController extends BaseController { return success(transactionBillService.selectCount(query)); } + @ApiOperation("收款人获取订单详情") + @GetMapping("/{billId}") + @JsonView(JsonViewProfile.AppMch.class) + public AjaxResult detail(@PathVariable Long billId) { + TransactionBillVO bill = transactionBillService.selectSmTransactionBillByBillId(billId); + if (bill == null || !transactionBillValidator.isMch(bill, getUserId())) { + return success(); + } + transactionAssembler.assembleChannelName(Collections.singletonList(bill)); + return AjaxResult.success(bill); + } + }