feat(myInvitation): 优化金币记录相关功能

feature/admin
yang 2025-04-28 15:06:14 +08:00
parent fd2d1d62ef
commit 10e2bd322e
11 changed files with 95 additions and 26 deletions

View File

@ -145,9 +145,9 @@ public class PersonalCenterController {
/** /**
* *
*/ */
@ApiOperation(value = "获取金币消费记录") @ApiOperation(value = "获取金币收入支出消费记录")
@PostMapping("/getWalletRecord") @PostMapping("/getWalletRecord")
public TableDataInfo getWalletRecord(@Valid @RequestBody PageDomain pageDomain) { public TableDataInfo getWalletRecord(@Valid @RequestBody PageDomain pageDomain) {
return consumeService.getWalletRecord(pageDomain); return consumeService.getWalletRecord(pageDomain);

View File

@ -1,19 +1,19 @@
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIDmTCCAoGgAwIBAgIQICQEAub4U5TMozibHLcg8zANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UE MIIDmTCCAoGgAwIBAgIQICUEKLy77ndlVg3UfaV5GDANBgkqhkiG9w0BAQsFADCBkTELMAkGA1UE
BhMCQ04xGzAZBgNVBAoMEkFudCBGaW5hbmNpYWwgdGVzdDElMCMGA1UECwwcQ2VydGlmaWNhdGlv BhMCQ04xGzAZBgNVBAoMEkFudCBGaW5hbmNpYWwgdGVzdDElMCMGA1UECwwcQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkgdGVzdDE+MDwGA1UEAww1QW50IEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1 biBBdXRob3JpdHkgdGVzdDE+MDwGA1UEAww1QW50IEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1
dGhvcml0eSBDbGFzcyAyIFIxIHRlc3QwHhcNMjQwNDAyMDUzMjU2WhcNMjUwNDA3MDUzMjU2WjBr dGhvcml0eSBDbGFzcyAyIFIxIHRlc3QwHhcNMjUwNDI4MDY1NjQ2WhcNMjYwNTAzMDY1NjQ2WjBr
MQswCQYDVQQGEwJDTjEfMB0GA1UECgwWZGJwbGZ1MTI5NEBzYW5kYm94LmNvbTEPMA0GA1UECwwG MQswCQYDVQQGEwJDTjEfMB0GA1UECgwWZGJwbGZ1MTI5NEBzYW5kYm94LmNvbTEPMA0GA1UECwwG
QWxpcGF5MSowKAYDVQQDDCEyMDg4NzIxMDMyOTcxMTQzLTkwMjEwMDAxMzU2ODI2MTQwggEiMA0G QWxpcGF5MSowKAYDVQQDDCEyMDg4NzIxMDMyOTcxMTQzLTkwMjEwMDAxMzU2ODI2MTQwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQxmQGcaiKjOhayWi+zNTvpp8B5YT8jFFkjLzrD+W+ CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCZVV6wTtfUJP7UoSLMCYiGad2Jj2hlOyDVNLXZVf+V
T2Dwf2GfFR4p95zsCJxYeoLWdghMPA6/GMFrLbuVFpaEjuTm4icqA9N8n5d3W0j7gh+wMjZoqyJc ffckt7/g3Ye/jIPt1D/arB2f/wO01qKOkraBCXg2LQOL3g72Na9MUZ0JJ6Tk4JAgRngR3GoO1XuE
lAIeb09ut7rY6mWzilA9kWmZnUG7MOWIU70RVRYrfJectCFw/odM9lG4XIVe13X2h+1ecTQyQzLW z52yq4yX7nVcD+xDbAt865GZWZhKL+7DgW22z1f7TtEDpfHwFcvMfznwTm5R6VpOw0qYnnHzOZwN
mnvKFCfo7dQjE7fIYiWfud1ZGUneNs3u73pNWMB6ThGTTCbs0atcgM3fYOg3q7fTxIu9VcaUCJiJ xrtKNQLYIJVZhuvi51PuLn4dpC1nH487BjPBLSFiTMcN0aQzaFs2d3OQcMBykQFp8CR00LvKqsUH
/kNbL9sVEyOrSyx2f2o6w06zdEaOiQFsuDeS8QPYGMg7pf42wAfqCO6hqxQiQT5vp1hvB0o1AgMB jVm6hwMm0/sObd3Meu7to6fRCNIYtu3LaDwS9s7tvRGIf3y7wFb+R2nfz83FSXx20D2wGxKhAgMB
AAGjEjAQMA4GA1UdDwEB/wQEAwIE8DANBgkqhkiG9w0BAQsFAAOCAQEAZmMSaD7s3aervdACl0cN AAGjEjAQMA4GA1UdDwEB/wQEAwIE8DANBgkqhkiG9w0BAQsFAAOCAQEAU+8RF/0/hn2a+LbzMLjv
YRcUHMGBA4DwzeLKaF0iqcsQxzJHBQRSGbAeQ9n5l1U5V0Pos92V7eqEJqtC52l6sK5T4YE6zAxf 64kF+j6PQRqlKZALFHDso6helwtquBWSf+Veu1PZ0tEgwCwUF0v+KYtDW+5tdwUsPMg/HXsbpSJw
49RKyo00qVFCbcGMHnRy0F/AkEhz+qhan1R3Dm7Ty6UtgAaeF6emD35EIKXziCvqS1nBt+nniYYB x4ZiEjwcE9FG7E0U3ckb+eP2FgJbVJnjoy4Fq7VRpjO/asxoYSoWsnCC6b0aUkLs+QlQ4O6SKC3d
0O2UntrJ3lYucuLun7TeYou/kPMTnZItzSmvCmG181e5IpSB3qGwBnIgkmB+Ge0kGIFAoV9+MucT rTHGeyK1D4fTlk3Dmuf6dA6Q0SgkG91sNzHscw3FtE47+GtvHtM4Qr6LHqKlYPV8VZ09zvherpih
4YOffum8yC0oF7aMtTL9whm5gb+Udj+lBrHYYw8VPNpcvBmRlXEKEJLbWQrGtJi6+URReWqO52UP tSTr035sJezP9VYtKQwTXyUTCVVC6WQQdT/040WvMqkPVGtDEWzStZWflXK1IeAXnOLXyCYEBBG6
fGHB0r4r575H4Y1QkA== aE08iD5MOCZmldDOFg==
-----END CERTIFICATE----- -----END CERTIFICATE-----

View File

@ -175,11 +175,18 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
Consume consume = new Consume(); Consume consume = new Consume();
consume.setUserId(SecurityUtils.getUserId()); consume.setUserId(SecurityUtils.getUserId());
consume.setAmount(price); consume.setAmount(-price);
consume.setProductId(communityId); consume.setProductId(communityId);
consume.setType(3); consume.setType(3);
consume.setWallet(user.getWallet()); consume.setWallet(user.getWallet());
consume.setConsumeDate(new Date()); consumeMapper.insert(consume);
consume = new Consume();
consume.setUserId(community.getTenantId());
consume.setAmount(price);
consume.setProductId(communityId);
consume.setType(3);
consume.setWallet(sysUserService.selectUserById(community.getTenantId()).getWallet());
consumeMapper.insert(consume); consumeMapper.insert(consume);
redisCache.deleteObject("communityJoinNumMap"); redisCache.deleteObject("communityJoinNumMap");

View File

@ -19,6 +19,8 @@ import com.mcwl.communityCenter.domain.vo.QuestionVo;
import com.mcwl.communityCenter.mapper.*; import com.mcwl.communityCenter.mapper.*;
import com.mcwl.communityCenter.service.QuestionCommentService; import com.mcwl.communityCenter.service.QuestionCommentService;
import com.mcwl.communityCenter.service.QuestionService; import com.mcwl.communityCenter.service.QuestionService;
import com.mcwl.myInvitation.domain.Consume;
import com.mcwl.myInvitation.mapper.ConsumeMapper;
import com.mcwl.system.service.ISysUserService; import com.mcwl.system.service.ISysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -42,6 +44,8 @@ public class QuestionCommentServiceImpl extends ServiceImpl<QuestionCommentMappe
private final CommunityUserMapper communityUserMapper; private final CommunityUserMapper communityUserMapper;
private final ConsumeMapper consumeMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public R<Object> comment(QuestionCommentRes questionCommentRes) { public R<Object> comment(QuestionCommentRes questionCommentRes) {
@ -162,6 +166,14 @@ public class QuestionCommentServiceImpl extends ServiceImpl<QuestionCommentMappe
sysUserService.updateUser(sysUser); sysUserService.updateUser(sysUser);
Consume consume = new Consume();
consume.setUserId(SecurityUtils.getUserId());
consume.setAmount(question.getAmount());
consume.setType(4);
consume.setWallet(sysUser.getWallet());
consumeMapper.insert(consume);
return R.ok(); return R.ok();
} }

View File

@ -24,6 +24,8 @@ import com.mcwl.communityCenter.mapper.*;
import com.mcwl.communityCenter.service.CommunityService; import com.mcwl.communityCenter.service.CommunityService;
import com.mcwl.communityCenter.service.QuestionCommentService; import com.mcwl.communityCenter.service.QuestionCommentService;
import com.mcwl.communityCenter.service.QuestionService; import com.mcwl.communityCenter.service.QuestionService;
import com.mcwl.myInvitation.domain.Consume;
import com.mcwl.myInvitation.mapper.ConsumeMapper;
import com.mcwl.system.service.ISysUserService; import com.mcwl.system.service.ISysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@ -53,6 +55,9 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
private final QuestionCommentService questionCommentService; private final QuestionCommentService questionCommentService;
private final ConsumeMapper consumeMapper;
/** /**
* *
* *
@ -102,6 +107,14 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
sysUserService.updateUser(sysUser); sysUserService.updateUser(sysUser);
Consume consume = new Consume();
consume.setUserId(SecurityUtils.getUserId());
consume.setAmount(-questionRes.getAmount());
consume.setType(4);
consume.setWallet(sysUser.getWallet());
consumeMapper.insert(consume);
// CommunityAdvice communityAdvice = new CommunityAdvice(); // CommunityAdvice communityAdvice = new CommunityAdvice();
// communityAdvice.setTenantId(tenantId); // communityAdvice.setTenantId(tenantId);
// communityAdvice.setCommunityId(communityId); // communityAdvice.setCommunityId(communityId);
@ -248,8 +261,14 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
personHomeVo.setAvatar(questionUserAvatar); personHomeVo.setAvatar(questionUserAvatar);
personHomeVo.setImageUrl(questionUrl); personHomeVo.setImageUrl(questionUrl);
QuestionDetailRes questionDetailRes = new QuestionDetailRes();
questionDetailRes.setTenantId(questionVo.getTenantId());
questionDetailRes.setCommunityId(questionVo.getCommunityId());
questionDetailRes.setQuestionId(questionVo.getId());
List<QuestionCommentVo> questionCommentList = questionVo.getCommentList(); List<QuestionCommentVo> questionCommentList = questionCommentService.getComment(questionDetailRes);
// List<QuestionCommentVo> questionCommentList = questionVo.getCommentList();
List<CommentVo> commentList = BeanUtil.copyToList(questionCommentList, CommentVo.class); List<CommentVo> commentList = BeanUtil.copyToList(questionCommentList, CommentVo.class);

View File

@ -33,6 +33,7 @@
and qm.community_id = #{questionDetailRes.communityId} and qm.community_id = #{questionDetailRes.communityId}
and qm.question_id = #{questionDetailRes.questionId} and qm.question_id = #{questionDetailRes.questionId}
and qm.del_flag = '0' and qm.del_flag = '0'
order by qm.create_time desc order by qm.is_accept desc, qm.create_time desc
</select> </select>
</mapper> </mapper>

View File

@ -29,12 +29,11 @@ public class Consume extends BaseEntity {
// 商品id // 商品id
private Long productId; private Long productId;
// 商品类型 0模型 1工作流 2图片 3社区 /**
* 0 1 2 3 4 5 6
*/
private Integer type; private Integer type;
// 剩余金币 // 剩余金币
private Double wallet; private Double wallet;
// 消费时间
private Date consumeDate;
} }

View File

@ -40,5 +40,5 @@ public class ConsumeVo {
// 消费时间 // 消费时间
@ApiModelProperty(value = "消费时间") @ApiModelProperty(value = "消费时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date consumeDate; private Date createTime;
} }

View File

@ -62,7 +62,7 @@ public class ConsumeServiceImpl extends ServiceImpl<ConsumeMapper, Consume> impl
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
LambdaQueryWrapper<Consume> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Consume> lqw = new LambdaQueryWrapper<>();
lqw.eq(Consume::getUserId, userId); lqw.eq(Consume::getUserId, userId).orderByDesc(Consume::getCreateTime);
consumeMapper.selectPage(page, lqw); consumeMapper.selectPage(page, lqw);
@ -84,6 +84,15 @@ public class ConsumeServiceImpl extends ServiceImpl<ConsumeMapper, Consume> impl
case 3: case 3:
consumeVo.setProductName("社区"); consumeVo.setProductName("社区");
break; break;
case 4:
consumeVo.setProductName("社区提问");
break;
case 5:
consumeVo.setProductName("金币");
break;
case 6:
consumeVo.setProductName("提现");
break;
} }
consumeVoList.add(consumeVo); consumeVoList.add(consumeVo);

