Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wecloud_im_server
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
wecloud_im_server
Commits
7475d6d9
Commit
7475d6d9
authored
Mar 10, 2021
by
giaogiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
微信支付
parent
89e293a7
Show 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