Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
A
Afrishop refactored project
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Whispa
Afrishop refactored project
Commits
b035dfc7
提交
b035dfc7
authored
11月 11, 2020
作者:
Whispa
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
commit commit
上级
4bc1e550
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
699 行增加
和
7 行删除
+699
-7
TbCfItemOrderR.java
...n/java/com/example/afrishop_v3/models/TbCfItemOrderR.java
+0
-2
TbCfOrder.java
src/main/java/com/example/afrishop_v3/models/TbCfOrder.java
+12
-0
TbCfPlatformOrder.java
...ava/com/example/afrishop_v3/models/TbCfPlatformOrder.java
+12
-2
Time.java
src/main/java/com/example/afrishop_v3/models/Time.java
+27
-0
LogisticsTask.java
...in/java/com/example/afrishop_v3/quartz/LogisticsTask.java
+158
-0
OrderTask.java
src/main/java/com/example/afrishop_v3/quartz/OrderTask.java
+386
-0
QuartzMethod.java
...ain/java/com/example/afrishop_v3/quartz/QuartzMethod.java
+73
-0
TbCfExchangeRepository.java
...xample/afrishop_v3/repository/TbCfExchangeRepository.java
+11
-0
TbCfItemOrderRepository.java
...ample/afrishop_v3/repository/TbCfItemOrderRepository.java
+3
-0
TbCfItemSkuRepository.java
...example/afrishop_v3/repository/TbCfItemSkuRepository.java
+2
-0
TbCfOrderRepository.java
...m/example/afrishop_v3/repository/TbCfOrderRepository.java
+7
-0
TbCfPlatformOrderRepository.java
...e/afrishop_v3/repository/TbCfPlatformOrderRepository.java
+5
-0
application-dev.yml
src/main/resources/application-dev.yml
+3
-3
没有找到文件。
src/main/java/com/example/afrishop_v3/models/TbCfItemOrderR.java
浏览文件 @
b035dfc7
...
...
@@ -71,8 +71,6 @@ public class TbCfItemOrderR {
private
String
shopId
;
@JsonIgnore
@ManyToOne
private
TbCfOrder
order
;
...
...
src/main/java/com/example/afrishop_v3/models/TbCfOrder.java
浏览文件 @
b035dfc7
...
...
@@ -3,6 +3,7 @@ package com.example.afrishop_v3.models;
import
com.example.afrishop_v3.base.StateConstant
;
import
com.example.afrishop_v3.enums.OrderStatusEnum
;
import
com.example.afrishop_v3.util.IdUtil
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
org.hibernate.annotations.Where
;
...
...
@@ -156,6 +157,11 @@ public class TbCfOrder {
*/
private
String
remarkInfo
;
@JsonIgnore
@JoinColumn
(
columnDefinition
=
"user_id"
,
name
=
"user_id"
)
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
private
TbCfUserInfo
userInfo
;
@Transient
private
TbCfExpressTemplate
defaultTemplate
;
...
...
@@ -170,6 +176,12 @@ public class TbCfOrder {
@OneToMany
(
mappedBy
=
"orderId"
,
cascade
=
CascadeType
.
ALL
)
private
List
<
TbCfItemOrderR
>
itemOrderList
=
new
ArrayList
<>();
@JsonIgnore
public
TbCfUserInfo
getUserInfo
()
{
return
userInfo
;
}
/**
* 设置:订单id
*/
...
...
src/main/java/com/example/afrishop_v3/models/TbCfPlatformOrder.java
浏览文件 @
b035dfc7
package
com
.
example
.
afrishop_v3
.
models
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
lombok.Data
;
import
javax.persistence.Entity
;
import
javax.persistence.Id
;
import
javax.persistence.*
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
...
...
@@ -77,6 +77,10 @@ public class TbCfPlatformOrder {
*/
private
Integer
logisticsStatus
;
@JsonIgnore
@JoinColumn
(
columnDefinition
=
"order_id"
,
name
=
"order_id"
)
@ManyToOne
(
fetch
=
FetchType
.
LAZY
)
private
TbCfOrder
order
;
/**
* 设置:对应id
*/
...
...
@@ -97,6 +101,12 @@ public class TbCfPlatformOrder {
this
.
orderId
=
orderId
;
}
@JsonIgnore
public
TbCfOrder
getOrder
()
{
return
order
;
}
/**
* 获取:订单id
*/
...
...
src/main/java/com/example/afrishop_v3/models/Time.java
0 → 100644
浏览文件 @
b035dfc7
package
com
.
example
.
afrishop_v3
.
models
;
/**
* @Auther: wudepeng
* @Date: 2020/05/25
* @Description:
*/
public
class
Time
{
private
String
startTime
;
private
String
endTime
;
public
String
getStartTime
()
{
return
startTime
;
}
public
void
setStartTime
(
String
startTime
)
{
this
.
startTime
=
startTime
;
}
public
String
getEndTime
()
{
return
endTime
;
}
public
void
setEndTime
(
String
endTime
)
{
this
.
endTime
=
endTime
;
}
}
src/main/java/com/example/afrishop_v3/quartz/LogisticsTask.java
0 → 100644
浏览文件 @
b035dfc7
package
com
.
example
.
afrishop_v3
.
quartz
;
import
com.example.afrishop_v3.enums.DeliveryStatusEnum
;
import
com.example.afrishop_v3.models.TbCfOrder
;
import
com.example.afrishop_v3.models.TbCfPlatformOrder
;
import
com.example.afrishop_v3.models.Time
;
import
com.example.afrishop_v3.repository.TbCfOrderRepository
;
import
com.example.afrishop_v3.repository.TbCfPlatformOrderRepository
;
import
com.example.afrishop_v3.util.HttpClientUtil
;
import
net.sf.json.JSONArray
;
import
net.sf.json.JSONObject
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
/**
* @Author : wudepeng
* @Date: 2020/05/25
* @Description:物流任务
*/
@Component
public
class
LogisticsTask
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
LogisticsTask
.
class
);
private
final
TbCfOrderRepository
orderRepository
;
private
final
TbCfPlatformOrderRepository
platformOrderRepository
;
@Value
(
"${logistics.track}"
)
private
String
TRACK_API
;
@Value
(
"${logistics.sign}"
)
private
String
SIGN_API
;
@Value
(
"${logistics.stock}"
)
private
String
STOCK_API
;
@Value
(
"${logistics.user}"
)
private
String
USER_NO
;
@Value
(
"${logistics.token}"
)
private
String
TOKEN
;
@Value
(
"${logistics.add_order}"
)
private
String
ADD_ORDER_API
;
public
LogisticsTask
(
TbCfOrderRepository
orderRepository
,
TbCfPlatformOrderRepository
platformOrderRepository
)
{
this
.
orderRepository
=
orderRepository
;
this
.
platformOrderRepository
=
platformOrderRepository
;
}
//===================================================
//
//##定时查询意境通物流订单,然后将数据库订单进行相应的修改
//##物流状态 20:已到达中国仓 40:已到达非洲仓 50:已签收
//
//===================================================
/**
* 调用意境通API,查询已到达中国仓的订单,修改数据库订单状态为20
*
* @throws Exception
*/
@Scheduled
(
cron
=
"0 0 0/2 * * ? "
)
public
void
chainaWarehouse
()
throws
Exception
{
//封装请求参数
Map
<
String
,
Object
>
paramMap
=
getParamMap
();
paramMap
.
put
(
"incomeid"
,
855
);
//发送请求
afterLogistics
(
STOCK_API
,
paramMap
,
DeliveryStatusEnum
.
ON_LOAD
.
getValue
());
}
/**
* 调用意境通API,查询已到达非洲的订单,修改数据库订单状态为40
*
* @throws Exception
*/
@Scheduled
(
cron
=
"0 0 0/2 * * ? "
)
public
void
africanWarehouse
()
throws
Exception
{
//封装请求参数
Map
<
String
,
Object
>
paramMap
=
getParamMap
();
paramMap
.
put
(
"incomeid"
,
1170
);
//发送请求
afterLogistics
(
STOCK_API
,
paramMap
,
DeliveryStatusEnum
.
ON_AFRICA
.
getValue
());
}
/**
* 调用意境通API,查询已签收的订单,修改数据库订单状态为50
*
* @throws Exception
*/
@Scheduled
(
cron
=
"0 0 0/2 * * ? "
)
public
void
signed
()
throws
Exception
{
Map
<
String
,
Object
>
paramMap
=
getParamMap
();
afterLogistics
(
SIGN_API
,
paramMap
,
DeliveryStatusEnum
.
ARRIVALS
.
getValue
());
}
//公共处理方法
public
void
afterLogistics
(
String
API
,
Map
paramMap
,
Integer
status
)
throws
Exception
{
String
body
=
HttpClientUtil
.
sendPostWithBodyParameter
(
API
,
paramMap
);
JSONObject
jsonObject
=
JSONObject
.
fromObject
(
body
);
System
.
out
.
println
(
jsonObject
);
JSONArray
jsonArray
=
jsonObject
.
getJSONObject
(
"content"
).
getJSONArray
(
"data"
);
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
JSONObject
object
=
jsonArray
.
getJSONObject
(
i
);
//快递单号
String
expressNumber
=
object
.
getString
(
"sid"
);
Optional
<
TbCfPlatformOrder
>
platformOrder
=
platformOrderRepository
.
findFirstByPExpressNumber
(
expressNumber
);
if
(
platformOrder
.
isPresent
())
{
TbCfPlatformOrder
cfPlatformOrder
=
platformOrder
.
get
();
Optional
<
TbCfOrder
>
order
=
orderRepository
.
findById
(
cfPlatformOrder
.
getOrderId
());
if
(
order
.
isPresent
())
{
TbCfOrder
cfOrder
=
order
.
get
();
cfOrder
.
setDeliveryFlag
(
status
);
orderRepository
.
save
(
cfOrder
);
}
}
}
}
//封装公共的请求参数
public
Map
<
String
,
Object
>
getParamMap
()
throws
ParseException
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
Time
time
=
getTime
();
paramMap
.
put
(
"user_no"
,
USER_NO
);
paramMap
.
put
(
"token"
,
TOKEN
);
logger
.
info
(
"开始时间:"
+
time
.
getStartTime
());
logger
.
info
(
"结束时间:"
+
time
.
getEndTime
());
paramMap
.
put
(
"startime"
,
time
.
getStartTime
());
paramMap
.
put
(
"endtime"
,
time
.
getEndTime
());
return
paramMap
;
}
//封装时间
public
Time
getTime
()
throws
ParseException
{
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd hh:mm:ss"
);
Time
time
=
new
Time
();
Date
date
=
dateFormat
.
parse
(
dateFormat
.
format
(
new
Date
()));
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
date
);
calendar
.
add
(
Calendar
.
DATE
,
-
2
);
time
.
setStartTime
(
dateFormat
.
format
(
calendar
.
getTime
()));
time
.
setEndTime
(
dateFormat
.
format
(
new
Date
()));
return
time
;
}
}
src/main/java/com/example/afrishop_v3/quartz/OrderTask.java
0 → 100644
浏览文件 @
b035dfc7
差异被折叠。
点击展开。
src/main/java/com/example/afrishop_v3/quartz/QuartzMethod.java
0 → 100644
浏览文件 @
b035dfc7
package
com
.
example
.
afrishop_v3
.
quartz
;
import
com.example.afrishop_v3.repository.TbCfExchangeRepository
;
import
com.example.afrishop_v3.repository.UserRepository
;
import
com.example.afrishop_v3.util.HttpClientUtil
;
import
org.jsoup.Jsoup
;
import
org.jsoup.nodes.Document
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.net.URISyntaxException
;
@Component
public
class
QuartzMethod
{
private
final
UserRepository
userRepository
;
private
final
TbCfExchangeRepository
exchangeRepository
;
public
QuartzMethod
(
UserRepository
userRepository
,
@Qualifier
(
"tbCfExchangeRepository"
)
TbCfExchangeRepository
exchangeRepository
)
{
this
.
userRepository
=
userRepository
;
this
.
exchangeRepository
=
exchangeRepository
;
}
// //@Scheduled(cron = "0 0/1 * * * ? ")
// public void sendEmail() throws EmailException, TemplateException, IOException {
// System.out.println("////////////////////////////////////////////////////");
// String email= tbCfUserInfoService.findEmails();
// // String email= "1203063316@qq.com";
// if(email!=null){
// String s = tbCfUserInfoService.sendRegister(email);
// if(s!=null){
// System.out.println("已发送邮件:"+email);
// }
// }
// }
/**
* 美元-克瓦查
* @throws IOException
* @throws URISyntaxException
*/
@Scheduled
(
cron
=
"0 0 3 * * ?"
)
public
void
getRent
()
throws
IOException
,
URISyntaxException
{
String
content
=
HttpClientUtil
.
getContentByUrl
(
"https://cn.valutafx.com/USD-ZMW.htm?amount=1"
,
"rent"
);
// 解析为 Document 对象
Document
document
=
Jsoup
.
parse
(
content
);
String
rent
=
document
.
select
(
"div[class=rate-value]"
).
text
();
BigDecimal
rate
=
new
BigDecimal
(
rent
);
String
type
=
"USD-ZMW"
;
exchangeRepository
.
updateByType
(
type
,
rate
);
}
/**
* 美元-人民币
* @throws IOException
* @throws URISyntaxException
*/
@Scheduled
(
cron
=
"0 0 3 * * ?"
)
public
void
getRate
()
throws
IOException
,
URISyntaxException
{
String
content
=
HttpClientUtil
.
getContentByUrl
(
"https://cn.valutafx.com/USD-CNY.htm?amount=1"
,
"rent"
);
// 解析为 Document 对象
Document
document
=
Jsoup
.
parse
(
content
);
String
rent
=
document
.
select
(
"div[class=rate-value]"
).
text
();
BigDecimal
rate
=
new
BigDecimal
(
rent
);
String
type
=
"USD-CNY"
;
exchangeRepository
.
updateByType
(
type
,
rate
);
}
}
src/main/java/com/example/afrishop_v3/repository/TbCfExchangeRepository.java
浏览文件 @
b035dfc7
package
com
.
example
.
afrishop_v3
.
repository
;
import
com.example.afrishop_v3.models.TbCfExchange
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
org.springframework.data.repository.query.Param
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
@Service
(
"tbCfExchangeRepository"
)
public
interface
TbCfExchangeRepository
extends
PagingAndSortingRepository
<
TbCfExchange
,
String
>
{
TbCfExchange
findByExchangeCurrency
(
String
exchangeCurrency
);
@Transactional
@Query
(
value
=
"update tb_cf_exchange WHERE type=:type SET exchange_rate = :rate "
,
nativeQuery
=
true
)
@Modifying
void
updateByType
(
@Param
(
"type"
)
String
type
,
@Param
(
"rate"
)
BigDecimal
rate
);
}
src/main/java/com/example/afrishop_v3/repository/TbCfItemOrderRepository.java
浏览文件 @
b035dfc7
...
...
@@ -3,5 +3,8 @@ package com.example.afrishop_v3.repository;
import
com.example.afrishop_v3.models.TbCfItemOrderR
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
java.util.List
;
public
interface
TbCfItemOrderRepository
extends
PagingAndSortingRepository
<
TbCfItemOrderR
,
String
>
{
List
<
TbCfItemOrderR
>
findAllByOrderId
(
String
orderId
);
}
src/main/java/com/example/afrishop_v3/repository/TbCfItemSkuRepository.java
浏览文件 @
b035dfc7
...
...
@@ -4,7 +4,9 @@ import com.example.afrishop_v3.models.TbCfItemSkus;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
java.util.List
;
import
java.util.Optional
;
public
interface
TbCfItemSkuRepository
extends
PagingAndSortingRepository
<
TbCfItemSkus
,
String
>
{
List
<
TbCfItemSkus
>
findAllByItemIdOrderByOrderNumAsc
(
String
itemId
);
Optional
<
TbCfItemSkus
>
findFirstByItemId
(
String
itemId
);
}
src/main/java/com/example/afrishop_v3/repository/TbCfOrderRepository.java
浏览文件 @
b035dfc7
...
...
@@ -3,8 +3,15 @@ package com.example.afrishop_v3.repository;
import
com.example.afrishop_v3.models.TbCfOrder
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.repository.Query
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
org.springframework.data.repository.query.Param
;
import
java.util.Date
;
import
java.util.List
;
public
interface
TbCfOrderRepository
extends
PagingAndSortingRepository
<
TbCfOrder
,
String
>
{
Page
<
TbCfOrder
>
findAllByUserId
(
String
userId
,
Pageable
pageable
);
@Query
(
value
=
"select a from #{#entityName} a where :now > SUBDATE(a.orderTime,interval -1 day) and order_status=10"
)
List
<
TbCfOrder
>
getTimeoutOrders
(
@Param
(
"now"
)
Date
date
);
}
src/main/java/com/example/afrishop_v3/repository/TbCfPlatformOrderRepository.java
浏览文件 @
b035dfc7
...
...
@@ -3,5 +3,10 @@ package com.example.afrishop_v3.repository;
import
com.example.afrishop_v3.models.TbCfPlatformOrder
;
import
org.springframework.data.repository.PagingAndSortingRepository
;
import
java.util.List
;
import
java.util.Optional
;
public
interface
TbCfPlatformOrderRepository
extends
PagingAndSortingRepository
<
TbCfPlatformOrder
,
String
>
{
Optional
<
TbCfPlatformOrder
>
findFirstByPExpressNumber
(
String
pExpressNumber
);
List
<
TbCfPlatformOrder
>
findAllByLogisticsStatus
(
Integer
logisticsStatus
);
}
src/main/resources/application-dev.yml
浏览文件 @
b035dfc7
...
...
@@ -52,9 +52,9 @@ dpo:
#服务类型
service_type
:
5525
#回调地址
notify_url
:
http://1
65.22.82.105:700
0/zion/dpo/notify
notify_url
:
http://1
59.138.48.71:808
0/zion/dpo/notify
#取消地址
back_url
:
http://1
65.22.82.105:700
0/zion/dpo/cancel
back_url
:
http://1
59.138.48.71:808
0/zion/dpo/cancel
#支付成功页面
success_url
:
https://dev.diaosaas.com/afrishop_web/payment_successful
#支付失败页面
...
...
@@ -69,7 +69,7 @@ dpo:
flutter
:
pay_url
:
https://ravesandboxapi.flutterwave.com/flwv3-pug/getpaidx/api/v2/verify
refund_url
:
https://api.ravepay.co/gpx/merchant/transactions/refund
redirect_url
:
http://1
65.22.82.105:700
0/zion/flutterwave/notify
redirect_url
:
http://1
59.138.48.71:808
0/zion/flutterwave/notify
public_key
:
FLWPUBK_TEST-e3cc948e7cb24b2128fca3b781f6fce0-X
secret_key
:
FLWSECK_TEST-f88371ca63a989a4af95625475a0d22d-X
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论