diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/WalletController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/WalletController.java index 871efc53..175ff4b3 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/WalletController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/WalletController.java @@ -9,10 +9,12 @@ import com.ruoyi.cai.dto.app.query.AccountAliBankCardRes; import com.ruoyi.cai.dto.app.query.WithdrawReq; import com.ruoyi.cai.dto.app.vo.AccountCashVo; import com.ruoyi.cai.dto.app.vo.RechargeOrderVo; +import com.ruoyi.cai.dto.app.vo.account.AccountDetailsAppVo; import com.ruoyi.cai.dto.app.vo.user.UserAccountVo; import com.ruoyi.cai.manager.CurrentUserManager; import com.ruoyi.cai.pay.PayStatusEnum; import com.ruoyi.cai.service.AccountCashService; +import com.ruoyi.cai.service.AccountChangeLogService; import com.ruoyi.cai.service.RechargeOrderService; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.PageQuery; @@ -21,6 +23,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.BeanConvertUtil; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -38,6 +41,8 @@ public class WalletController { private AccountCashService accountCashService; @Autowired private RechargeOrderService rechargeOrderService; + @Autowired + private AccountChangeLogService accountChangeLogService; @GetMapping("/account") @Operation(summary = "快速获取当前用户账号余额信息") @@ -46,6 +51,16 @@ public class WalletController { return R.ok(currentUserManager.currentAccount()); } + @GetMapping("/accountDetail/page") + @Operation(summary = "账户明细-分页") + @Log(title = "账户明细", businessType = BusinessType.OTHER, isSaveDb = false) + public R> accountDetail(PageQuery query, + @Parameter(description = "类型 0-普通会员 1-超级会员") Integer cateId){ + Long userId = LoginHelper.getUserId(); + List res = accountChangeLogService.pageApp(query,cateId,userId); + return R.ok(res); + } + @GetMapping("/aliInfo") @Operation(summary = "获取绑定支付宝信息") @Log(title = "获取绑定支付宝信息", businessType = BusinessType.OTHER, isSaveDb = false) diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/ConsumeResp.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/ConsumeResp.java index d7ba0536..9d361df0 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/ConsumeResp.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/ConsumeResp.java @@ -6,5 +6,6 @@ import lombok.Data; public class ConsumeResp { private Long userId; private Long consumeLogId; + private Long traceId; private boolean success; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/VisitorQuery.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/VisitorQuery.java index cf290e1b..6c9a44c2 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/VisitorQuery.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/VisitorQuery.java @@ -11,6 +11,6 @@ public class VisitorQuery { @Schema(description = "类型 1=查询我的足迹 2=查询我的访客") private Integer type = 1; - @Schema(description = "用户ID",accessMode = Schema.AccessMode.READ_WRITE) + @Schema(description = "用户ID", hidden = true) private Long userId; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/account/AccountDetailsAppVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/account/AccountDetailsAppVo.java new file mode 100644 index 00000000..2c88a3aa --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/account/AccountDetailsAppVo.java @@ -0,0 +1,29 @@ +package com.ruoyi.cai.dto.app.vo.account; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@Schema(description = "账户明细说明") +public class AccountDetailsAppVo { + @Schema(description = "账户明细说明") + private String message; + @Schema(description = "变化值,有正负值") + private Long changeValue; + @Schema(description = "创建时间") + private LocalDateTime createTime; + /** + * 账户类型 1-余额 2-收益 + */ + @Schema(description = "账户类型 1-余额 2-收益") + private Integer accountType; + /** + * 类别 + */ + @Schema(description = "类别ID") + private Integer cateId; + @Schema(description = "显示图片") + private String img; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/AwardManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/AwardManager.java index 3914c13c..0d5c686d 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/AwardManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/AwardManager.java @@ -81,16 +81,16 @@ public class AwardManager { return; } UserInfo userInfo = userInfoService.getByUserId(userId); - if(userInfo == null || BooleanUtils.isNotTrue(userInfo.getFastPay())){ - log.warn("首充奖励领取失败 用户已领取 userId={}",userId); + if(userInfo == null || BooleanUtils.isNotFalse(userInfo.getFastPay())){ + log.warn("首充奖励领取失败 用户已领取 85 userId={}",userId); return; } boolean update = userInfoService.update(Wrappers.lambdaUpdate(UserInfo.class) - .eq(UserInfo::getId, userInfo.getUserId()) + .eq(UserInfo::getId, userInfo.getId()) .eq(UserInfo::getFastPay, false) .set(UserInfo::getFastPay, true)); if(!update){ - log.warn("首充奖励领取失败 用户已领取 userId={}",userId); + log.warn("首充奖励领取失败 用户已领取 93 userId={}",userId); return; } accountMapper.incsIncomeCoin(userId,price); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java index e9f44cd9..8216c31a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/pay/PayManager.java @@ -32,7 +32,7 @@ public class PayManager { case RECHARGE_ORDER_SUB: ConsumeResp resp = consumerManager.rechargeOrderSuccess(orderNo); if(resp.isSuccess()){ - awardManager.giveFastPayAsync(resp.getUserId(), resp.getConsumeLogId()); + awardManager.giveFastPayAsync(resp.getUserId(), resp.getTraceId()); } break; default: diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountChangeLogService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountChangeLogService.java index 8c3fc6a2..6d4d4bfc 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountChangeLogService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountChangeLogService.java @@ -4,9 +4,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.domain.AccountChangeLog; import com.ruoyi.cai.domain.Gift; +import com.ruoyi.cai.dto.app.vo.account.AccountDetailsAppVo; import com.ruoyi.cai.enums.account.AccountChangeCodeEnum; import com.ruoyi.common.core.domain.PageQuery; +import java.util.List; + /** * 账户明细Service接口 * @@ -28,4 +31,6 @@ public interface AccountChangeLogService extends IService { AccountChangeLog saveLogAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId); Page pageAdmin(PageQuery pageQuery, AccountChangeLog bo); + + List pageApp(PageQuery query, Integer cateId, Long userId); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountChangeLogServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountChangeLogServiceImpl.java index bf6e2f91..3cc5c6a7 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountChangeLogServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountChangeLogServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cai.domain.AccountChangeLog; import com.ruoyi.cai.domain.Gift; import com.ruoyi.cai.domain.User; +import com.ruoyi.cai.dto.app.vo.account.AccountDetailsAppVo; import com.ruoyi.cai.enums.account.AccountCateEnum; import com.ruoyi.cai.enums.account.AccountChangeCodeEnum; import com.ruoyi.cai.mapper.AccountChangeLogMapper; @@ -15,6 +16,7 @@ import com.ruoyi.common.core.domain.PageQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -131,5 +133,62 @@ public class AccountChangeLogServiceImpl extends ServiceImpl pageApp(PageQuery query, Integer cateId, Long userId) { + Page page = this.page(query.build(), + Wrappers.lambdaQuery(AccountChangeLog.class) + .eq(AccountChangeLog::getUserId,userId) + .eq(cateId != null, AccountChangeLog::getCateId,cateId) + .orderByDesc(AccountChangeLog::getCreateTime)); + List res = new ArrayList<>(); + List records = page.getRecords(); + if(records.isEmpty()){ + return res; + } + Set userIds = records.stream().map(AccountChangeLog::getTarUserId).collect(Collectors.toSet()); + List users = userService.listByIds(userIds); + Map userMap = users.stream().collect(Collectors.toMap(User::getId, Function.identity())); + for (AccountChangeLog record : records) { + AccountDetailsAppVo vo = new AccountDetailsAppVo(); + vo.setChangeValue(record.getChangeValue()); + vo.setCreateTime(record.getCreateTime()); + vo.setAccountType(record.getAccountType()); + vo.setCateId(record.getCateId()); + User user = userMap.get(record.getTarUserId()); + if(user != null){ + AccountChangeCodeEnum changeEnum = AccountChangeCodeEnum.getByCode(record.getChangeType()); + if(changeEnum != null){ + Boolean in = changeEnum.getIn(); + if(in == null){ + vo.setMessage(record.getCateAdminName()); + }else{ + String format = String.format("%s%s%s", + record.getCateAdminName(), + in?"来自":"给", + user.getNickname()); + vo.setMessage(format); + } + }else{ + vo.setMessage(record.getCateAdminName()); + } + }else{ + vo.setMessage(record.getCateAdminName()); + } + if(AccountCateEnum.IM.getCode().equals(record.getCateId()) + || AccountCateEnum.VIDEO.getCode().equals(record.getCateId()) + || AccountCateEnum.GUARD.getCode().equals(record.getCateId()) + || AccountCateEnum.SYSTEM.getCode().equals(record.getCateId()) + || AccountCateEnum.UNION.getCode().equals(record.getCateId())){ + if(record.getTarUserId() != null){ + if(user != null){ + vo.setImg(user.getAvatar()); + } + } + } + res.add(vo); + } + return res; + } + } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/RechargeOrderServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/RechargeOrderServiceImpl.java index a03470be..b6b94b37 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/RechargeOrderServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/RechargeOrderServiceImpl.java @@ -123,6 +123,7 @@ public class RechargeOrderServiceImpl extends ServiceImpl