Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
D
data-server
Project
Project
Details
Activity
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
licc
data-server
Commits
009ad57a
Commit
009ad57a
authored
Mar 02, 2021
by
codezwjava
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
对接有赞获取有赞的订单数据实现
parent
a7402e90
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
268 additions
and
5 deletions
+268
-5
OrderMapper.java
...mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java
+13
-0
OrderMapper.xml
wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml
+18
-0
OrderInfo.java
...model/src/main/java/cn/wisenergy/model/app/OrderInfo.java
+2
-2
pom.xml
wisenergy-service/pom.xml
+22
-0
OrderService.java
.../src/main/java/cn/wisenergy/service/app/OrderService.java
+6
-0
OrderServiceImpl.java
.../java/cn/wisenergy/service/app/impl/OrderServiceImpl.java
+207
-3
No files found.
wisenergy-mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java
View file @
009ad57a
...
...
@@ -18,4 +18,17 @@ public interface OrderMapper extends BaseMapper<OrderInfo> {
* @return 订单列表
*/
List
<
OrderInfo
>
getByRebateStatus
(
@Param
(
"rebateStatus"
)
Integer
rebateStatus
);
/**
* 有赞订单数据插入
*/
void
insertYouZanOrders
(
OrderInfo
orderInfo
);
/**
* 根据tid获取订单数据
* @param tid 有赞生成的订单id
* @return 一条订单数据
*/
OrderInfo
getByTid
(
@Param
(
"tid"
)
String
tid
);
}
wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml
View file @
009ad57a
...
...
@@ -95,4 +95,22 @@
</where>
</select>
<insert
id=
"insertYouZanOrders"
parameterType=
"cn.wisenergy.model.app.OrderInfo"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into
<include
refid=
"table"
/>
(
<include
refid=
"cols_exclude_id"
/>
)
value
(
<include
refid=
"vals"
/>
)
</insert>
<select
id=
"getByTid"
resultType=
"cn.wisenergy.model.app.OrderInfo"
>
SELECT
<include
refid=
"cols_all"
/>
from
<include
refid=
"table"
/>
<where>
tid=#{tid}
</where>
</select>
</mapper>
\ No newline at end of file
wisenergy-model/src/main/java/cn/wisenergy/model/app/OrderInfo.java
View file @
009ad57a
...
...
@@ -85,13 +85,13 @@ public class OrderInfo {
* 订单关闭类型
*/
@ApiModelProperty
(
name
=
"closeType"
,
value
=
"订单关闭类型"
)
private
Date
closeType
;
private
Integer
closeType
;
/**
* 退款状态
*/
@ApiModelProperty
(
name
=
"refundState "
,
value
=
"退款状态"
)
private
Boolean
refundState
;
private
Long
refundState
;
/**
* 交易完成时间
...
...
wisenergy-service/pom.xml
View file @
009ad57a
...
...
@@ -72,6 +72,28 @@
<artifactId>
itext-asian
</artifactId>
<version>
5.2.0
</version>
</dependency>
<!--有赞SDK-->
<dependency>
<groupId>
com.youzan.cloud
</groupId>
<artifactId>
open-sdk-core
</artifactId>
<version>
1.0.7-RELEASE
</version>
</dependency>
<dependency>
<groupId>
com.youzan.cloud
</groupId>
<artifactId>
open-sdk-gen
</artifactId>
<version>
1.0.7.78771202102051104-RELEASE
</version>
</dependency>
<dependency>
<groupId>
com.youzan.cloud
</groupId>
<artifactId>
open-sdk-api
</artifactId>
<version>
1.0.7-RELEASE
</version>
</dependency>
<dependency>
<groupId>
com.youzan.cloud
</groupId>
<artifactId>
open-sdk-common
</artifactId>
<version>
1.0.7-RELEASE
</version>
</dependency>
</dependencies>
<!-- MAVEN构建 -->
...
...
wisenergy-service/src/main/java/cn/wisenergy/service/app/OrderService.java
View file @
009ad57a
package
cn
.
wisenergy
.
service
.
app
;
import
com.youzan.cloud.open.sdk.common.exception.SDKException
;
import
com.youzan.cloud.open.sdk.gen.v4_0_0.model.YouzanTradesSoldGetResult
;
/**
*@ Description: 订单接口定义
*@ Author : 86187
...
...
@@ -7,4 +10,7 @@ package cn.wisenergy.service.app;
* @author 86187
*/
public
interface
OrderService
{
void
getYouZanOrdersForCreateTime
()
throws
SDKException
;
void
getYouZanOrdersForUpdateTime
()
throws
SDKException
;
}
wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/OrderServiceImpl.java
View file @
009ad57a
...
...
@@ -4,12 +4,216 @@ import cn.wisenergy.mapper.OrderMapper;
import
cn.wisenergy.model.app.OrderInfo
;
import
cn.wisenergy.service.app.OrderService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.youzan.cloud.open.sdk.common.exception.SDKException
;
import
com.youzan.cloud.open.sdk.core.client.auth.Token
;
import
com.youzan.cloud.open.sdk.core.client.core.DefaultYZClient
;
import
com.youzan.cloud.open.sdk.core.oauth.model.OAuthToken
;
import
com.youzan.cloud.open.sdk.core.oauth.token.TokenParameter
;
import
com.youzan.cloud.open.sdk.gen.v4_0_0.model.YouzanTradesSoldGetResult
;
import
com.youzan.cloud.open.sdk.gen.v4_0_1.api.YouzanTradesSoldGet
;
import
com.youzan.cloud.open.sdk.gen.v4_0_1.model.YouzanTradesSoldGetParams
;
import
javafx.scene.input.DataFormat
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author
86187
* @ Description:
订单接口业务实现
* @ Author :
86187
* @author
zw
* @ Description:
定期获取有赞订单数据及更新订单状态
* @ Author :
zw
* @ Date : 2021/2/22 17:06
*/
@Service
@Slf4j
public
class
OrderServiceImpl
extends
ServiceImpl
<
OrderMapper
,
OrderInfo
>
implements
OrderService
{
@Autowired
private
OrderMapper
orderMapper
;
//有赞客户端
DefaultYZClient
yzClient
=
new
DefaultYZClient
();
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd hh:mm:ss"
);
Date
startCreatedDate
=
null
;
Date
endCreatedDate
=
null
;
Date
startUpdateDate
=
null
;
Date
endUpdateDate
=
null
;
Date
date
=
new
Date
();
/**
* 根据订单的创建时间获取有赞的订单数据 插入本地数据库
*
* @return
* @throws SDKException
*/
public
void
getYouZanOrdersForCreateTime
()
throws
SDKException
{
Token
token
=
youzanToken
();
YouzanTradesSoldGet
youzanTradesSoldGet
=
new
YouzanTradesSoldGet
();
//创建参数对象,并设置参数
YouzanTradesSoldGetParams
youzanTradesSoldGetParams
=
new
YouzanTradesSoldGetParams
();
OrderInfo
orderInfo
=
new
OrderInfo
();
try
{
// startCreatedDate = sdf.parse("2021-01-28 11:04:01");
// endCreatedDate = sdf.parse("2021-03-1 16:39:59");
//当前时间的前1分钟
startCreatedDate
=
sdf
.
parse
(
sdf
.
format
(
new
Date
(
date
.
getTime
()-(
long
)
80
*
24
*
60
*
60
*
1000
)));
log
.
info
(
"订单创建开始时间"
+
sdf
.
format
(
startCreatedDate
));
endCreatedDate
=
sdf
.
parse
(
sdf
.
format
(
date
));
log
.
info
(
"订单创建结束时间"
+
sdf
.
format
(
endCreatedDate
));
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
//设置查询条件 --> 根据订单创建时间获取
youzanTradesSoldGetParams
.
setStartCreated
(
startCreatedDate
);
youzanTradesSoldGetParams
.
setEndCreated
(
endCreatedDate
);
youzanTradesSoldGet
.
setAPIParams
(
youzanTradesSoldGetParams
);
//执行查询
YouzanTradesSoldGetResult
result
=
yzClient
.
invoke
(
youzanTradesSoldGet
,
token
,
YouzanTradesSoldGetResult
.
class
);
List
<
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultFullorderinfolist
>
fullOrderInfoList
=
result
.
getData
().
getFullOrderInfoList
();
//遍历订单数据
for
(
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultFullorderinfolist
youzanTradesSoldGetResultFullorderinfolist
:
fullOrderInfoList
)
{
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultBuyerinfo
buyerInfo
=
youzanTradesSoldGetResultFullorderinfolist
.
getFullOrderInfo
().
getBuyerInfo
();
List
<
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultOrders
>
orders
=
youzanTradesSoldGetResultFullorderinfolist
.
getFullOrderInfo
().
getOrders
();
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultOrderinfo
youzanOrderInfo
=
youzanTradesSoldGetResultFullorderinfolist
.
getFullOrderInfo
().
getOrderInfo
();
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultPayinfo
payInfo
=
youzanTradesSoldGetResultFullorderinfolist
.
getFullOrderInfo
().
getPayInfo
();
//item_id 字段 处理
List
<
String
>
itemList
=
new
ArrayList
<>();
for
(
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultOrders
order
:
orders
)
{
String
itemId
=
order
.
getItemId
().
toString
();
itemList
.
add
(
itemId
);
}
orderInfo
.
setItemId
(
itemList
.
toString
());
//有赞的outer_user_id
orderInfo
.
setBuyerId
(
buyerInfo
.
getOuterUserId
());
//支付方式
orderInfo
.
setPayType
(
youzanOrderInfo
.
getPayType
().
toString
());
//有赞update_time
orderInfo
.
setYouzanUpdateTime
(
youzanOrderInfo
.
getUpdateTime
());
//tid
orderInfo
.
setTid
(
youzanOrderInfo
.
getTid
());
//created 订单创建时间
orderInfo
.
setCreated
(
youzanOrderInfo
.
getCreated
());
//team_type 店铺类型
orderInfo
.
setTeamType
(
youzanOrderInfo
.
getTeamType
());
//pay_time
orderInfo
.
setPayTime
(
youzanOrderInfo
.
getPayTime
());
//pay_type_str 支付渠道
orderInfo
.
setPayTypeStr
(
youzanOrderInfo
.
getPayTypeStr
());
//close_type
orderInfo
.
setCloseType
(
youzanOrderInfo
.
getCloseType
().
intValue
());
//refund_state 退款状态
orderInfo
.
setRefundState
(
youzanOrderInfo
.
getRefundState
());
//success_time
orderInfo
.
setSuccessTime
(
youzanOrderInfo
.
getSuccessTime
());
//payment
orderInfo
.
setPayment
(
new
BigDecimal
(
payInfo
.
getPayment
()));
//rebate_status 返佣状态
orderInfo
.
setRebateStatus
(
0
);
//month_order_status //当月订单处理状态
orderInfo
.
setMonthOrderStatus
(
0
);
//monthly_task_status //月度任务处理状态
orderInfo
.
setMonthlyTaskStatus
(
0
);
log
.
info
(
"根据创建时间获取有赞订单号:"
+
youzanOrderInfo
.
getTid
());
orderMapper
.
insertYouZanOrders
(
orderInfo
);
}
}
/**
* 根据订单的修改时间获取有赞的订单数据 修改本地数据库的相关订单数据
*
* @return
* @throws SDKException
*/
public
void
getYouZanOrdersForUpdateTime
()
throws
SDKException
{
Token
token
=
youzanToken
();
YouzanTradesSoldGet
youzanTradesSoldGet
=
new
YouzanTradesSoldGet
();
//创建参数对象,并设置参数
YouzanTradesSoldGetParams
youzanTradesSoldGetParams
=
new
YouzanTradesSoldGetParams
();
OrderInfo
orderInfo
=
new
OrderInfo
();
try
{
// startUpdateDate = sdf.parse("2021-02-28 11:04:01");
// endUpdateDate = sdf.parse("2021-03-2 16:39:59");
startCreatedDate
=
sdf
.
parse
(
sdf
.
format
(
new
Date
(
date
.
getTime
()-(
long
)
80
*
24
*
60
*
60
*
1000
)));
log
.
info
(
"订单修改开始时间"
+
sdf
.
format
(
startUpdateDate
));
startUpdateDate
=
sdf
.
parse
(
sdf
.
format
(
date
));
log
.
info
(
"订单修改结束时间"
+
sdf
.
format
(
endUpdateDate
));
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
//设置查询条件 --> 根据订单修改时间获取
youzanTradesSoldGetParams
.
setStartUpdate
(
startUpdateDate
);
youzanTradesSoldGetParams
.
setEndUpdate
(
endUpdateDate
);
youzanTradesSoldGet
.
setAPIParams
(
youzanTradesSoldGetParams
);
//调用有赞客户端进行查询
YouzanTradesSoldGetResult
result
=
yzClient
.
invoke
(
youzanTradesSoldGet
,
token
,
YouzanTradesSoldGetResult
.
class
);
List
<
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultFullorderinfolist
>
fullOrderInfoList
=
result
.
getData
().
getFullOrderInfoList
();
//遍历订单数据
for
(
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultFullorderinfolist
youzanTradesSoldGetResultFullorderinfolist
:
fullOrderInfoList
)
{
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultOrderinfo
youzanOrderInfo
=
youzanTradesSoldGetResultFullorderinfolist
.
getFullOrderInfo
().
getOrderInfo
();
YouzanTradesSoldGetResult
.
YouzanTradesSoldGetResultPayinfo
payInfo
=
youzanTradesSoldGetResultFullorderinfolist
.
getFullOrderInfo
().
getPayInfo
();
log
.
info
(
youzanTradesSoldGetResultFullorderinfolist
.
toString
());
//根据修改时间获取到的有赞订单数据的Tid
String
tid
=
youzanOrderInfo
.
getTid
();
OrderInfo
orderByTid
=
orderMapper
.
getByTid
(
tid
);
//确保是同一笔订单且订单的success_time=null是进行订单success_time状态修改
if
(
orderByTid
!=
null
&&
orderByTid
.
getSuccessTime
()
==
null
){
//支付方式
orderInfo
.
setPayType
(
youzanOrderInfo
.
getPayType
().
toString
());
//有赞update_time
orderInfo
.
setYouzanUpdateTime
(
youzanOrderInfo
.
getUpdateTime
());
//tid
orderInfo
.
setTid
(
youzanOrderInfo
.
getTid
());
//pay_time
orderInfo
.
setPayTime
(
youzanOrderInfo
.
getPayTime
());
//pay_type_str 支付渠道
orderInfo
.
setPayTypeStr
(
youzanOrderInfo
.
getPayTypeStr
());
//close_type
orderInfo
.
setCloseType
(
youzanOrderInfo
.
getCloseType
().
intValue
());
//refund_state 退款状态
orderInfo
.
setRefundState
(
youzanOrderInfo
.
getRefundState
());
//success_time
orderInfo
.
setSuccessTime
(
youzanOrderInfo
.
getSuccessTime
());
//payment
orderInfo
.
setPayment
(
new
BigDecimal
(
payInfo
.
getPayment
()));
log
.
info
(
"根据修改时间获取有赞订单号:"
+
youzanOrderInfo
.
getTid
());
//修改订单数据
orderMapper
.
updateById
(
orderInfo
);
}
}
}
/**
* 有赞token获取
*
* @return
* @throws SDKException
*/
public
static
Token
youzanToken
()
throws
SDKException
{
DefaultYZClient
yzClient
=
new
DefaultYZClient
();
TokenParameter
tokenParameter
=
TokenParameter
.
self
()
.
clientId
(
"92bc1c500ce7c248f3"
)
.
clientSecret
(
"3d65e88f5106e8ee78dbc5cf5ff45526"
)
.
grantId
(
"92488799"
)
.
refresh
(
true
)
.
build
();
OAuthToken
oAuthToken
=
yzClient
.
getOAuthToken
(
tokenParameter
);
String
accessToken
=
oAuthToken
.
getAccessToken
();
log
.
info
(
accessToken
);
Token
youzanToken
=
new
Token
(
accessToken
);
return
youzanToken
;
}
}
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