临时提交

This commit is contained in:
墨大叔 2024-07-30 11:39:55 +08:00
parent 76714ad044
commit fca590fbd3
8 changed files with 100 additions and 4 deletions

View File

@ -116,7 +116,14 @@ public interface IStoreService
/**
* ids查询列表
*/
List<StoreVo> selectSmStoreListByIds(List<Long> ids);
default List<StoreVo> selectSmStoreListByIds(List<Long> ids) {
return selectSmStoreListByIds(ids, null);
}
/**
* ids查询列表
*/
List<StoreVo> selectSmStoreListByIds(List<Long> ids, Long userId);
/**
* 用户ID查询店铺列表

View File

@ -290,14 +290,16 @@ public class StoreServiceImpl implements IStoreService
* ids查询列表
*
* @param ids
* @param userId
*/
@Override
public List<StoreVo> selectSmStoreListByIds(List<Long> ids) {
public List<StoreVo> selectSmStoreListByIds(List<Long> ids, Long userId) {
if (CollectionUtils.isEmptyElement(ids)) {
return Collections.emptyList();
}
StoreQuery query = new StoreQuery();
query.setStoreIds(ids);
query.setUserId(userId);
return selectSmStoreList(query);
}

View File

@ -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;
/**

View File

@ -28,6 +28,7 @@ public class TransactionBillVO extends TransactionBill {
private String channelName;
@ApiModelProperty("商户手机号")
@JsonView(JsonViewProfile.AppMch.class)
private String mchMobile;
@ApiModelProperty("设备编号")

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -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<Long> ids) {
List<StoreVo> list = storeService.selectSmStoreListByIds(ids, getUserId());
return success(list);
}
}

View File

@ -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);
}
}