Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zsh
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
wuwz
zsh
Commits
33b351bf
Commit
33b351bf
authored
May 06, 2019
by
wuwz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
建行支付
parent
591fec57
Changes
24
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
1278 additions
and
56 deletions
+1278
-56
bcprov-jdk14-128.jar
WebRoot/WEB-INF/lib/bcprov-jdk14-128.jar
+0
-0
gson-2.3.1.jar
WebRoot/WEB-INF/lib/gson-2.3.1.jar
+0
-0
netpay.jar
WebRoot/WEB-INF/lib/netpay.jar
+0
-0
index.html
WebRoot/WEB-INF/templates/zh_cn/shop/index.html
+87
-6
zs_customization_index.html
.../WEB-INF/templates/zh_cn/shop/zs_customization_index.html
+2
-1
zs_shopping_index.html
WebRoot/WEB-INF/templates/zh_cn/shop/zs_shopping_index.html
+2
-2
child_user.html
...ates/zh_cn/system/user/default/usercenter/child_user.html
+35
-14
zsh_buyer_cash.html
.../zh_cn/system/user/default/usercenter/zsh_buyer_cash.html
+35
-3
index.css
WebRoot/resources/style/system/front/default/css/index.css
+166
-3
ResponseEntity.java
src/com/shopping/foundation/domain/ResponseEntity.java
+51
-0
Wechat.java
src/com/shopping/foundation/domain/Wechat.java
+26
-0
PredepositLogManageAction.java
...opping/manage/admin/action/PredepositLogManageAction.java
+8
-2
ChildUserBuyerAction.java
...om/shopping/manage/buyer/action/ChildUserBuyerAction.java
+5
-3
PredepositCashBuyerAction.java
...opping/manage/buyer/action/PredepositCashBuyerAction.java
+8
-0
HttpClientUtil.java
src/com/shopping/pay/jhpay/HttpClientUtil.java
+131
-0
JHPayUtil.java
src/com/shopping/pay/jhpay/JHPayUtil.java
+78
-0
MD5.java
src/com/shopping/pay/jhpay/MD5.java
+76
-0
QrURLDemo.java
src/com/shopping/pay/jhpay/QrURLDemo.java
+18
-0
BespokeViewAction.java
src/com/shopping/view/web/action/BespokeViewAction.java
+15
-6
LoginViewAction.java
src/com/shopping/view/web/action/LoginViewAction.java
+241
-16
MCipherDecode.java
src/com/shopping/view/web/action/MCipherDecode.java
+107
-0
QrDemo.java
src/com/shopping/view/web/action/QrDemo.java
+81
-0
WeChatLogin.java
src/com/shopping/view/web/tools/WeChatLogin.java
+37
-0
WechatIndexViewAction.java
src/com/shopping/view/web/wechat/WechatIndexViewAction.java
+69
-0
No files found.
WebRoot/WEB-INF/lib/bcprov-jdk14-128.jar
0 → 100644
View file @
33b351bf
File added
WebRoot/WEB-INF/lib/gson-2.3.1.jar
0 → 100644
View file @
33b351bf
File added
WebRoot/WEB-INF/lib/netpay.jar
0 → 100644
View file @
33b351bf
File added
WebRoot/WEB-INF/templates/zh_cn/shop/index.html
View file @
33b351bf
...
...
@@ -36,6 +36,10 @@ jQuery(document).ready(function(){
$
(
".dialog1"
).
hide
();
})
$
(
".dialog-closed2 img,.dialog-bg2"
).
click
(
function
(){
$
(
".dialog2"
).
hide
();
})
$
(
"#ercode-choose"
).
click
(
function
(){
jQuery
.
get
(
"$!webPath/buyAssociator.htm"
,
function
(
data
){
...
...
@@ -43,6 +47,7 @@ jQuery(document).ready(function(){
da
=
da
.
replace
(
'"'
,
''
);
da
=
da
.
replace
(
'"'
,
''
);
$
(
"#ewcode_img"
).
attr
(
"src"
,
"$!webPath/"
+
da
)
/* $("#ewcode_img").append(data) */
$
(
".ercode-box"
).
show
()
$
(
".nember_box"
).
hide
()
});
...
...
@@ -59,9 +64,30 @@ jQuery(document).ready(function(){
$
(
".nember_box1"
).
hide
()
});
})
$
(
"#ercode-choose2"
).
click
(
function
(){
/* jQuery.get("$!webPath/buyAssociatorBojing.htm",
function(data){
var da = data
da = da.replace('"','');
da = da.replace('"','');
$("#ewcode_img2").attr("src","$!webPath/"+da)
$(".ercode-box2").show()
$(".nember_box2").hide()
}); */
})
$
(
".had_pay"
).
click
(
function
(){
window
.
location
.
href
=
"$webPath/index.htm"
})
$
(
".had_pay1"
).
click
(
function
(){
window
.
location
.
href
=
"$webPath/index.htm"
})
$
(
".had_pay2"
).
click
(
function
(){
window
.
location
.
href
=
"$webPath/index.htm"
})
$
(
"#menberService"
).
click
(
function
(){
...
...
@@ -85,6 +111,16 @@ jQuery(document).ready(function(){
}
})
$
(
"#menberServiceqi"
).
click
(
function
(){
if
(
$falg
){
$
(
".dialog2"
).
show
();
}
else
{
window
.
location
.
href
=
"$webPath/user/login.htm"
}
})
if
(
$falg
){
if
(
$user
.
level
==
0
){
$
(
".dialog"
).
show
();
...
...
@@ -94,7 +130,7 @@ jQuery(document).ready(function(){
}
else
{
}
jQuery
(
".sale_two_img img"
).
lazyload
({
effect
:
"fadeIn"
,
width
:
150
,
height
:
150
});
//鼠标经过推荐商品tab
jQuery
(
"#index_sale_tab ul li"
).
mouseover
(
function
(){
jQuery
(
this
).
siblings
().
removeClass
(
"this"
);
...
...
@@ -789,7 +825,7 @@ $!httpInclude.include("/nav.htm")
<li>
√渠道广阔,助力厂家拓展新市场
</li>
<li>
√共享渠道+资源+市场+信息+人才
</li>
</ul>
<button>
选择
</button>
<button
id=
"menberServiceqi"
>
选择
</button>
</div>
</li>
</ul>
...
...
@@ -805,6 +841,7 @@ $!httpInclude.include("/nav.htm")
<input
class=
"youname"
type=
"text"
name=
"name"
placeholder=
"您的姓名"
/>
<input
class=
"yourmobile"
ype=
"text"
name=
"phone"
placeholder=
"联系电话"
/>
<input
name=
"login"
type=
"submit"
class=
"getsubmit_btm"
id=
"tjkf"
value=
"提交给客服"
/>
<input
class=
"type"
type=
"hidden"
name=
"type"
value=
"1"
/>
</form>
</div>
<p>
您的联系方式不会泄露,请放心使用
</p>
...
...
@@ -879,6 +916,8 @@ $!httpInclude.include("/nav.htm")
<div
class=
"ercode-left"
>
#if(!$user.url)
<img
src=
""
width=
"200"
height=
"200"
id=
"ewcode_img"
></img>
<!-- <div width="200" height="200" id="ewcode_img">
</div> -->
#end
<p>
请扫二维码支付
</p>
</div>
...
...
@@ -944,5 +983,47 @@ $!httpInclude.include("/nav.htm")
</div>
</div>
<div
class=
"dialog2"
style=
"display:none"
>
<div
class=
"dialog-bg2"
></div>
<div
class=
"nember_box2"
>
<div
class=
"dialog-closed2"
>
<img
src=
"$!webPath/resources/style/system/front/default/images/new/dialog_colsed.png"
></img>
</div>
<div
class=
"dialog_conten2"
>
<p
class=
"diaglog_title"
>
企业合伙人
</p>
<p>
共享资源,共享利润
</p>
<p
class=
"diaglog_money"
>
¥9999
</p>
<p>
<!-- 专注提高签单效率,提高整体营业额 -->
</p>
<div
class=
"content_ul"
>
<ul>
<li>
√树立品牌形象,占领市场新风口
</li>
<li>
√产品统一管理,信息及时更新
</li>
<li>
√渠道广阔,助力厂家拓展新市场
</li>
<li>
√共享渠道+资源+市场+信息+人才
</li>
</ul>
</div>
<p><a
href=
"#"
id=
"ercode-choose2"
>
选择
</a></p>
</div>
</div>
<div
class=
"ercode-box2"
style=
"display:none"
>
<div
class=
"ercode-content2"
>
<div
class=
"ercode-title"
>
微信支付
</div>
<div
class=
"ercode-clearfix2"
>
<div
class=
"ercode-left2"
>
#if(!$user.url)
<img
src=
""
width=
"200"
height=
"200"
id=
"ewcode_img2"
></img>
#end
<p>
请扫二维码支付
</p>
</div>
<div
class=
"ercode-right2"
>
<p
class=
"ercode-numb"
>
铂金合伙人
</p>
<p
class=
"ercode-money"
>
¥2999
</p>
<p
class=
"hadpay-btn2"
><span
class=
"had_pay2"
>
已支付
</span></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
WebRoot/WEB-INF/templates/zh_cn/shop/zs_customization_index.html
View file @
33b351bf
...
...
@@ -419,13 +419,14 @@ $!httpInclude.include("/nav1.htm")
<div
class=
"form-box"
>
<p
class=
"form-title"
>
马上获取免费设计
</p>
<p
class=
"gray-title"
>
—— 多家品牌精准方案报价 ——
</p>
<form
action=
"$webPath/add_customization_bespoke.htm"
>
<form
action=
"$webPath/add_customization_bespoke.htm
?type=1
"
>
<div
class=
"area"
>
<input
type=
"text"
name=
"address"
placeholder=
"请填写地址"
></input>
</div>
<input
type=
"text"
name=
"name"
placeholder=
"您的称呼"
></input>
<input
type=
"text"
name=
"phone"
placeholder=
"您的电话"
></input>
<input
name=
"login"
type=
"submit"
class=
"getsubmit_btm"
value=
"立即获取"
/>
<input
class=
"type"
type=
"hidden"
name=
"type"
value=
"2"
/>
</form>
</div>
</div>
...
...
WebRoot/WEB-INF/templates/zh_cn/shop/zs_shopping_index.html
View file @
33b351bf
...
...
@@ -370,7 +370,7 @@ $!httpInclude.include("/head.htm")
<img
src=
"$!img"
original=
"$!img"
onerror=
"this.src='$!webPath/$!{config.goodsImage.path}/$!{config.goodsImage.name}';"
width=
"28"
height=
"28"
/>
<div
class=
"box-pri"
>
<p
class=
"goods_Name"
>
$!{da.goods_name}
</p>
<p
class=
"good_Price"
>
¥${da.
goods
_price}
</p>
<p
class=
"good_Price"
>
¥${da.
store
_price}
</p>
</div>
</a>
...
...
@@ -387,7 +387,7 @@ $!httpInclude.include("/head.htm")
<img
src=
"$!img"
original=
"$!img"
onerror=
"this.src='$!webPath/$!{config.goodsImage.path}/$!{config.goodsImage.name}';"
width=
"28"
height=
"28"
/>
<div
class=
"box-pri"
>
<p
class=
"goods_Name"
>
$!{da.goods_name}
</p>
<p
class=
"good_Price"
>
¥${da.
goods
_price}
</p>
<p
class=
"good_Price"
>
¥${da.
store
_price}
</p>
</div>
</div>
...
...
WebRoot/WEB-INF/templates/zh_cn/system/user/default/usercenter/child_user.html
View file @
33b351bf
...
...
@@ -256,21 +256,36 @@ jQuery(document).ready(function(){
});
}
getCount
();
$
(
"#level"
).
change
(
function
(){
var
selectVal
=
$
(
this
).
val
()
console
.
log
(
selectVal
)
$
(
"#inputLevel"
).
val
(
selectVal
)
$
(
"#refereeForm"
).
submit
()
})
$
(
".user_level_btn"
).
click
(
function
(){
var
begintime
=
$
(
"#beginTime"
).
val
()
var
endtime
=
$
(
"#endTime"
).
val
()
$
(
".count-referee"
).
html
(
""
);
getCount
(
begintime
,
endtime
)
});
$
(
"#level"
).
change
(
function
(){
var
selectVal
=
$
(
this
).
val
()
console
.
log
(
selectVal
)
$
(
"#inputLevel"
).
val
(
selectVal
)
$
(
"#refereeForm"
).
submit
()
})
console
.
log
(
$level
)
//if($level){
var
levelVal
=
$level
$
(
"#level option"
).
each
(
function
(){
if
(
$
(
this
).
val
()
==
levelVal
){
$
(
this
).
attr
(
'selected'
,
true
)
$
(
this
).
click
()
}
})
//}
});
</script>
<script
type=
"text/javascript"
>
//表情过滤
...
...
@@ -345,19 +360,23 @@ $!httpInclude.include("/buyer/head.htm")
<table>
<thead>
<tr>
<td>
会员名称
</td>
<td>
会员昵称
</td>
<td>
真实名称
</td>
<td>
注册时间
</td>
<td>
手机号码
</td>
<td>
上级ID
</td>
<td>
<select
id=
"level"
>
<option
value=
""
>
会员等级
</option>
<option
value=
"0"
>
普通会员
</option>
<option
value=
"1"
>
黄金合伙人
</option>
<option
value=
"2"
>
铂金合伙人
</option>
<option
value=
"3"
>
企业合伙人
</option>
</select>
</td>
</tr>
</thead>
...
...
@@ -366,6 +385,7 @@ $!httpInclude.include("/buyer/head.htm")
<tr
class=
"level0"
data-id=
"$!obj.level"
>
<td>
$!{obj.userName}
</td>
<td>
$!{obj.trueName}
</td>
<td>
$!{obj.addTime}
</td>
<td>
$!{obj.mobile}
</td>
<td>
$!{obj.referee.userName}
</td>
...
...
@@ -393,7 +413,7 @@ $!httpInclude.include("/buyer/head.htm")
<div
class=
"fenyes"
>
<input
name=
"pageSize"
type=
"hidden"
id=
"brand_ids"
value=
"$!pageSize"
/>
<input
name=
"level"
type=
"hidden"
id=
"inputLevel"
value=
""
/>
<input
name=
"level"
type=
"hidden"
id=
"inputLevel"
value=
"
$level
"
/>
<input
name=
"currentPage"
type=
"hidden"
id=
"currentPage"
value=
"$!currentPage"
/>
<input
name=
"orderBy"
type=
"hidden"
id=
"orderBy"
value=
"addTime"
/>
<input
name=
"orderType"
type=
"hidden"
id=
"orderType"
value=
"$!orderType"
/>
...
...
@@ -434,6 +454,7 @@ laydate.render({
}
});
</script>
$!httpInclude.include("/footer.htm")
</body>
...
...
WebRoot/WEB-INF/templates/zh_cn/system/user/default/usercenter/zsh_buyer_cash.html
View file @
33b351bf
...
...
@@ -44,6 +44,13 @@ jQuery(document).ready(function(){
jQuery
(
"tr[id^=cash_] input"
).
hide
();
}
});
$
(
"#select_back"
).
change
(
function
(){
var
selectVal
=
$
(
this
).
val
()
console
.
log
(
selectVal
)
$
(
"#cash_bank"
).
val
(
selectVal
)
})
});
</script>
</head>
...
...
@@ -84,9 +91,34 @@ $!httpInclude.include("/top.htm")
</tr>
<tr
id=
"cash_bank_tr"
>
<td
align=
"right"
valign=
"top"
class=
"modifysp"
><span>
收款银行:
</span><span><strong
class=
"red"
style=
"font-size:14px;"
>
*
</strong></span></td>
<td
class=
"px10"
><span
class=
"setinput"
>
<input
name=
"cash_bank"
type=
"text"
id=
"cash_bank"
/>
</span></td>
<td
class=
"px10"
>
<!-- <span class="setinput">
<input name="cash_bank" type=text id="cash_bank" />
</span> -->
<span
class=
"setinput"
>
<select
id=
"cash_bank"
name=
"cash_bank"
>
<option
value=
"中国工商银行"
>
中国工商银行
</option>
<option
value=
"中国农业银行"
>
中国农业银行
</option>
<option
value=
"中国建设银行"
>
中国建设银行
</option>
<option
value=
"中国银行"
>
中国银行
</option>
<option
value=
"交通银行"
>
交通银行
</option>
<option
value=
"招商银行"
>
招商银行
</option>
<option
value=
"中信实业银行"
>
中信实业银行
</option>
<option
value=
"上海浦东发展银行"
>
上海浦东发展银行
</option>
<option
value=
"民生银行"
>
民生银行
</option>
<option
value=
"光大银行"
>
光大银行
</option>
<option
value=
"广东发展银行"
>
广东发展银行
</option>
<option
value=
"兴业银行"
>
兴业银行
</option>
<option
value=
"华夏银行"
>
华夏银行
</option>
<option
value=
"上海银行"
>
上海银行
</option>
<option
value=
"深圳发展银行"
>
深圳发展银行
</option>
<option
value=
"深圳市商业银行"
>
深圳市商业银行
</option>
<option
value=
"广州市商业银行"
>
广州市商业银行
</option>
<option
value=
"东莞市商业银行"
>
东莞市商业银行
</option>
<option
value=
"其他银行"
>
其他银行
</option>
</select>
</span>
</td>
</tr>
<tr>
<td
align=
"right"
valign=
"top"
class=
"modifysp"
><span>
收款账号:
</span><span><strong
class=
"red"
style=
"font-size:14px;"
>
*
</strong></span></td>
...
...
WebRoot/resources/style/system/front/default/css/index.css
View file @
33b351bf
...
...
@@ -1208,7 +1208,7 @@ input.getsubmit_btm:hover {
top
:
50%
;
position
:
absolute
;
margin-left
:
-210px
;
margin-top
:
149px
;
/* margin-top:149px; */
text-align
:
center
;
color
:
#fff
;
padding-bottom
:
30px
;
...
...
@@ -1391,6 +1391,169 @@ p.hadpay-btn {
}
/**
会员购买9999弹框
**/
.dialog-closed2
img
{
width
:
30px
;
height
:
30px
;
}
.nember_box2
{
background
:
#f97777
;
width
:
420px
;
left
:
50%
;
top
:
50%
;
position
:
absolute
;
margin-left
:
-210px
;
/* margin-top:149px; */
text-align
:
center
;
color
:
#fff
;
padding-bottom
:
30px
;
}
.dialog2
{
position
:
fixed
;
right
:
0
;
top
:
0
;
width
:
100%
;
z-index
:
9999
;
}
.dialog-bg2
{
width
:
100%
;
height
:
100%
;
background
:
#00000063
;
position
:
fixed
;
background-size
:
cover
;
left
:
0
;
bottom
:
0
;
}
.dialog-closed2
{
width
:
30px
;
height
:
30px
;
float
:
right
;
display
:
block
;
margin-right
:
20px
;
margin-top
:
10px
;
}
.dialog_conten2
{
padding-top
:
50px
;
}
.dialog_conten2
p
.diaglog_title
{
font-size
:
28px
;
font-weight
:
600
;
margin-bottom
:
15px
;
}
.dialog_conten2
p
.diaglog_money
{
font-size
:
60px
;
font-weight
:
600
;
margin
:
15px
0
20px
0
;
}
.dialog_conten2
p
{
font-size
:
18px
;
}
p
.p-desc2
{
padding-bottom
:
6px
;
}
.dialog2
.content_ul
ul
{
width
:
330px
;
margin
:
0
auto
;
padding-left
:
80px
;
}
.dialog2
.content_ul
ul
li
{
text-align
:
left
;
background
:
url(../images/new/left_icon.png)
no-repeat
left
center
;
background-size
:
25px
25px
;
padding-left
:
40px
;
line-height
:
30px
;
font-size
:
16px
;
color
:
#fff
;
}
.dialog2
.content_ul
{
margin-top
:
20px
;
margin-bottom
:
25px
;
}
.dialog_conten2
a
{
line-height
:
40px
;
background
:
#fff
;
border-radius
:
5px
;
border
:
1px
solid
#ddd
;
font-size
:
18px
;
padding
:
10px
50px
;
}
.ercode-box2
{
background
:
#fff
;
border
:
1px
solid
#ddd
;
width
:
440px
;
height
:
380px
;
left
:
50%
;
top
:
50%
;
position
:
absolute
;
margin-left
:
-220px
;
margin-top
:
190px
;
text-align
:
center
;
color
:
#333
;
padding
:
0
40px
;
}
.ercode-title2
{
font-size
:
26px
;
font-weight
:
600
;
text-align
:
left
;
padding
:
20px
0
10px
0
;
border-bottom
:
1px
solid
#ddd
;
}
.ercode-left2
{
float
:
left
;
}
.ercode-left
img
{
margin-bottom
:
5px
;
}
.ercode-right2
{
float
:
left
;
padding
:
0
60px
;
}
.ercode-clearfix2
{
overflow
:
hidden
;
padding
:
30px
0
;
}
.ercode-right
p
{
font-size
:
30px
;
}
.ercode-right
p
.ercode-numb
{
font-size
:
26px
;
margin-bottom
:
10px
;
}
.ercode-right
p
.ercode-money
{
font-size
:
40px
;
color
:
#f97777
;
font-weight
:
600
;
}
span
.had_pay2
{
border
:
1px
solid
#ddd
;
font-size
:
16px
;
padding
:
10px
30px
;
border-radius
:
5px
;
color
:
#f97777
;
}
p
.hadpay-btn2
{
margin-top
:
75px
;
}
/**
会员购买2999弹框
**/
...
...
@@ -1407,7 +1570,7 @@ p.hadpay-btn {
top
:
50%
;
position
:
absolute
;
margin-left
:
-210px
;
margin-top
:
149px
;
/* margin-top:149px; */
text-align
:
center
;
color
:
#fff
;
padding-bottom
:
30px
;
...
...
src/com/shopping/foundation/domain/ResponseEntity.java
0 → 100644
View file @
33b351bf
package
com
.
shopping
.
foundation
.
domain
;
import
java.util.List
;
import
java.util.Map
;
public
class
ResponseEntity
{
//返回编码
private
int
code
;
//返回信息
private
String
message
;
//返回集合
private
List
<
Map
<
String
,
Object
>>
list
;
//分页使用的数据总条数
private
long
totalDate
;
public
int
getCode
()
{
return
code
;
}
public
void
setCode
(
int
code
)
{
this
.
code
=
code
;
}
public
String
getMessage
()
{
return
message
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
List
<
Map
<
String
,
Object
>>
getList
()
{
return
list
;
}
public
void
setList
(
List
<
Map
<
String
,
Object
>>
list
)
{
this
.
list
=
list
;
}
public
long
getTotalDate
()
{
return
totalDate
;
}
public
void
setTotalDate
(
long
totalDate
)
{
this
.
totalDate
=
totalDate
;
}
}
src/com/shopping/foundation/domain/Wechat.java
0 → 100644
View file @
33b351bf
package
com
.
shopping
.
foundation
.
domain
;
public
class
Wechat
{
private
String
openid
;
public
String
getOpenid
()
{
return
openid
;
}
public
void
setOpenid
(
String
openid
)
{
this
.
openid
=
openid
;
}
public
String
getSession_key
()
{
return
session_key
;
}
public
void
setSession_key
(
String
session_key
)
{
this
.
session_key
=
session_key
;
}
private
String
session_key
;
}
\ No newline at end of file
src/com/shopping/manage/admin/action/PredepositLogManageAction.java
View file @
33b351bf
...
...
@@ -110,9 +110,9 @@ public class PredepositLogManageAction {
//减少用户钱包余额
User
user
=
predepositCash
.
getCash_user
();
BigDecimal
decimal
=
user
.
getAvailableBalance
().
subtract
(
predepositCash
.
getCash_amount
());
/*
BigDecimal decimal = user.getAvailableBalance().subtract(predepositCash.getCash_amount());
user.setAvailableBalance(decimal);
this
.
userService
.
update
(
user
);
this.userService.update(user);
*/
//添加记录
PredepositLog
log
=
new
PredepositLog
();
...
...
@@ -152,6 +152,12 @@ public class PredepositLogManageAction {
predepositCash
.
setCash_status
(
2
);
this
.
predepositCashService
.
update
(
predepositCash
);
//余额补回
User
user
=
predepositCash
.
getCash_user
();
BigDecimal
decimal
=
user
.
getAvailableBalance
().
add
(
predepositCash
.
getCash_amount
());
user
.
setAvailableBalance
(
decimal
);
this
.
userService
.
update
(
user
);
PredepositCashQueryObject
qo
=
new
PredepositCashQueryObject
(
currentPage
,
mv
,
"addTime"
,
"desc"
);
//qo.addQuery("obj.cash_user.id", new SysMap("user_id", SecurityUserHolder.getCurrentUser().getId()), "=");
IPageList
pList
=
this
.
predepositCashService
.
list
(
qo
);
...
...
src/com/shopping/manage/buyer/action/ChildUserBuyerAction.java
View file @
33b351bf
...
...
@@ -61,21 +61,22 @@ public class ChildUserBuyerAction {
ModelAndView
mv
=
new
JModelAndView
(
"user/default/usercenter/child_user.html"
,
this
.
configService
.
getSysConfig
(),
this
.
userConfigService
.
getUserConfig
(),
0
,
request
,
response
);
User
user
=
SecurityUserHolder
.
getCurrentUser
();
String
params
=
""
;
if
(
user
==
null
)
{
return
"redirect:/user/login.htm"
;
}
else
{
UserQueryObject
qo
=
new
UserQueryObject
(
currentPage
,
mv
,
orderBy
,
orderType
);
qo
.
setPageSize
(
3
);
qo
.
setPageSize
(
10
);
qo
.
addQuery
(
"obj.referee.id"
,
new
SysMap
(
"refereeId"
,
user
.
getId
()),
"="
);
if
(
key
!=
null
)
{
qo
.
addQuery
(
"obj.userName"
,
new
SysMap
(
"userName"
,
"%"
+
key
+
"%"
),
"like"
);
}
if
(
level
!=
null
)
{
qo
.
addQuery
(
"obj.level"
,
new
SysMap
(
"level"
,
level
),
"="
);
params
=
"&level="
+
level
;
}
IPageList
pList
=
this
.
userService
.
list
(
qo
);
CommUtil
.
saveIPageList2ModelAndView
(
""
,
""
,
""
,
pList
,
mv
);
CommUtil
.
saveIPageList2ModelAndView
(
""
,
""
,
params
,
pList
,
mv
);
}
//总会员数量
...
...
@@ -84,6 +85,7 @@ public class ChildUserBuyerAction {
Set<User>listUser=this.getAllUser(map);
mv.addObject("totalUser", listUser.size());*/
mv
.
addObject
(
"level"
,
level
==
null
?
""
:
level
);
return
mv
;
}
...
...
src/com/shopping/manage/buyer/action/PredepositCashBuyerAction.java
View file @
33b351bf
...
...
@@ -17,6 +17,8 @@ import com.shopping.foundation.service.IPredepositLogService;
import
com.shopping.foundation.service.ISysConfigService
;
import
com.shopping.foundation.service.IUserConfigService
;
import
com.shopping.foundation.service.IUserService
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
...
...
@@ -138,6 +140,12 @@ public class PredepositCashBuyerAction {
log.setPd_op_type("提现");
log.setPd_type("可用预存款");
this.predepositLogService.save(log);*/
//减少钱包余额
BigDecimal
decimal
=
user
.
getAvailableBalance
().
subtract
(
obj
.
getCash_amount
());
user
.
setAvailableBalance
(
decimal
);
this
.
userService
.
update
(
user
);
mv
.
addObject
(
"op_title"
,
"提现申请成功"
);
}
else
{
mv
=
new
JModelAndView
(
"error.html"
,
this
.
configService
.
getSysConfig
(),
this
.
userConfigService
.
getUserConfig
(),
1
,
request
,
response
);
...
...
src/com/shopping/pay/jhpay/HttpClientUtil.java
0 → 100644
View file @
33b351bf
package
com
.
shopping
.
pay
.
jhpay
;
import
java.io.IOException
;
import
java.util.Iterator
;
import
java.util.Map
;
import
org.apache.commons.httpclient.HttpClient
;
import
org.apache.commons.httpclient.HttpException
;
import
org.apache.commons.httpclient.HttpStatus
;
import
org.apache.commons.httpclient.NameValuePair
;
import
org.apache.commons.httpclient.methods.GetMethod
;
import
org.apache.commons.httpclient.methods.PostMethod
;
import
org.apache.commons.httpclient.params.HttpMethodParams
;
public
class
HttpClientUtil
{
public
static
String
httpReader
(
String
url
,
String
code
)
{
System
.
out
.
println
(
"GetPage:"
+
url
);
HttpClient
client
=
new
HttpClient
();
GetMethod
method
=
new
GetMethod
(
url
);
String
result
=
null
;
try
{
client
.
executeMethod
(
method
);
int
status
=
method
.
getStatusCode
();
if
(
status
==
HttpStatus
.
SC_OK
)
{
result
=
method
.
getResponseBodyAsString
();
}
else
{
System
.
out
.
println
(
"Method failed: "
+
method
.
getStatusLine
());
}
}
catch
(
HttpException
e
)
{
// 发生致命的异常,可能是协议不对或者返回的内容有问题
System
.
out
.
println
(
"Please check your provided http address!"
);
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
// 发生网络异常
System
.
out
.
println
(
"发生网络异常!"
);
e
.
printStackTrace
();
}
finally
{
// 释放连接
if
(
method
!=
null
)
method
.
releaseConnection
();
method
=
null
;
client
=
null
;
}
return
result
;
}
public
static
String
httpGet
(
String
url
,
String
code
)
{
System
.
out
.
println
(
"GetPage:"
+
url
);
String
content
=
null
;
HttpClient
httpClient
=
new
HttpClient
();
// 设置header
httpClient
.
getParams
().
setParameter
(
HttpMethodParams
.
USER_AGENT
,
"Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803 Fedora/3.5.2-2.fc11 Firefox/3.5.2"
);
GetMethod
method
=
new
GetMethod
(
url
);
try
{
int
statusCode
=
httpClient
.
executeMethod
(
method
);
System
.
out
.
println
(
"httpClientUtils::statusCode="
+
statusCode
);
System
.
out
.
println
(
method
.
getStatusLine
());
content
=
new
String
(
method
.
getResponseBody
(),
code
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"time out"
);
e
.
printStackTrace
();
}
finally
{
if
(
method
!=
null
)
method
.
releaseConnection
();
method
=
null
;
httpClient
=
null
;
}
return
content
;
}
public
static
String
httpPost
(
String
url
,
Map
paramMap
,
String
code
)
{
System
.
out
.
println
(
"GetPage:"
+
url
);
String
content
=
null
;
if
(
url
==
null
||
url
.
trim
().
length
()
==
0
||
paramMap
==
null
||
paramMap
.
isEmpty
())
return
null
;
HttpClient
httpClient
=
new
HttpClient
();
// 设置header
httpClient
.
getParams
().
setParameter
(
HttpMethodParams
.
USER_AGENT
,
"Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803 Fedora/3.5.2-2.fc11 Firefox/3.5.2"
);
//
// 代理设置
// httpClient.getHostConfiguration().setProxy("128.128.176.74", 808);
PostMethod
method
=
new
PostMethod
(
url
);
Iterator
it
=
paramMap
.
keySet
().
iterator
();
while
(
it
.
hasNext
())
{
String
key
=
it
.
next
()
+
""
;
Object
o
=
paramMap
.
get
(
key
);
if
(
o
!=
null
&&
o
instanceof
String
)
{
method
.
addParameter
(
new
NameValuePair
(
key
,
o
.
toString
()));
}
if
(
o
!=
null
&&
o
instanceof
String
[])
{
String
[]
s
=
(
String
[])
o
;
if
(
s
!=
null
)
for
(
int
i
=
0
;
i
<
s
.
length
;
i
++)
{
method
.
addParameter
(
new
NameValuePair
(
key
,
s
[
i
]));
}
}
}
try
{
int
statusCode
=
httpClient
.
executeMethod
(
method
);
System
.
out
.
println
(
"httpClientUtils::statusCode="
+
statusCode
);
System
.
out
.
println
(
method
.
getStatusLine
());
content
=
new
String
(
method
.
getResponseBody
(),
code
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"time out"
);
e
.
printStackTrace
();
}
finally
{
if
(
method
!=
null
)
method
.
releaseConnection
();
method
=
null
;
httpClient
=
null
;
}
return
content
;
}
public
static
String
httpPost
(
String
url
,
Map
paramMap
)
{
// 编码:UTF-8
return
HttpClientUtil
.
httpPost
(
url
,
paramMap
,
"UTF-8"
);
}
}
src/com/shopping/pay/jhpay/JHPayUtil.java
0 → 100644
View file @
33b351bf
package
com
.
shopping
.
pay
.
jhpay
;
import
java.util.HashMap
;
import
java.util.Map
;
import
com.google.gson.Gson
;
public
class
JHPayUtil
{
public
String
pay
(
String
rmb
,
String
orderId
)
{
String
bankURL
=
"https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain"
;
//bankURL="http://124.127.94.61:8001/CCBIS/ccbMain";
String
MERCHANTID
=
"105000659990050"
;
String
POSID
=
"035041678"
;
String
BRANCHID
=
"441000000"
;
String
ORDERID
=
orderId
;
String
PAYMENT
=
rmb
;
String
CURCODE
=
"01"
;
String
TXCODE
=
"530550"
;
String
REMARK1
=
""
;
String
REMARK2
=
""
;
String
RETURNTYPE
=
"3"
;
String
TIMEOUT
=
""
;
String
PUB32TR2
=
"35e5adac1b4728b44d297643020111"
;
StringBuffer
tmp
=
new
StringBuffer
();
//验签字段
tmp
.
append
(
"MERCHANTID="
);
tmp
.
append
(
MERCHANTID
);
tmp
.
append
(
"&POSID="
);
tmp
.
append
(
POSID
);
tmp
.
append
(
"&BRANCHID="
);
tmp
.
append
(
BRANCHID
);
tmp
.
append
(
"&ORDERID="
);
tmp
.
append
(
ORDERID
);
tmp
.
append
(
"&PAYMENT="
);
tmp
.
append
(
PAYMENT
);
tmp
.
append
(
"&CURCODE="
);
tmp
.
append
(
CURCODE
);
tmp
.
append
(
"&TXCODE="
);
tmp
.
append
(
TXCODE
);
tmp
.
append
(
"&REMARK1="
);
tmp
.
append
(
REMARK1
);
tmp
.
append
(
"&REMARK2="
);
tmp
.
append
(
REMARK2
);
tmp
.
append
(
"&RETURNTYPE="
);
tmp
.
append
(
RETURNTYPE
);
tmp
.
append
(
"&TIMEOUT="
);
tmp
.
append
(
TIMEOUT
);
tmp
.
append
(
"&PUB="
);
tmp
.
append
(
PUB32TR2
);
Map
map
=
new
HashMap
();
map
.
put
(
"CCB_IBSVersion"
,
"V6"
);
//必输项
map
.
put
(
"MERCHANTID"
,
MERCHANTID
);
map
.
put
(
"BRANCHID"
,
BRANCHID
);
map
.
put
(
"POSID"
,
POSID
);
map
.
put
(
"ORDERID"
,
ORDERID
);
map
.
put
(
"PAYMENT"
,
PAYMENT
);
map
.
put
(
"CURCODE"
,
CURCODE
);
map
.
put
(
"TXCODE"
,
TXCODE
);
map
.
put
(
"REMARK1"
,
REMARK1
);
map
.
put
(
"REMARK2"
,
REMARK2
);
map
.
put
(
"RETURNTYPE"
,
RETURNTYPE
);
map
.
put
(
"TIMEOUT"
,
TIMEOUT
);
map
.
put
(
"MAC"
,
MD5
.
md5Str
(
tmp
.
toString
()));
String
ret
=
HttpClientUtil
.
httpPost
(
bankURL
,
map
);
//请求二维码生成链接串
System
.
out
.
println
(
"ret::"
+
ret
);
Gson
gson
=
new
Gson
();
QrURLDemo
qrurl
=
(
QrURLDemo
)
gson
.
fromJson
(
ret
,
QrURLDemo
.
class
);
System
.
out
.
println
(
qrurl
.
getPAYURL
());
ret
=
HttpClientUtil
.
httpGet
(
qrurl
.
getPAYURL
(),
"UTF-8"
);
//获取二维码串
System
.
out
.
println
(
"ret::"
+
ret
);
return
ret
;
}
}
src/com/shopping/pay/jhpay/MD5.java
0 → 100644
View file @
33b351bf
package
com
.
shopping
.
pay
.
jhpay
;
import
java.io.*
;
import
java.security.*
;
public
class
MD5
{
public
static
String
md5Str
(
String
str
)
{
if
(
str
==
null
)
return
""
;
return
md5Str
(
str
,
0
);
}
/**
* 计算消息摘要。
*
* @param data 计算摘要的数据。
* @param offset 数据偏移地址。
* @param length 数据长度。
* @return 摘要结果。(16字节)
*/
public
static
String
md5Str
(
String
str
,
int
offset
)
{
try
{
MessageDigest
md5
=
MessageDigest
.
getInstance
(
"MD5"
);
byte
[]
b
=
str
.
getBytes
(
"UTF8"
);
md5
.
update
(
b
,
offset
,
b
.
length
);
return
byteArrayToHexString
(
md5
.
digest
());
}
catch
(
NoSuchAlgorithmException
ex
)
{
ex
.
printStackTrace
();
return
null
;
}
catch
(
UnsupportedEncodingException
ex
)
{
ex
.
printStackTrace
();
return
null
;
}
}
/**
*
* @param b byte[]
* @return String
*/
public
static
String
byteArrayToHexString
(
byte
[]
b
)
{
String
result
=
""
;
for
(
int
i
=
0
;
i
<
b
.
length
;
i
++)
{
result
+=
byteToHexString
(
b
[
i
]);
}
return
result
;
}
private
static
String
[]
hexDigits
=
{
"0"
,
"1"
,
"2"
,
"3"
,
"4"
,
"5"
,
"6"
,
"7"
,
"8"
,
"9"
,
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
};
/**
* 将字节转换为对应的16进制明文
*
* @param b byte
* @return String
*/
public
static
String
byteToHexString
(
byte
b
)
{
int
n
=
b
;
if
(
n
<
0
)
{
n
=
256
+
n
;
}
int
d1
=
n
/
16
;
int
d2
=
n
%
16
;
return
hexDigits
[
d1
]
+
hexDigits
[
d2
];
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
byteToHexString
((
byte
)
-
99
));
String
str
=
"eeeeeeeeeeeeeewrw213123122222222222222222222222213123213213213erwer"
;
String
ened
=
MD5
.
md5Str
(
str
);
System
.
out
.
println
(
ened
.
length
());
System
.
out
.
println
(
ened
);
}
}
src/com/shopping/pay/jhpay/QrURLDemo.java
0 → 100644
View file @
33b351bf
package
com
.
shopping
.
pay
.
jhpay
;
public
class
QrURLDemo
{
private
String
SUCCESS
;
private
String
PAYURL
;
public
String
getSUCCESS
()
{
return
SUCCESS
;
}
public
void
setSUCCESS
(
String
success
)
{
SUCCESS
=
success
;
}
public
String
getPAYURL
()
{
return
PAYURL
;
}
public
void
setPAYURL
(
String
payurl
)
{
PAYURL
=
payurl
;
}
}
src/com/shopping/view/web/action/BespokeViewAction.java
View file @
33b351bf
package
com
.
shopping
.
view
.
web
.
action
;
import
static
org
.
hamcrest
.
CoreMatchers
.
nullValue
;
import
java.io.IOException
;
import
java.util.Date
;
import
java.util.HashMap
;
...
...
@@ -85,9 +87,16 @@ public class BespokeViewAction {
*/
@RequestMapping
({
"/add_customization_bespoke.htm"
})
public
ModelAndView
add_customization_bespoke
(
HttpServletRequest
request
,
HttpServletResponse
response
,
String
area
,
String
name
,
String
phone
)
{
ModelAndView
mv
=
new
JModelAndView
(
"/zs_customization_index.html"
,
this
.
configService
.
getSysConfig
(),
String
name
,
String
phone
,
String
type
)
{
ModelAndView
mv
=
null
;
if
(
"1"
.
equals
(
type
))
{
mv
=
new
JModelAndView
(
"/index.html"
,
this
.
configService
.
getSysConfig
(),
this
.
userConfigService
.
getUserConfig
(),
1
,
request
,
response
);
}
else
{
mv
=
new
JModelAndView
(
"/zs_customization_index.html"
,
this
.
configService
.
getSysConfig
(),
this
.
userConfigService
.
getUserConfig
(),
1
,
request
,
response
);
}
WebForm
wf
=
new
WebForm
();
Bespoke
bespoke
=
wf
.
toPo
(
request
,
Bespoke
.
class
);
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
...
...
@@ -104,9 +113,9 @@ public class BespokeViewAction {
if
((
""
).
endsWith
(
bespoke
.
getName
())
||
bespoke
.
getName
()
==
null
)
{
flagName
=
true
;
}
if
(
flagPhone
)
{
if
(
flagPhone
)
{
return
mv
;
}
else
{
}
else
{
List
<
Bespoke
>
list
=
this
.
bespokeService
.
query
(
"select obj from Bespoke obj where obj.phone = :phone and "
+
"obj.name = :name and obj.type = :type and obj.state = :state"
,
params
,
-
1
,
-
1
);
if
(
list
.
size
()
>
0
)
{
...
...
src/com/shopping/view/web/action/LoginViewAction.java
View file @
33b351bf
...
...
@@ -5,7 +5,10 @@ import java.io.File;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.PrintWriter
;
import
java.io.UnsupportedEncodingException
;
import
java.math.BigDecimal
;
import
java.net.URLDecoder
;
import
java.net.URLEncoder
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
...
...
@@ -31,6 +34,7 @@ import org.springframework.stereotype.Controller;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.servlet.ModelAndView
;
import
com.alibaba.fastjson.JSON
;
import
com.shopping.core.annotation.SecurityMapping
;
import
com.shopping.core.mv.JModelAndView
;
import
com.shopping.core.security.support.SecurityUserHolder
;
...
...
@@ -69,6 +73,7 @@ import com.shopping.foundation.service.IUserService;
import
com.shopping.foundation.service.IZshFsbespokeService
;
import
com.shopping.foundation.service.IZshLayoutService
;
import
com.shopping.foundation.service.IZshOrderService
;
import
com.shopping.pay.jhpay.JHPayUtil
;
import
com.shopping.pay.wxpay.service.WxPayService
;
import
com.shopping.pay.wxpay.util.WechatRefundApiResult
;
import
com.shopping.pay.wxpay.util.XmlUtil
;
...
...
@@ -81,6 +86,8 @@ import com.shopping.view.web.tools.QrCodeUtil;
import
com.shopping.view.web.tools.ResourceUtil
;
import
com.shopping.view.web.tools.SendTemplateSMS
;
import
jdk.management.resource.NotifyingMeter
;
@Controller
public
class
LoginViewAction
{
...
...
@@ -614,19 +621,20 @@ public class LoginViewAction {
* @param request
* @param response
* @return
* @throws UnsupportedEncodingException
*/
@RequestMapping
({
"/buyAssociator.htm"
})
public
void
buyAssociator
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
public
void
buyAssociator
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
UnsupportedEncodingException
{
User
user
=
SecurityUserHolder
.
getCurrentUser
();
/*
* if(user == null) { return "redirect:/user/login.htm" ; }else {
*/
WxPayService
wxPayService
=
new
WxPayService
();
/* if(user == null) { return "redirect:/user/login.htm" ; }else {*/
/*WxPayService wxPayService = new WxPayService();
// 获取客户端ip
String ip = wxPayService.getIpAddress(request);
/*
*
// 订单序列码
Integer code = (int) (Math.random() * ((9999 - 1000 + 1))) + 1000;
Date currentTime = new Date();
...
...
@@ -635,15 +643,24 @@ public class LoginViewAction {
// 订单描述
String orderBody = "会员购买";
*/
// 生成微信订单
Map
<
String
,
Object
>
resultUn
=
new
HashMap
<
String
,
Object
>();
/*
Map<String, Object> resultUn = new HashMap<String, Object>();
try {
resultUn = (Map<String, Object>) wxPayService.payUnifiedOrder(new BigDecimal(399.00), orderBody, orderSn,
ip);
} catch (Exception e) {
e.printStackTrace();
}
}*/
String
orderBody
=
"会员购买"
;
// 订单序列码
Integer
code
=
(
int
)
(
Math
.
random
()
*
((
9999
-
1000
+
1
)))
+
1000
;
Date
currentTime
=
new
Date
();
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
String
orderSn
=
formatter
.
format
(
currentTime
)
+
code
;
// 判断是否有未支付订单
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
...
...
@@ -651,14 +668,18 @@ public class LoginViewAction {
map
.
put
(
"type"
,
"buyAsst"
);
List
<
ZshOrder
>
list
=
this
.
zshOrderService
.
query
(
"select obj from ZshOrder obj where obj.state = false and obj.user.id = :userId and obj.type = :type "
,
map
,
-
1
,
-
1
);
JHPayUtil
jHPayUtil
=
new
JHPayUtil
();
Map
<
String
,
Object
>
resultUn
=
new
HashMap
<
String
,
Object
>();
String
erHtml
=
jHPayUtil
.
pay
(
"0.01"
,
orderSn
);
resultUn
=
JSON
.
parseObject
(
erHtml
);
// 保存或修改订单
ZshOrder
zshOrder
=
null
;
if
(
list
.
size
()
>
0
)
{
zshOrder
=
list
.
get
(
0
);
zshOrder
.
setOrderBody
(
orderBody
);
zshOrder
.
setPaySn
(
orderSn
);
zshOrder
.
setPrepay_id
(
resultUn
.
get
(
"prepay_id"
).
toString
());
//
zshOrder.setPrepay_id(resultUn.get("prepay_id").toString());
this
.
zshOrderService
.
update
(
zshOrder
);
}
else
{
zshOrder
=
new
ZshOrder
();
...
...
@@ -667,7 +688,7 @@ public class LoginViewAction {
zshOrder
.
setNumber
(
1
);
zshOrder
.
setOrderBody
(
orderBody
);
zshOrder
.
setPaySn
(
orderSn
);
zshOrder
.
setPrepay_id
(
resultUn
.
get
(
"prepay_id"
).
toString
());
//
zshOrder.setPrepay_id(resultUn.get("prepay_id").toString());
zshOrder
.
setState
(
false
);
zshOrder
.
setTotalPrice
(
new
BigDecimal
(
399.00
));
zshOrder
.
setUnitPrice
(
new
BigDecimal
(
399.00
));
...
...
@@ -680,7 +701,8 @@ public class LoginViewAction {
String
saveFilePathName
=
request
.
getSession
().
getServletContext
().
getRealPath
(
"/"
)
+
uploadFilePath
;
String
url
=
QrCodeUtil
.
referralCodeCreate
(
Integer
.
parseInt
(
user
.
getId
().
toString
()),
saveFilePathName
);
String
referralUrl
=
resultUn
.
get
(
"code_url"
).
toString
();
String
referralUrl
=
resultUn
.
get
(
"QRURL"
).
toString
();
referralUrl
=
URLDecoder
.
decode
(
referralUrl
);
String
outPath
=
File
.
separator
+
"payCode"
+
File
.
separator
+
orderSn
+
".jpg"
;
String
newUrl
=
""
;
if
(
QrCodeUtil
.
zxingCodeCreate
(
referralUrl
,
256
,
256
,
saveFilePathName
+
outPath
,
"JPEG"
,
1
))
{
...
...
@@ -698,6 +720,11 @@ public class LoginViewAction {
/* } */
}
@RequestMapping
({
"/notify.htm"
})
public
void
NotifyingMeter
()
{
}
/**
* 支付回调
*
...
...
@@ -705,7 +732,7 @@ public class LoginViewAction {
* @param response
* @return
*/
@RequestMapping
({
"/notify.htm"
})
@RequestMapping
({
"/
weixin
notify.htm"
})
public
void
notify
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
try
{
request
.
setCharacterEncoding
(
"UTF-8"
);
...
...
@@ -818,7 +845,7 @@ public class LoginViewAction {
// 修改User信息
User
user
=
zshOrder
.
getUser
();
user
.
setState
(
true
);
user
.
setLevel
(
1
);
user
.
setLevel
(
2
);
Date
date
=
new
Date
();
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
...
...
@@ -870,6 +897,40 @@ public class LoginViewAction {
}
Map
<
String
,
Object
>
smsMap
=
SendTemplateSMS
.
sendTemplateSMSPay
(
user
.
getMobile
(),
"铂金"
);
}
else
if
(
zshOrder
.
getType
().
equals
(
"buyAsstQiye"
))
{
// 修改User信息
User
user
=
zshOrder
.
getUser
();
user
.
setState
(
true
);
user
.
setLevel
(
3
);
Date
date
=
new
Date
();
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
date
);
cal
.
add
(
Calendar
.
YEAR
,
1
);
user
.
setEndTime
(
cal
.
getTime
());
this
.
userService
.
update
(
user
);
User
referee
=
user
.
getReferee
();
if
(
referee
!=
null
)
{
if
(
referee
.
getAvailableBalance
()
==
null
)
{
referee
.
setAvailableBalance
(
new
BigDecimal
(
300
));
}
else
{
referee
.
setAvailableBalance
(
referee
.
getAvailableBalance
().
add
(
new
BigDecimal
(
300
)));
}
this
.
userService
.
update
(
referee
);
// 添加记录
PredepositLog
log
=
new
PredepositLog
();
log
.
setAddTime
(
new
Date
());
log
.
setPd_log_amount
(
new
BigDecimal
(
300
));
log
.
setPd_log_info
(
"推广奖励"
);
log
.
setPd_log_user
(
referee
);
log
.
setPd_op_type
(
"推广奖励"
);
log
.
setPd_type
(
"可用预存款"
);
this
.
predepositlogService
.
save
(
log
);
}
Map
<
String
,
Object
>
smsMap
=
SendTemplateSMS
.
sendTemplateSMSPay
(
user
.
getMobile
(),
"企业"
);
}
response
.
getWriter
().
write
(
WxPayService
.
setXml
(
"SUCCESS"
,
"OK"
));
...
...
@@ -1022,6 +1083,96 @@ public class LoginViewAction {
/* } */
}
/**
* 购买9999会员
*
* @param request
* @param response
* @return
*/
@RequestMapping
({
"/buyAssociatorQiye.htm"
})
public
void
buyAssociatorQiye
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
User
user
=
SecurityUserHolder
.
getCurrentUser
();
/*
* if(user == null) { return "redirect:/user/login.htm" ; }else {
*/
WxPayService
wxPayService
=
new
WxPayService
();
// 获取客户端ip
String
ip
=
wxPayService
.
getIpAddress
(
request
);
// 订单序列码
Integer
code
=
(
int
)
(
Math
.
random
()
*
((
9999
-
1000
+
1
)))
+
1000
;
Date
currentTime
=
new
Date
();
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
String
orderSn
=
formatter
.
format
(
currentTime
)
+
code
;
// 订单描述
String
orderBody
=
"企业会员购买"
;
// 生成微信订单
Map
<
String
,
Object
>
resultUn
=
new
HashMap
<
String
,
Object
>();
try
{
resultUn
=
(
Map
<
String
,
Object
>)
wxPayService
.
payUnifiedOrder
(
new
BigDecimal
(
9999.00
),
orderBody
,
orderSn
,
ip
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
// 判断是否有未支付订单
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"userId"
,
user
.
getId
());
map
.
put
(
"type"
,
"buyAsstQiye"
);
List
<
ZshOrder
>
list
=
this
.
zshOrderService
.
query
(
"select obj from ZshOrder obj where obj.state = false and obj.user.id = :userId and obj.type = :type"
,
map
,
-
1
,
-
1
);
// 保存或修改订单
ZshOrder
zshOrder
=
null
;
if
(
list
.
size
()
>
0
)
{
zshOrder
=
list
.
get
(
0
);
zshOrder
.
setOrderBody
(
orderBody
);
zshOrder
.
setPaySn
(
orderSn
);
zshOrder
.
setPrepay_id
(
resultUn
.
get
(
"prepay_id"
).
toString
());
this
.
zshOrderService
.
update
(
zshOrder
);
}
else
{
zshOrder
=
new
ZshOrder
();
zshOrder
.
setAddTime
(
new
Date
());
zshOrder
.
setDeleteStatus
(
false
);
zshOrder
.
setNumber
(
1
);
zshOrder
.
setOrderBody
(
orderBody
);
zshOrder
.
setPaySn
(
orderSn
);
zshOrder
.
setPrepay_id
(
resultUn
.
get
(
"prepay_id"
).
toString
());
zshOrder
.
setState
(
false
);
zshOrder
.
setTotalPrice
(
new
BigDecimal
(
2999.00
));
zshOrder
.
setUnitPrice
(
new
BigDecimal
(
2999.00
));
zshOrder
.
setUser_id
(
user
);
zshOrder
.
setType
(
"buyAsstQiye"
);
this
.
zshOrderService
.
save
(
zshOrder
);
}
String
uploadFilePath
=
this
.
configService
.
getSysConfig
().
getUploadFilePath
();
String
saveFilePathName
=
request
.
getSession
().
getServletContext
().
getRealPath
(
"/"
)
+
uploadFilePath
;
String
url
=
QrCodeUtil
.
referralCodeCreate
(
Integer
.
parseInt
(
user
.
getId
().
toString
()),
saveFilePathName
);
String
referralUrl
=
resultUn
.
get
(
"code_url"
).
toString
();
String
outPath
=
File
.
separator
+
"payCode"
+
File
.
separator
+
orderSn
+
".jpg"
;
String
newUrl
=
""
;
if
(
QrCodeUtil
.
zxingCodeCreate
(
referralUrl
,
256
,
256
,
saveFilePathName
+
outPath
,
"JPEG"
,
1
))
{
newUrl
=
"upload/payCode/"
+
orderSn
+
".jpg"
;
}
else
{
}
try
{
PrintWriter
writer
=
response
.
getWriter
();
writer
.
print
(
Json
.
toJson
(
newUrl
,
JsonFormat
.
compact
()));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
/* } */
}
@RequestMapping
({
"/area_chlids.htm"
})
public
ModelAndView
account_getAreaChilds
(
HttpServletRequest
request
,
HttpServletResponse
response
,
String
parent_id
)
{
ModelAndView
mv
=
new
JModelAndView
(
"area_chlids.html"
,
this
.
configService
.
getSysConfig
(),
this
.
userConfigService
.
getUserConfig
(),
1
,
...
...
@@ -1034,4 +1185,78 @@ public class LoginViewAction {
}
return
mv
;
}
/**
* 购买9999会员
*
* @param request
* @param response
* @return
*/
@RequestMapping
({
"/buyAsstJianhang.htm"
})
public
void
buyAsstJianhang
(
HttpServletRequest
request
,
HttpServletResponse
response
,
String
type
)
{
User
user
=
SecurityUserHolder
.
getCurrentUser
();
// 订单序列码
Integer
code
=
(
int
)
(
Math
.
random
()
*
((
9999
-
1000
+
1
)))
+
1000
;
Date
currentTime
=
new
Date
();
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
String
orderSn
=
formatter
.
format
(
currentTime
)
+
code
;
// 订单描述
String
orderBody
=
"企业会员购买"
;
// 判断是否有未支付订单
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"userId"
,
user
.
getId
());
map
.
put
(
"type"
,
"buyAsstQiye"
);
List
<
ZshOrder
>
list
=
this
.
zshOrderService
.
query
(
"select obj from ZshOrder obj where obj.state = false and obj.user.id = :userId and obj.type = :type"
,
map
,
-
1
,
-
1
);
// 保存或修改订单
ZshOrder
zshOrder
=
null
;
if
(
list
.
size
()
>
0
)
{
zshOrder
=
list
.
get
(
0
);
zshOrder
.
setOrderBody
(
orderBody
);
zshOrder
.
setPaySn
(
orderSn
);
//zshOrder.setPrepay_id(resultUn.get("prepay_id").toString());
this
.
zshOrderService
.
update
(
zshOrder
);
}
else
{
zshOrder
=
new
ZshOrder
();
zshOrder
.
setAddTime
(
new
Date
());
zshOrder
.
setDeleteStatus
(
false
);
zshOrder
.
setNumber
(
1
);
zshOrder
.
setOrderBody
(
orderBody
);
zshOrder
.
setPaySn
(
orderSn
);
//zshOrder.setPrepay_id(resultUn.get("prepay_id").toString());
zshOrder
.
setState
(
false
);
zshOrder
.
setTotalPrice
(
new
BigDecimal
(
2999.00
));
zshOrder
.
setUnitPrice
(
new
BigDecimal
(
2999.00
));
zshOrder
.
setUser_id
(
user
);
zshOrder
.
setType
(
"buyAsstQiye"
);
this
.
zshOrderService
.
save
(
zshOrder
);
}
String
uploadFilePath
=
this
.
configService
.
getSysConfig
().
getUploadFilePath
();
String
saveFilePathName
=
request
.
getSession
().
getServletContext
().
getRealPath
(
"/"
)
+
uploadFilePath
;
String
url
=
QrCodeUtil
.
referralCodeCreate
(
Integer
.
parseInt
(
user
.
getId
().
toString
()),
saveFilePathName
);
//String referralUrl = resultUn.get("code_url").toString();
String
outPath
=
File
.
separator
+
"payCode"
+
File
.
separator
+
orderSn
+
".jpg"
;
String
newUrl
=
""
;
/*if (QrCodeUtil.zxingCodeCreate(referralUrl, 256, 256, saveFilePathName + outPath, "JPEG", 1)) {
newUrl = "upload/payCode/" + orderSn + ".jpg";
} else {
}*/
try
{
PrintWriter
writer
=
response
.
getWriter
();
writer
.
print
(
Json
.
toJson
(
newUrl
,
JsonFormat
.
compact
()));
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
src/com/shopping/view/web/action/MCipherDecode.java
0 → 100644
View file @
33b351bf
package
B2C
.
PUB
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLDecoder
;
import
java.net.URLEncoder
;
import
java.security.InvalidAlgorithmParameterException
;
import
java.security.InvalidKeyException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchProviderException
;
import
java.security.Security
;
import
javax.crypto.BadPaddingException
;
import
javax.crypto.Cipher
;
import
javax.crypto.IllegalBlockSizeException
;
import
javax.crypto.NoSuchPaddingException
;
import
javax.crypto.ShortBufferException
;
import
javax.crypto.spec.IvParameterSpec
;
import
javax.crypto.spec.SecretKeySpec
;
import
org.bouncycastle.jce.provider.BouncyCastleProvider
;
import
sun.misc.BASE64Decoder
;
import
sun.misc.BASE64Encoder
;
public
class
MCipherDecode
{
static
{
if
(
Security
.
getProvider
(
"BC"
)==
null
)
{
Security
.
addProvider
(
new
BouncyCastleProvider
());
}
}
private
String
encryptKey
=
"12345678"
;
public
MCipherDecode
(
String
key
)
{
encryptKey
=
key
.
substring
(
0
,
8
);
}
public
String
getEncryptKey
()
{
return
encryptKey
;
}
public
void
setEncryptKey
(
String
encryptKey
)
{
this
.
encryptKey
=
encryptKey
.
substring
(
0
,
8
);
}
private
static
byte
[]
getSrcBytes
(
byte
[]
srcBytes
,
byte
[]
wrapKey
)
throws
NoSuchAlgorithmException
,
NoSuchPaddingException
,
InvalidKeyException
,
ShortBufferException
,
IllegalBlockSizeException
,
BadPaddingException
,
NoSuchProviderException
,
InvalidAlgorithmParameterException
{
SecretKeySpec
key
=
new
SecretKeySpec
(
wrapKey
,
"DES"
);
Cipher
cipher
=
Cipher
.
getInstance
(
"DES/ECB/PKCS5Padding"
,
"BC"
);
cipher
.
init
(
Cipher
.
DECRYPT_MODE
,
key
);
byte
[]
cipherText
=
cipher
.
doFinal
(
srcBytes
);
return
cipherText
;
}
public
static
byte
[]
DecodeBase64String
(
String
base64Src
)
throws
IOException
{
BASE64Decoder
de
=
new
BASE64Decoder
();
byte
[]
base64Result
=
de
.
decodeBuffer
(
base64Src
);
return
base64Result
;
}
public
String
getDecodeString
(
String
urlString
)
throws
IOException
,
InvalidKeyException
,
NoSuchAlgorithmException
,
NoSuchPaddingException
,
ShortBufferException
,
IllegalBlockSizeException
,
BadPaddingException
,
NoSuchProviderException
,
InvalidAlgorithmParameterException
{
String
tempString
=
URLDecoder
.
decode
(
urlString
,
"iso-8859-1"
);
String
basedString
=
tempString
.
replaceAll
(
","
,
"+"
);
byte
[]
tempBytes
=
DecodeBase64String
(
basedString
);
byte
[]
tempSrcBytes
=
getSrcBytes
(
tempBytes
,
encryptKey
.
getBytes
(
"iso-8859-1"
));
return
new
String
(
tempSrcBytes
,
"iso-8859-1"
);
}
public
static
void
main
(
String
[]
agrs
){
String
key
=
"f6528d5c335b7092fc9ec1b3020111"
;
String
str
=
"梅九六|6214662020019275"
;
String
cipherdURL
=
"AWWo2KKeATj6XxRglo7uaR0yZ2QQtCW%2C"
;
//使用MCipherDecode.java类中的getDecodeString(String urlString)方法进行解密,主要步骤如下:
try
{
MCipherDecode
mcd
=
new
MCipherDecode
(
key
);
//设置密钥
String
decodedString
=
mcd
.
getDecodeString
(
cipherdURL
);
//解密
byte
[]
tempByte
=
decodedString
.
getBytes
(
"ISO-8859-1"
);
decodedString
=
new
String
(
tempByte
,
"GBK"
);
System
.
out
.
println
(
"decodedString-- "
+
decodedString
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
}
}
src/com/shopping/view/web/action/QrDemo.java
0 → 100644
View file @
33b351bf
package
com
.
shopping
.
view
.
web
.
action
;
import
java.util.HashMap
;
import
java.util.Map
;
import
com.google.gson.Gson
;
import
com.shopping.pay.jhpay.HttpClientUtil
;
import
com.shopping.pay.jhpay.MD5
;
import
com.shopping.pay.jhpay.QrURLDemo
;
public
class
QrDemo
{
public
static
void
main
(
String
[]
args
)
throws
Exception
{
String
bankURL
=
"https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain"
;
//bankURL="http://124.127.94.61:8001/CCBIS/ccbMain";
String
MERCHANTID
=
"105000659990050"
;
String
POSID
=
"035041678"
;
String
BRANCHID
=
"441000000"
;
String
ORDERID
=
"111111111111"
;
String
PAYMENT
=
"0.01"
;
String
CURCODE
=
"01"
;
String
TXCODE
=
"530550"
;
String
REMARK1
=
""
;
String
REMARK2
=
""
;
String
RETURNTYPE
=
"3"
;
String
TIMEOUT
=
""
;
String
PUB32TR2
=
"35e5adac1b4728b44d297643020111"
;
StringBuffer
tmp
=
new
StringBuffer
();
//验签字段
tmp
.
append
(
"MERCHANTID="
);
tmp
.
append
(
MERCHANTID
);
tmp
.
append
(
"&POSID="
);
tmp
.
append
(
POSID
);
tmp
.
append
(
"&BRANCHID="
);
tmp
.
append
(
BRANCHID
);
tmp
.
append
(
"&ORDERID="
);
tmp
.
append
(
ORDERID
);
tmp
.
append
(
"&PAYMENT="
);
tmp
.
append
(
PAYMENT
);
tmp
.
append
(
"&CURCODE="
);
tmp
.
append
(
CURCODE
);
tmp
.
append
(
"&TXCODE="
);
tmp
.
append
(
TXCODE
);
tmp
.
append
(
"&REMARK1="
);
tmp
.
append
(
REMARK1
);
tmp
.
append
(
"&REMARK2="
);
tmp
.
append
(
REMARK2
);
tmp
.
append
(
"&RETURNTYPE="
);
tmp
.
append
(
RETURNTYPE
);
tmp
.
append
(
"&TIMEOUT="
);
tmp
.
append
(
TIMEOUT
);
tmp
.
append
(
"&PUB="
);
tmp
.
append
(
PUB32TR2
);
Map
map
=
new
HashMap
();
map
.
put
(
"CCB_IBSVersion"
,
"V6"
);
//必输项
map
.
put
(
"MERCHANTID"
,
MERCHANTID
);
map
.
put
(
"BRANCHID"
,
BRANCHID
);
map
.
put
(
"POSID"
,
POSID
);
map
.
put
(
"ORDERID"
,
ORDERID
);
map
.
put
(
"PAYMENT"
,
PAYMENT
);
map
.
put
(
"CURCODE"
,
CURCODE
);
map
.
put
(
"TXCODE"
,
TXCODE
);
map
.
put
(
"REMARK1"
,
REMARK1
);
map
.
put
(
"REMARK2"
,
REMARK2
);
map
.
put
(
"RETURNTYPE"
,
RETURNTYPE
);
map
.
put
(
"TIMEOUT"
,
TIMEOUT
);
map
.
put
(
"MAC"
,
MD5
.
md5Str
(
tmp
.
toString
()));
String
ret
=
HttpClientUtil
.
httpPost
(
bankURL
,
map
);
//请求二维码生成链接串
System
.
out
.
println
(
"ret::"
+
ret
);
Gson
gson
=
new
Gson
();
QrURLDemo
qrurl
=
(
QrURLDemo
)
gson
.
fromJson
(
ret
,
QrURLDemo
.
class
);
System
.
out
.
println
(
qrurl
.
getPAYURL
());
ret
=
HttpClientUtil
.
httpGet
(
qrurl
.
getPAYURL
(),
"UTF-8"
);
//获取二维码串
System
.
out
.
println
(
"ret::"
+
ret
);
}
}
src/com/shopping/view/web/tools/WeChatLogin.java
0 → 100644
View file @
33b351bf
package
com
.
shopping
.
view
.
web
.
tools
;
import
java.util.HashMap
;
import
java.util.Map
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.client.RestTemplate
;
import
com.google.gson.Gson
;
import
com.shopping.foundation.domain.Wechat
;
public
class
WeChatLogin
{
private
static
final
String
APPID
=
"wxe6db3e125aba9b7e"
;
private
static
final
String
SECRET
=
"51780f9575c8679500959fbbe280d833"
;
public
Map
<
String
,
Object
>
getSssion
(
String
wxCode
){
String
url
=
"https://api.weixin.qq.com/sns/jscode2session?appid="
+
APPID
+
"&secret="
+
SECRET
+
"&js_code="
+
wxCode
+
"&grant_type=authorization_code"
;
RestTemplate
restTemplate
=
new
RestTemplate
();
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
//进行网络请求,访问url接口
ResponseEntity
<
String
>
responseEntity
=
restTemplate
.
exchange
(
url
,
HttpMethod
.
GET
,
null
,
String
.
class
);
if
(
responseEntity
!=
null
&&
responseEntity
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
String
sessionData
=
responseEntity
.
getBody
();
Gson
gson
=
new
Gson
();
Wechat
wechat
=
gson
.
fromJson
(
sessionData
,
Wechat
.
class
);
map
.
put
(
"session_key"
,
wechat
.
getSession_key
());
map
.
put
(
"openid"
,
wechat
.
getOpenid
());
}
return
map
;
}
}
src/com/shopping/view/web/wechat/WechatIndexViewAction.java
0 → 100644
View file @
33b351bf
package
com
.
shopping
.
view
.
web
.
wechat
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
com.shopping.foundation.domain.ResponseEntity
;
import
com.shopping.foundation.service.ISysConfigService
;
import
com.shopping.foundation.service.IUserConfigService
;
import
com.shopping.view.web.tools.WeChatLogin
;
@Controller
public
class
WechatIndexViewAction
{
@Autowired
private
ISysConfigService
configService
;
@Autowired
private
IUserConfigService
userConfigService
;
/**
* 根据微信唯一码查询用户
* @param request
* @param response
* @param code
* @return
*/
@RequestMapping
({
"/weChat_user.htm"
})
public
ResponseEntity
getByCode
(
HttpServletRequest
request
,
HttpServletResponse
response
,
String
code
)
{
ResponseEntity
responseEntity
=
new
ResponseEntity
();
WeChatLogin
weChatLogin
=
new
WeChatLogin
();
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<
Map
<
String
,
Object
>>();
Map
<
String
,
Object
>
map
=
weChatLogin
.
getSssion
(
code
);
if
(
map
.
get
(
"session_key"
)
==
null
||
map
.
get
(
"openid"
)
==
null
)
{
responseEntity
.
setCode
(
3
);
responseEntity
.
setMessage
(
"code无效,没有查询到用户"
);
}
else
{
String
openid
=
map
.
get
(
"openid"
).
toString
();
//List <Map<String, Object>> userList = wechatResponseRepository.getByCode(openid);
/*if(userList.size() == 0) {
list.add(map);
responseEntity.setCode(2);
responseEntity.setList(list);
responseEntity.setMessage("查询成功,没有绑定用户");
}else {
for (Map<String, Object> user : userList) {
String orgId = wechatResponseRepository.getOrgId(user.get("item_tra").toString());
String orgName = wechatResponseRepository.getOrgName(user.get("item_tra").toString());
user.put("openid", map.get("openid"));
user.put("session_key", map.get("session_key"));
user.put("orgId", orgId);
user.put("orgName", orgName);
list.add(user);
}
responseEntity.setCode(1);
responseEntity.setList(list);
responseEntity.setMessage("查询成功,已绑定对象");
}*/
}
return
responseEntity
;
}
}
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