Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
SiEn
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hewei
SiEn
Commits
7475d6d9
Commit
7475d6d9
authored
Mar 10, 2021
by
giaogiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
微信支付
parent
89e293a7
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
135 additions
and
94 deletions
+135
-94
common/src/main/java/com/sien/common/config/WxMpConfiguration.java
+1
-2
common/src/main/java/com/sien/common/controller/AppHelloWorldController.java
+74
-74
common/src/main/java/com/sien/common/controller/DonationRecordController.java
+4
-3
common/src/main/java/com/sien/common/param/app/DonationRecordAdd.java
+1
-3
common/src/main/java/com/sien/common/service/DonationRecordService.java
+3
-1
common/src/main/java/com/sien/common/service/impl/DonationRecordServiceImpl.java
+52
-11
No files found.
common/src/main/java/com/sien/common/config/WxMpConfiguration.java
View file @
7475d6d9
...
...
@@ -5,7 +5,6 @@ import me.chanjar.weixin.mp.api.WxMpService;
import
me.chanjar.weixin.mp.api.impl.WxMpServiceImpl
;
import
me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
...
...
@@ -18,7 +17,7 @@ import java.util.stream.Collectors;
* @author Binary Wang(https://github.com/binarywang)
*/
@Configuration
@EnableConfigurationProperties
(
WxMpProperties
.
class
)
//
@EnableConfigurationProperties(WxMpProperties.class)
public
class
WxMpConfiguration
{
// private final LogHandler logHandler;
// private final NullHandler nullHandler;
...
...
common/src/main/java/com/sien/common/controller/AppHelloWorldController.java
View file @
7475d6d9
package
com
.
sien
.
common
.
controller
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.log.annotation.OperationLog
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.authz.annotation.RequiresRoles
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.io.IOException
;
/**
*
* Hello World Controller
**/
@Slf4j
@Api
(
value
=
"权限测试"
,
tags
=
{
"APP Hello World2"
})
@RestController
@RequestMapping
(
"/app"
)
public
class
AppHelloWorldController
{
/**
* Hello World
*
* @return
* @throws IOException
*/
@GetMapping
(
value
=
"/world"
)
@OperationLog
(
name
=
"helloWorld"
)
@ApiOperation
(
value
=
"helloWorld"
,
response
=
String
.
class
)
public
ApiResult
<
String
>
helloWorld
()
throws
IOException
{
log
.
debug
(
"Hello World...app"
);
return
ApiResult
.
ok
(
"Hello World app"
);
}
@GetMapping
(
value
=
"/needRole"
)
@OperationLog
(
name
=
"needRole"
)
@ApiOperation
(
value
=
"needRole"
,
response
=
String
.
class
)
public
ApiResult
<
String
>
needRole
()
throws
IOException
{
log
.
debug
(
"Hello World...app"
);
return
ApiResult
.
ok
(
"Hello World app"
);
}
@GetMapping
(
value
=
"/needRoleAdmin"
)
@OperationLog
(
name
=
"needRoleAdmin"
)
@ApiOperation
(
value
=
"needRoleAdmin"
,
response
=
String
.
class
)
@RequiresRoles
(
"app:admin"
)
public
ApiResult
<
String
>
needRoleAdmin
()
throws
IOException
{
log
.
debug
(
"Hello World...app"
);
return
ApiResult
.
ok
(
"Hello World needRoleAdmin"
);
}
@GetMapping
(
value
=
"/needRoleAll"
)
@OperationLog
(
name
=
"needRoleAll"
)
@ApiOperation
(
value
=
"needRoleAll"
,
response
=
String
.
class
)
@RequiresRoles
(
"app:all"
)
public
ApiResult
<
String
>
needRoleAll
()
throws
IOException
{
log
.
debug
(
"Hello World...app"
);
return
ApiResult
.
ok
(
"Hello World needRoleAll"
);
}
@GetMapping
(
value
=
"/noRole"
)
@OperationLog
(
name
=
"noRole"
)
@ApiOperation
(
value
=
"noRole"
,
response
=
String
.
class
)
public
ApiResult
<
String
>
noRole
()
throws
IOException
{
log
.
debug
(
"Hello World...app"
);
return
ApiResult
.
ok
(
"Hello World app noRole"
);
}
}
//
package com.sien.common.controller;
//
//
import io.geekidea.springbootplus.framework.common.api.ApiResult;
//
import io.geekidea.springbootplus.framework.log.annotation.OperationLog;
//
import io.swagger.annotations.Api;
//
import io.swagger.annotations.ApiOperation;
//
import lombok.extern.slf4j.Slf4j;
//
import org.apache.shiro.authz.annotation.RequiresRoles;
//
import org.springframework.web.bind.annotation.GetMapping;
//
import org.springframework.web.bind.annotation.RequestMapping;
//
import org.springframework.web.bind.annotation.RestController;
//
//
import java.io.IOException;
//
/
//
**
//
*
//
* Hello World Controller
//
**/
//
@Slf4j
//
@Api(value = "权限测试", tags = {"APP Hello World2"})
//
@RestController
//
@RequestMapping("/app")
//
public class AppHelloWorldController {
//
//
/**
//
* Hello World
//
*
//
* @return
//
* @throws IOException
//
*/
//
@GetMapping(value = "/world")
//
@OperationLog(name = "helloWorld")
//
@ApiOperation(value = "helloWorld", response = String.class)
//
public ApiResult<String> helloWorld() throws IOException {
//
log.debug("Hello World...app");
//
return ApiResult.ok("Hello World app");
//
}
//
//
//
@GetMapping(value = "/needRole")
//
@OperationLog(name = "needRole")
//
@ApiOperation(value = "needRole", response = String.class)
//
public ApiResult<String> needRole() throws IOException {
//
log.debug("Hello World...app");
//
return ApiResult.ok("Hello World app");
//
}
//
//
@GetMapping(value = "/needRoleAdmin")
//
@OperationLog(name = "needRoleAdmin")
//
@ApiOperation(value = "needRoleAdmin", response = String.class)
//
@RequiresRoles("app:admin")
//
public ApiResult<String> needRoleAdmin() throws IOException {
//
log.debug("Hello World...app");
//
return ApiResult.ok("Hello World needRoleAdmin");
//
}
//
//
@GetMapping(value = "/needRoleAll")
//
@OperationLog(name = "needRoleAll")
//
@ApiOperation(value = "needRoleAll", response = String.class)
//
@RequiresRoles("app:all")
//
public ApiResult<String> needRoleAll() throws IOException {
//
log.debug("Hello World...app");
//
return ApiResult.ok("Hello World needRoleAll");
//
}
//
//
@GetMapping(value = "/noRole")
//
@OperationLog(name = "noRole")
//
@ApiOperation(value = "noRole", response = String.class)
//
public ApiResult<String> noRole() throws IOException {
//
log.debug("Hello World...app");
//
return ApiResult.ok("Hello World app noRole");
//
}
//
//
}
common/src/main/java/com/sien/common/controller/DonationRecordController.java
View file @
7475d6d9
package
com
.
sien
.
common
.
controller
;
import
com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult
;
import
com.sien.common.param.DonationRecordPageParam
;
import
com.sien.common.param.app.DonationRecordAdd
;
import
com.sien.common.service.DonationRecordService
;
...
...
@@ -42,9 +43,9 @@ public class DonationRecordController extends BaseController {
@PostMapping
(
"/add"
)
@OperationLog
(
name
=
"我要捐款"
,
type
=
OperationLogType
.
ADD
)
@ApiOperation
(
value
=
"我要捐款"
)
public
ApiResult
<
Boolean
>
addDonationRecord
(
@Validated
(
Add
.
class
)
@RequestBody
DonationRecordAdd
donationRecordAdd
)
throws
Exception
{
boolean
flag
=
donationRecordService
.
add
(
donationRecordAdd
);
return
ApiResult
.
result
(
flag
);
public
ApiResult
<
WxPayMpOrderResult
>
addDonationRecord
(
@Validated
(
Add
.
class
)
@RequestBody
DonationRecordAdd
donationRecordAdd
)
throws
Exception
{
return
donationRecordService
.
add
(
donationRecordAdd
);
}
/**
...
...
common/src/main/java/com/sien/common/param/app/DonationRecordAdd.java
View file @
7475d6d9
...
...
@@ -3,7 +3,6 @@ package com.sien.common.param.app;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
...
...
@@ -23,13 +22,12 @@ public class DonationRecordAdd implements Serializable {
@ApiModelProperty
(
"捐款用途;直接录入字符串: 助学助教,资助病残;慰问孤老,其他"
)
private
String
purpose
;
@ApiModelProperty
(
"捐款方式;1正常
.2匿名,替他人捐款记录在donation_r agent表
"
)
@ApiModelProperty
(
"捐款方式;1正常
,2匿名
"
)
private
Integer
way
;
@ApiModelProperty
(
"是否替别人捐款"
)
private
Integer
isReplace
;
@NotNull
(
message
=
"捐款接收用户手机号"
)
@ApiModelProperty
(
"捐款接收用户手机号"
)
private
String
userPhone
;
}
common/src/main/java/com/sien/common/service/DonationRecordService.java
View file @
7475d6d9
package
com
.
sien
.
common
.
service
;
import
com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult
;
import
com.sien.common.entity.DonationRecord
;
import
com.sien.common.param.DonationRecordPageParam
;
import
com.sien.common.param.app.DonationRecordAdd
;
import
com.sien.common.vo.DonationRankAndTotal
;
import
com.sien.common.vo.DonationRecordQueryVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
...
...
@@ -35,7 +37,7 @@ public interface DonationRecordService extends BaseService<DonationRecord> {
boolean
saveDonationRecord
(
DonationRecord
donationRecord
)
throws
Exception
;
boolean
add
(
DonationRecordAdd
donationRecordAdd
)
throws
Exception
;
ApiResult
<
WxPayMpOrderResult
>
add
(
DonationRecordAdd
donationRecordAdd
)
throws
Exception
;
/**
* 修改
...
...
common/src/main/java/com/sien/common/service/impl/DonationRecordServiceImpl.java
View file @
7475d6d9
package
com
.
sien
.
common
.
service
.
impl
;
import
cn.hutool.captcha.generator.RandomGenerator
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.OrderItem
;
...
...
@@ -12,17 +11,24 @@ import com.sien.common.entity.DonationRecord;
import
com.sien.common.mapper.DonationRecordMapper
;
import
com.sien.common.param.DonationRecordPageParam
;
import
com.sien.common.param.app.DonationRecordAdd
;
import
com.sien.common.service.AppUserService
;
import
com.sien.common.service.DonationRecordService
;
import
com.sien.common.vo.AppUserQueryVo
;
import
com.sien.common.vo.DonationRankAndTotal
;
import
com.sien.common.vo.DonationRecordQueryVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
io.geekidea.springbootplus.framework.core.pagination.PageInfo
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.SecurityUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.http.HttpServletRequest
;
/**
* 捐款记录 服务实现类
*
...
...
@@ -33,12 +39,22 @@ import org.springframework.transaction.annotation.Transactional;
@Service
public
class
DonationRecordServiceImpl
extends
BaseServiceImpl
<
DonationRecordMapper
,
DonationRecord
>
implements
DonationRecordService
{
private
static
final
String
BODY
=
"四恩慈善会-捐款"
;
private
static
final
String
http
=
"http"
;
@Autowired
private
DonationRecordMapper
donationRecordMapper
;
@Autowired
private
WxPayService
wxService
;
@Autowired
HttpServletRequest
req
;
@Autowired
private
AppUserService
appUserService
;
@Override
public
DonationRankAndTotal
getDonationRankAndTotal
(
Long
userId
)
{
return
donationRecordMapper
.
getDonationRankAndTotal
(
userId
);
...
...
@@ -50,37 +66,62 @@ public class DonationRecordServiceImpl extends BaseServiceImpl<DonationRecordMap
return
super
.
save
(
donationRecord
);
}
@Override
public
boolean
add
(
DonationRecordAdd
donationRecordAdd
)
throws
Exception
{
public
ApiResult
<
WxPayMpOrderResult
>
add
(
DonationRecordAdd
donationRecordAdd
)
throws
Exception
{
JwtToken
jwtToken
=
(
JwtToken
)
SecurityUtils
.
getSubject
().
getPrincipal
();
AppUserQueryVo
appUserById
=
appUserService
.
getAppUserById
(
jwtToken
.
getUserId
());
WxPayUnifiedOrderRequest
wxPayUnifiedOrderRequest
=
new
WxPayUnifiedOrderRequest
();
wxPayUnifiedOrderRequest
.
setBody
(
"四恩慈善会-捐款"
);
String
openid
=
appUserById
.
getWechatOpenId
();
String
spbillCreateIp
=
req
.
getRemoteAddr
();
int
totalFee
=
donationRecordAdd
.
getMoney
().
intValue
()
*
100
;
DonationRecord
donationRecord
=
new
DonationRecord
();
// donationRecord.setId(0L);
donationRecord
.
setFkUserId
(
jwtToken
.
getUserId
());
donationRecord
.
setMoney
(
donationRecordAdd
.
getMoney
());
donationRecord
.
setPurpose
(
donationRecordAdd
.
getPurpose
());
donationRecord
.
setWay
(
donationRecordAdd
.
getWay
());
// donationRecord.setRemark("");
// donationRecord.setCreateTime(new Date());
// donationRecord.setUpdateTime(new Date());
donationRecord
.
setIsReplace
(
donationRecordAdd
.
getIsReplace
());
WxPayMpOrderResult
order
=
getWxPayMpOrderResult
(
wxPayUnifiedOrderRequest
,
BODY
,
openid
,
spbillCreateIp
,
totalFee
,
http
);
return
ApiResult
.
ok
(
order
);
}
private
WxPayMpOrderResult
getWxPayMpOrderResult
(
WxPayUnifiedOrderRequest
wxPayUnifiedOrderRequest
,
String
body
,
String
openid
,
String
spbillCreateIp
,
int
totalFee
,
String
http
)
{
wxPayUnifiedOrderRequest
.
setBody
(
body
);
// 商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号
wxPayUnifiedOrderRequest
.
setOutTradeNo
(
new
RandomGenerator
(
32
).
generate
());
//订单总金额,单位为分,详见支付金额
wxPayUnifiedOrderRequest
.
setTotalFee
(
10
);
wxPayUnifiedOrderRequest
.
setTotalFee
(
totalFee
);
// APP和网页支付提交用户端ip
wxPayUnifiedOrderRequest
.
setSpbillCreateIp
(
"111.111.222.33"
);
wxPayUnifiedOrderRequest
.
setSpbillCreateIp
(
spbillCreateIp
);
// 接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。
wxPayUnifiedOrderRequest
.
setNotifyUrl
(
"http"
);
wxPayUnifiedOrderRequest
.
setNotifyUrl
(
http
);
wxPayUnifiedOrderRequest
.
setOpenid
(
"ogXcu56o2ZYi-MgLRkSklKbe-PdU"
);
wxPayUnifiedOrderRequest
.
setTradeType
(
"JSAPI"
);
wxPayUnifiedOrderRequest
.
setOpenid
(
openid
);
String
jsapi
=
"JSAPI"
;
wxPayUnifiedOrderRequest
.
setTradeType
(
jsapi
);
WxPayMpOrderResult
order
=
null
;
try
{
order
=
this
.
wxService
.
createOrder
(
wxPayUnifiedOrderRequest
);
}
catch
(
WxPayException
e
)
{
e
.
printStackTrace
();
}
return
false
;
return
order
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
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