```txtfeat(user): 实现用户充值功能

新增一个用户充值功能,用户可以通过POST请求向其账户内余额进行充值。
在SysUserController中添加了addUserMoney接口,通过调用UserService中的addUserMoney服务来实现。
同时,更新了SysUserMapper及SysUserMapper.xml以支持数据库中用户余额的增加。
```
master
wxy 2024-08-26 08:47:42 +08:00
parent 71ead9ebfd
commit 49d185e7a6
5 changed files with 3 additions and 67 deletions

View File

@ -257,20 +257,6 @@ public class SysUserController extends BaseController {
}
//TODO 用户充值
/**
*
*/
@Log(title = "用户充值", businessType = BusinessType.INSERT)
@PostMapping ("/alipay/recharge")
public Result userBalance(@RequestBody SysUser user){
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
user.setCreateBy(SecurityUtils.getUsername());
return toAjax(userService.insertBalance(user));
}
//TODO
// 查询当前用户的余额
@GetMapping("/balance/{userId}")

View File

@ -76,7 +76,7 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
*/
public int updateUser (SysUser user);
public int updateUserBalance (SysUser user);
/**

View File

@ -227,7 +227,7 @@ public interface SysUserService extends IService<SysUser> {
*/
public String importUser (List<SysUser> userList, Boolean isUpdateSupport, String operName);
int insertBalance(SysUser user);
BigDecimal selectBalance(Long userId);

View File

@ -275,38 +275,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override
@Transactional(rollbackFor = Exception.class)
public int insertBalance(SysUser user) {
// 创建支付宝客户端
AlipayClient alipayClient = new DefaultAlipayClient(URL, APPID, RSA_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGNTYPE);
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
// 发起支付请求
try {
//TODO 调用支付宝接口
AlipayTradePagePayResponse response = alipayClient.pageExecute(alipayRequest);
if (response.isSuccess()) {
// 支付成功,更新用户余额
SysUser sysUser = userMapper.selectUserById(user.getUserId());
sysUser.setUserBalance(user.getUserBalance());
// double currentBalance = sysUser.getUserBalance();
// double newPaymentAmount = user.getPaymentAmount();
// double newBalance = currentBalance + newPaymentAmount;
// sysUser.setUserBalance(newBalance);
userMapper.updateUserBalance(sysUser);
} else {
throw new RuntimeException("充值失败");
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
/**
*

View File

@ -250,28 +250,7 @@
</update>
<update id="updateUserBalance" parameterType="com.muyu.common.system.domain.SysUser">
update sys_user
<set>
<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
<if test="email != null ">email = #{email},</if>
<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
<if test="sex != null and sex != ''">sex = #{sex},</if>
<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
<if test="password != null and password != ''">password = #{password},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
<if test="loginDate != null">login_date = #{loginDate},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="userBalance != null">user_balance = #{userBalance},</if>
<if test="paymentAmount != null">payment_amount = #{paymentAmount},</if>
<if test="remark != null">remark = #{remark},</if>
update_time = sysdate()
</set>
where user_id = #{userId}
</update>
<update id="updateUserStatus" parameterType="com.muyu.common.system.domain.SysUser">
update sys_user