Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
c3096662
Commit
c3096662
authored
Sep 16, 2020
by
zhiheng.zhang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/2020/09/11-1.9.39-6位随机取餐码-张志恒' into qa
parents
7a5e693c
3f59dab0
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
97 additions
and
1 deletions
+97
-1
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+84
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+13
-1
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
c3096662
...
...
@@ -74,6 +74,7 @@ import org.apache.commons.lang.StringUtils;
import
org.apache.commons.lang.time.FastDateFormat
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
import
java.awt.geom.Point2D
;
...
...
@@ -81,7 +82,9 @@ import java.math.BigDecimal;
import
java.security.NoSuchAlgorithmException
;
import
java.security.spec.InvalidKeySpecException
;
import
java.text.DecimalFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
...
...
@@ -90,6 +93,11 @@ import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
@Component
public
class
OrderAdapter
{
public
final
static
String
TAKECODEKEY
=
"takecode"
;
public
static
final
String
REDIS_KEY_SEP
=
":"
;
public
static
final
String
numberChar
=
"0123456789"
;
public
static
final
String
numberCharWithoutZero
=
"12345"
;
private
static
FastDateFormat
yyyyMMddHHmmss
=
FastDateFormat
.
getInstance
(
"yyyy-MM-dd HH:mm:ss"
,
Locale
.
CHINA
);
private
static
String
SPMCHID
=
"1237482502"
;
...
...
@@ -126,6 +134,9 @@ public class OrderAdapter {
private
static
Gson
gson
=
new
Gson
();
@Autowired
private
RedisTemplate
redisTemplate
;
/**
* @param createOrderVo
* @param shoppingCartGoodsDto
...
...
@@ -3181,4 +3192,77 @@ public class OrderAdapter {
return
StringUtils
.
isNotBlank
(
payChannel
)
&&
OrderAdapter
.
PAY_CODE_10102
.
equalsIgnoreCase
(
payChannel
);
}
/**
* 生成取餐码
* @param partnerId 商户ID
* @param storeId 门店ID
* @return
*/
public
String
generateTackCode
(
String
partnerId
,
String
storeId
){
String
pickUpGoodsNo
=
generateNumber
(
6
);
String
key
=
this
.
getOrderTackCodeKey
(
partnerId
,
storeId
);
if
(!
redisTemplate
.
opsForHash
().
hasKey
(
key
,
storeId
+
pickUpGoodsNo
))
{
redisTemplate
.
opsForHash
().
put
(
key
,
storeId
+
pickUpGoodsNo
,
pickUpGoodsNo
);
redisTemplate
.
expire
(
key
,
getSecondsNextEarlyMorning
(),
TimeUnit
.
SECONDS
);
}
else
{
generateTackCode
(
partnerId
,
storeId
);
}
return
pickUpGoodsNo
;
}
/**
* 获取取餐码key
* @param partnerId
* @return
*/
public
String
getOrderTackCodeKey
(
String
partnerId
,
String
storeId
){
Date
currentDay
=
new
Date
();
String
todayStr
=
formatDate
(
currentDay
);
StringBuilder
key
=
new
StringBuilder
(
TAKECODEKEY
).
append
(
REDIS_KEY_SEP
)
.
append
(
partnerId
)
.
append
(
REDIS_KEY_SEP
)
.
append
(
storeId
)
.
append
(
REDIS_KEY_SEP
)
.
append
(
todayStr
);
return
key
.
toString
();
}
public
static
SimpleDateFormat
defaultDateFormater
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
private
String
formatDate
(
Date
date
){
return
defaultDateFormater
.
format
(
date
);
}
/**
* 返回一个定长的随机字符串(只包含大小写字母、数字)
*
* @param length
* 随机字符串长度
* @return 随机字符串
*/
public
static
String
generateNumber
(
int
length
)
{
StringBuffer
sb
=
new
StringBuffer
();
Random
random
=
new
Random
();
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
if
(
i
==
0
){
sb
.
append
(
numberCharWithoutZero
.
charAt
(
random
.
nextInt
(
numberCharWithoutZero
.
length
())));
}
else
{
sb
.
append
(
numberChar
.
charAt
(
random
.
nextInt
(
numberChar
.
length
())));
}
}
return
sb
.
toString
();
}
private
Long
getSecondsNextEarlyMorning
(){
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
add
(
Calendar
.
DAY_OF_YEAR
,
1
);
cal
.
set
(
Calendar
.
HOUR_OF_DAY
,
0
);
cal
.
set
(
Calendar
.
SECOND
,
0
);
cal
.
set
(
Calendar
.
MINUTE
,
0
);
cal
.
set
(
Calendar
.
MILLISECOND
,
0
);
return
(
cal
.
getTimeInMillis
()
-
System
.
currentTimeMillis
())
/
1000
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
c3096662
...
...
@@ -81,6 +81,7 @@ import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import
com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCodeReq
;
import
com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.response.carpark.OrderResp
;
import
com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
;
...
...
@@ -441,6 +442,17 @@ public class OrderServiceImpl implements Orderservice {
//orderRefund(orderBean, "订单异常退款", openid, oid);
return
gson
.
toJson
(
message
);
}
//获取生态缓存中的配置项,如果mealCodeRule的值不为空并且值等于2,则随机生成取参数,当日不重复
String
mealCodeRule
=
redisCache
.
getValue
(
"mealCodeRule"
);
if
(!
StringUtils
.
isEmpty
(
mealCodeRule
)
&&
"2"
.
equalsIgnoreCase
(
mealCodeRule
)){
//更新db中的取餐码,生成取餐码
OrderModifyRelatingCodeReq
relatingCodeReq
=
new
OrderModifyRelatingCodeReq
();
relatingCodeReq
.
setOrderCode
(
orderBean
.
getOid
());
relatingCodeReq
.
setOperator
(
orderBean
.
getCreateUser
());
relatingCodeReq
.
setPartnerId
(
orderBean
.
getCompanyId
());
relatingCodeReq
.
setPickUpGoodsNo
(
orderAdapter
.
generateTackCode
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()));
orderCenterSdkService
.
updatePickUpGoodNo
(
relatingCodeReq
,
LogThreadLocal
.
getTrackingNo
());
}
// TODO 订单序号替换取餐码显示
takeCode
=
payAccessResponse
.
getData
().
getTakeCode
();
daySeq
=
payAccessResponse
.
getData
().
getDaySeq
();
...
...
@@ -1534,7 +1546,7 @@ public class OrderServiceImpl implements Orderservice {
}
}
if
(
OrderStatus
.
COMPLETE
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
boolean
refundButton
=
this
.
orderAdapter
.
checkRefundButton
(
queryOrderByIdResponse
.
getData
(),
userInfo
.
getWxAppId
());
boolean
refundButton
=
orderAdapter
.
checkRefundButton
(
queryOrderByIdResponse
.
getData
(),
userInfo
.
getWxAppId
());
if
(!
refundButton
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_ALLOW_REFUND
.
getCode
(),
ResponseResult
.
ORDER_NOT_ALLOW_REFUND
.
getMessage
());
}
...
...
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