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")
public TableDataInfo getWalletRecord(@Valid @RequestBody PageDomain pageDomain) {
return consumeService.getWalletRecord(pageDomain);

View File

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

View File

@ -175,11 +175,18 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
Consume consume = new Consume();
consume.setUserId(SecurityUtils.getUserId());
consume.setAmount(price);
consume.setAmount(-price);
consume.setProductId(communityId);
consume.setType(3);
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);
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.service.QuestionCommentService;
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 lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -42,6 +44,8 @@ public class QuestionCommentServiceImpl extends ServiceImpl<QuestionCommentMappe
private final CommunityUserMapper communityUserMapper;
private final ConsumeMapper consumeMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public R<Object> comment(QuestionCommentRes questionCommentRes) {
@ -162,6 +166,14 @@ public class QuestionCommentServiceImpl extends ServiceImpl<QuestionCommentMappe
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();
}

View File

@ -24,6 +24,8 @@ import com.mcwl.communityCenter.mapper.*;
import com.mcwl.communityCenter.service.CommunityService;
import com.mcwl.communityCenter.service.QuestionCommentService;
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 lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
@ -53,6 +55,9 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
private final QuestionCommentService questionCommentService;
private final ConsumeMapper consumeMapper;
/**
*
*
@ -102,6 +107,14 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
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.setTenantId(tenantId);
// communityAdvice.setCommunityId(communityId);
@ -248,8 +261,14 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
personHomeVo.setAvatar(questionUserAvatar);
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);

View File

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

View File

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

View File

@ -40,5 +40,5 @@ public class ConsumeVo {
// 消费时间
@ApiModelProperty(value = "消费时间")
@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();
LambdaQueryWrapper<Consume> lqw = new LambdaQueryWrapper<>();
lqw.eq(Consume::getUserId, userId);
lqw.eq(Consume::getUserId, userId).orderByDesc(Consume::getCreateTime);
consumeMapper.selectPage(page, lqw);
@ -84,6 +84,15 @@ public class ConsumeServiceImpl extends ServiceImpl<ConsumeMapper, Consume> impl
case 3:
consumeVo.setProductName("社区");
break;
case 4:
consumeVo.setProductName("社区提问");
break;
case 5:
consumeVo.setProductName("金币");
break;
case 6:
consumeVo.setProductName("提现");
break;
}
consumeVoList.add(consumeVo);

View File

@ -35,6 +35,8 @@ import com.mcwl.common.utils.ShareCodeUtils;
import com.mcwl.common.utils.StringUtils;
import com.mcwl.memberCenter.domain.MemberLevel;
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.domain.OrderTrade;
import com.mcwl.pay.domain.OrderTradeDto;
@ -92,6 +94,9 @@ public class AliPayServiceImpl implements AliPayService {
@Autowired
private OrderTradeService orderTradeService;
@Autowired
private ConsumeMapper consumeMapper;
@Autowired
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@ -535,6 +540,13 @@ public class AliPayServiceImpl implements AliPayService {
sysUser.setWallet(wallet.subtract(amountBigDecimal).setScale(2, RoundingMode.HALF_UP).doubleValue());
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.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.CommissionRatio;
import com.mcwl.myInvitation.domain.Consume;
import com.mcwl.myInvitation.mapper.ConsumeMapper;
import com.mcwl.myInvitation.service.CommissionRatioService;
import com.mcwl.myInvitation.service.CommissionService;
import com.mcwl.myInvitation.service.ConsumeService;
@ -111,6 +112,9 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
@Autowired
private RedisCache redisCache;
@Autowired
private ConsumeMapper consumeMapper;
private static final Cache<String, Object> USER_LOCKS = CacheBuilder.newBuilder()
.expireAfterAccess(3, TimeUnit.MINUTES)
.build();
@ -170,7 +174,6 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
consume.setProductId(productId);
consume.setType(productType);
consume.setWallet(sysUser.getWallet());
consume.setConsumeDate(new Date());
consumeService.save(consume);
//添加购买记录表
@ -514,6 +517,13 @@ public class OrderTradeServiceImpl extends ServiceImpl<OrderTradeMapper, OrderTr
user.setWallet(walletDecimal.doubleValue());
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.setUserId(userId);