Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
caosy
/
fun-golf-service
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
1
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
3e292d4d
authored
Sep 19, 2018
by
Huang Linyu
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'f-6.6.9' of 192.168.10.6:caosy/fun-golf-service into f-6.6.9
parents
0e6d3d22
460aa016
Show whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
510 additions
and
59 deletions
src/main/java/com/ctrip/fun/golf/api/order/CommuneOrderController.java
src/main/java/com/ctrip/fun/golf/api/payment/AbstractNotifyController.java
src/main/java/com/ctrip/fun/golf/api/user/UserController.java
src/main/java/com/ctrip/fun/golf/dao/order/OrderDao.java
src/main/java/com/ctrip/fun/golf/dao/product/BuyVoucherActivityDao.java
src/main/java/com/ctrip/fun/golf/domain/payment/AESUtil.java
src/main/java/com/ctrip/fun/golf/domain/payment/WXUtil.java
src/main/java/com/ctrip/fun/golf/domain/product/BuyVoucherActivity.java
src/main/java/com/ctrip/fun/golf/service/basic/VoucherService.java
src/main/java/com/ctrip/fun/golf/service/order/AbstractOrderService.java
src/main/java/com/ctrip/fun/golf/service/order/CommuneOrderService.java
src/main/java/com/ctrip/fun/golf/service/order/EventActivityOrderService.java
src/main/java/com/ctrip/fun/golf/service/payment/AbstractNotifyService.java
src/main/java/com/ctrip/fun/golf/service/payment/AbstractPaymentService.java
src/main/java/com/ctrip/fun/golf/service/payment/CommuneNotifyService.java
src/main/java/com/ctrip/fun/golf/service/user/UserService.java
src/main/resources/apiclient_cert.p12
src/main/resources/base.spring.xml
src/main/resources/debug/payment.properties
src/main/resources/development/payment.properties
src/main/resources/hibernate.cfg.xml
src/main/resources/order.spring.xml
src/main/resources/payment.spring.xml
src/main/resources/product.spring.xml
src/main/resources/production/payment.properties
src/main/resources/test/payment.properties
src/main/resources/uat/payment.properties
src/test/java/com/ctrip/fun/golf/dao/statistics/user/UserOrderBehaviourStatisticsDaoTest.java
src/main/java/com/ctrip/fun/golf/api/order/CommuneOrderController.java
View file @
3e292d4d
...
...
@@ -2,6 +2,8 @@
* Copyright 2014 CTRIP Co.,Ltd. All rights reserved.
*/
package
com
.
ctrip
.
fun
.
golf
.
api
.
order
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
...
@@ -13,9 +15,12 @@ import com.alibaba.fastjson.JSONObject;
import
com.ctrip.fun.common.vo.Request
;
import
com.ctrip.fun.common.vo.Response
;
import
com.ctrip.fun.common.vo.ResponseMp
;
import
com.ctrip.fun.common.vo.ResponseStatusEnum
;
import
com.ctrip.fun.common.vo.order.BuyVoucherActivityBean
;
import
com.ctrip.fun.common.vo.order.CommuneOrderBean
;
import
com.ctrip.fun.common.vo.order.CommuneOrderListItemBean
;
import
com.ctrip.fun.common.vo.order.CommuneOrderResourceBean
;
import
com.ctrip.fun.common.vo.product.BuyVoucherActivityQuery
;
import
com.ctrip.fun.golf.service.order.AbstractOrderService
;
import
com.ctrip.fun.golf.service.order.CommuneOrderService
;
/**
...
...
@@ -57,6 +62,41 @@ public class CommuneOrderController extends AbstractOrderController<CommuneOrder
return
response
;
}
@ResponseBody
@RequestMapping
(
value
=
"/buyVoucherActivityList"
,
method
=
RequestMethod
.
POST
)
public
Response
<
List
<
BuyVoucherActivityBean
>>
getBuyVoucherActivityList
(
@RequestBody
Request
<
BuyVoucherActivityQuery
>
request
)
{
Response
<
List
<
BuyVoucherActivityBean
>>
response
=
new
Response
<
List
<
BuyVoucherActivityBean
>>();
List
<
BuyVoucherActivityBean
>
list
;
list
=
communeOrderService
.
buyVoucherActivityList
();
response
.
setStatus
(
ResponseStatusEnum
.
SUCCESS
.
getValue
());
response
.
setBody
(
list
);
return
response
;
}
@ResponseBody
@RequestMapping
(
value
=
"/getBuyVoucherActivityDetail"
,
method
=
RequestMethod
.
POST
)
public
Response
<
BuyVoucherActivityBean
>
getBuyVoucherActivityDetail
(
@RequestBody
Request
<
Integer
>
request
)
{
Response
<
BuyVoucherActivityBean
>
response
=
new
Response
<
BuyVoucherActivityBean
>();
BuyVoucherActivityBean
buyVoucherActivityBean
;
buyVoucherActivityBean
=
communeOrderService
.
getBuyVoucherActivityDetail
(
request
.
getBody
());
response
.
setStatus
(
ResponseStatusEnum
.
SUCCESS
.
getValue
());
response
.
setBody
(
buyVoucherActivityBean
);
return
response
;
}
@ResponseBody
@RequestMapping
(
value
=
"/getBuyVoucherActivityMessage"
,
method
=
RequestMethod
.
POST
)
public
Response
<
String
>
getBuyVoucherActivityMessage
(
@RequestBody
Request
<
String
>
request
)
{
Response
<
String
>
response
=
new
Response
<
String
>();
String
message
;
message
=
communeOrderService
.
getBuyVoucherActivityMessage
(
request
.
getBody
());
response
.
setStatus
(
ResponseStatusEnum
.
SUCCESS
.
getValue
());
response
.
setBody
(
message
);
return
response
;
}
@Override
protected
AbstractOrderService
<
CommuneOrderBean
,
CommuneOrderResourceBean
>
getOrderService
()
{
return
communeOrderService
;
...
...
src/main/java/com/ctrip/fun/golf/api/payment/AbstractNotifyController.java
View file @
3e292d4d
...
...
@@ -44,4 +44,10 @@ public abstract class AbstractNotifyController {
return
this
.
getNotifyService
().
notifyForWeiXinPay
(
xml
);
}
@ResponseBody
@RequestMapping
(
value
=
"/weiXinRefoundNotifyUrl"
,
method
=
RequestMethod
.
POST
)
public
String
weiXinRefoundNotify
(
@RequestBody
String
xml
)
throws
Exception
{
return
this
.
getNotifyService
().
weiXinRefoundNotify
(
xml
);
}
}
src/main/java/com/ctrip/fun/golf/api/user/UserController.java
View file @
3e292d4d
...
...
@@ -282,6 +282,19 @@ public class UserController {
}
@ResponseBody
@RequestMapping
(
value
=
"/resetMiniOpenid"
,
method
=
RequestMethod
.
POST
)
public
Response
<
String
>
resetMiniOpenid
(
@RequestBody
Request
<
ChangePasswordBean
>
request
)
{
Response
<
String
>
response
=
new
Response
<
String
>();
response
.
setStatus
(
ResponseStatusEnum
.
SUCCESS
.
getValue
());
response
.
setMessage
(
ResponseStatusEnum
.
SUCCESS
.
getMsg
());
userService
.
resetMiniOpenid
(
request
.
getBody
());
response
.
setBody
(
"success"
);
return
response
;
}
@ResponseBody
@RequestMapping
(
value
=
"/recommendUserList"
,
method
=
RequestMethod
.
POST
)
public
Response
<
PagedResponseBean
<
RecommendUserItemBean
>>
QueryRecommendUserAction
(
@RequestBody
Request
<
RecommendUserListQuery
>
request
)
{
...
...
src/main/java/com/ctrip/fun/golf/dao/order/OrderDao.java
View file @
3e292d4d
...
...
@@ -279,6 +279,15 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> {
return
pagedResponseBean
;
}
public
int
queryVoucherPayedOrder
(
String
uid
,
int
activityId
)
{
String
sql
=
"SELECT count(*) from ord_communeitem c where OrderID in (SELECT OrderID from ord_order where uid=:uid and ProcessStatus&16=16 and OrderCategory =16) and activityId=:activityId"
;
Session
session
=
this
.
getSession
();
Query
query
=
session
.
createSQLQuery
(
sql
);
query
.
setParameter
(
"uid"
,
uid
);
query
.
setParameter
(
"activityId"
,
activityId
);
return
((
BigInteger
)
query
.
uniqueResult
()).
intValue
();
}
@SuppressWarnings
(
"unchecked"
)
public
PagedEntityBean
<
Order
>
queryComOrders
(
OrderQuery
queryBean
)
{
PagedEntityBean
<
Order
>
pagedEntityBean
=
new
PagedEntityBean
<
Order
>();
...
...
src/main/java/com/ctrip/fun/golf/dao/product/BuyVoucherActivityDao.java
0 → 100644
View file @
3e292d4d
package
com
.
ctrip
.
fun
.
golf
.
dao
.
product
;
import
java.util.List
;
import
org.hibernate.Criteria
;
import
org.hibernate.criterion.MatchMode
;
import
org.hibernate.criterion.Order
;
import
org.hibernate.criterion.Projections
;
import
org.hibernate.criterion.Restrictions
;
import
com.ctrip.fun.common.vo.SortDirectionEnum
;
import
com.ctrip.fun.common.vo.product.BuyVoucherActivityQuery
;
import
com.ctrip.fun.golf.dao.GenericHibernateDao
;
import
com.ctrip.fun.golf.domain.product.BuyVoucherActivity
;
import
com.ctrip.fun.golf.vo.PagedEntityBean
;
/**
* @author zgsong
*
*/
public
class
BuyVoucherActivityDao
extends
GenericHibernateDao
<
BuyVoucherActivity
,
Integer
>
{
public
PagedEntityBean
<
BuyVoucherActivity
>
queryList
(
BuyVoucherActivityQuery
queryBean
)
{
Criteria
criteria
=
this
.
getCriteria
(
BuyVoucherActivity
.
class
);
if
(
null
!=
queryBean
.
getId
())
{
criteria
.
add
(
Restrictions
.
eq
(
"id"
,
queryBean
.
getId
()));
}
if
(
null
!=
queryBean
.
getActivityName
()
&&
!
""
.
equals
(
queryBean
.
getActivityName
()))
{
criteria
.
add
(
Restrictions
.
like
(
"activityName"
,
queryBean
.
getActivityName
(),
MatchMode
.
ANYWHERE
));
}
if
(
null
!=
queryBean
.
getValid
())
{
criteria
.
add
(
Restrictions
.
eq
(
"valid"
,
queryBean
.
getValid
()));
}
if
(
null
!=
queryBean
.
getCreatedTimeStart
())
{
criteria
.
add
(
Restrictions
.
ge
(
"createdTimeStart"
,
queryBean
.
getCreatedTimeStart
()));
}
if
(
null
!=
queryBean
.
getCreatedTimeEnd
())
{
criteria
.
add
(
Restrictions
.
le
(
"createdTimeEnd"
,
queryBean
.
getCreatedTimeEnd
()));
}
if
(
null
!=
queryBean
.
getUserLimit
())
{
criteria
.
add
(
Restrictions
.
eq
(
"userLimit"
,
queryBean
.
getUserLimit
()));
}
criteria
.
setFirstResult
(
queryBean
.
getPagerOffset
());
criteria
.
setMaxResults
(
queryBean
.
getPagerPerPage
());
if
(
queryBean
.
getSortDirection
().
equals
(
SortDirectionEnum
.
ASC
))
{
criteria
.
addOrder
(
Order
.
asc
(
queryBean
.
getSortField
()));
}
else
{
criteria
.
addOrder
(
Order
.
desc
(
queryBean
.
getSortField
()));
}
List
<
BuyVoucherActivity
>
result
=
criteria
.
list
();
criteria
.
setFirstResult
(
0
);
Long
count
=
(
Long
)
criteria
.
setProjection
(
Projections
.
rowCount
()).
uniqueResult
();
PagedEntityBean
<
BuyVoucherActivity
>
pagedEntityBean
=
new
PagedEntityBean
<
BuyVoucherActivity
>();
pagedEntityBean
.
setCount
(
count
);
pagedEntityBean
.
setResult
(
result
);
return
pagedEntityBean
;
}
}
src/main/java/com/ctrip/fun/golf/domain/payment/AESUtil.java
0 → 100644
View file @
3e292d4d
package
com
.
ctrip
.
fun
.
golf
.
domain
.
payment
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.bouncycastle.jce.provider.BouncyCastleProvider
;
import
javax.crypto.Cipher
;
import
javax.crypto.SecretKey
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.security.Security
;
/**
* Created by gds on 2018/7/26.
*/
public
class
AESUtil
{
public
static
String
getRefundDecrypt
(
String
reqInfoSecret
,
String
key
)
{
String
result
=
""
;
try
{
Security
.
addProvider
(
new
BouncyCastleProvider
());
sun
.
misc
.
BASE64Decoder
decoder
=
new
sun
.
misc
.
BASE64Decoder
();
byte
[]
bt
=
decoder
.
decodeBuffer
(
reqInfoSecret
);
String
md5key
=
DigestUtils
.
md5Hex
(
key
).
toLowerCase
();
SecretKey
secretKey
=
new
SecretKeySpec
(
md5key
.
getBytes
(),
"AES"
);
Cipher
cipher
=
Cipher
.
getInstance
(
"AES/ECB/PKCS7Padding"
,
"BC"
);
cipher
.
init
(
Cipher
.
DECRYPT_MODE
,
secretKey
);
byte
[]
resultbt
=
cipher
.
doFinal
(
bt
);
result
=
new
String
(
resultbt
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
result
;
}
public
static
void
main
(
String
[]
args
)
{
String
A
=
"cbRfjwOKrLQCOjAU0v1Ac6cDJQhK6349ngVplZHLe010obV59BJ75z05eUzG+Um3Zk9WxNO6jtk60bBDkMLmf4dZk41wSbyx/GiNNcRp3g0GdUMjGjhlyJgMAKiLbmVwcPEQnOoikcCbwGd0VmOdWcTk67kDlE4ssYW6pgBXp5bSBVotuar2Wxi0z20HGgsz7dcIVELP9+JfGwuiVV9xkhO8sPbEO4SIO2qhkRQ0QzbDYgn9gU1Iprzv6wGxFh+Bm/lJWuiBGwhFCT2fq1xEF1nDPEyW3LOWq4daCegXpvTXoXLZp9Xp6zcdxiDCsLgj8yj+q7ZNmVNt1vTUR94ZQAI1UAtCqK+1dI89DZdbifU7o0fVm/9WQqjcOIo4WemUJU7WfCsyHXBVvx8lZezoQc5ZGZOqTEZJCVKV6OF5iqvlNnZJ1byPg7BfHZnmbIjdETFMIOkq3oPicshnNlVZ9g08DvesDZzG/KJzI8NBMFfXNMjSJyuemsZ/0jFJRtKDOWoCQetWox+mORa5BPrMwvibTLkPZL0okvnyrJgFwGtE4BFTdnN/+cfuUISXMTbeZv6UjRJwD9y8B+wi4wTSUC1QXjlZEkV+RgBNnJD/n13NWUK1nlrwev/RHLsgjoMSYnF0mYec8g1BCyW0POcp4iEDaRVMrjQnACyyeMncSxA+KawdoFEOqMuAITv3B0Q9iZOTpI7yqnpquWiphXMuKovJgLp4vnPqerMMthTeaQ/rfVVO/U6Z4K/heTZKT2Y0y7kQP2GS+r/N5Qvu+J0sihJ8opoZ0AJ7ktwGrzcmkIq/DCCtAfgdAT8x3rtSXA4f8pb7WqFssdGRqgzMZR1jlcz3LD5+Du+BWK5QmyCeynywd9b6s7oYdyU0aI75LrT5EBOtEHAMGi2rmwb1X2wlEd3g4gCr2l1EEA4dUTdhsqynG0w64VHWJkvJgTOdmzMPWYksLu463qcy6dN44WuNBG0aw7uEQQIUXeRhDEwCBQVmzXNLzwQ6wHv6O9j7yvkvZll3SuGw7bbsfdSdAfQkJkLCj/MHuEKUauiV0mQS/2M="
;
String
key
=
"02a86cb980b1237eaa77fb86adf64657"
;
String
B
=
getRefundDecrypt
(
A
,
key
);
System
.
out
.
println
(
B
);
}
}
src/main/java/com/ctrip/fun/golf/domain/payment/WXUtil.java
View file @
3e292d4d
...
...
@@ -213,8 +213,7 @@ public class WXUtil {
*/
public
static
Map
<
String
,
String
>
doRefund
(
String
url
,
String
data
,
String
partner
)
throws
Exception
{
KeyStore
keyStore
=
KeyStore
.
getInstance
(
"PKCS12"
);
URL
url2
=
WXUtil
.
class
.
getClassLoader
().
getResource
(
"apiclient_cert.p12"
);
FileInputStream
instream
=
new
FileInputStream
(
new
File
(
url2
.
toURI
()));
//P12文件目录
FileInputStream
instream
=
new
FileInputStream
(
new
File
(
"/opt/apiclient_cert.p12"
));
//P12文件目录
try
{
keyStore
.
load
(
instream
,
partner
.
toCharArray
());
}
finally
{
...
...
src/main/java/com/ctrip/fun/golf/domain/product/BuyVoucherActivity.java
0 → 100644
View file @
3e292d4d
package
com
.
ctrip
.
fun
.
golf
.
domain
.
product
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Temporal
;
import
javax.persistence.TemporalType
;
import
static
javax
.
persistence
.
GenerationType
.
IDENTITY
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
/**
*买券活动
*
* @author zgsong
*
*/
@Entity
@Table
(
name
=
"prd_buyVoucherActivity"
)
public
class
BuyVoucherActivity
implements
java
.
io
.
Serializable
{
/**
* serialVersionUID
*/
private
static
final
long
serialVersionUID
=
-
8821033173307829967L
;
private
Integer
id
;
private
String
activityName
;
// 活动名称
private
String
imagePath
;
// 本次活动图片
private
String
thumPath
;
// 本次活动缩略图
private
BigDecimal
communePrice
;
// 会员价格
private
BigDecimal
guestPrice
;
// 嘉宾价
private
Integer
userLimit
;
// 购买限制
private
String
voucherConfig
;
// 本次活动的发券配置
private
String
message
;
// 购买成功后的提示
private
Integer
valid
;
// 活动有效标识1:有效 0失效
private
Integer
buyLimitTimes
;
//限制购买次数
private
Date
createdTime
;
//活动创建时间
private
Date
DataChange_LastTime
;
//最近修改时间
@Id
@GeneratedValue
(
strategy
=
IDENTITY
)
@Column
(
name
=
"id"
,
unique
=
true
)
public
Integer
getId
()
{
return
id
;
}
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
}
@Column
(
name
=
"activityName"
)
public
String
getActivityName
()
{
return
activityName
;
}
public
void
setActivityName
(
String
activityName
)
{
this
.
activityName
=
activityName
;
}
@Column
(
name
=
"imagePath"
)
public
String
getImagePath
()
{
return
imagePath
;
}
public
void
setImagePath
(
String
imagePath
)
{
this
.
imagePath
=
imagePath
;
}
@Column
(
name
=
"thumPath"
)
public
String
getThumPath
()
{
return
thumPath
;
}
public
void
setThumPath
(
String
thumPath
)
{
this
.
thumPath
=
thumPath
;
}
@Column
(
name
=
"communePrice"
)
public
BigDecimal
getCommunePrice
()
{
return
communePrice
;
}
public
void
setCommunePrice
(
BigDecimal
communePrice
)
{
this
.
communePrice
=
communePrice
;
}
@Column
(
name
=
"guestPrice"
)
public
BigDecimal
getGuestPrice
()
{
return
guestPrice
;
}
public
void
setGuestPrice
(
BigDecimal
guestPrice
)
{
this
.
guestPrice
=
guestPrice
;
}
@Column
(
name
=
"userLimit"
)
public
Integer
getUserLimit
()
{
return
userLimit
;
}
public
void
setUserLimit
(
Integer
userLimit
)
{
this
.
userLimit
=
userLimit
;
}
@Column
(
name
=
"voucherConfig"
)
public
String
getVoucherConfig
()
{
return
voucherConfig
;
}
public
void
setVoucherConfig
(
String
voucherConfig
)
{
this
.
voucherConfig
=
voucherConfig
;
}
@Column
(
name
=
"message"
)
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
@Column
(
name
=
"valid"
)
public
Integer
getValid
()
{
return
valid
;
}
public
void
setValid
(
Integer
valid
)
{
this
.
valid
=
valid
;
}
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"DataChange_LastTime"
)
public
Date
getCreatedTime
()
{
return
createdTime
;
}
public
void
setCreatedTime
(
Date
createdTime
)
{
this
.
createdTime
=
createdTime
;
}
@org
.
hibernate
.
annotations
.
Generated
(
org
.
hibernate
.
annotations
.
GenerationTime
.
ALWAYS
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
@Column
(
name
=
"DataChange_LastTime"
)
public
Date
getDataChange_LastTime
()
{
return
DataChange_LastTime
;
}
public
void
setDataChange_LastTime
(
Date
dataChange_LastTime
)
{
DataChange_LastTime
=
dataChange_LastTime
;
}
@Column
(
name
=
"buyLimitTimes"
)
public
Integer
getBuyLimitTimes
()
{
return
buyLimitTimes
;
}
public
void
setBuyLimitTimes
(
Integer
buyLimitTimes
)
{
this
.
buyLimitTimes
=
buyLimitTimes
;
}
}
src/main/java/com/ctrip/fun/golf/service/basic/VoucherService.java
View file @
3e292d4d
...
...
@@ -1019,7 +1019,17 @@ public class VoucherService {
ClientConfig
clientConfig
=
clientConfigDao
.
getByType
(
voucherSendType
);
//社员订单赠送优惠券配置:431_sendBeginTime_sendEndTime(规则id_开始发送时间_结束发送方式)
String
commune_voucher
=
clientConfig
.
getMessage
();
JSONObject
jsobj
=
JSONObject
.
parseObject
(
commune_voucher
);
this
.
sendVoucherForPlaceOrderByConfig
(
uid
,
orderId
,
myselfOrder
,
commune_voucher
);
}
/**
* 用于执行下单送券
* @param uid 得券人uid
* @param orderNo 订单id
* @param myselfOrder 是否用户自己的订单
* @param voucherSendType 发券配置的key值
*/
public
void
sendVoucherForPlaceOrderByConfig
(
String
uid
,
String
orderId
,
boolean
myselfOrder
,
String
voucherConfig
){
JSONObject
jsobj
=
JSONObject
.
parseObject
(
voucherConfig
);
try
{
Date
sendBeginTime
=
DateUtil
.
parseDateTime
(
jsobj
.
getString
(
"sendBeginTime"
));
Date
sendEndTime
=
DateUtil
.
parseDateTime
(
jsobj
.
getString
(
"sendEndTime"
));
...
...
src/main/java/com/ctrip/fun/golf/service/order/AbstractOrderService.java
View file @
3e292d4d
...
...
@@ -268,6 +268,7 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
JSONObject
jSONObject
=
new
JSONObject
();
try
{
jSONObject
=
WeiXinAtcion
.
weixinPlay
(
userExt
.
getMiniAppOpenId
(),
order
.
getAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
(),
order
.
getOrderNo
()+
""
,
this
.
getNotifyUrlForWeiXinPay
(
order
),
"dingqiu"
);
jSONObject
.
put
(
"needWXPay"
,
true
);
response
.
setBody
(
jSONObject
);
}
catch
(
Exception
e
)
{
response
.
setBody
(
jSONObject
);
...
...
@@ -1179,6 +1180,7 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
}
response
.
setStatus
(
ResponseStatusEnum
.
SUCCESS
.
getValue
());
response
.
setMessage
(
"请求成功"
);
jSONObject
.
put
(
"needWXPay"
,
true
);
response
.
setBody
(
jSONObject
);
}
}
else
{
...
...
@@ -1220,6 +1222,10 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
this
.
getOrderDao
().
update
(
order
);
response
.
setStatus
(
ResponseStatusEnum
.
SUCCESS
.
getValue
());
response
.
setMessage
(
"请求成功"
);
JSONObject
jSONObject
=
new
JSONObject
();
jSONObject
.
put
(
"needWXPay"
,
false
);
jSONObject
.
put
(
"orderNo"
,
order
.
getOrderNo
());
response
.
setBody
(
jSONObject
);
return
response
;
}
...
...
src/main/java/com/ctrip/fun/golf/service/order/CommuneOrderService.java
View file @
3e292d4d
...
...
@@ -11,9 +11,11 @@ import java.util.List;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.CollectionUtils
;
import
com.alibaba.fastjson.JSONObject
;
import
com.ctrip.fun.common.core.util.BeanConverter
;
import
com.ctrip.fun.common.core.util.DateUtil
;
import
com.ctrip.fun.common.core.util.StringUtils
;
import
com.ctrip.fun.common.vo.PagedResponseBean
;
...
...
@@ -23,6 +25,7 @@ import com.ctrip.fun.common.vo.basic.MultipleCourseConditionBean;
import
com.ctrip.fun.common.vo.basic.VipGradeEnum
;
import
com.ctrip.fun.common.vo.operation.ResourceConfirmTypeEnum
;
import
com.ctrip.fun.common.vo.order.AbstractOrderListItemBean
;
import
com.ctrip.fun.common.vo.order.BuyVoucherActivityBean
;
import
com.ctrip.fun.common.vo.order.CommuneOrderBean
;
import
com.ctrip.fun.common.vo.order.CommuneOrderListItemBean
;
import
com.ctrip.fun.common.vo.order.CommuneOrderResourceBean
;
...
...
@@ -32,14 +35,17 @@ import com.ctrip.fun.common.vo.order.OrderStatusBitEnum;
import
com.ctrip.fun.common.vo.order.OrderStatusEnum
;
import
com.ctrip.fun.common.vo.order.PlaceOrderResponseBean
;
import
com.ctrip.fun.common.vo.order.UserCommuneOrderStatusEnum
;
import
com.ctrip.fun.common.vo.product.BuyVoucherActivityQuery
;
import
com.ctrip.fun.common.vo.product.ProductPaymentTypeEnum
;
import
com.ctrip.fun.golf.dao.client.ClientConfigDao
;
import
com.ctrip.fun.golf.dao.order.CommuneOrderItemDao
;
import
com.ctrip.fun.golf.dao.product.BuyVoucherActivityDao
;
import
com.ctrip.fun.golf.domain.basic.Voucher
;
import
com.ctrip.fun.golf.domain.client.ClientConfig
;
import
com.ctrip.fun.golf.domain.order.CommuneOrderItem
;
import
com.ctrip.fun.golf.domain.order.Order
;
import
com.ctrip.fun.golf.domain.payment.WeiXinAtcion
;
import
com.ctrip.fun.golf.domain.product.BuyVoucherActivity
;
import
com.ctrip.fun.golf.domain.user.UserExt
;
import
com.ctrip.fun.golf.exceptions.OrderException
;
import
com.ctrip.fun.golf.service.basic.OperationMessageService
;
...
...
@@ -76,8 +82,9 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
private
String
voucherNotifyUrlForMiniApp
;
private
ClientConfigDao
clientConfigDao
=
null
;
@Autowired
private
BuyVoucherActivityDao
buyVoucherActivityDao
;
...
...
@@ -145,25 +152,13 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
}
protected
void
voucherCheckParameters
(
CommuneOrderBean
communeOrderBean
)
{
ClientConfig
clientConfig
=
clientConfigDao
.
getByType
(
"buyVoucher_voucher_send"
);
String
commune_voucher
=
clientConfig
.
getMessage
();
JSONObject
jsobj
=
JSONObject
.
parseObject
(
commune_voucher
);
BigDecimal
voucher_amount
=
BigDecimal
.
valueOf
(
jsobj
.
getInteger
(
"price"
));
if
(
communeOrderBean
.
getPrePayAmount
().
compareTo
(
voucher_amount
)
!=
0
){
BuyVoucherActivity
buyoucherActivity
=
buyVoucherActivityDao
.
findById
(
communeOrderBean
.
getActivityId
());
if
(
communeOrderBean
.
getPrePayAmount
().
compareTo
(
buyoucherActivity
.
getCommunePrice
())
!=
0
&&
communeOrderBean
.
getPrePayAmount
().
compareTo
(
buyoucherActivity
.
getGuestPrice
())
!=
0
){
throw
new
OrderException
(-
41
,
"您提交的预付款金额有问题,请检查!"
);
}
OrderQuery
queryBean
=
new
OrderQuery
();
queryBean
.
setOrderCategory
(
16
);
queryBean
.
setUid
(
communeOrderBean
.
getUid
());
queryBean
.
setPagerOffset
(
0
);
queryBean
.
setSortField
(
"orderDate"
);
PagedEntityBean
<
Order
>
pageOrder
=
this
.
getOrderDao
().
queryComOrders
(
queryBean
);
if
(
pageOrder
!=
null
&&
pageOrder
.
getCount
()>
0
){
for
(
Order
ord:
(
List
<
Order
>)
pageOrder
.
getResult
()){
if
((
ord
.
getProcessStatus
()&
OrderStatusBitEnum
.
DEDUCTED
.
getValue
())==
16
){
throw
new
OrderException
(-
666
,
"您已经参与过该活动!"
);
}
}
int
count
=
this
.
getOrderDao
().
queryVoucherPayedOrder
(
communeOrderBean
.
getUid
(),
communeOrderBean
.
getActivityId
());
if
(
count
>=
buyoucherActivity
.
getBuyLimitTimes
()){
throw
new
OrderException
(-
666
,
"您已经超过该活动限制次数!"
);
}
}
...
...
@@ -218,10 +213,11 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
communeOrderBean
.
setLimitedEmoneyAmount
(
new
BigDecimal
(
0
));
communeOrderBean
.
setOnPayAmount
(
new
BigDecimal
(
0
));
//社员续费 add by caosy
ClientConfig
clientConfig
=
clientConfigDao
.
getByType
(
"buyVoucher_voucher_send"
);
String
commune_voucher
=
clientConfig
.
getMessage
();
JSONObject
jsobj
=
JSONObject
.
parseObject
(
commune_voucher
);
communeOrderBean
.
setOrderName
(
jsobj
.
getString
(
"activeName"
));
BuyVoucherActivity
buyoucherActivity
=
buyVoucherActivityDao
.
findById
(
communeOrderBean
.
getActivityId
());
if
(
buyoucherActivity
==
null
){
throw
new
OrderException
(-
41
,
"没有对应的活动,请检查"
);
}
communeOrderBean
.
setOrderName
(
buyoucherActivity
.
getActivityName
());
if
(
StringUtils
.
isEmpty
(
communeOrderBean
.
getPayMode
()))
{
communeOrderBean
.
setPayMode
(
ProductPaymentTypeEnum
.
PREPAY
.
getName
());
}
...
...
@@ -292,7 +288,7 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
communeOrderMoney
=
communeOrderBean
.
getAmount
();
}
try
{
JSONObject
json
=
WeiXinAtcion
.
weixinPlay
(
userExt
.
getMiniAppOpenId
(),
communeOrderMoney
.
multiply
(
new
BigDecimal
(
"100"
)).
intValue
(),
order
.
getOrderNo
()+
""
,
voucherNotifyUrlForMiniApp
,
"
buy_voucher
"
);
JSONObject
json
=
WeiXinAtcion
.
weixinPlay
(
userExt
.
getMiniAppOpenId
(),
communeOrderMoney
.
multiply
(
new
BigDecimal
(
"100"
)).
intValue
(),
order
.
getOrderNo
()+
""
,
voucherNotifyUrlForMiniApp
,
"
BUYVOUCHER
"
);
return
json
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
...
...
@@ -302,6 +298,34 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
return
null
;
}
public
List
<
BuyVoucherActivityBean
>
buyVoucherActivityList
(){
List
<
BuyVoucherActivityBean
>
list
=
new
ArrayList
<
BuyVoucherActivityBean
>();
BuyVoucherActivityQuery
queryBean
=
new
BuyVoucherActivityQuery
();
queryBean
.
setValid
(
1
);
queryBean
.
setPagerOffset
(
0
);
PagedEntityBean
<
BuyVoucherActivity
>
page
=
buyVoucherActivityDao
.
queryList
(
queryBean
);
for
(
BuyVoucherActivity
activity:
page
.
getResult
()){
BuyVoucherActivityBean
bean
=
new
BuyVoucherActivityBean
();
BeanConverter
.
copyProperties
(
bean
,
activity
);
list
.
add
(
bean
);
}
return
list
;
}
public
BuyVoucherActivityBean
getBuyVoucherActivityDetail
(
Integer
id
){
BuyVoucherActivityBean
bean
=
new
BuyVoucherActivityBean
();
BeanConverter
.
copyProperties
(
bean
,
buyVoucherActivityDao
.
findById
(
id
));
return
bean
;
}
public
String
getBuyVoucherActivityMessage
(
String
orderNo
){
Order
order
=
this
.
getOrderDao
().
getOrderByOrderNo
(
Long
.
parseLong
(
orderNo
));
CommuneOrderItem
communeOrderItem
=
communeOrderItemDao
.
getByOrderId
(
order
.
getOrderId
()).
get
(
0
);
Integer
activityId
=
communeOrderItem
.
getActivityId
();
return
this
.
getBuyVoucherActivityDetail
(
activityId
).
getMessage
();
}
@Override
protected
void
afterPlaceOrder
(
CommuneOrderBean
abstractOrderBean
,
Integer
orderId
)
{
}
...
...
@@ -624,10 +648,4 @@ public class CommuneOrderService extends AbstractOrderService<CommuneOrderBean,
// TODO Auto-generated method stub
}
public
ClientConfigDao
getClientConfigDao
()
{
return
clientConfigDao
;
}
public
void
setClientConfigDao
(
ClientConfigDao
clientConfigDao
)
{
this
.
clientConfigDao
=
clientConfigDao
;
}
}
src/main/java/com/ctrip/fun/golf/service/order/EventActivityOrderService.java
View file @
3e292d4d
...
...
@@ -484,23 +484,18 @@ public class EventActivityOrderService extends
if
(
intTotalInventory
==
null
)
{
throw
new
OrderException
(-
4
,
"没有找到对应的库存"
);
}
// 最多能分组的数量
int
totalGroupNum
=
intTotalInventory
/
4
;
if
(
totalGroupNum
*
4
<
intTotalInventory
)
{
totalGroupNum
++;
}
while
(
groupNum
<=
totalGroupNum
)
{
int
existCustomerNum
=
eventCustomerInfoDao
.
queryCustomerNumInSameGroup
(
groupNum
,
resourceId
,
priceDate
);
if
(
existCustomerNum
+
customerInfoSize
<=
4
)
{
return
groupNum
;
}
else
{
while
(
existCustomerNum
+
customerInfoSize
>
4
){
groupNum
++;
existCustomerNum
=
eventCustomerInfoDao
.
queryCustomerNumInSameGroup
(
groupNum
,
resourceId
,
priceDate
);
}
return
groupNum
;
}
}
return
0
;
}
private
int
calculateValidGroupNumForRealTimeTeeTime
(
EventActivityOrderBean
eventActivityOrderBean
,
Integer
resourceId
,
Date
priceDate
)
{
...
...
src/main/java/com/ctrip/fun/golf/service/payment/AbstractNotifyService.java
View file @
3e292d4d
...
...
@@ -34,6 +34,8 @@ import com.ctrip.fun.golf.domain.integral.UserMemberIntegralLog;
import
com.ctrip.fun.golf.domain.order.Invoiceinfo
;
import
com.ctrip.fun.golf.domain.order.Order
;
import
com.ctrip.fun.golf.domain.order.OrderProcessLog
;
import
com.ctrip.fun.golf.domain.payment.AESUtil
;
import
com.ctrip.fun.golf.domain.payment.Configure
;
import
com.ctrip.fun.golf.domain.payment.PaymentResult
;
import
com.ctrip.fun.golf.domain.payment.WXUtil
;
import
com.ctrip.fun.golf.exceptions.OrderException
;
...
...
@@ -124,7 +126,6 @@ public abstract class AbstractNotifyService extends CorePaymentService {
logger
.
info
(
"sign="
+
notifyResponseBean
.
getSign
());
return
notifyResponseBean
;
}
public
String
notifyForWeiXinPay
(
String
xml
)
throws
Exception
{
Map
<
String
,
Object
>
notifyMap
=
WXUtil
.
doXMLParse
(
xml
);
if
(
notifyMap
.
get
(
"return_code"
).
equals
(
"SUCCESS"
)){
...
...
@@ -165,8 +166,43 @@ public abstract class AbstractNotifyService extends CorePaymentService {
return
null
;
}
public
String
notifyForWeiXinRefound
(
String
xml
)
throws
Exception
{
public
String
weiXinRefoundNotify
(
String
xml
)
throws
Exception
{
logger
.
error
(
xml
);
Map
<
String
,
Object
>
notifyMap
=
WXUtil
.
doXMLParse
(
xml
);
if
(
notifyMap
.
get
(
"return_code"
).
equals
(
"SUCCESS"
)){
Map
<
String
,
Object
>
reqInfoMap
=
WXUtil
.
doXMLParse
(
AESUtil
.
getRefundDecrypt
(
notifyMap
.
get
(
"req_info"
).
toString
(),
Configure
.
getKey
()));
String
orderNo
=
reqInfoMap
.
get
(
"out_trade_no"
).
toString
();
//商户订单号
Order
order
=
this
.
orderDao
.
getAndLockOrderByOrderNo
(
Long
.
parseLong
(
orderNo
));
BigDecimal
bigDecimal
=
new
BigDecimal
(
reqInfoMap
.
get
(
"settlement_refund_fee"
).
toString
());
NotifyRequestBean
notifyRequestBean
=
new
NotifyRequestBean
();
notifyRequestBean
.
setAmount
(
bigDecimal
.
divide
(
new
BigDecimal
(
"100"
)));
order
.
setProcessStatus
(
order
.
getProcessStatus
()
|
OrderStatusBitEnum
.
REFUNDED
.
getValue
());
order
.
setOrderStatus
(
"U"
);
order
.
setProcessStatus
(
order
.
getProcessStatus
()
|
OrderStatusBitEnum
.
UNSUBSCRIBED
.
getValue
());
if
(
this
.
isAllRefund
(
notifyRequestBean
,
order
))
{
order
.
setProcessStatus
(
order
.
getProcessStatus
()
|
OrderStatusBitEnum
.
ALL_UNSUBSCRIBED
.
getValue
());
order
.
setProcessStatus
(
order
.
getProcessStatus
()
|
OrderStatusBitEnum
.
BARGAINED
.
getValue
());
updateEventCustomersInvalid
(
order
.
getOrderId
());
order
.
setOrderUserStatus
(
6
);
}
else
{
order
.
setProcessStatus
(
order
.
getProcessStatus
()
|
OrderStatusBitEnum
.
PART_UNSUBSCRIBED
.
getValue
());
order
.
setOrderUserStatus
(
6
);
}
BigDecimal
oldRefundAmount
=
BigDecimal
.
ZERO
;
if
(
order
.
getRefundAmount
()
!=
null
)
{
oldRefundAmount
=
oldRefundAmount
.
add
(
order
.
getRefundAmount
());
}
order
.
setRefundAmount
(
oldRefundAmount
.
add
(
notifyRequestBean
.
getAmount
()));
this
.
doSuccessRefund
(
order
);
}
return
null
;
}
...
...
src/main/java/com/ctrip/fun/golf/service/payment/AbstractPaymentService.java
View file @
3e292d4d
...
...
@@ -69,6 +69,8 @@ public abstract class AbstractPaymentService<T extends AbstractOrder> extends Co
private
String
queryPayStatusPath
=
null
;
private
String
weiXinRefoundNotifyUrl
=
null
;
private
String
merchantId
=
null
;
private
PaymentRequestDao
paymentRequestDao
=
null
;
...
...
@@ -176,7 +178,7 @@ public abstract class AbstractPaymentService<T extends AbstractOrder> extends Co
Response
<
PayOrderOperateResponseBean
>
result
=
new
Response
<
PayOrderOperateResponseBean
>();
if
(
"MP"
.
equals
(
order
.
getPlatform
())){
try
{
WeiXinAtcion
.
wechatRefund
(
order
.
getOrderNo
()+
""
,
order
.
getPrePayAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
(),
paymentOperateBean
.
getAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
(),
""
);
WeiXinAtcion
.
wechatRefund
(
order
.
getOrderNo
()+
""
,
order
.
getPrePayAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
(),
paymentOperateBean
.
getAmount
().
multiply
(
new
BigDecimal
(
"100"
)).
intValue
(),
weiXinRefoundNotifyUrl
);
PayOrderOperateResponseBean
payBean
=
new
PayOrderOperateResponseBean
();
payBean
.
setResultCode
(
CorePaymentService
.
SUCCESS
);
result
.
setBody
(
payBean
);
...
...
@@ -715,4 +717,12 @@ public abstract class AbstractPaymentService<T extends AbstractOrder> extends Co
this
.
paymentRequestDao
=
paymentRequestDao
;
}
public
String
getWeiXinRefoundNotifyUrl
()
{
return
weiXinRefoundNotifyUrl
;
}
public
void
setWeiXinRefoundNotifyUrl
(
String
weiXinRefoundNotifyUrl
)
{
this
.
weiXinRefoundNotifyUrl
=
weiXinRefoundNotifyUrl
;
}
}
src/main/java/com/ctrip/fun/golf/service/payment/CommuneNotifyService.java
View file @
3e292d4d
...
...
@@ -4,14 +4,18 @@
package
com
.
ctrip
.
fun
.
golf
.
service
.
payment
;
import
java.util.List
;
import
java.util.Map
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.CollectionUtils
;
import
com.ctrip.fun.common.vo.order.OrderCategoryEnum
;
import
com.ctrip.fun.golf.dao.market.CommuneInviteActivityDao
;
import
com.ctrip.fun.golf.dao.order.CommuneOrderItemDao
;
import
com.ctrip.fun.golf.dao.product.BuyVoucherActivityDao
;
import
com.ctrip.fun.golf.domain.order.CommuneOrderItem
;
import
com.ctrip.fun.golf.domain.order.Order
;
import
com.ctrip.fun.golf.domain.payment.WXUtil
;
import
com.ctrip.fun.golf.domain.product.BuyVoucherActivity
;
import
com.ctrip.fun.golf.service.basic.OperationMessageService
;
import
com.ctrip.fun.golf.service.basic.VoucherService
;
import
com.ctrip.fun.golf.service.market.CommuneInviteActivityService
;
...
...
@@ -30,6 +34,9 @@ public class CommuneNotifyService extends AbstractNotifyService {
@Autowired
private
VoucherService
voucherService
=
null
;
@Autowired
private
BuyVoucherActivityDao
buyVoucherActivityDao
=
null
;
...
...
@@ -78,6 +85,8 @@ public class CommuneNotifyService extends AbstractNotifyService {
String
ordersSn
=
notifyMap
.
get
(
"out_trade_no"
).
toString
();
//商户订单号
//根据订单号查询订单,修改订单相关信息
Order
order
=
this
.
getOrderDao
().
getOrderByOrderNo
(
Long
.
parseLong
(
ordersSn
));
CommuneOrderItem
communeOrderItem
=
communeOrderItemDao
.
getByOrderId
(
order
.
getOrderId
()).
get
(
0
);
BuyVoucherActivity
buyVoucherActivity
=
buyVoucherActivityDao
.
findById
(
communeOrderItem
.
getActivityId
());
try
{
this
.
getOrderDao
().
updateOrderStatusForMiniApps
(
Long
.
parseLong
(
ordersSn
));
}
catch
(
Exception
e
)
{
...
...
@@ -85,7 +94,7 @@ public class CommuneNotifyService extends AbstractNotifyService {
}
//执行发券
String
uid
=
order
.
getUid
();
//下单人id
voucherService
.
sendVoucherForPlaceOrder
(
uid
,
order
.
getOrderId
()+
""
,
true
,
"buyVoucher_voucher_send"
);
voucherService
.
sendVoucherForPlaceOrder
ByConfig
(
uid
,
order
.
getOrderId
()+
""
,
true
,
buyVoucherActivity
.
getVoucherConfig
()
);
}
}
return
null
;
...
...
src/main/java/com/ctrip/fun/golf/service/user/UserService.java
View file @
3e292d4d
...
...
@@ -1054,9 +1054,9 @@ public class UserService {
userExt
.
setHandicap
(
23
);
if
(
checkValidMobileNo
(
request
.
getMobilePhone
()))
{
try
{
UserPhoneBean
userPhoneBean
=
this
.
getCity
(
request
.
getMobilePhone
());
userExt
.
setCity
(
userPhoneBean
.
getCity
()
);
userExt
.
setProvince
(
userPhoneBean
.
getProvince
()
);
//
UserPhoneBean userPhoneBean = this.getCity(request.getMobilePhone());
userExt
.
setCity
(
"其它"
);
userExt
.
setProvince
(
"其它"
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
());
}
...
...
@@ -1591,6 +1591,19 @@ public class UserService {
}
}
/**
* 通过密码重置token重置密码
*/
public
void
resetMiniOpenid
(
ChangePasswordBean
changePasswordBean
)
{
UserToken
userToken
=
this
.
userTokenDao
.
getUserTokenByToken
(
changePasswordBean
.
getToken
(),
TokenTypeEnum
.
ACCESS
.
getKey
());
this
.
userTokenDao
.
delete
(
userToken
);
UserExt
userExt
=
this
.
userExtDao
.
getByUid
(
changePasswordBean
.
getUid
());
userExt
.
setMiniAppOpenId
(
null
);
userExt
.
setOpenId
(
null
);
userExt
.
setUnionId
(
null
);
this
.
userExtDao
.
update
(
userExt
);
}
/**判断用户过期 add by caosy*/
private
int
updateUserIdentity
(
UserExt
user
)
{
Integer
vipGrade
=
user
.
getVipGrade
();
...
...
src/main/resources/apiclient_cert.p12
deleted
100644 → 0
View file @
0e6d3d22
File deleted
src/main/resources/base.spring.xml
View file @
3e292d4d
...
...
@@ -203,6 +203,8 @@
isolation=
"READ_COMMITTED"
/>
<tx:method
name=
"notifyForWeiXinPay"
propagation=
"REQUIRED"
read-only=
"false"
isolation=
"READ_COMMITTED"
/>
<tx:method
name=
"weiXinRefoundNotify"
propagation=
"REQUIRED"
read-only=
"false"
isolation=
"READ_COMMITTED"
/>
<tx:method
name=
"SubmitOrderSVC"
propagation=
"REQUIRED"
isolation=
"READ_COMMITTED"
read-only=
"false"
/>
<tx:method
name=
"deductFail"
propagation=
"REQUIRED"
...
...
@@ -321,6 +323,8 @@
read-only=
"false"
/>
<tx:method
name=
"resetPwdByToken"
propagation=
"REQUIRED"
read-only=
"false"
/>
<tx:method
name=
"resetMiniOpenid"
propagation=
"REQUIRED"
read-only=
"false"
/>
<tx:method
name=
"notPayManualDeduct"
propagation=
"REQUIRED"
read-only=
"false"
/>
<tx:method
name=
"validateWeChatUser"
propagation=
"REQUIRED"
...
...
src/main/resources/debug/payment.properties
View file @
3e292d4d
...
...
@@ -10,6 +10,7 @@ payment.rechargeBaseNotifyUrl=http://112.65.124.86:18081/fun-common-soa/notify/r
payment.communeBaseNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/communeOrder
payment.communeBaseNotifyUrlForMiniApp
=
http://112.65.124.86:18081/fun-common-soa/notify/notifyForMiniApp
payment.voucherNotifyUrlForMiniApp
=
http://112.65.124.86:18081/fun-common-soa/notify/notifyForVoucherMiniApp
payment.weiXinRefoundNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/weiXinRefoundNotifyUrl
payment.vipmemberBaseNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/vipmemberOrder
payment.eventActivityBaseNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/eventActivityOrder
payment.eventActivityBaseNotifyUrlForWeiXinPay
=
http://112.65.124.86:18081/fun-common-soa/notify/eventActivityOrder/notifyForWeiXinPay
...
...
src/main/resources/development/payment.properties
View file @
3e292d4d
...
...
@@ -10,6 +10,7 @@ payment.rechargeBaseNotifyUrl=http://112.65.124.86:18081/fun-common-soa/notify/r
payment.communeBaseNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/communeOrder
payment.communeBaseNotifyUrlForMiniApp
=
http://112.65.124.86:18081/fun-common-soa/notify/notifyForMiniApp
payment.voucherNotifyUrlForMiniApp
=
http://112.65.124.86:18081/fun-common-soa/notify/notifyForVoucherMiniApp
payment.weiXinRefoundNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/weiXinRefoundNotifyUrl
payment.vipmemberBaseNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/vipmemberOrder
payment.eventActivityBaseNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/eventActivityOrder
payment.eventActivityBaseNotifyUrlForWeiXinPay
=
http://112.65.124.86:18081/fun-common-soa/notify/eventActivityOrder/notifyForWeiXinPay
...
...
src/main/resources/hibernate.cfg.xml
View file @
3e292d4d
...
...
@@ -33,6 +33,7 @@
<mapping
class=
"com.ctrip.fun.golf.domain.product.Course"
/>
<mapping
class=
"com.ctrip.fun.golf.domain.product.CourseFairway"
/>
<mapping
class=
"com.ctrip.fun.golf.domain.product.CourseProduct"
/>
<mapping
class=
"com.ctrip.fun.golf.domain.product.BuyVoucherActivity"
/>
<mapping
class=
"com.ctrip.fun.golf.domain.product.CourseResource"
/>
<mapping
class=
"com.ctrip.fun.golf.domain.product.CourseZone"
/>
...
...
src/main/resources/order.spring.xml
View file @
3e292d4d
...
...
@@ -198,7 +198,6 @@
<property
name=
"voucherNotifyUrlForMiniApp"
value=
"${payment.voucherNotifyUrlForMiniApp}"
></property>
<property
name=
"COMMUNE_AMOUNT"
value=
"${communeAmount}"
></property>
<property
name=
"COMMUNE_AMOUNT2"
value=
"${communeAmount2}"
></property>
<property
name=
"clientConfigDao"
ref=
"clientConfigDao"
></property>
</bean>
<bean
name=
"vipmemberOrderService"
class=
"com.ctrip.fun.golf.service.order.VipMemberOrderService"
parent=
"abstractOrderService"
>
...
...
src/main/resources/payment.spring.xml
View file @
3e292d4d
...
...
@@ -22,6 +22,7 @@
<property
name=
"publicKey"
value=
"${payment.publicKey}"
></property>
<property
name=
"payOrderOperatePath"
value=
"${payment.payOrderOperatePath}"
></property>
<property
name=
"queryPayStatusPath"
value=
"${payment.queryPayStatusPath}"
></property>
<property
name=
"weiXinRefoundNotifyUrl"
value=
"${payment.weiXinRefoundNotifyUrl}"
></property>
</bean>
<bean
name=
"CourseNotifyService"
class=
"com.ctrip.fun.golf.service.payment.CourseNotifyService"
>
...
...
src/main/resources/product.spring.xml
View file @
3e292d4d
...
...
@@ -17,6 +17,10 @@
<property
name=
"sessionFactory"
ref=
"sessionFactory"
></property>
</bean>
<bean
name=
"buyVoucherActivityDao"
class=
"com.ctrip.fun.golf.dao.product.BuyVoucherActivityDao"
>
<property
name=
"sessionFactory"
ref=
"sessionFactory"
></property>
</bean>
<bean
name=
"resourceTicketDao"
class=
"com.ctrip.fun.golf.dao.product.ResourceTicketDao"
>
<property
name=
"sessionFactory"
ref=
"sessionFactory"
></property>
</bean>
...
...
src/main/resources/production/payment.properties
View file @
3e292d4d
...
...
@@ -12,6 +12,7 @@ payment.rechargeBaseNotifyUrl=http\://api.iwanoutdoor.com/fun-common-soa/notify/
payment.communeBaseNotifyUrl
=
http
\:
//api.iwanoutdoor.com/fun-common-soa/notify/communeOrder
payment.communeBaseNotifyUrlForMiniApp
=
http
\:
//api.iwanoutdoor.com/fun-common-soa/notify/notifyForMiniApp
payment.voucherNotifyUrlForMiniApp
=
http
\:
//api.iwanoutdoor.com/fun-common-soa/notify/notifyForVoucherMiniApp
payment.weiXinRefoundNotifyUrl
=
http
\:
//api.iwanoutdoor.com/fun-common-soa/notify/weiXinRefoundNotifyUrl
payment.vipmemberBaseNotifyUrl
=
http
\:
//api.iwanoutdoor.com/fun-common-soa/notify/vipmemberOrder
payment.eventActivityBaseNotifyUrl
=
http
\:
//api.iwanoutdoor.com/fun-common-soa/notify/eventActivityOrder
payment.eventActivityBaseNotifyUrlForWeiXinPay
=
http
\:
//api.iwanoutdoor.com/fun-common-soa/notify/eventActivityOrder/notifyForWeiXinPay
...
...
src/main/resources/test/payment.properties
View file @
3e292d4d
...
...
@@ -10,6 +10,7 @@ payment.rechargeBaseNotifyUrl=http://112.65.124.86:18081/fun-common-soa/notify/r
payment.communeBaseNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/communeOrder
payment.communeBaseNotifyUrlForMiniApp
=
http://112.65.124.86:18081/fun-common-soa/notify/notifyForMiniApp
payment.voucherNotifyUrlForMiniApp
=
http://112.65.124.86:18081/fun-common-soa/notify/notifyForVoucherMiniApp
payment.weiXinRefoundNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/weiXinRefoundNotifyUrl
payment.vipmemberBaseNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/vipmemberOrder
payment.eventActivityBaseNotifyUrl
=
http://112.65.124.86:18081/fun-common-soa/notify/eventActivityOrder
payment.eventActivityBaseNotifyUrlForWeiXinPay
=
http://112.65.124.86:18081/fun-common-soa/notify/eventActivityOrder/notifyForWeiXinPay
...
...
src/main/resources/uat/payment.properties
View file @
3e292d4d
...
...
@@ -10,6 +10,7 @@ payment.rechargeBaseNotifyUrl=http://10.8.55.46:8080/fun-common-soa/notify/recha
payment.communeBaseNotifyUrl
=
http://10.8.55.46:8080/fun-common-soa/notify/communeOrder
payment.communeBaseNotifyUrlForMiniApp
=
http://10.8.55.46:8080/fun-common-soa/notify/notifyForMiniApp
payment.voucherNotifyUrlForMiniApp
=
http://10.8.55.46:8080/fun-common-soa/notify/notifyForVoucherMiniApp
payment.weiXinRefoundNotifyUrl
=
http://10.8.55.46:8080/fun-common-soa/notify/weiXinRefoundNotifyUrl
payment.vipmemberBaseNotifyUrl
=
http://10.8.55.46:8080/fun-common-soa/notify/vipmemberOrder
payment.eventActivityBaseNotifyUrl
=
http://10.8.55.46:8080/fun-common-soa/notify/eventActivityOrder
payment.eventActivityBaseNotifyUrlForWeiXinPay
=
http://10.8.55.46:8080/fun-common-soa/notify/eventActivityOrder/notifyForWeiXinPay
...
...
src/test/java/com/ctrip/fun/golf/dao/statistics/user/UserOrderBehaviourStatisticsDaoTest.java
View file @
3e292d4d
...
...
@@ -16,20 +16,26 @@ import com.ctrip.fun.common.core.util.DateUtil;
import
com.ctrip.fun.common.vo.market.EventGameBean
;
import
com.ctrip.fun.common.vo.market.EventGameGroupBean
;
import
com.ctrip.fun.common.vo.market.EventGamePlayerBean
;
import
com.ctrip.fun.common.vo.order.BuyVoucherActivityBean
;
import
com.ctrip.fun.common.vo.order.EventCustomerInfoBean
;
import
com.ctrip.fun.common.vo.order.EventCustomerInfoQuery
;
import
com.ctrip.fun.common.vo.order.OrderStatusBitEnum
;
import
com.ctrip.fun.common.vo.product.BuyVoucherActivityQuery
;
import
com.ctrip.fun.golf.dao.market.EventGameDao
;
import
com.ctrip.fun.golf.dao.market.EventGameGroupDao
;
import
com.ctrip.fun.golf.dao.market.EventGamePlayerDao
;
import
com.ctrip.fun.golf.dao.order.OrderDao
;
import
com.ctrip.fun.golf.dao.product.BuyVoucherActivityDao
;
import
com.ctrip.fun.golf.domain.market.EventGameGroup
;
import
com.ctrip.fun.golf.domain.order.Order
;
import
com.ctrip.fun.golf.domain.product.BuyVoucherActivity
;
import
com.ctrip.fun.golf.service.market.EventGameGroupService
;
import
com.ctrip.fun.golf.service.market.EventGamePlayerService
;
import
com.ctrip.fun.golf.service.market.EventGameService
;
import
com.ctrip.fun.golf.service.order.CommuneOrderService
;
import
com.ctrip.fun.golf.service.order.EventCustomerInfoService
;
import
com.ctrip.fun.golf.service.payment.EventActivityNotifyService
;
import
com.ctrip.fun.golf.vo.PagedEntityBean
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
...
...
@@ -51,6 +57,9 @@ public class UserOrderBehaviourStatisticsDaoTest {
@Autowired
private
EventActivityNotifyService
eventActivityNotifyService
;
@Autowired
private
CommuneOrderService
communeOrderService
;
public
static
void
main
(
String
[]
args
)
{
int
[]
status
=
new
int
[]{
23
,
100
,
20
,
276824087
,
19
,
108
,
268446996
,
0
,
276824083
,
293601303
,
16777239
,
268446999
,
12
,
3
,
96
,
268444944
,
4
,
268444947
,
16
,
276824067
,
99
,
276831511
,
5395
,
293608727
,
268447076
,
276835607
,
276829459
,
5399
,
16784663
};
for
(
int
sta:
status
){
...
...
@@ -67,16 +76,11 @@ public class UserOrderBehaviourStatisticsDaoTest {
}
@Test
public
void
testOrderUpdate
()
throws
Exception
{
List
<
String
>
mobileNos
=
new
ArrayList
<
String
>();
mobileNos
.
add
(
"15555555555"
);
mobileNos
.
add
(
"18014006769"
);
DateFormat
dateFormat2
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
myDate2
=
dateFormat2
.
parse
(
"2018-09-24"
);
List
<
Order
>
list
=
orderDao
.
queryEventActivityWaittingDealOrders
(
myDate2
,
"15555555555"
,
104123
,
mobileNos
);
System
.
out
.
println
(
list
.
size
());
long
list
=
orderDao
.
queryVoucherPayedOrder
(
"15021268738"
,
1
);
System
.
out
.
println
(
list
);
}
@Test
public
void
testListOrderUser
()
throws
Exception
{
String
[]
filenames
=
{
"美兰湖分组表_1170_2018-04-04"
,
"协和分组_1902_2018-04-01"
,
"协和分组_1902_2018-04-03"
,
"协和分组_1902_2018-04-08"
};
...
...
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