View File

@ -35,6 +35,8 @@ import com.mcwl.common.utils.ShareCodeUtils;
import com.mcwl.common.utils.StringUtils; import com.mcwl.common.utils.StringUtils;
import com.mcwl.memberCenter.domain.MemberLevel; import com.mcwl.memberCenter.domain.MemberLevel;
import com.mcwl.memberCenter.service.MemberLevelService; import com.mcwl.memberCenter.service.MemberLevelService;
import com.mcwl.myInvitation.domain.Consume;
import com.mcwl.myInvitation.mapper.ConsumeMapper;
import com.mcwl.pay.config.AliConfig; import com.mcwl.pay.config.AliConfig;
import com.mcwl.pay.domain.OrderTrade; import com.mcwl.pay.domain.OrderTrade;
import com.mcwl.pay.domain.OrderTradeDto; import com.mcwl.pay.domain.OrderTradeDto;
@ -92,6 +94,9 @@ public class AliPayServiceImpl implements AliPayService {
@Autowired @Autowired
private OrderTradeService orderTradeService; private OrderTradeService orderTradeService;
@Autowired
private ConsumeMapper consumeMapper;
@Autowired @Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor; private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@ -535,6 +540,13 @@ public class AliPayServiceImpl implements AliPayService {
sysUser.setWallet(wallet.subtract(amountBigDecimal).setScale(2, RoundingMode.HALF_UP).doubleValue()); sysUser.setWallet(wallet.subtract(amountBigDecimal).setScale(2, RoundingMode.HALF_UP).doubleValue());
sysUserService.updateUser(sysUser); sysUserService.updateUser(sysUser);
Consume consume = new Consume();
consume.setUserId(SecurityUtils.getUserId());
consume.setAmount(-Double.parseDouble(amount));
consume.setType(6);
consume.setWallet(sysUser.getWallet());
consumeMapper.insert(consume);
// 添加记录 // 添加记录
SysUserPayAccountLog sysUserPayAccountLog = new SysUserPayAccountLog(); SysUserPayAccountLog sysUserPayAccountLog = new SysUserPayAccountLog();
sysUserPayAccountLog.setUserId(sysUser.getUserId()); sysUserPayAccountLog.setUserId(sysUser.getUserId());

View File

@ -26,6 +26,7 @@ import com.mcwl.memberCenter.service.RechargeRecordService;
import com.mcwl.myInvitation.domain.Commission; import com.mcwl.myInvitation.domain.Commission;
import com.mcwl.myInvitation.domain.CommissionRatio; import com.mcwl.myInvitation.domain.CommissionRatio;
import com.mcwl.myInvitation.domain.Consume; import com.mcwl.myInvitation.domain.Consume;
import com.mcwl.myInvitation.mapper.ConsumeMapper;
import com.mcwl.myInvitation.service.CommissionRatioService; import com.mcwl.myInvitation.service.CommissionRatioService;
import com.mcwl.myInvitation.service.CommissionService; import com.mcwl.myInvitation.service.CommissionService;
import com.mcwl.myInvitation.service.ConsumeService; import com.mcwl.myInvitation.service.ConsumeService;
@ -111,6 +112,9 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
@Autowired @Autowired
private RedisCache redisCache; private RedisCache redisCache;
@Autowired
private ConsumeMapper consumeMapper;
private static final Cache<String, Object> USER_LOCKS = CacheBuilder.newBuilder() private static final Cache<String, Object> USER_LOCKS = CacheBuilder.newBuilder()
.expireAfterAccess(3, TimeUnit.MINUTES) .expireAfterAccess(3, TimeUnit.MINUTES)
.build(); .build();
@ -170,7 +174,6 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
consume.setProductId(productId); consume.setProductId(productId);
consume.setType(productType); consume.setType(productType);
consume.setWallet(sysUser.getWallet()); consume.setWallet(sysUser.getWallet());
consume.setConsumeDate(new Date());
consumeService.save(consume); consumeService.save(consume);
//添加购买记录表 //添加购买记录表
@ -514,6 +517,13 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
user.setWallet(walletDecimal.doubleValue()); user.setWallet(walletDecimal.doubleValue());
sysUserService.updateUser(user); sysUserService.updateUser(user);
Consume consume = new Consume();
consume.setUserId(SecurityUtils.getUserId());
consume.setAmount(Double.parseDouble(amount));
consume.setType(5);
consume.setWallet(user.getWallet());
consumeMapper.insert(consume);
// 添加充值记录 // 添加充值记录
// RechargeRecord rechargeRecord = new RechargeRecord(); // RechargeRecord rechargeRecord = new RechargeRecord();
// rechargeRecord.setUserId(userId); // rechargeRecord.setUserId(userId);