记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
董敬伟
liquidnet-bus-v1
Commits
a29fc956
Commit
a29fc956
authored
Mar 27, 2026
by
姜秀龙
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
收钱吧商品列表、电店铺接口对接完成
parent
de7edea0
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
243 additions
and
173 deletions
+243
-173
GoblinSqbPerfGoodsVo.java
...liquidnet/service/goblin/dto/vo/GoblinSqbPerfGoodsVo.java
+49
-13
MallProductsQueryRequest.java
...in/param/shouqianba/request/MallProductsQueryRequest.java
+0
-28
IGoblinSqbGoodsService.java
...uidnet/service/goblin/service/IGoblinSqbGoodsService.java
+3
-4
SqbPerformanceGoodsServiceImpl.java
...i/goblin/service/impl/SqbPerformanceGoodsServiceImpl.java
+21
-21
GoblinSqbGoodsController.java
...t/service/goblin/controller/GoblinSqbGoodsController.java
+1
-1
GoblinSqbGoodsServiceImpl.java
...ervice/goblin/service/impl/GoblinSqbGoodsServiceImpl.java
+155
-89
GoblinSqbOrderServiceImpl.java
...ervice/goblin/service/impl/GoblinSqbOrderServiceImpl.java
+14
-17
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/vo/GoblinSqbPerfGoodsVo.java
View file @
a29fc956
package
com
.
liquidnet
.
service
.
goblin
.
dto
.
vo
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.liquidnet.service.goblin.param.shouqianba.response.data.MallProductsQueryData
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Data
public
class
GoblinSqbPerfGoodsVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"商城编号"
)
private
String
mallSn
;
@ApiModelProperty
(
"商城名称"
)
private
String
mallName
;
@ApiModelProperty
(
value
=
"商品spuId"
)
private
String
spuId
;
private
String
spuName
;
private
String
skuId
;
private
String
skuName
;
/** 商品原价(分/元,与原有 price 字段保持向后兼容) */
private
Long
price
;
private
String
coverPic
;
private
Integer
sort
;
/** 换购价格(为 null 时按售价) */
private
BigDecimal
settlementPrice
;
/** 商品库存(管理后台展示用) */
private
Integer
stock
;
/** 商品状态(管理后台展示用) */
private
Integer
status
;
@ApiModelProperty
(
value
=
"商品图片"
)
private
List
<
String
>
converImages
;
@ApiModelProperty
(
value
=
"商品描述"
)
private
String
productIntroduction
;
@ApiModelProperty
(
value
=
"商品标题"
)
private
String
title
;
@ApiModelProperty
(
value
=
"商品规格"
)
private
List
<
MallProductsQueryData
.
Sku
>
skuResults
;
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@ApiModel
(
value
=
"商品规格"
)
public
static
class
Sku
{
@ApiModelProperty
(
value
=
"库存类型"
)
private
Integer
stockType
;
@ApiModelProperty
(
value
=
"商品skuId"
)
private
String
skuId
;
@ApiModelProperty
(
value
=
"库存值"
)
private
BigDecimal
quantity
;
@ApiModelProperty
(
value
=
"规格标题"
)
private
String
skuTitle
;
@ApiModelProperty
(
value
=
"规格名称"
)
private
String
skuName
;
@ApiModelProperty
(
value
=
"价格"
)
private
Long
price
;
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/shouqianba/request/MallProductsQueryRequest.java
View file @
a29fc956
...
...
@@ -17,32 +17,4 @@ public class MallProductsQueryRequest {
@ApiModelProperty
(
value
=
"商城标识"
,
required
=
true
)
private
CommonRequest
.
Mall
mallID
;
@ApiModelProperty
(
value
=
"商品筛选条件"
)
private
Filter
filter
;
@ApiModelProperty
(
value
=
"分页游标"
)
private
Cursor
cursor
;
@Data
@ApiModel
(
"商品筛选条件"
)
public
static
class
Filter
{
@ApiModelProperty
(
value
=
"商品ID (spuId)"
)
private
String
spuId
;
@ApiModelProperty
(
value
=
"商品名称 (模糊查询)"
)
private
String
title
;
}
@Data
@ApiModel
(
"分页游标"
)
public
static
class
Cursor
{
@ApiModelProperty
(
value
=
"游标字段"
)
private
String
cursorField
;
@ApiModelProperty
(
value
=
"查询数量"
)
private
Integer
count
;
@ApiModelProperty
(
value
=
"结束游标"
)
private
String
endCursor
;
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/service/IGoblinSqbGoodsService.java
View file @
a29fc956
...
...
@@ -12,12 +12,11 @@ import java.util.List;
public
interface
IGoblinSqbGoodsService
{
/**
* 获取所有商城及商品列表
* 自动拉取所有商城,循环获取每个商城的商品列表,聚合返回
* 根据搜索条件拉取商城商品列表
*
* @return
商城
商品列表
* @return
过滤后的
商品列表
*/
ResponseDto
<
List
<
GoblinSqbPerfGoodsVo
>>
get
AllMallProducts
();
ResponseDto
<
List
<
GoblinSqbPerfGoodsVo
>>
get
ProductList
();
/**
* 批量新增商品到 goblin 系统(不存在则新增)
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/goblin/service/impl/SqbPerformanceGoodsServiceImpl.java
View file @
a29fc956
...
...
@@ -202,20 +202,20 @@ public class SqbPerformanceGoodsServiceImpl implements ISqbPerformanceGoodsServi
List
<
GoblinSqbPerfGoodsVo
>
goodsList
=
new
ArrayList
<>();
for
(
GoblinSqbPerformanceGoods
rel
:
relations
)
{
GoblinSqbPerfGoodsVo
vo
=
new
GoblinSqbPerfGoodsVo
();
vo
.
setSkuId
(
rel
.
getSkuId
());
vo
.
setSpuId
(
rel
.
getSpuId
());
vo
.
setSort
(
rel
.
getSort
());
vo
.
setSettlementPrice
(
rel
.
getSettlementPrice
());
vo
.
setStatus
(
rel
.
getStatus
());
GoblinGoodsSku
sku
=
skuMap
.
get
(
rel
.
getSkuId
());
if
(
sku
!=
null
)
{
vo
.
setSkuName
(
sku
.
getName
());
vo
.
setSpuName
(
sku
.
getName
());
vo
.
setCoverPic
(
sku
.
getSkuPic
());
vo
.
setPrice
(
sku
.
getPrice
()
!=
null
?
sku
.
getPrice
().
longValue
()
:
null
);
vo
.
setStock
(
sku
.
getSkuStock
());
}
//
vo.setSkuId(rel.getSkuId());
//
vo.setSpuId(rel.getSpuId());
//
vo.setSort(rel.getSort());
//
vo.setSettlementPrice(rel.getSettlementPrice());
//
vo.setStatus(rel.getStatus());
//
//
GoblinGoodsSku sku = skuMap.get(rel.getSkuId());
//
if (sku != null) {
//
vo.setSkuName(sku.getName());
//
vo.setSpuName(sku.getName());
//
vo.setCoverPic(sku.getSkuPic());
//
vo.setPrice(sku.getPrice() != null ? sku.getPrice().longValue() : null);
//
vo.setStock(sku.getSkuStock());
//
}
goodsList
.
add
(
vo
);
}
resp
.
setGoodsList
(
goodsList
);
...
...
@@ -246,13 +246,13 @@ public class SqbPerformanceGoodsServiceImpl implements ISqbPerformanceGoodsServi
List
<
GoblinSqbPerfGoodsVo
>
result
=
new
ArrayList
<>();
for
(
GoblinGoodsSku
sku
:
skuList
)
{
GoblinSqbPerfGoodsVo
vo
=
new
GoblinSqbPerfGoodsVo
();
vo
.
setSkuId
(
sku
.
getSkuId
());
vo
.
setSpuId
(
sku
.
getSpuId
());
vo
.
setSkuName
(
sku
.
getName
());
vo
.
setSpuName
(
sku
.
getName
());
// 前端显示需要,统一赋值为 sku 名称
vo
.
setCoverPic
(
sku
.
getSkuPic
());
// 同步阶段已将图片存入了 skuPic
vo
.
setPrice
(
sku
.
getPrice
()
!=
null
?
sku
.
getPrice
().
longValue
()
:
null
);
vo
.
setStock
(
sku
.
getSkuStock
());
//
vo.setSkuId(sku.getSkuId());
//
vo.setSpuId(sku.getSpuId());
//
vo.setSkuName(sku.getName());
//
vo.setSpuName(sku.getName()); // 前端显示需要,统一赋值为 sku 名称
//
vo.setCoverPic(sku.getSkuPic()); // 同步阶段已将图片存入了 skuPic
//
vo.setPrice(sku.getPrice() != null ? sku.getPrice().longValue() : null);
//
vo.setStock(sku.getSkuStock());
result
.
add
(
vo
);
}
return
ResponseDto
.
success
(
result
);
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinSqbGoodsController.java
View file @
a29fc956
...
...
@@ -37,7 +37,7 @@ public class GoblinSqbGoodsController {
@GetMapping
(
"/list"
)
@ApiOperation
(
"查询收钱吧所有商城及商品列表"
)
public
ResponseDto
<
List
<
GoblinSqbPerfGoodsVo
>>
list
()
{
return
goblinSqbGoodsService
.
get
AllMallProducts
();
return
goblinSqbGoodsService
.
get
ProductList
();
}
/**
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinSqbGoodsServiceImpl.java
View file @
a29fc956
This diff is collapsed.
Click to expand it.
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinSqbOrderServiceImpl.java
View file @
a29fc956
...
...
@@ -15,6 +15,7 @@ import com.liquidnet.service.goblin.service.IGoblinShouQianBaService;
import
com.liquidnet.service.goblin.service.IGoblinSqbOrderService
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.GoblinSqbRedisUtils
;
import
com.liquidnet.service.goblin.config.properties.ShouqianbaProperties
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -51,12 +52,8 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
private
static
final
DateTimeFormatter
DTF
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
);
// ========== 常量(后期可移至配置文件) ==========
// TODO: 将以下常量移至 application.yml 配置
private
static
final
String
SQB_APPID
=
"test_appid"
;
private
static
final
String
SQB_MERCHANT_ID
=
"todo_merchant_id"
;
private
static
final
String
SQB_MERCHANT_USER_ID
=
"todo_merchant_user_id"
;
private
static
final
String
SQB_ROLE
=
"super_admin"
;
@Autowired
private
ShouqianbaProperties
shouqianbaProperties
;
// ================================ 创建订单 ================================
...
...
@@ -100,7 +97,7 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
// Step 4.1: createSettlement → 得 checkoutItemsId
// TODO: 从商品数据中获取价格、图片、标题等信息填充 CheckoutItem
SettlementCreateRequest
settlementReq
=
new
SettlementCreateRequest
();
settlementReq
.
setAppid
(
SQB_APPID
);
settlementReq
.
setAppid
(
shouqianbaProperties
.
getAppId
()
);
settlementReq
.
setSeller
(
seller
);
CommonRequest
.
Buyer
buyer
=
new
CommonRequest
.
Buyer
();
buyer
.
setBuyerId
(
userId
);
...
...
@@ -117,7 +114,7 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
// Step 4.2: createOrder → 得 sqbOrderSn + sqbOrderSignature + sqbAcquiringSn
OrderCreateRequest
orderReq
=
new
OrderCreateRequest
();
orderReq
.
setAppid
(
SQB_APPID
);
orderReq
.
setAppid
(
shouqianbaProperties
.
getAppId
()
);
orderReq
.
setSeller
(
seller
);
orderReq
.
setCheckoutItemsId
(
checkoutItemsId
);
orderReq
.
setBuyer
(
buyer
);
...
...
@@ -372,7 +369,7 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
// 调用收钱吧查询券码
CouponQueryRequest
req
=
new
CouponQueryRequest
();
req
.
setAppid
(
SQB_APPID
);
req
.
setAppid
(
shouqianbaProperties
.
getAppId
()
);
req
.
setSeller
(
buildSeller
());
CouponQueryRequest
.
OrderInfo
orderInfo
=
new
CouponQueryRequest
.
OrderInfo
();
orderInfo
.
setSn
(
orderVo
.
getSqbOrderSn
());
...
...
@@ -422,7 +419,7 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
try
{
// 调用收钱吧退款
CouponRefundRequest
refundReq
=
new
CouponRefundRequest
();
refundReq
.
setAppid
(
SQB_APPID
);
refundReq
.
setAppid
(
shouqianbaProperties
.
getAppId
()
);
refundReq
.
setSeller
(
buildSeller
());
refundReq
.
setRequestSource
(
"EXTERN"
);
refundReq
.
setRequestId
(
IDGenerator
.
nextSnowId
());
...
...
@@ -480,14 +477,14 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
if
(!
userId
.
equals
(
orderVo
.
getUserId
()))
return
ResponseDto
.
failure
(
"无权限访问该订单"
);
CouponStatusSyncRequest
req
=
new
CouponStatusSyncRequest
();
req
.
setAppid
(
SQB_APPID
);
req
.
setAppid
(
shouqianbaProperties
.
getAppId
()
);
req
.
setRedeemSource
(
"EXTERN"
);
// TODO: 填充 voucherNos(券号列表)、redeemMerchantId、redeemExternalOrderSn、clientSn、status
// 需要从 orderVo 中获取 couponSn 和其他必要字段
if
(
orderVo
.
getCouponSn
()
!=
null
)
{
req
.
setVoucherNos
(
java
.
util
.
Collections
.
singletonList
(
orderVo
.
getCouponSn
()));
}
req
.
setRedeemMerchantId
(
SQB_MERCHANT_ID
);
req
.
setRedeemMerchantId
(
shouqianbaProperties
.
getMerchantId
()
);
req
.
setRedeemExternalOrderSn
(
IDGenerator
.
nextSnowId
());
req
.
setClientSn
(
"terminal_001"
);
// TODO: 配置终端号
req
.
setStatus
((
byte
)
1
);
// 1-已核销
...
...
@@ -729,16 +726,16 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
private
CommonRequest
.
Seller
buildSeller
()
{
CommonRequest
.
Seller
seller
=
new
CommonRequest
.
Seller
();
seller
.
setMerchantId
(
SQB_MERCHANT_ID
);
seller
.
setMerchantUserId
(
SQB_MERCHANT_USER_ID
);
seller
.
setRole
(
SQB_ROLE
);
seller
.
setMerchantId
(
shouqianbaProperties
.
getMerchantId
()
);
seller
.
setMerchantUserId
(
shouqianbaProperties
.
getMerchantUserId
()
);
seller
.
setRole
(
shouqianbaProperties
.
getRole
()
);
return
seller
;
}
private
CashierQueryRequest
buildCashierQueryRequest
(
CommonRequest
.
Seller
seller
,
String
acquiringSn
,
String
acquiringSignature
)
{
CashierQueryRequest
req
=
new
CashierQueryRequest
();
req
.
setAppid
(
SQB_APPID
);
req
.
setAppid
(
shouqianbaProperties
.
getAppId
()
);
req
.
setSeller
(
seller
);
req
.
setPaymentMode
(
4
);
// 4-微信小程序支付
...
...
@@ -760,7 +757,7 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
String
seq
,
CashierQueryData
cashierData
)
{
CreateWechatPrepayOrderRequest
req
=
new
CreateWechatPrepayOrderRequest
();
req
.
setAppid
(
SQB_APPID
);
req
.
setAppid
(
shouqianbaProperties
.
getAppId
()
);
req
.
setSeller
(
seller
);
req
.
setAcquiringSn
(
acquiringSn
);
req
.
setSignature
(
acquiringSignature
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment