记得上下班打卡 | git大法好,push需谨慎

Commit 9fc041df authored by wangyifan's avatar wangyifan

收钱吧接口字段提取

parent 6918c965
...@@ -3,7 +3,11 @@ package com.liquidnet.service.goblin.param.shouqianba.request; ...@@ -3,7 +3,11 @@ package com.liquidnet.service.goblin.param.shouqianba.request;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data @Data
public class CommonRequest { public class CommonRequest {
...@@ -11,6 +15,8 @@ public class CommonRequest { ...@@ -11,6 +15,8 @@ public class CommonRequest {
@Data @Data
@ApiModel(value = "商城信息") @ApiModel(value = "商城信息")
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
@AllArgsConstructor
@NoArgsConstructor
public static class Mall{ public static class Mall{
@ApiModelProperty(required = true, value = "商城ID") @ApiModelProperty(required = true, value = "商城ID")
...@@ -23,6 +29,8 @@ public class CommonRequest { ...@@ -23,6 +29,8 @@ public class CommonRequest {
@Data @Data
@ApiModel(value = "卖家信息/商户信息") @ApiModel(value = "卖家信息/商户信息")
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
@AllArgsConstructor
@NoArgsConstructor
public static class Seller { public static class Seller {
@ApiModelProperty(required = true, value = "商户ID") @ApiModelProperty(required = true, value = "商户ID")
private String merchantId; private String merchantId;
...@@ -36,6 +44,8 @@ public class CommonRequest { ...@@ -36,6 +44,8 @@ public class CommonRequest {
@Data @Data
@ApiModel("买家信息") @ApiModel("买家信息")
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public static class Buyer{ public static class Buyer{
@ApiModelProperty(required = true, value = "买家ID(用户唯一标识)") @ApiModelProperty(required = true, value = "买家ID(用户唯一标识)")
...@@ -44,6 +54,8 @@ public class CommonRequest { ...@@ -44,6 +54,8 @@ public class CommonRequest {
@Data @Data
@ApiModel("付款人信息") @ApiModel("付款人信息")
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
public static class Payer{ public static class Payer{
@ApiModelProperty(required = true, value = "付款人ID") @ApiModelProperty(required = true, value = "付款人ID")
...@@ -53,6 +65,8 @@ public class CommonRequest { ...@@ -53,6 +65,8 @@ public class CommonRequest {
@ApiModel(value = "收单信息") @ApiModel(value = "收单信息")
@Data @Data
@JsonIgnoreProperties(ignoreUnknown = true) @JsonIgnoreProperties(ignoreUnknown = true)
@AllArgsConstructor
@NoArgsConstructor
public static class Acquiring{ public static class Acquiring{
@ApiModelProperty(value = "收单号") @ApiModelProperty(value = "收单号")
private String acquiringSn; private String acquiringSn;
...@@ -60,4 +74,36 @@ public class CommonRequest { ...@@ -60,4 +74,36 @@ public class CommonRequest {
@ApiModelProperty(value = "收单密钥") @ApiModelProperty(value = "收单密钥")
private String signature; private String signature;
} }
@Data
@ApiModel(value = "金额构成信息")
@JsonIgnoreProperties(ignoreUnknown = true)
public static class AmountComposition {
@ApiModelProperty(required = true, value = "金额构成项列表")
private List<CompositionItem> compositionItems;
}
@Data
@ApiModel(value = "金额构成项详情")
@JsonIgnoreProperties(ignoreUnknown = true)
public static class CompositionItem {
@ApiModelProperty(required = true, value = "构成项类目")
private String category;
@ApiModelProperty(required = true, value = "构成项金额")
private Long amount;
}
@Data
@ApiModel(value = "订单信息")
@AllArgsConstructor
@NoArgsConstructor
public static class OrderInfo {
@ApiModelProperty(required = true, value = "订单ID")
private String sn;
@ApiModelProperty(required = true, value = "订单密码")
private String signature;
}
} }
...@@ -12,21 +12,10 @@ public class CouponQueryRequest { ...@@ -12,21 +12,10 @@ public class CouponQueryRequest {
private String appid; private String appid;
@ApiModelProperty(required = true, value = "订单信息") @ApiModelProperty(required = true, value = "订单信息")
private OrderInfo orderID; private CommonRequest.OrderInfo orderID;
@ApiModelProperty(required = true, value = "卖家信息", example = "4") @ApiModelProperty(required = true, value = "卖家信息", example = "4")
private CommonRequest.Seller seller; private CommonRequest.Seller seller;
@Data
@ApiModel(value = "订单信息")
public static class OrderInfo {
@ApiModelProperty(required = true, value = "订单ID")
private String sn;
@ApiModelProperty(required = true, value = "订单密码")
private String signature;
}
} }
...@@ -2,10 +2,11 @@ package com.liquidnet.service.goblin.param.shouqianba.request; ...@@ -2,10 +2,11 @@ package com.liquidnet.service.goblin.param.shouqianba.request;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List; import java.util.List;
import java.util.Map;
@Data @Data
@ApiModel(value = "券退款请求参数") @ApiModel(value = "券退款请求参数")
...@@ -18,7 +19,7 @@ public class CouponRefundRequest { ...@@ -18,7 +19,7 @@ public class CouponRefundRequest {
private CommonRequest.Seller seller; private CommonRequest.Seller seller;
@ApiModelProperty(required = true, value = "订单信息") @ApiModelProperty(required = true, value = "订单信息")
private OrderInfo orderID; private CommonRequest.OrderInfo orderID;
@ApiModelProperty(required = true, value = "申请退款信息不能为空") @ApiModelProperty(required = true, value = "申请退款信息不能为空")
private RefundInfo refundInfo; private RefundInfo refundInfo;
...@@ -29,19 +30,11 @@ public class CouponRefundRequest { ...@@ -29,19 +30,11 @@ public class CouponRefundRequest {
@ApiModelProperty(required = true, value = "退款来源(固定值:EXTERN)") @ApiModelProperty(required = true, value = "退款来源(固定值:EXTERN)")
private String requestSource; private String requestSource;
@Data
@ApiModel(value = "订单信息")
public static class OrderInfo {
@ApiModelProperty(required = true, value = "单号(前置操作后拿到)")
private String sn;
@ApiModelProperty(required = true, value = "密码(前置操作后拿到)")
private String signature;
}
@Data @Data
@ApiModel(value = "退款信息") @ApiModel(value = "退款信息")
@AllArgsConstructor
@NoArgsConstructor
public static class RefundInfo { public static class RefundInfo {
@ApiModelProperty(required = true, value = "金额") @ApiModelProperty(required = true, value = "金额")
private Long applyAmount; private Long applyAmount;
......
...@@ -51,7 +51,7 @@ public class CreateWechatPrepayOrderRequest { ...@@ -51,7 +51,7 @@ public class CreateWechatPrepayOrderRequest {
private String amount; private String amount;
@ApiModelProperty(required = true, value = "金额构成") @ApiModelProperty(required = true, value = "金额构成")
private AmountComposition amountComposition; private CommonRequest.AmountComposition amountComposition;
@ApiModelProperty(required = true, value = "用户身份信息", example = "wzwl") @ApiModelProperty(required = true, value = "用户身份信息", example = "wzwl")
private String identity; private String identity;
...@@ -86,20 +86,5 @@ public class CreateWechatPrepayOrderRequest { ...@@ -86,20 +86,5 @@ public class CreateWechatPrepayOrderRequest {
private String latitude; private String latitude;
} }
@Data
@ApiModel(value = "金额构成信息")
public static class AmountComposition {
@ApiModelProperty(required = true, value = "金额构成项列表")
private List<CompositionItem> compositionItems;
}
@Data
@ApiModel(value = "金额构成项详情")
public static class CompositionItem {
@ApiModelProperty(required = true, value = "构成项类目")
private String category;
@ApiModelProperty(required = true, value = "构成项金额")
private Long amount;
}
} }
package com.liquidnet.service.goblin.param.shouqianba.response.data; package com.liquidnet.service.goblin.param.shouqianba.response.data;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.service.goblin.param.shouqianba.request.CommonRequest;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -65,27 +66,10 @@ public class CashierQueryData { ...@@ -65,27 +66,10 @@ public class CashierQueryData {
private List<String> tips; private List<String> tips;
@ApiModelProperty(value = "金额构成") @ApiModelProperty(value = "金额构成")
private AmountComposition amountComposition; private CommonRequest.AmountComposition amountComposition;
} }
@Data
@ApiModel(value = "金额构成信息")
@JsonIgnoreProperties(ignoreUnknown = true)
public static class AmountComposition {
@ApiModelProperty(required = true, value = "金额构成项列表")
private List<CompositionItem> compositionItems;
}
@Data
@ApiModel(value = "金额构成项详情")
@JsonIgnoreProperties(ignoreUnknown = true)
public static class CompositionItem {
@ApiModelProperty(required = true, value = "构成项类目")
private String category;
@ApiModelProperty(required = true, value = "构成项金额")
private Long amount;
}
@Data @Data
@ApiModel(value = "收款方信息") @ApiModel(value = "收款方信息")
......
...@@ -5,6 +5,7 @@ import com.liquidnet.service.goblin.param.shouqianba.request.*; ...@@ -5,6 +5,7 @@ import com.liquidnet.service.goblin.param.shouqianba.request.*;
import com.liquidnet.service.goblin.param.shouqianba.response.data.*; import com.liquidnet.service.goblin.param.shouqianba.response.data.*;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 收钱吧对接接口定义 * 收钱吧对接接口定义
...@@ -25,6 +26,16 @@ public interface IGoblinShouQianBaService { ...@@ -25,6 +26,16 @@ public interface IGoblinShouQianBaService {
*/ */
SettlementCreateData createSettlement(SettlementCreateRequest request); SettlementCreateData createSettlement(SettlementCreateRequest request);
/**
*
* @param mallSn 商城ID
* @param signature 商城密钥
* @param userId 正在用户ID
* @param checkoutItems 商品
* @return
*/
SettlementCreateData createSettlement(String mallSn, String signature, String userId, List<SettlementCreateRequest.CheckoutItem> checkoutItems);
/** /**
* 创建订单 * 创建订单
* *
...@@ -33,6 +44,18 @@ public interface IGoblinShouQianBaService { ...@@ -33,6 +44,18 @@ public interface IGoblinShouQianBaService {
*/ */
OrderCreateData createOrder(OrderCreateRequest request); OrderCreateData createOrder(OrderCreateRequest request);
/**
*
* @param mallSn 商城ID
* @param signature 商城密钥
* @param checkoutItemsId 创建结算明细 返回的 结算项ID
* @param userId 正在用户ID
* @param requestId 请求ID
* @param subject 标题
* @return
*/
OrderCreateData createOrder(String mallSn, String signature, String checkoutItemsId, String userId, String requestId, String subject);
/** /**
* 创建收单 * 创建收单
* 如果上一步创建收单失败 可以使用这个接口重新创建收单 * 如果上一步创建收单失败 可以使用这个接口重新创建收单
...@@ -49,6 +72,15 @@ public interface IGoblinShouQianBaService { ...@@ -49,6 +72,15 @@ public interface IGoblinShouQianBaService {
*/ */
CashierQueryData queryCashier(CashierQueryRequest request); CashierQueryData queryCashier(CashierQueryRequest request);
/**
* 查询收银台
* @param acquiringSn 收单号
* @param acquiringSignature 收单密钥
* @param userId 正在用户ID
* @return
*/
CashierQueryData queryCashier(String acquiringSn, String acquiringSignature, String userId);
/** /**
* 创建微信预支付订单 * 创建微信预支付订单
* *
...@@ -57,6 +89,30 @@ public interface IGoblinShouQianBaService { ...@@ -57,6 +89,30 @@ public interface IGoblinShouQianBaService {
*/ */
CreateWechatPrepayOrderData createWechatPrepayOrder(CreateWechatPrepayOrderRequest request); CreateWechatPrepayOrderData createWechatPrepayOrder(CreateWechatPrepayOrderRequest request);
/**
* 创建微信预支付订单
*
* @param acquiringSn 收单号
* @param signature 收单签名
* @param userId 正在用户ID
* @param amount 支付金额
* @param requestSn 支付请求号
* @param payTool 支付工具代码
* @param channelExt 通道扩展参数
* @param selectedSignature 支付工具签名
* @param seq 序列号 上一步seq(查询收银台)
* @return
*/
CreateWechatPrepayOrderData createWechatPrepayOrder(String acquiringSn,
String signature,
String userId,
String amount,
String requestSn,
CashierQueryData.PayTool payTool,
Map<String, Object> channelExt,
String selectedSignature,
String seq);
/** /**
* 查询券码 * 查询券码
* *
...@@ -65,6 +121,14 @@ public interface IGoblinShouQianBaService { ...@@ -65,6 +121,14 @@ public interface IGoblinShouQianBaService {
*/ */
CouponQueryData queryCoupon(CouponQueryRequest request); CouponQueryData queryCoupon(CouponQueryRequest request);
/**
* 查询券码
* @param sn 订单ID
* @param signature 订单密码
* @return
*/
CouponQueryData queryCoupon(String sn, String signature);
/** /**
* 券码状态同步 * 券码状态同步
* *
...@@ -73,6 +137,21 @@ public interface IGoblinShouQianBaService { ...@@ -73,6 +137,21 @@ public interface IGoblinShouQianBaService {
*/ */
boolean syncCouponStatus(CouponStatusSyncRequest request); boolean syncCouponStatus(CouponStatusSyncRequest request);
/**
* 券码状态同步
* @param redeemMerchantId 用户ID(自定义,核销用户id)
* @param voucherNos 券号
* @param redeemExternalOrderSn 外部单号(${AppCode}+id,AppCode需要分配)
* @param clientSn 核销终端号(自定义)
* @param status 券使用状态(0未核销,1已核销)
* @return
*/
boolean syncCouponStatus(String redeemMerchantId,
List<String> voucherNos,
String redeemExternalOrderSn,
String clientSn,
Byte status);
/** /**
* 券退款 * 券退款
* *
...@@ -81,6 +160,24 @@ public interface IGoblinShouQianBaService { ...@@ -81,6 +160,24 @@ public interface IGoblinShouQianBaService {
*/ */
CouponRefundData refundCoupon(CouponRefundRequest request); CouponRefundData refundCoupon(CouponRefundRequest request);
/**
* @param sn 单号(前置操作后拿到)
* @param signature 密码(前置操作后拿到)
* @param applyAmount 金额
* @param type 退款类型(1商品 2金额)
* @param item
* @param refundReason 退款原因
* @param requestId 退款请求id(${AppCode}+id)
* @return
*/
CouponRefundData refundCoupon(String sn,
String signature,
Long applyAmount,
Byte type,
List<CouponRefundRequest.RefundItem> item,
String refundReason,
String requestId);
/** /**
* 商城列表接口 * 商城列表接口
* *
...@@ -89,6 +186,14 @@ public interface IGoblinShouQianBaService { ...@@ -89,6 +186,14 @@ public interface IGoblinShouQianBaService {
*/ */
List<MallListQueryData> queryMallList(MallListQueryRequest request); List<MallListQueryData> queryMallList(MallListQueryRequest request);
/**
*
* @param endCursor 结束游标 上一页的结束游标(首次查询传 null)
* @param count 查询数量 每页返回的最大订单数
* @return
*/
List<MallListQueryData> queryMallList(String endCursor, Integer count);
/** /**
* 商城商品接口 * 商城商品接口
* *
...@@ -97,6 +202,14 @@ public interface IGoblinShouQianBaService { ...@@ -97,6 +202,14 @@ public interface IGoblinShouQianBaService {
*/ */
List<MallProductsQueryData> queryMallProducts(MallProductsQueryRequest request); List<MallProductsQueryData> queryMallProducts(MallProductsQueryRequest request);
/**
* 商城商品接口
* @param mallSn 商城ID
* @param signature 商城密码
* @return
*/
List<MallProductsQueryData> queryMallProducts(String mallSn, String signature);
/** /**
* 验签 * 验签
* @param callbackParams * @param callbackParams
......
package com.liquidnet.service.goblin.util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.Map;
/**
* 收钱吧参数转换工具类
* 1. 金额转换:元(BigDecimal) -> 分(Long)
*/
@Slf4j
@Component
public class GoblinSqbConvertUtils {
/**
* 元转分 (BigDecimal -> Long)
* @param amount 元
* @return 分
*/
public Long yuanToFen(BigDecimal amount) {
if (amount == null) {
return 0L;
}
// 乘以 100 并设置四舍五入,确保转换后的精度
return amount.multiply(new BigDecimal("100"))
.setScale(0, RoundingMode.HALF_UP)
.longValue();
}
/**
* 根据正在的skuId、spuId获取收钱吧信息
* @param skuId
* @param spuId
* @return
*/
public Map<String, String> getSqbInfoByzhengzaiSkuIdAndSpuId(String skuId, String spuId) {
return new HashMap<>();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment