From 8531cf8c120b0138bdf5e4bce81ced73a37a71ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=89=AF=28004796=29?= Date: Fri, 26 Jan 2024 17:10:37 +0800 Subject: [PATCH] 123 --- .../admin/AccountCashController.java | 25 +-- .../cai/controller/app/ConsumeController.java | 7 +- .../cai/controller/app/OtherController.java | 4 + .../java/com/ruoyi/cai/dto/ConsumeResp.java | 5 + .../{GiveGiftRes.java => GiveGiftReq.java} | 2 +- .../cai/dto/app/vo/invite/InviteHomeVo.java | 5 + .../dto/commom/consumer/GiftConsumerResp.java | 20 ++ .../commom/consumer/RechargeConsumerResp.java | 21 ++ .../com/ruoyi/cai/manager/AwardManager.java | 4 + .../ruoyi/cai/manager/ConsumerManager.java | 40 +++- .../ruoyi/cai/notice/YunxinHttpService.java | 208 ++++++++++-------- .../cai/notice/data/MessageBaseData.java | 8 - .../ruoyi/cai/notice/data/MessageExtNew.java | 18 -- .../data/MessageSendFollowDynamicNew.java | 20 -- .../cai/notice/data/MessageSendFollowNew.java | 19 -- .../data/MessageSendGiftMessageNew.java | 20 -- .../data/MessageSendGiftWindowsAmountNew.java | 20 -- .../data/MessageSendOnlineAttentionNew.java | 20 -- .../MessageSendRechargeWindowsAmountNew.java | 20 -- .../com/ruoyi/cai/notice/data/NoticeR.java | 30 +++ ...MessageExtData.java => ExtNoticeData.java} | 2 +- ....java => SendFollowDynamicNoticeData.java} | 2 +- ...lowData.java => SendFollowNoticeData.java} | 2 +- ...ta.java => SendGiftMessageNoticeData.java} | 2 +- ...a => SendGiftWindowsAmountNoticeData.java} | 2 +- ...ava => SendOnlineAttentionNoticeData.java} | 2 +- ... SendRechargeWindowsAmountNoticeData.java} | 2 +- .../cai/notice/dto/CashSuccessSendMesDTO.java | 16 ++ .../cai/notice/enums/MessageBaseTypeEnum.java | 11 +- .../java/com/ruoyi/cai/pay/PayManager.java | 4 +- .../ruoyi/cai/service/AccountCashService.java | 3 +- .../cai/service/RechargeOrderService.java | 3 +- .../ruoyi/cai/service/UserGiftService.java | 5 +- .../service/impl/AccountCashServiceImpl.java | 59 ++++- .../cai/service/impl/AccountServiceImpl.java | 8 +- .../service/impl/ConsumeLogServiceImpl.java | 19 +- .../impl/RechargeOrderServiceImpl.java | 6 +- .../cai/service/impl/UserGiftServiceImpl.java | 12 +- .../util/{NumCaUtil.java => CaiNumUtil.java} | 9 +- .../handler/message/GiftMessageHandler.java | 15 +- 40 files changed, 385 insertions(+), 315 deletions(-) rename ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/{GiveGiftRes.java => GiveGiftReq.java} (95%) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/consumer/GiftConsumerResp.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/consumer/RechargeConsumerResp.java delete mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageBaseData.java delete mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageExtNew.java delete mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendFollowDynamicNew.java delete mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendFollowNew.java delete mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendGiftMessageNew.java delete mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendGiftWindowsAmountNew.java delete mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendOnlineAttentionNew.java delete mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendRechargeWindowsAmountNew.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/NoticeR.java rename ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/{MessageExtData.java => ExtNoticeData.java} (97%) rename ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/{MessageSendFollowDynamicData.java => SendFollowDynamicNoticeData.java} (86%) rename ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/{MessageSendFollowData.java => SendFollowNoticeData.java} (87%) rename ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/{MessageSendGiftMessageData.java => SendGiftMessageNoticeData.java} (87%) rename ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/{MessageSendGiftWindowsAmountData.java => SendGiftWindowsAmountNoticeData.java} (88%) rename ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/{MessageSendOnlineAttentionData.java => SendOnlineAttentionNoticeData.java} (84%) rename ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/{MessageSendRechargeWindowsAmountData.java => SendRechargeWindowsAmountNoticeData.java} (79%) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/notice/dto/CashSuccessSendMesDTO.java rename ruoyi-cai/src/main/java/com/ruoyi/cai/util/{NumCaUtil.java => CaiNumUtil.java} (69%) diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/AccountCashController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/AccountCashController.java index 231da43a..8ab54a32 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/AccountCashController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/AccountCashController.java @@ -18,6 +18,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -40,6 +41,7 @@ import java.util.stream.Collectors; @RequiredArgsConstructor @RestController @RequestMapping("/cai/accountCash") +@Slf4j public class AccountCashController extends BaseController { private final AccountCashService accountCashService; @@ -73,7 +75,8 @@ public class AccountCashController extends BaseController { @PostMapping(value = "/importAudit", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R importData(@RequestPart("file") MultipartFile file) throws Exception { List result = ExcelUtil.importExcel(file.getInputStream(), AccountCashAdminVo.class); - ExportBatchAuditVo audit = accountCashService.batchAudit(result); + List ids = result.stream().map(AccountCash::getId).collect(Collectors.toList()); + ExportBatchAuditVo audit = accountCashService.batchAudit(ids); return R.ok(audit); } @@ -94,12 +97,7 @@ public class AccountCashController extends BaseController { @RepeatSubmit() @GetMapping("/success") public R success(Long id) { - accountCashService.update(Wrappers.lambdaUpdate(AccountCash.class) - .set(AccountCash::getVerifyTime, LocalDateTime.now()) - .set(AccountCash::getOperateIp, ServletUtils.getClientIP()) - .set(AccountCash::getStatus, AccountCashStatusEnum.SUCCESS.getCode()) - .eq(AccountCash::getStatus, AccountCashStatusEnum.READY.getCode()) - .eq(AccountCash::getId,id)); + accountCashService.success(id); return R.ok(); } @@ -131,15 +129,10 @@ public class AccountCashController extends BaseController { @Log(title = "用户提现批量通过", businessType = BusinessType.UPDATE) @RepeatSubmit() @GetMapping("/batchSuccess") - public R batchSuccess(String ids) { - List idList = Arrays.stream(ids.split(",")).collect(Collectors.toList()); - accountCashService.update(Wrappers.lambdaUpdate(AccountCash.class) - .set(AccountCash::getVerifyTime, LocalDateTime.now()) - .set(AccountCash::getOperateIp, ServletUtils.getClientIP()) - .set(AccountCash::getStatus, AccountCashStatusEnum.SUCCESS.getCode()) - .eq(AccountCash::getStatus, AccountCashStatusEnum.READY.getCode()) - .in(AccountCash::getId,idList)); - return R.ok(); + public R batchSuccess(String ids) { + List idList = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()); + ExportBatchAuditVo audit = accountCashService.batchAudit(idList); + return R.ok(audit); } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/ConsumeController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/ConsumeController.java index d494e279..5ada3c0c 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/ConsumeController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/ConsumeController.java @@ -3,11 +3,12 @@ package com.ruoyi.cai.controller.app; import com.ruoyi.cai.domain.RechargeOrder; import com.ruoyi.cai.domain.VipOrder; import com.ruoyi.cai.dto.ConsumeResp; -import com.ruoyi.cai.dto.app.query.GiveGiftRes; +import com.ruoyi.cai.dto.app.query.GiveGiftReq; import com.ruoyi.cai.dto.app.query.GiveGuardReq; import com.ruoyi.cai.dto.app.query.order.AddRechargeOrderDto; import com.ruoyi.cai.dto.app.query.order.AddVipOrderDto; import com.ruoyi.cai.dto.app.vo.order.OrderCreateVo; +import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp; import com.ruoyi.cai.manager.ConsumerManager; import com.ruoyi.cai.service.RechargeOrderService; import com.ruoyi.cai.service.VipOrderService; @@ -45,8 +46,8 @@ public class ConsumeController { @PostMapping("/give/gift") @Operation(summary = "赠送主播礼物") @Log(title = "赠送主播礼物", businessType = BusinessType.OTHER, isSaveDb = true) - public R giveGift(@RequestBody GiveGiftRes query){ - ConsumeResp resp = consumerManager.sendGift(query); + public R giveGift(@RequestBody GiveGiftReq query){ + GiftConsumerResp resp = consumerManager.sendGift(query); return R.ok(resp.isSuccess()); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/OtherController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/OtherController.java index ca75bca1..08c86a3c 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/OtherController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/OtherController.java @@ -2,6 +2,7 @@ package com.ruoyi.cai.controller.app; import com.ruoyi.cai.dto.app.query.UserReportReq; import com.ruoyi.cai.dto.app.query.push.PushErrorReq; +import com.ruoyi.cai.notice.YunxinHttpService; import com.ruoyi.cai.service.ReportService; import com.ruoyi.cai.service.UserErrorLogService; import com.ruoyi.common.annotation.Log; @@ -25,6 +26,8 @@ public class OtherController { private ReportService reportService; @Autowired private UserErrorLogService userErrorLogService; + @Autowired + private YunxinHttpService yunxinHttpService; @PostMapping("/report") @Operation(summary = "举报") @@ -33,6 +36,7 @@ public class OtherController { Long userId = LoginHelper.getUserId(); reportRes.setUserId(userId); reportService.report(reportRes); + yunxinHttpService.reportSendMessage(userId); return R.ok(); } 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 a3eeed2a..4eab1fb9 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 @@ -1,12 +1,17 @@ package com.ruoyi.cai.dto; +import com.ruoyi.cai.domain.Gift; import lombok.Data; import java.math.BigDecimal; @Data public class ConsumeResp { + /** + * 充值金额 + */ private BigDecimal price; + private Long rechargeCoin; private Long userId; private Long consumeLogId; private Long traceId; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/GiveGiftRes.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/GiveGiftReq.java similarity index 95% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/GiveGiftRes.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/GiveGiftReq.java index a97b18f7..c0330794 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/GiveGiftRes.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/GiveGiftReq.java @@ -5,7 +5,7 @@ import lombok.Data; @Data @Schema(description = "赠送礼物入参") -public class GiveGiftRes { +public class GiveGiftReq { /** * 类型 1 个人详情页 2.IM页面 3视频页 diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/invite/InviteHomeVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/invite/InviteHomeVo.java index 2a02c8f0..9791d485 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/invite/InviteHomeVo.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/invite/InviteHomeVo.java @@ -13,4 +13,9 @@ public class InviteHomeVo { private Long totalReward; @Schema(description = "累计邀请的人") private Long totalInvite; + + @Schema(description = "分享URL") + private String shareUrl; + @Schema(description = "分享二维码") + private String shareQrCode; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/consumer/GiftConsumerResp.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/consumer/GiftConsumerResp.java new file mode 100644 index 00000000..2eae86ec --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/consumer/GiftConsumerResp.java @@ -0,0 +1,20 @@ +package com.ruoyi.cai.dto.commom.consumer; + +import com.ruoyi.cai.domain.Gift; +import lombok.Data; + +@Data +public class GiftConsumerResp { + /** + * 礼物 + */ + private Gift gift; + /** + * 主播收益 + */ + private Long anchorIncomeCoin; + private Long userId; + private Long consumeLogId; + private Long traceId; + private boolean success; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/consumer/RechargeConsumerResp.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/consumer/RechargeConsumerResp.java new file mode 100644 index 00000000..b0b690db --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/commom/consumer/RechargeConsumerResp.java @@ -0,0 +1,21 @@ +package com.ruoyi.cai.dto.commom.consumer; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class RechargeConsumerResp { + /** + * 充值金额 + */ + private BigDecimal price; + /** + * 充值彩贝 + */ + private Long rechargeCoin; + private Long userId; + private Long consumeLogId; + private Long traceId; + private boolean success; +} 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 0d5c686d..2d1b6c7c 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 @@ -9,6 +9,7 @@ import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.account.AccountChangeCodeEnum; import com.ruoyi.cai.executor.ExecutorConstant; import com.ruoyi.cai.mapper.AccountMapper; +import com.ruoyi.cai.notice.YunxinHttpService; import com.ruoyi.cai.service.AccountChangeLogService; import com.ruoyi.cai.service.RankService; import com.ruoyi.cai.service.UserInfoService; @@ -40,6 +41,8 @@ public class AwardManager { private UserInfoService userInfoService; @Autowired private RankService rankService; + @Autowired + private YunxinHttpService yunxinHttpService; public void giveRegisterAsync(Long userId){ AwardManager bean = SpringUtil.getBean(AwardManager.class); @@ -60,6 +63,7 @@ public class AwardManager { } accountMapper.incsIncomeCoin(userId,price); accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.REGISTER_AWARD,price,null); + yunxinHttpService.registerRewardCoin(userId,price,price); } public void giveFastPayAsync(Long userId, Long traceId){ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ConsumerManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ConsumerManager.java index c41018be..e3da43ef 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ConsumerManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ConsumerManager.java @@ -1,17 +1,18 @@ package com.ruoyi.cai.manager; +import com.ruoyi.cai.domain.Account; import com.ruoyi.cai.domain.ConsumeLog; import com.ruoyi.cai.dto.ConsumeResp; -import com.ruoyi.cai.dto.app.query.GiveGiftRes; +import com.ruoyi.cai.dto.app.query.GiveGiftReq; import com.ruoyi.cai.dto.app.query.GiveGuardReq; +import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp; +import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp; import com.ruoyi.cai.dto.video.VideoSettleResp; import com.ruoyi.cai.mq.AmqpProducer; +import com.ruoyi.cai.notice.YunxinHttpService; import com.ruoyi.cai.pay.PayTypeEnum; import com.ruoyi.cai.rank.RankManager; -import com.ruoyi.cai.service.AccountService; -import com.ruoyi.cai.service.GuardTotalService; -import com.ruoyi.cai.service.RechargeOrderService; -import com.ruoyi.cai.service.UserGiftService; +import com.ruoyi.cai.service.*; import com.ruoyi.cai.ws.bean.Room; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -34,6 +35,8 @@ public class ConsumerManager { private AccountService accountService; @Autowired private RankManager rankManager; + @Autowired + private YunxinHttpService yunxinHttpService; public ConsumeResp sendGuard(GiveGuardReq query){ ConsumeResp resp = guardTotalService.giveGuard(query); @@ -47,14 +50,23 @@ public class ConsumerManager { return resp; } - public ConsumeResp sendGift(GiveGiftRes query){ - ConsumeResp resp = userGiftService.giveGift(query); + public GiftConsumerResp sendGift(GiveGiftReq query){ + GiftConsumerResp resp = userGiftService.giveGift(query); if(resp.isSuccess()){ try { amqpProducer.sendCalculateSales(resp.getConsumeLogId()+""); }catch (Exception e){ log.error("RabbitMq 发送失败, 礼物分销流程流转失败!",e); } + try { + Account account = accountService.getByUserId(resp.getUserId()); + if(account != null){ + Long totalCoin = account.getCoin() + account.getIncomeCoin(); + yunxinHttpService.getGiftSendMessage(resp.getUserId(), resp.getGift(), resp.getAnchorIncomeCoin(), totalCoin); + } + }catch (Exception e){ + log.error("礼物赠送成功通知失败!",e); + } } return resp; } @@ -71,14 +83,24 @@ public class ConsumerManager { return resp; } - public ConsumeResp rechargeOrderSuccess(String tradeNo, Map params, String appId, PayTypeEnum payTypeEnum){ - ConsumeResp resp = rechargeOrderService.orderSuccess(tradeNo,params,appId,payTypeEnum); + public RechargeConsumerResp rechargeOrderSuccess(String tradeNo, Map params, String appId, PayTypeEnum payTypeEnum){ + RechargeConsumerResp resp = rechargeOrderService.orderSuccess(tradeNo,params,appId,payTypeEnum); if(resp.isSuccess()){ try { amqpProducer.sendCalculateSales(resp.getConsumeLogId()+""); }catch (Exception e){ log.error("RabbitMq 发送失败, 充值分销流程流转失败!",e); } + try { + Account account = accountService.getByUserId(resp.getUserId()); + if(account != null){ + Long totalCoin = account.getCoin() + account.getIncomeCoin(); + yunxinHttpService.rechargeCoinSendMessage(resp.getUserId(), resp.getRechargeCoin(),totalCoin); + } + }catch (Exception e){ + log.error("充值成功通知失败!",e); + } + } return resp; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/YunxinHttpService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/YunxinHttpService.java index f4acd308..729d8b0f 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/YunxinHttpService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/YunxinHttpService.java @@ -1,11 +1,17 @@ package com.ruoyi.cai.notice; import com.alibaba.fastjson.JSON; +import com.ruoyi.cai.domain.Account; +import com.ruoyi.cai.domain.Gift; import com.ruoyi.cai.domain.User; -import com.ruoyi.cai.notice.data.*; +import com.ruoyi.cai.notice.data.NoticeR; import com.ruoyi.cai.notice.data.child.*; +import com.ruoyi.cai.notice.dto.CashSuccessSendMesDTO; import com.ruoyi.cai.notice.enums.MessageBaseTypeEnum; +import com.ruoyi.cai.service.AccountService; +import com.ruoyi.cai.service.UserService; import com.ruoyi.cai.util.CaiDateUtil; +import com.ruoyi.cai.util.CaiNumUtil; import com.ruoyi.yunxin.YunExecutor; import com.ruoyi.yunxin.Yunxin; import com.ruoyi.yunxin.resp.SendMsgResp; @@ -16,30 +22,38 @@ import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; @Component @Slf4j public class YunxinHttpService { private final static Long SYS_NOTICE_ID = 2L; + /** + * 网易云信的 "动态通知" id + */ + private final static Long FOLLOW_NOTICE_ID = 11L; @Autowired private Yunxin yunxin; + @Autowired + private AccountService accountService; + @Autowired + private UserService userService; /** * 注册赠送消息 */ public void registerRewardCoin(Long toUid,Long rewardCoin,Long totalCoin){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("系统奖励"); data.setCurrentDate(); data.setTxt1("陌生人交友需谨慎,添加陌生人微信,QQ失去平台监管有极大被骗风险,凡是诱导加微信,QQ引导到其他平台或以色情为由索取礼物的行为,请大家及时举报,一经查明直接永久封号,良好的交友氛围需大家共同维护,希望大家提高自我警惕性杜绝被骗"); data.addFields("注册奖励",rewardCoin+"云贝"); data.addFields("注册奖励",totalCoin+"云贝"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -51,15 +65,14 @@ public class YunxinHttpService { */ public void rechargeCoinSendMessage(Long toUid,Long rewardCoin,Long totalCoin){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("购买成功"); data.setCurrentDate(); data.addFields("购买云贝",rewardCoin+"云贝"); data.addFields("总云贝",totalCoin+"云贝"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -70,19 +83,21 @@ public class YunxinHttpService { /** * 收到礼物发送消息 */ - public void getGiftSendMessage(Long toUid,String giftName,Long giftPrice,Long incomeCoin,Long totalCoin){ + public void getGiftSendMessage(Long toUid, Gift gift, Long incomeCoin, Long totalCoin){ + if(gift == null){ + return; + } YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("收到礼物"); data.setCurrentDate(); - data.addFields("礼物名称",giftName); - data.addFields("礼物单价",giftPrice+"云贝"); + data.addFields("礼物名称",gift.getName()); + data.addFields("礼物单价",gift.getPrice()+"云贝"); data.addFields("收入云贝",incomeCoin+"云贝"); data.addFields("总云贝",totalCoin+"云贝"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -92,6 +107,7 @@ public class YunxinHttpService { /** * 邀请奖励 */ + @Deprecated public void inviteRewardSendMessage(Long toUid,String type,String sourceNickname,String sourceUsercode,Long incomeCoin){ YunExecutor.YUN_EXECUTOR.execute(() -> { String str = ""; @@ -100,16 +116,15 @@ public class YunxinHttpService { }else if("reward".equals(type)){ str = "奖励分成"; } - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("邀请奖励"); data.setCurrentDate(); data.addFields("用户昵称",sourceNickname); data.addFields("用户蜜瓜号",sourceUsercode); data.addFields(str,incomeCoin+"云贝"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -119,20 +134,23 @@ public class YunxinHttpService { /** * 用户充值,邀请人返现 */ - public void inviteCashbackSendMessage(Long toUid,String sourceNickname,String sourceUsercode,Long payCoin,Long incomeCoin){ + public void inviteCashbackSendMessage(Long toUid,Long sourceId,BigDecimal rate, Long payCoin, Long incomeCoin){ + User sourceUser = userService.getById(sourceId); + if(sourceUser == null){ + return; + } YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("充值分成"); - data.setTxt1("充值分成:每一笔账户充值将给其邀请账户额外赠送{}%的云贝"); + data.setTxt1(String.format("充值分成:每一笔账户充值将给其邀请账户额外赠送%s的云贝", CaiNumUtil.rateToStr(rate))); data.setCurrentDate(); - data.addFields("充值用户",sourceNickname); - data.addFields("蜜瓜号",sourceUsercode); + data.addFields("充值用户",sourceUser.getNickname()); + data.addFields("蜜瓜号",sourceUser.getUsercode()); data.addFields("充值金额",payCoin+"云贝"); data.addFields("充值分成",incomeCoin+"云贝"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -145,8 +163,7 @@ public class YunxinHttpService { public void cashSuccessSendMessage(Long toUid, LocalDateTime cashTime, BigDecimal cashMoney, BigDecimal realCashMonty, String cardAccount,LocalDateTime verifyTime){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("提现成功"); data.setCurrentDate(); @@ -156,22 +173,43 @@ public class YunxinHttpService { data.addFields("到账金额",realCashMonty.toString()+"元"); data.addFields("到账账户","支付宝("+cardAccount+")"); data.addFields("审核时间",CaiDateUtil.localDateTimeToString(verifyTime)); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } }); } + public void batchCashSuccessSendMessage(List dtos){ + YunExecutor.YUN_EXECUTOR.execute(() -> { + for (CashSuccessSendMesDTO dto : dtos) { + ExtNoticeData data = new ExtNoticeData(); + data.setAction(1); + data.setTitle("提现成功"); + data.setCurrentDate(); + data.addFields("提现时间", CaiDateUtil.localDateTimeToString(dto.getCashTime())); + data.addFields("提现金额",dto.getCashMoney().toString()+"元"); + data.addFields("提现方式","支付宝"); + data.addFields("到账金额",dto.getRealCashMonty().toString()+"元"); + data.addFields("到账账户","支付宝("+dto.getCardAccount()+")"); + data.addFields("审核时间",CaiDateUtil.localDateTimeToString(dto.getVerifyTime())); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(dto.getToUid(), SYS_NOTICE_ID, notice); + if(r == null || !r.isSuccess()){ + log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); + } + } + }); + } + /** * 提现审核转账发送消息【提现审核失败】 */ public void cashFailSendMessage(Long toUid, LocalDateTime cashTime, BigDecimal cashMoney, String remark){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("提现失败"); data.setCurrentDate(); @@ -179,8 +217,8 @@ public class YunxinHttpService { data.addFields("提现金额",cashMoney.toString()+"元"); data.addFields("提现方式","支付宝"); data.setTxt2(remark); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -192,14 +230,13 @@ public class YunxinHttpService { */ public void reportSendMessage(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("已收到你的举报信息"); data.setTxt1("感谢您提交的举报信息,拒绝不良风气,良好的氛围需要大家共同维护。"); data.setCurrentDate(); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -219,8 +256,7 @@ public class YunxinHttpService { LocalDateTime followTime, Integer gender){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageSendFollowNew messageExtNew = new MessageSendFollowNew(MessageBaseTypeEnum.SEND_FOLLOW); - MessageSendFollowData data = new MessageSendFollowData(); + SendFollowNoticeData data = new SendFollowNoticeData(); data.setUserid(followUserId); data.setNickname(followNickname); data.setAvatar(followAvatar); @@ -228,8 +264,8 @@ public class YunxinHttpService { data.setCity(followCity); data.setTime(CaiDateUtil.localDateTimeToString(followTime)); data.setSex(gender); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.SEND_FOLLOW, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -241,8 +277,7 @@ public class YunxinHttpService { */ public void passAnchorSendMessage(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("恭喜你通过自拍认证,成为平台女神"); data.setCurrentDate(); @@ -251,8 +286,8 @@ public class YunxinHttpService { data.addFields("赚钱小秘密一","多给在线男生打招呼"); data.addFields("赚钱小秘密二","照片越好看,男生越喜欢"); data.addFields("赚钱小秘密三","勤发动态,让他感受到你的美"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -265,13 +300,12 @@ public class YunxinHttpService { */ public void changeInviteConfigSendMessage(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("恭喜成为邀请女神"); data.setCurrentDate(); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -283,10 +317,9 @@ public class YunxinHttpService { */ public void sendGiftMessage(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageSendGiftMessageNew messageExtNew = new MessageSendGiftMessageNew(MessageBaseTypeEnum.SEND_GIFT_MESSAGE); - MessageSendGiftMessageData data = new MessageSendGiftMessageData(); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + SendGiftMessageNoticeData data = new SendGiftMessageNoticeData(); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.SEND_GIFT_MESSAGE, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -299,8 +332,7 @@ public class YunxinHttpService { */ public void getGuardMessage(Long toUid,Integer num,Long price,BigDecimal incomeCoin,BigDecimal totalCoin){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("收到守护符"); data.setCurrentDate(); @@ -308,8 +340,8 @@ public class YunxinHttpService { data.addFields("守护单价",price+"云贝"); data.addFields("收入云贝",incomeCoin+"云贝"); data.addFields("总云贝",totalCoin+"云贝"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -322,10 +354,9 @@ public class YunxinHttpService { */ public void sendOnlineAttentionNotice(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageSendOnlineAttentionNew messageExtNew = new MessageSendOnlineAttentionNew(MessageBaseTypeEnum.TXT); - MessageSendOnlineAttentionData data = new MessageSendOnlineAttentionData(); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + SendOnlineAttentionNoticeData data = new SendOnlineAttentionNoticeData(); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.SEND_ONLINE_ATTENTION, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -337,14 +368,13 @@ public class YunxinHttpService { */ public void cancelAnchorMessage(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("取消女神通知"); data.setCurrentDate(); data.setTxt1("因多次违规或被投诉,已被取消女神资格!"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -357,14 +387,13 @@ public class YunxinHttpService { */ public void dynamicAuditMessage(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("动态审核通知"); data.setCurrentDate(); data.setTxt1("您的动态因不符合规范,已被删除,多次违规会被取消大咖资格或封号处理"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -377,16 +406,15 @@ public class YunxinHttpService { */ public void albumAuditMessage(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("相册审核通知"); data.setCurrentDate(); data.setTxt1("您上传的照片不符合要求,已被删除,多次违规会被取消大咖资格或封号处理,请按照指引上传符合要求的照片"); data.setLink_type(1); data.setLink_url("/index/about/album_rule.html"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -399,14 +427,13 @@ public class YunxinHttpService { */ public void nickAuditMessage(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageExtNew messageExtNew = new MessageExtNew(MessageBaseTypeEnum.TXT); - MessageExtData data = new MessageExtData(); + ExtNoticeData data = new ExtNoticeData(); data.setAction(1); data.setTitle("重置昵称通知"); data.setCurrentDate(); data.setTxt1("您的昵称不合格,已被重置,多次违规会被封号!"); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -419,10 +446,9 @@ public class YunxinHttpService { */ public void sendRechargeWindowsAmount(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageSendRechargeWindowsAmountNew messageExtNew = new MessageSendRechargeWindowsAmountNew(MessageBaseTypeEnum.SEND_GIFTWINDOWS_AMOUNT); - MessageSendRechargeWindowsAmountData data = new MessageSendRechargeWindowsAmountData(); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + SendRechargeWindowsAmountNoticeData data = new SendRechargeWindowsAmountNoticeData(); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.RECHARGE_WINDOWS_AMOUNT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -435,10 +461,9 @@ public class YunxinHttpService { */ public void sendGiftWindowsAmount(Long toUid){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageSendGiftWindowsAmountNew messageExtNew = new MessageSendGiftWindowsAmountNew(MessageBaseTypeEnum.SEND_GIFTWINDOWS_AMOUNT); - MessageSendGiftWindowsAmountData data = new MessageSendGiftWindowsAmountData(); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + SendGiftWindowsAmountNoticeData data = new SendGiftWindowsAmountNoticeData(); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.SEND_GIFT_WINDOWS_AMOUNT, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } @@ -451,8 +476,7 @@ public class YunxinHttpService { */ public void sendFollowDynamicBath(Long toUid, User user,String image,String content){ YunExecutor.YUN_EXECUTOR.execute(() -> { - MessageSendFollowDynamicNew messageExtNew = new MessageSendFollowDynamicNew(MessageBaseTypeEnum.SEND_FOLLOW_DYNAMIC); - MessageSendFollowDynamicData data = new MessageSendFollowDynamicData(); + SendFollowDynamicNoticeData data = new SendFollowDynamicNoticeData(); data.setUserid(user.getId()); data.setNickname(user.getNickname()); data.setAvatar(user.getAvatar()); @@ -461,8 +485,8 @@ public class YunxinHttpService { data.setTime(CaiDateUtil.getCurrentTimeStr()); data.setImage(image); data.setTitle(content); - messageExtNew.setData(data); - YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, messageExtNew); + NoticeR notice = NoticeR.ok(MessageBaseTypeEnum.SEND_FOLLOW_DYNAMIC, data); + YxDataR r = yunxin.sendTo(toUid, SYS_NOTICE_ID, notice); if(r == null || !r.isSuccess()){ log.error("云信发送失败【sendCallAsync】r={}", JSON.toJSONString(r)); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageBaseData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageBaseData.java deleted file mode 100644 index f4a16ff1..00000000 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageBaseData.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.ruoyi.cai.notice.data; - -import lombok.Data; - -@Data -public class MessageBaseData { - private Integer type; -} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageExtNew.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageExtNew.java deleted file mode 100644 index 5681f983..00000000 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageExtNew.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ruoyi.cai.notice.data; - -import com.ruoyi.cai.notice.data.child.MessageExtData; -import com.ruoyi.cai.notice.enums.MessageBaseTypeEnum; -import lombok.Data; - -@Data -public class MessageExtNew extends MessageBaseData { - - private MessageExtData data; - - public MessageExtNew(MessageBaseTypeEnum typeEnum) { - this.setType(typeEnum.getCode()); - } - - public MessageExtNew() { - } -} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendFollowDynamicNew.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendFollowDynamicNew.java deleted file mode 100644 index f1248e6e..00000000 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendFollowDynamicNew.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ruoyi.cai.notice.data; - -import com.ruoyi.cai.notice.data.child.MessageSendFollowData; -import com.ruoyi.cai.notice.data.child.MessageSendFollowDynamicData; -import com.ruoyi.cai.notice.enums.MessageBaseTypeEnum; -import lombok.Data; - -@Data -public class MessageSendFollowDynamicNew extends MessageBaseData{ - - private MessageSendFollowDynamicData data; - - public MessageSendFollowDynamicNew(MessageBaseTypeEnum typeEnum) { - this.setType(typeEnum.getCode()); - } - - public MessageSendFollowDynamicNew() { - } - -} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendFollowNew.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendFollowNew.java deleted file mode 100644 index c599aa85..00000000 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendFollowNew.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.ruoyi.cai.notice.data; - -import com.ruoyi.cai.notice.data.child.MessageSendFollowData; -import com.ruoyi.cai.notice.enums.MessageBaseTypeEnum; -import lombok.Data; - -@Data -public class MessageSendFollowNew extends MessageBaseData{ - - private MessageSendFollowData data; - - public MessageSendFollowNew(MessageBaseTypeEnum typeEnum) { - this.setType(typeEnum.getCode()); - } - - public MessageSendFollowNew() { - } - -} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendGiftMessageNew.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendGiftMessageNew.java deleted file mode 100644 index 7b402454..00000000 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendGiftMessageNew.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ruoyi.cai.notice.data; - -import com.ruoyi.cai.notice.data.child.MessageSendGiftMessageData; -import com.ruoyi.cai.notice.data.child.MessageSendRechargeWindowsAmountData; -import com.ruoyi.cai.notice.enums.MessageBaseTypeEnum; -import lombok.Data; - -@Data -public class MessageSendGiftMessageNew extends MessageBaseData{ - - private MessageSendGiftMessageData data; - - public MessageSendGiftMessageNew(MessageBaseTypeEnum typeEnum) { - this.setType(typeEnum.getCode()); - } - - public MessageSendGiftMessageNew() { - } - -} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendGiftWindowsAmountNew.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendGiftWindowsAmountNew.java deleted file mode 100644 index f48ab70b..00000000 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendGiftWindowsAmountNew.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ruoyi.cai.notice.data; - -import com.ruoyi.cai.notice.data.child.MessageSendFollowData; -import com.ruoyi.cai.notice.data.child.MessageSendGiftWindowsAmountData; -import com.ruoyi.cai.notice.enums.MessageBaseTypeEnum; -import lombok.Data; - -@Data -public class MessageSendGiftWindowsAmountNew extends MessageBaseData{ - - private MessageSendGiftWindowsAmountData data; - - public MessageSendGiftWindowsAmountNew(MessageBaseTypeEnum typeEnum) { - this.setType(typeEnum.getCode()); - } - - public MessageSendGiftWindowsAmountNew() { - } - -} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendOnlineAttentionNew.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendOnlineAttentionNew.java deleted file mode 100644 index 54b65950..00000000 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendOnlineAttentionNew.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ruoyi.cai.notice.data; - -import com.ruoyi.cai.notice.data.child.MessageSendOnlineAttentionData; -import com.ruoyi.cai.notice.data.child.MessageSendRechargeWindowsAmountData; -import com.ruoyi.cai.notice.enums.MessageBaseTypeEnum; -import lombok.Data; - -@Data -public class MessageSendOnlineAttentionNew extends MessageBaseData{ - - private MessageSendOnlineAttentionData data; - - public MessageSendOnlineAttentionNew(MessageBaseTypeEnum typeEnum) { - this.setType(typeEnum.getCode()); - } - - public MessageSendOnlineAttentionNew() { - } - -} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendRechargeWindowsAmountNew.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendRechargeWindowsAmountNew.java deleted file mode 100644 index 03d9a591..00000000 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/MessageSendRechargeWindowsAmountNew.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ruoyi.cai.notice.data; - -import com.ruoyi.cai.notice.data.child.MessageSendGiftWindowsAmountData; -import com.ruoyi.cai.notice.data.child.MessageSendRechargeWindowsAmountData; -import com.ruoyi.cai.notice.enums.MessageBaseTypeEnum; -import lombok.Data; - -@Data -public class MessageSendRechargeWindowsAmountNew extends MessageBaseData{ - - private MessageSendRechargeWindowsAmountData data; - - public MessageSendRechargeWindowsAmountNew(MessageBaseTypeEnum typeEnum) { - this.setType(typeEnum.getCode()); - } - - public MessageSendRechargeWindowsAmountNew() { - } - -} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/NoticeR.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/NoticeR.java new file mode 100644 index 00000000..5bc1fa70 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/NoticeR.java @@ -0,0 +1,30 @@ +package com.ruoyi.cai.notice.data; + +import com.ruoyi.cai.notice.enums.MessageBaseTypeEnum; +import com.ruoyi.common.core.domain.R; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +public class NoticeR implements Serializable { + private static final long serialVersionUID = 1L; + + private Integer type; + + private T data; + + public static NoticeR ok(MessageBaseTypeEnum typeEnum, T data) { + return restResult(typeEnum.getCode(), data); + } + + + private static NoticeR restResult(Integer type, T data) { + NoticeR r = new NoticeR<>(); + r.setType(type); + r.setData(data); + return r; + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageExtData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/ExtNoticeData.java similarity index 97% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageExtData.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/ExtNoticeData.java index 94b477c2..a2785667 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageExtData.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/ExtNoticeData.java @@ -8,7 +8,7 @@ import java.util.ArrayList; import java.util.List; @Data -public class MessageExtData { +public class ExtNoticeData { private Integer action; private String title = ""; private String date; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendFollowDynamicData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendFollowDynamicNoticeData.java similarity index 86% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendFollowDynamicData.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendFollowDynamicNoticeData.java index f0284485..44ab8c76 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendFollowDynamicData.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendFollowDynamicNoticeData.java @@ -3,7 +3,7 @@ package com.ruoyi.cai.notice.data.child; import lombok.Data; @Data -public class MessageSendFollowDynamicData { +public class SendFollowDynamicNoticeData { private Long userid; private String nickname; private String avatar; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendFollowData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendFollowNoticeData.java similarity index 87% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendFollowData.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendFollowNoticeData.java index e1ba0199..80be005e 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendFollowData.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendFollowNoticeData.java @@ -3,7 +3,7 @@ package com.ruoyi.cai.notice.data.child; import lombok.Data; @Data -public class MessageSendFollowData { +public class SendFollowNoticeData { private Long userid; private String nickname; private String avatar; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendGiftMessageData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendGiftMessageNoticeData.java similarity index 87% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendGiftMessageData.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendGiftMessageNoticeData.java index ac1925d3..5cb5402b 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendGiftMessageData.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendGiftMessageNoticeData.java @@ -3,7 +3,7 @@ package com.ruoyi.cai.notice.data.child; import lombok.Data; @Data -public class MessageSendGiftMessageData { +public class SendGiftMessageNoticeData { private Long gift_id; private String gift_name; private String gift_url; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendGiftWindowsAmountData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendGiftWindowsAmountNoticeData.java similarity index 88% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendGiftWindowsAmountData.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendGiftWindowsAmountNoticeData.java index 46730e6d..cb2497af 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendGiftWindowsAmountData.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendGiftWindowsAmountNoticeData.java @@ -3,7 +3,7 @@ package com.ruoyi.cai.notice.data.child; import lombok.Data; @Data -public class MessageSendGiftWindowsAmountData { +public class SendGiftWindowsAmountNoticeData { private Long id; private String nickname; private String avatar; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendOnlineAttentionData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendOnlineAttentionNoticeData.java similarity index 84% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendOnlineAttentionData.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendOnlineAttentionNoticeData.java index 75dd3e30..3b7c058a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendOnlineAttentionData.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendOnlineAttentionNoticeData.java @@ -3,7 +3,7 @@ package com.ruoyi.cai.notice.data.child; import lombok.Data; @Data -public class MessageSendOnlineAttentionData { +public class SendOnlineAttentionNoticeData { private Long userid; private String nickname; private String avatar; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendRechargeWindowsAmountData.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendRechargeWindowsAmountNoticeData.java similarity index 79% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendRechargeWindowsAmountData.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendRechargeWindowsAmountNoticeData.java index 8de36f66..0e1952e2 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/MessageSendRechargeWindowsAmountData.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/data/child/SendRechargeWindowsAmountNoticeData.java @@ -3,7 +3,7 @@ package com.ruoyi.cai.notice.data.child; import lombok.Data; @Data -public class MessageSendRechargeWindowsAmountData { +public class SendRechargeWindowsAmountNoticeData { private Long id; private String nickname; private String avatar; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/dto/CashSuccessSendMesDTO.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/dto/CashSuccessSendMesDTO.java new file mode 100644 index 00000000..c4bf9a73 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/dto/CashSuccessSendMesDTO.java @@ -0,0 +1,16 @@ +package com.ruoyi.cai.notice.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class CashSuccessSendMesDTO { + private Long toUid; + LocalDateTime cashTime; + BigDecimal cashMoney; + BigDecimal realCashMonty; + String cardAccount; + LocalDateTime verifyTime; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/enums/MessageBaseTypeEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/enums/MessageBaseTypeEnum.java index 63d0293d..af4943d6 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/enums/MessageBaseTypeEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/notice/enums/MessageBaseTypeEnum.java @@ -14,11 +14,16 @@ public enum MessageBaseTypeEnum { * 用户充值,邀请人返现, 群打招呼审核失败 */ TXT(11,"文本消息"), + @Deprecated + REGISTER_SEND_CLEAN(13,"注册发送IM单图文消息"), + SEND_GIFT_MESSAGE(14,"发送礼物自定义消息"), SEND_FOLLOW(16,"自定义被关注消息"), SEND_FOLLOW_DYNAMIC(17,"关注动态"), - SEND_GIFTWINDOWS_AMOUNT(17,"关注动态"), - RECHARGE_WINDOWS_AMOUNT(17,"关注动态"), - SEND_GIFT_MESSAGE(17,"关注动态"), + SEND_ONLINE_ATTENTION(18,"上线了通知"), + RECHARGE_WINDOWS_AMOUNT(12,"发送充值飘窗提醒"), + SEND_GIFT_WINDOWS_AMOUNT(13,"礼物飘窗"), + + ; private final Integer code; 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 b8449e71..d2aa51d4 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 @@ -1,6 +1,7 @@ package com.ruoyi.cai.pay; import com.ruoyi.cai.dto.ConsumeResp; +import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp; import com.ruoyi.cai.manager.AwardManager; import com.ruoyi.cai.manager.ConsumerManager; import com.ruoyi.cai.service.PayTotalService; @@ -44,8 +45,9 @@ public class PayManager { } break; case RECHARGE_ORDER_SUB: - ConsumeResp resp = consumerManager.rechargeOrderSuccess(orderNo,params,appId,payTypeEnum); + RechargeConsumerResp resp = consumerManager.rechargeOrderSuccess(orderNo,params,appId,payTypeEnum); if(resp.isSuccess()){ + // 领取首充奖励 awardManager.giveFastPayAsync(resp.getUserId(), resp.getTraceId()); if(appId != null){ payTotalService.incsPrice(payTypeEnum,appId,resp.getPrice()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountCashService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountCashService.java index 2378ec58..8029f659 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountCashService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/AccountCashService.java @@ -24,6 +24,7 @@ public interface AccountCashService extends IService { void fail(Long id); - ExportBatchAuditVo batchAudit(List result); + ExportBatchAuditVo batchAudit(List result); + void success(Long id); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/RechargeOrderService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/RechargeOrderService.java index 1778af83..cf47c1af 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/RechargeOrderService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/RechargeOrderService.java @@ -7,6 +7,7 @@ import com.ruoyi.cai.dto.AddRechargeOrderAdminDto; import com.ruoyi.cai.dto.app.query.order.AddRechargeOrderDto; import com.ruoyi.cai.dto.ConsumeResp; import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo; +import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp; import com.ruoyi.cai.pay.PayTypeEnum; import com.ruoyi.common.core.domain.PageQuery; @@ -26,7 +27,7 @@ public interface RechargeOrderService extends IService { RechargeOrder addRechargeOrder(AddRechargeOrderDto addRechargeOrderDto); - ConsumeResp orderSuccess(String orderNo, Map params, String appId, PayTypeEnum payTypeEnum); + RechargeConsumerResp orderSuccess(String orderNo, Map params, String appId, PayTypeEnum payTypeEnum); RechargeOrder updateAdminRechargeOrder(AddRechargeOrderAdminDto dto); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserGiftService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserGiftService.java index 0eb4336f..c2153dfd 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserGiftService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserGiftService.java @@ -3,8 +3,9 @@ package com.ruoyi.cai.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.domain.UserGift; import com.ruoyi.cai.dto.ConsumeResp; -import com.ruoyi.cai.dto.app.query.GiveGiftRes; +import com.ruoyi.cai.dto.app.query.GiveGiftReq; import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo; +import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp; import java.util.List; @@ -18,6 +19,6 @@ public interface UserGiftService extends IService { List selectGiftList(Long userId); - ConsumeResp giveGift(GiveGiftRes query); + GiftConsumerResp giveGift(GiveGiftReq query); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountCashServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountCashServiceImpl.java index c1af88c0..6ccbc9ed 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountCashServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountCashServiceImpl.java @@ -13,6 +13,8 @@ import com.ruoyi.cai.enums.AccountCashStatusEnum; import com.ruoyi.cai.enums.AuditStatusEnum; import com.ruoyi.cai.manager.IdManager; import com.ruoyi.cai.mapper.AccountCashMapper; +import com.ruoyi.cai.notice.YunxinHttpService; +import com.ruoyi.cai.notice.dto.CashSuccessSendMesDTO; import com.ruoyi.cai.service.AccountCashService; import com.ruoyi.cai.service.AccountBankcardService; import com.ruoyi.cai.service.AccountService; @@ -20,11 +22,13 @@ import com.ruoyi.cai.service.WithdrawExchangeService; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.ServletUtils; +import io.undertow.util.AttachmentList; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; @Service @@ -35,6 +39,8 @@ public class AccountCashServiceImpl extends ServiceImpl result) { + public void success(Long id) { + boolean update = this.update(Wrappers.lambdaUpdate(AccountCash.class) + .set(AccountCash::getVerifyTime, LocalDateTime.now()) + .set(AccountCash::getOperateIp, ServletUtils.getClientIP()) + .set(AccountCash::getStatus, AccountCashStatusEnum.SUCCESS.getCode()) + .eq(AccountCash::getStatus, AccountCashStatusEnum.READY.getCode()) + .eq(AccountCash::getId, id)); + if(!update){ + return; + } + AccountCash accountCash = this.getById(id); + if(accountCash == null){ + return; + } + // 发送通知 + yunxinHttpService.cashSuccessSendMessage(accountCash.getUserId(), + accountCash.getCreateTime(), + accountCash.getCashMoney(),accountCash.getRealCashMoney(), + accountCash.getCardAccount(),accountCash.getVerifyTime()); + } + + + @Override + public ExportBatchAuditVo batchAudit(List result) { ExportBatchAuditVo res = new ExportBatchAuditVo(); Integer allNum = result.size(); Integer successNum = 0; Integer ignoreNum = 0; Integer failNum = 0; - for (AccountCashAdminVo vo : result) { + List dtoList = new ArrayList<>(); + for (Long id : result) { try { - AccountCash cash = this.getById(vo.getId()); - if(!AuditStatusEnum.AUDITING.getCode().equals(cash.getStatus())){ + AccountCash cash = this.getById(id); + if(cash == null || !AuditStatusEnum.AUDITING.getCode().equals(cash.getStatus())){ ignoreNum++; continue; } + LocalDateTime now = LocalDateTime.now(); boolean update = this.update(Wrappers.lambdaUpdate(AccountCash.class) - .eq(AccountCash::getId, vo.getId()) + .eq(AccountCash::getId, id) .eq(AccountCash::getStatus, AuditStatusEnum.AUDITING.getCode()) - .set(AccountCash::getVerifyTime, LocalDateTime.now()) + .set(AccountCash::getVerifyTime, now) .set(AccountCash::getOperateIp, ServletUtils.getClientIP()) .set(AccountCash::getStatus, AccountCashStatusEnum.SUCCESS.getCode())); if(update){ successNum++; + CashSuccessSendMesDTO dto = new CashSuccessSendMesDTO(); + dto.setToUid(cash.getUserId()); + dto.setCashTime(cash.getCreateTime()); + dto.setCashMoney(cash.getCashMoney()); + dto.setRealCashMonty(cash.getRealCashMoney()); + dto.setCardAccount(cash.getCardAccount()); + dto.setVerifyTime(now); + dtoList.add(dto); }else{ ignoreNum++; } @@ -121,8 +162,12 @@ public class AccountCashServiceImpl extends ServiceImpl impl // 开始处理 接收方的费用 Long targetUserId = consumeLog.getTargetUserId(); if(targetUserId != null){ - Long anchorAmount = NumCaUtil.coin(amount,consumeLog.getTargetRate()); + Long anchorAmount = CaiNumUtil.coin(amount,consumeLog.getTargetRate()); consumeLog.setAnchorAmount(anchorAmount); baseMapper.incsIncomeCoin(targetUserId,anchorAmount); } @@ -158,7 +158,7 @@ public class AccountServiceImpl extends ServiceImpl impl } // 开始处理 接收方的费用 BigDecimal imRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DAY_MAX_DYNAMIC); - Long anchorAmount = NumCaUtil.coin(price,imRate); + Long anchorAmount = CaiNumUtil.coin(price,imRate); baseMapper.incsIncomeCoin(toUser.getId(),anchorAmount); Long tractId = IdManager.nextId(); // 记录消费方的流水 @@ -372,7 +372,7 @@ public class AccountServiceImpl extends ServiceImpl impl } } Long amountReal = payCoin + payIncome; // 实际支付的金额 - Long anchorAmount = NumCaUtil.coin(amountReal,roomData.getVideoDivide()); + Long anchorAmount = CaiNumUtil.coin(amountReal,roomData.getVideoDivide()); User fromUser = userService.getById(userCall.getFromUid()); User toUser = userService.getById(userCall.getToUid()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/ConsumeLogServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/ConsumeLogServiceImpl.java index 5a34735b..a0c96fc8 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/ConsumeLogServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/ConsumeLogServiceImpl.java @@ -8,9 +8,10 @@ import com.ruoyi.cai.enums.ConsumeLogStatus; import com.ruoyi.cai.enums.ConsumeLogType; import com.ruoyi.cai.enums.account.AccountChangeCodeEnum; import com.ruoyi.cai.mapper.ConsumeLogMapper; +import com.ruoyi.cai.notice.YunxinHttpService; import com.ruoyi.cai.rank.RankManager; import com.ruoyi.cai.service.*; -import com.ruoyi.cai.util.NumCaUtil; +import com.ruoyi.cai.util.CaiNumUtil; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.LoginHelper; @@ -43,6 +44,8 @@ public class ConsumeLogServiceImpl extends ServiceImpl params, String appId, PayTypeEnum payTypeEnum){ + public RechargeConsumerResp orderSuccess(String orderNo, Map params, String appId, PayTypeEnum payTypeEnum){ RechargeOrder rechargeOrder = this.getByOrderNo(orderNo); if(rechargeOrder == null){ throw new ServiceException("订单不存在"); @@ -124,12 +125,13 @@ public class RechargeOrderServiceImpl extends ServiceImpl i @Override @Transactional(rollbackFor = Exception.class) - public ConsumeResp giveGift(GiveGiftRes query) { + public GiftConsumerResp giveGift(GiveGiftReq query) { Long fromUserId = LoginHelper.getUserId(); Gift gift = giftService.getById(query.getGiftId()); if(gift == null){ @@ -68,7 +66,8 @@ public class UserGiftServiceImpl extends ServiceImpl i if(lock.isLocked()){ throw new ServiceException("您点击太快了"); } - ConsumeResp resp = new ConsumeResp(); + GiftConsumerResp resp = new GiftConsumerResp(); + resp.setGift(gift); try { lock.lock(3, TimeUnit.SECONDS); User fromUser = userService.getById(fromUserId); @@ -84,6 +83,7 @@ public class UserGiftServiceImpl extends ServiceImpl i consumeLog.setAmount(giftAmount); consumeLog.setTargetRate(anchor.getGiftRate()); consumeLog = accountService.giftDecr(consumeLog, ConsumeLogType.GIFT, gift); + resp.setAnchorIncomeCoin(consumeLog.getAnchorAmount()); resp.setConsumeLogId(consumeLog.getId()); UserGift userGift = new UserGift(); userGift.setType(query.getType()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/util/NumCaUtil.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/util/CaiNumUtil.java similarity index 69% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/util/NumCaUtil.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/util/CaiNumUtil.java index 547fa2d4..b3305088 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/util/NumCaUtil.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/util/CaiNumUtil.java @@ -5,7 +5,7 @@ import cn.hutool.core.util.NumberUtil; import java.math.BigDecimal; import java.math.RoundingMode; -public class NumCaUtil { +public class CaiNumUtil { /** * 向下取整计算金额 @@ -21,7 +21,12 @@ public class NumCaUtil { return decimal.setScale(0, RoundingMode.DOWN).longValue(); } + public static String rateToStr(BigDecimal rate){ + BigDecimal mul = NumberUtil.mul(rate, 100); + return mul.intValue()+"%"; + } + public static void main(String[] args) { - System.out.println(coin(5200L,BigDecimal.valueOf(0.07))); + System.out.println(rateToStr(BigDecimal.valueOf(0.07))); } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/ws/handler/message/GiftMessageHandler.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/ws/handler/message/GiftMessageHandler.java index 0c934a72..258bb16d 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/ws/handler/message/GiftMessageHandler.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/ws/handler/message/GiftMessageHandler.java @@ -4,7 +4,8 @@ import com.alibaba.fastjson2.JSONObject; import com.ruoyi.cai.domain.Account; import com.ruoyi.cai.domain.Gift; import com.ruoyi.cai.dto.ConsumeResp; -import com.ruoyi.cai.dto.app.query.GiveGiftRes; +import com.ruoyi.cai.dto.app.query.GiveGiftReq; +import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp; import com.ruoyi.cai.manager.ConsumerManager; import com.ruoyi.cai.service.AccountService; import com.ruoyi.cai.service.GiftService; @@ -52,12 +53,12 @@ public class GiftMessageHandler extends AbstractMessageHandle implements IMessag sendToCurrent(fdCtxData,WsRMsgGen.rechargeNotice("赠送后通话时间不足1分钟,点此充值")); return; } - GiveGiftRes giveGiftRes = new GiveGiftRes(); - giveGiftRes.setType(3); - giveGiftRes.setToUserId(fdCtxData.getTarUserId()); - giveGiftRes.setGiftId(giftId); - giveGiftRes.setGiftCount(giftCount); - ConsumeResp consumeResp = consumerManager.sendGift(giveGiftRes); + GiveGiftReq giveGiftReq = new GiveGiftReq(); + giveGiftReq.setType(3); + giveGiftReq.setToUserId(fdCtxData.getTarUserId()); + giveGiftReq.setGiftId(giftId); + giveGiftReq.setGiftCount(giftCount); + GiftConsumerResp consumeResp = consumerManager.sendGift(giveGiftReq); if(!consumeResp.isSuccess()){ sendToCurrent(fdCtxData,WsRMsgGen.sysNotice("赠送失败,请重试")); return;