金币统计-统计

This commit is contained in:
khalil
2025-02-08 19:42:51 +08:00
parent 5936fba2d3
commit c6088750b3
27 changed files with 465 additions and 1908 deletions

View File

@@ -16,6 +16,7 @@ import com.accompany.business.model.relation.RelationUser;
import com.accompany.business.mybatismapper.DiamondGiveHistoryMapper;
import com.accompany.business.mybatismapper.UserGiftWallMapperMgr;
import com.accompany.business.mybatismapper.UserYearReportMapper;
import com.accompany.business.service.DiamondStatService;
import com.accompany.business.service.activity.WeekStarService;
import com.accompany.business.service.apple.IOSRefundV2Service;
import com.accompany.business.service.family.FamilyMemberService;
@@ -137,6 +138,8 @@ public class MyApiService {
private RelationUserServiceImpl relationUserService;
@Autowired
private UserYearReportMapper userYearReportMapper;
@Autowired
private DiamondStatService diamondStatService;
public void refreshRoomMoneyRankList() {
List<Long> roomUidList = myApiAdminMapper.getExceptionRoomUid();
@@ -561,4 +564,9 @@ public class MyApiService {
userYearReportMapper.insertOrUpdate(userYearReport);
});
}
public void diamondStat() {
List<Integer> partitionIds = List.of(PartitionEnum.ARAB.getId(), PartitionEnum.TURKEY.getId());
diamondStatService.stat(partitionIds);
}
}

View File

@@ -12,12 +12,8 @@ import com.accompany.business.model.RoomExclusiveGift;
import com.accompany.business.model.RoomExclusiveGiftExample;
import com.accompany.business.mybatismapper.GiftMapper;
import com.accompany.business.mybatismapper.RoomExclusiveGiftMapper;
import com.accompany.business.mybatismapper.UserPurseMapperExpand;
import com.accompany.business.service.gift.GiftSendRecordService;
import com.accompany.business.service.prize.PrizeContext;
import com.accompany.business.service.prize.PrizeStrategyFactory;
import com.accompany.business.service.purse.UserPurseService;
import com.accompany.business.service.record.BillRecordService;
import com.accompany.business.service.room.RoomFreeGiftService;
import com.accompany.business.service.room.RoomService;
import com.accompany.business.service.user.UsersService;
@@ -62,16 +58,8 @@ public class GiftAdminService extends AbstractCoreService<Gift, GiftExample> {
@Autowired
private GiftMapper giftMapper;
@Autowired
private UserPurseService userPurseService;
@Autowired
private GiftSendRecordService giftSendRecordService;
@Autowired
private BillRecordService billRecordService;
@Autowired
private JedisService jedisService;
@Autowired
private UserPurseMapperExpand userPurseMapperExpand;
@Autowired
private UsersService usersService;
@Autowired
private RoomExclusiveGiftMapper roomExclusiveGiftMapper;

View File

@@ -193,4 +193,13 @@ public class MyApiController {
return BusiResult.success();
}
@GetMapping("/diamondStat")
public BusiResult<Void> diamondStat(Long roomId) {
if (null == roomId || !roomId.equals(603L)) {
throw new AdminServiceException(BusiStatus.PARAMERROR);
}
myApiService.diamondStat();
return BusiResult.success();
}
}

View File

@@ -0,0 +1,36 @@
package com.accompany.core.enumeration;
import lombok.Getter;
@Getter
public enum BillDomainTypeEnum {
CHARGE(1, "充值"),
WITHDRAW(2, "提现"),
SEND_GIFT(3, "赠送礼物"),
EXCHANGE(4, "兑换"),
GAME_PLAY(5, "玩法"),
ADMIN_OPERATE(6, "后台操作"),
ACTIVITY(7, "运营活动"),
DRESS_UP_SHOP(8, "装扮商城"),
RED_BAG(9, "红包"),
VIP(10, "VIP"),
REFUND(11, "退款"),
TRANSFER(12, "转赠"),
INVITE_REWARD(13, "邀请奖励"),
MINI_GAME(14, "小游戏"),
LUDO_MINI_GAME(15, "LUDO小游戏"),
GAME_PARTNER(16, "游戏陪玩"),
GUILD_USD(17, "公会薪资"),
CP(18, "CP"),
GUILD(19, "公会政策"),
;
private int value;
private String desc;
BillDomainTypeEnum(int value, String desc) {
this.value = value;
this.desc = desc;
}
}

View File

@@ -13,217 +13,224 @@ import java.util.Optional;
@Getter
public enum BillObjTypeEnum {
CHARGE( 1, "充值", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
CHARGE( 1, "充值", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.CHARGE),
WITHDRAW( 2, "提现", BillTypeEnum.OUT, CurrencyEnum.GOLD),
WITHDRAW( 2, "提现", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.WITHDRAW),
GIFT_ROOM_PAY( 3, "房间礼物支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GIFT_ROOM_PAY( 3, "房间礼物支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.SEND_GIFT),
GIFT_ROOM_INCOME( 4, "房间收礼物收入", BillTypeEnum.IN, CurrencyEnum.GOLD),
GIFT_ROOM_INCOME( 4, "房间收礼物收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.SEND_GIFT),
GIFT_PERSON_PAY( 5, "私聊礼物支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GIFT_PERSON_PAY( 5, "私聊礼物支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.SEND_GIFT),
GIFT_PERSON_INCOME( 6, "私聊礼物收入", BillTypeEnum.IN, CurrencyEnum.GOLD),
GIFT_PERSON_INCOME( 6, "私聊礼物收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.SEND_GIFT),
PACKET_DIAMOND_PAY( 7, "钻石红包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
PACKET_DIAMOND_PAY( 7, "钻石红包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.SEND_GIFT),
PACKET_DIAMOND_INCOME( 8, "钻石红包收入", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL),
PACKET_DIAMOND_INCOME( 8, "钻石红包收入", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL, BillDomainTypeEnum.SEND_GIFT),
PACKET_GIFT_PAY( 9, "礼物红包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
PACKET_GIFT_PAY( 9, "礼物红包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.SEND_GIFT),
PACKET_GIFT_INCOME( 10, "礼物红包收入", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL),
PACKET_GIFT_INCOME( 10, "礼物红包收入", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL, BillDomainTypeEnum.SEND_GIFT),
ROOM_PERCENTAGE_INCOME( 11, "房间流水抽成收入", BillTypeEnum.IN, CurrencyEnum.GOLD),
ROOM_PERCENTAGE_INCOME( 11, "房间流水抽成收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.SEND_GIFT),
EXCHANGE_CRYSTAL_TO_DIAMOND_PAY( 12, "水晶兑换金币支出", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL),
EXCHANGE_CRYSTAL_TO_DIAMOND_PAY( 12, "水晶兑换金币支出", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL, BillDomainTypeEnum.EXCHANGE),
EXCHANGE_CRYSTAL_TO_DIAMOND_INCOME( 13, "水晶兑换金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
EXCHANGE_CRYSTAL_TO_DIAMOND_INCOME( 13, "水晶兑换金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.EXCHANGE),
EXCHANGE_GOLD_TO_DIAMOND_PAY( 14, "钻石兑换金币支出", BillTypeEnum.OUT, CurrencyEnum.GOLD),
EXCHANGE_GOLD_TO_DIAMOND_PAY( 14, "钻石兑换金币支出", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.EXCHANGE),
EXCHANGE_GOLD_TO_DIAMOND_INCOME( 15, "钻石兑换金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
EXCHANGE_GOLD_TO_DIAMOND_INCOME( 15, "钻石兑换金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.EXCHANGE),
EXCHANGE_CRYSTAL_TO_GOLD_PAY( 16, "水晶兑换钻石支出", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL),
EXCHANGE_CRYSTAL_TO_GOLD_PAY( 16, "水晶兑换钻石支出", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL, BillDomainTypeEnum.EXCHANGE),
EXCHANGE_CRYSTAL_TO_GOLD_INCOME( 17, "水晶兑换钻石收入", BillTypeEnum.IN, CurrencyEnum.GOLD),
EXCHANGE_CRYSTAL_TO_GOLD_INCOME( 17, "水晶兑换钻石收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.EXCHANGE),
CHARGE_BY_COMPANY_ACCOUNT( 18, "打款至公账充值钻石", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
CHARGE_BY_COMPANY_ACCOUNT( 18, "打款至公账充值钻石", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.CHARGE),
BOX_PRIZE_GOLD( 19, "开宝箱获得钻石", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
BOX_PRIZE_GOLD( 19, "开宝箱获得钻石", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
OFFICIAL_DIAMOND_REDUCE( 20, "官方消除金币", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
OFFICIAL_DIAMOND_REDUCE( 20, "官方消除金币", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ADMIN_OPERATE),
OFFICIAL_CRYSTAL_REDUCE( 21, "官方消除水晶", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL),
OFFICIAL_CRYSTAL_REDUCE( 21, "官方消除水晶", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL, BillDomainTypeEnum.ADMIN_OPERATE),
OFFICIAL_GOLD_REDUCE( 22, "官方消除钻石", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
OFFICIAL_GOLD_REDUCE( 22, "官方消除钻石", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ADMIN_OPERATE),
ACTIVITY_DIAMOND( 23, "活动赠送金币", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
ACTIVITY_DIAMOND( 23, "活动赠送金币", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ACTIVITY),
ACTIVITY_CRYSTAL( 24, "活动赠送水晶", BillTypeEnum.IN, CurrencyEnum.CRYSTAL),
ACTIVITY_CRYSTAL( 24, "活动赠送水晶", BillTypeEnum.IN, CurrencyEnum.CRYSTAL, BillDomainTypeEnum.ACTIVITY),
REJECT_WITHDRAW( 25, "提现驳回钻石返还", BillTypeEnum.IN, CurrencyEnum.GOLD),
REJECT_WITHDRAW( 25, "提现驳回钻石返还", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.WITHDRAW),
OFFICIAL_GOLD_ADD( 26, "官方送金币", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
OFFICIAL_GOLD_ADD( 26, "官方送金币", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ADMIN_OPERATE),
ACTIVITY_PACKET( 27, "活动礼包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
ACTIVITY_PACKET( 27, "活动礼包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ACTIVITY),
ACTIVITY_GOLD( 29, "活动赠送钻石", BillTypeEnum.IN, CurrencyEnum.GOLD),
ACTIVITY_GOLD( 29, "活动赠送钻石", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.ACTIVITY),
BUY_BOX_KEY( 30, "购买玩法门票支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
BUY_BOX_KEY( 30, "购买玩法门票支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
PURCHASE_CAR_GOODS( 31, "购买座驾", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
PURCHASE_CAR_GOODS( 31, "购买座驾", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
GIVE_CAR_GOODS( 32, "座驾赠送", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GIVE_CAR_GOODS( 32, "座驾赠送", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
INTER_SEND_DIAMOND( 35, "官方送钻石", BillTypeEnum.IN, CurrencyEnum.GOLD),
INTER_SEND_DIAMOND( 35, "官方送钻石", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.ADMIN_OPERATE),
SEND_GOLD_IN( 36, "转赠钻石收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
SEND_GOLD_IN( 36, "转赠钻石收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.TRANSFER),
SEND_GOLD_OUT( 37, "转赠钻石支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
SEND_GOLD_OUT( 37, "转赠钻石支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.TRANSFER),
INTER_SEND_CRYSTAL( 38, "官方送水晶", BillTypeEnum.IN, CurrencyEnum.CRYSTAL),
INTER_SEND_CRYSTAL( 38, "官方送水晶", BillTypeEnum.IN, CurrencyEnum.CRYSTAL, BillDomainTypeEnum.ADMIN_OPERATE),
REDPACKET_ROOM( 39, "发出房间红包", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
REDPACKET_SERVER( 40, "发出全服红包", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
REDPACKET_ROOM_BACK( 41, "房间红包退款", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
REDPACKET_SERVER_BACK( 42, "全服红包退款", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
REDPACKET_ROOM_GET( 43, "收到房间红包", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
REDPACKET_SERVER_GET( 44, "收到全服红包", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
ACTIVITY_DIAMOND_OUT( 45, "活动支出金币", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
REDPACKET_ROOM( 39, "发出房间红包", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.RED_BAG),
REDPACKET_SERVER( 40, "发出全服红包", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.RED_BAG),
REDPACKET_ROOM_BACK( 41, "房间红包退款", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.RED_BAG),
REDPACKET_SERVER_BACK( 42, "全服红包退款", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.RED_BAG),
REDPACKET_ROOM_GET( 43, "收到房间红包", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.RED_BAG),
REDPACKET_SERVER_GET( 44, "收到全服红包", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.RED_BAG),
TARO_CHARGE( 59, "塔罗充值", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
ACTIVITY_DIAMOND_OUT( 45, "活动支出金币", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ACTIVITY),
FRIST_CHARGE_REWARD( 62, "首充激励奖励金币", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
TARO_CHARGE( 59, "塔罗充值", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.CHARGE),
CALL_BATTLE( 66, "守护星球礼包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
CALL_BATTLE_REWARD( 67, "守护星球奖励金币", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
FRIST_CHARGE_REWARD( 62, "首充激励奖励金币", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.CHARGE),
OPEN_VIP( 68, "开通贵族", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
CALL_BATTLE( 66, "守护星球礼包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
CALL_BATTLE_REWARD( 67, "守护星球奖励金币", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
HALL_OWNER_SINGLE_ROOM_EARN( 69, "会长个播房流水分成", BillTypeEnum.IN, CurrencyEnum.CRYSTAL),
OPEN_VIP( 68, "开通贵族", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.VIP),
SEEK_ELFIN_PAYMENT( 74, "幸运塔罗支付", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
HALL_OWNER_SINGLE_ROOM_EARN( 69, "会长个播房流水分成", BillTypeEnum.IN, CurrencyEnum.CRYSTAL, BillDomainTypeEnum.SEND_GIFT),
REFUND_REDUCE_DIAMOND( 75, "退款扣除金币", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
REFUND_REDUCE_CRYSTAL( 76, "退款扣除水晶", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL),
REFUND_REDUCE_GOLD( 77, "退款扣除钻石", BillTypeEnum.OUT, CurrencyEnum.GOLD),
SEEK_ELFIN_PAYMENT( 74, "幸运塔罗支付", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ACTIVITY),
PURCHASE_HEADWEAR( 78, "购买头饰", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GIVE_HEADWEAR( 79, "赠送用户头饰", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
PURCHASE_NAMEPLATE( 80, "购买铭牌", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GIVE_NAMEPLATE( 81, "赠送用户铭牌", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
PURCHASE_INFO_CARD( 82, "购买资料卡", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GIVE_INFO_CARD( 83, "赠送用户资料卡", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
PURCHASE_CHAT_BUBBLE( 84, "购买聊天气泡", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GIVE_CHAT_BUBBLE( 85, "赠送用户聊天气泡", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
REFUND_REDUCE_DIAMOND( 75, "退款扣除金币", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.REFUND),
REFUND_REDUCE_CRYSTAL( 76, "退款扣除水晶", BillTypeEnum.OUT, CurrencyEnum.CRYSTAL, BillDomainTypeEnum.REFUND),
REFUND_REDUCE_GOLD( 77, "退款扣除钻石", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.REFUND),
SHIP_ANTICS_PACK( 86, "航海冒险礼包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
PURCHASE_HEADWEAR( 78, "购买头饰", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
GIVE_HEADWEAR( 79, "赠送用户头饰", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
PURCHASE_NAMEPLATE( 80, "购买铭牌", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
GIVE_NAMEPLATE( 81, "赠送用户铭牌", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
PURCHASE_INFO_CARD( 82, "购买资料卡", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
GIVE_INFO_CARD( 83, "赠送用户资料卡", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
PURCHASE_CHAT_BUBBLE( 84, "购买聊天气泡", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
GIVE_CHAT_BUBBLE( 85, "赠送用户聊天气泡", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
ACTIVITY_LUCKY_SEA_DRAW( 87, "星级厨房抽奖", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
ACTIVITY_LUCKY_SEA_DIAMOND_IN( 88, "星级厨房奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
SHIP_ANTICS_PACK( 86, "航海冒险礼包支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
SEND_DIAMOND_IN( 89, "转赠金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
SEND_DIAMOND_OUT( 90, "转赠金币支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
RECEIVE_USER_GIFT( 91, "转赠礼物收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
CLAN_GOLD_SETTLEMENT_OUT( 92, "公会钻石结算支出", BillTypeEnum.OUT, CurrencyEnum.GOLD),
CLAN_GOLD_SETTLEMENT_IN( 93, "公会钻石结算收入", BillTypeEnum.IN, CurrencyEnum.GOLD),
JOIN_CLAN_CLEAR_GOLD_OUT( 94, "加入公会钻石清零", BillTypeEnum.OUT, CurrencyEnum.GOLD),
ACTIVITY_NEW_YEAR_FIREWORK_DRAW( 95, "新年烟花抽奖", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
ACTIVITY_LUCKY_SEA_DRAW( 87, "星级厨房抽奖", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
ACTIVITY_LUCKY_SEA_DIAMOND_IN( 88, "星级厨房奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
SEEK_ELFIN_REWARD_DIAMOND( 96, "幸运塔罗中奖奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
SEND_DIAMOND_IN( 89, "转赠金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.TRANSFER),
SEND_DIAMOND_OUT( 90, "转赠金币支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.TRANSFER),
RECEIVE_USER_GIFT( 91, "转赠礼物收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.TRANSFER),
CLAN_GOLD_SETTLEMENT_OUT( 92, "公会钻石结算支出", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.GUILD),
CLAN_GOLD_SETTLEMENT_IN( 93, "公会钻石结算收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.GUILD),
JOIN_CLAN_CLEAR_GOLD_OUT( 94, "加入公会钻石清零", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.GUILD),
ACTIVITY_NEW_YEAR_FIREWORK_DRAW( 95, "新年烟花抽奖", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ACTIVITY),
ACTIVITY_VALENTINE_CP_BUY_KEEPSAKE( 97, "情人节CP购买信物", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
ACTIVITY_SEIZE_TREASURE_PACK( 98, "精灵碎片购买", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
FIND_LOVE_DRAW( 99, "寻爱之旅抽奖", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
SEEK_ELFIN_REWARD_DIAMOND( 96, "幸运塔罗中奖奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ACTIVITY),
CLEAR_USER_GOLD( 100, "官方清除钻石", BillTypeEnum.OUT, CurrencyEnum.GOLD),
ACTIVITY_VALENTINE_CP_BUY_KEEPSAKE( 97, "情人节CP购买信物", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ACTIVITY),
ACTIVITY_SEIZE_TREASURE_PACK( 98, "精灵碎片购买", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
FIND_LOVE_DRAW( 99, "寻爱之旅抽奖", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
OPEN_VIP_WITH_DIAMOND( 101, "金币开通贵族", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
CLEAR_USER_GOLD( 100, "官方清除钻石", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.ADMIN_OPERATE),
MID_AUTUMN_JACKPOT_ALLOT_DIAMOND_IN( 102, "2023中秋活动奖池瓜分", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
OPEN_VIP_WITH_DIAMOND( 101, "金币开通贵族", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.VIP),
INVITE_FISSION_BEINVITE_REAWARD( 103, "邀请裂变活动被邀请奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
INVITE_FISSION_INVITE_REAWARD( 104, "邀请裂变活动直接邀请奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
INVITE_FISSION_RECHARGE_INVITE_REAWARD( 105, "邀请裂变活动直接邀请储值返点", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
INVITE_FISSION_RECHARGE_INDIRECT_REAWARD( 106, "邀请裂变活动间接邀请储值返点", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
MID_AUTUMN_JACKPOT_ALLOT_DIAMOND_IN( 102, "2023中秋活动奖池瓜分", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.ACTIVITY),
SUPER_LUCKY_GIFT_INCOME_ALLOT( 107, "超级幸运礼物价值分成", BillTypeEnum.IN, CurrencyEnum.GOLD),
SUPER_LUCKY_GIFT_DIAMOND( 108, "超级幸运礼物金币奖返点", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
INVITE_FISSION_BEINVITE_REAWARD( 103, "邀请裂变活动被邀请奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.INVITE_REWARD),
INVITE_FISSION_INVITE_REAWARD( 104, "邀请裂变活动直接邀请奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.INVITE_REWARD),
INVITE_FISSION_RECHARGE_INVITE_REAWARD( 105, "邀请裂变活动直接邀请储值返点", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.INVITE_REWARD),
INVITE_FISSION_RECHARGE_INDIRECT_REAWARD( 106, "邀请裂变活动间接邀请储值返点", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.INVITE_REWARD),
VIP_RETURN_PROFIT( 109, "VIP等級獎勵", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
SUPER_LUCKY_GIFT_INCOME_ALLOT( 107, "超级幸运礼物价值分成", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.SEND_GIFT),
SUPER_LUCKY_GIFT_DIAMOND( 108, "超级幸运礼物金币奖返点", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.SEND_GIFT),
MINI_GAME_IN( 110, "小遊戲收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
VIP_RETURN_PROFIT( 109, "VIP等級獎勵", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.VIP),
MINI_GAME_OUT( 111, "小遊戲支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
MINI_GAME_IN( 110, "小遊戲收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.MINI_GAME),
PUBLIC_CHAT_TOP_OUT( 112, "購買頭條消耗", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
MINI_GAME_OUT( 111, "小遊戲支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.MINI_GAME),
MINI_GAME_MATCH_ENTER_OUT( 113, "LUDO匹配消耗", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
PUBLIC_CHAT_TOP_OUT( 112, "購買頭條消耗", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PLAY),
MINI_GAME_MATCH_WINNER_IN( 114, "LUDO匹配收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
MINI_GAME_MATCH_ENTER_OUT( 113, "LUDO匹配消耗", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.LUDO_MINI_GAME),
MINI_GAME_MATCH_REFUND_IN( 115, "LUDO匹配退还", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
MINI_GAME_MATCH_WINNER_IN( 114, "LUDO匹配收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.LUDO_MINI_GAME),
GAME_PARTNER_GOLD_IN( 116, "游戏开黑收入", BillTypeEnum.IN, CurrencyEnum.GOLD),
MINI_GAME_MATCH_REFUND_IN( 115, "LUDO匹配退还", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.LUDO_MINI_GAME),
GAME_PARTNER_DIAMOND_OUT( 117, "游戏开黑支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GAME_PARTNER_GOLD_IN( 116, "游戏开黑收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.GAME_PARTNER),
GAME_PARTNER_DIAMOND_OUT( 117, "游戏开黑支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GAME_PARTNER),
GUILD_DIAMOND_WITHDRAW_USD_IN( 118, "公会钻石提现收入", BillTypeEnum.IN, CurrencyEnum.GUILD_USD),
GUILD_DIAMOND_WITHDRAW_USD_OUT( 119, "公会钻石提现支出", BillTypeEnum.OUT, CurrencyEnum.GOLD),
GUILD_DIAMOND_WITHDRAW_USD_IN( 118, "公会钻石提现收入", BillTypeEnum.IN, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_USD),
GUILD_USD_EXCHANGE_GOLD_IN( 120, "公会usd兑换金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
GUILD_USD_EXCHANGE_GOLD_OUT( 121, "公会usd兑换金币支出", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD),
GUILD_DIAMOND_WITHDRAW_USD_OUT( 119, "公会钻石提现支出", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.GUILD_USD),
GUILD_USD_TO_RECHARGE_USER_IN( 122, "公会usd兑换给代储收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
GUILD_USD_TO_RECHARGE_USER_OUT( 123, "公会usd兑换给代储支出", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD),
GUILD_USD_EXCHANGE_GOLD_IN( 120, "公会usd兑换金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GUILD_USD),
GUILD_USD_EXCHANGE_GOLD_OUT( 121, "公会usd兑换金币支出", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_USD),
GUILD_USD_TO_GUILD_OWNER_IN( 124, "公会usd兑换给会长收入", BillTypeEnum.IN, CurrencyEnum.GUILD_USD),
GUILD_USD_TO_GUILD_OWNER_OUT( 125, "公会usd兑换给会长支出", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD),
GUILD_USD_TO_RECHARGE_USER_IN( 122, "公会usd兑换给代储收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GUILD_USD),
GUILD_USD_TO_RECHARGE_USER_OUT( 123, "公会usd兑换给代储支出", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_USD),
CANCEL_CP( 126, "解除cp", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GUILD_USD_TO_GUILD_OWNER_IN( 124, "公会usd兑换给会长收入", BillTypeEnum.IN, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_USD),
GUILD_USD_TO_GUILD_OWNER_OUT( 125, "公会usd兑换给会长支出", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_USD),
FAMILY_DIAMOND_SETTLEMENT( 127, "家族钻石结算", BillTypeEnum.OUT, CurrencyEnum.GOLD),
CANCEL_CP( 126, "解除cp", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.CP),
GUILD_USD_TO_PLATFORM_IN( 128, "公会usd提现驳回", BillTypeEnum.IN, CurrencyEnum.GUILD_USD),
GUILD_USD_TO_PLATFORM_OUT( 129, "公会usd提现支出", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD),
FAMILY_DIAMOND_SETTLEMENT( 127, "家族钻石结算", BillTypeEnum.OUT, CurrencyEnum.GOLD, BillDomainTypeEnum.GUILD),
GUILD_SETTLEMENT_USD_IN( 130, "公会周期结算会长usd收入", BillTypeEnum.IN, CurrencyEnum.GUILD_USD),
SS_GUILD_MONTH_MEMBER_DIAMOND( 131, "SS公会活动奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
GUILD_USD_TO_PLATFORM_IN( 128, "公会usd提现驳回", BillTypeEnum.IN, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_USD),
GUILD_USD_TO_PLATFORM_OUT( 129, "公会usd提现支出", BillTypeEnum.OUT, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_USD),
LEADERCC_GAME_IN(132, "小遊戲收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
GUILD_SETTLEMENT_USD_IN( 130, "公会周期结算会长usd收入", BillTypeEnum.IN, CurrencyEnum.GUILD_USD, BillDomainTypeEnum.GUILD_USD),
SS_GUILD_MONTH_MEMBER_DIAMOND( 131, "SS公会活动奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GUILD),
LEADERCC_GAME_OUT(133, "小遊戲支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
LEADERCC_GAME_IN(132, "小遊戲收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.MINI_GAME),
FAMILY_MEMBER_WEEK_LEVEL_REWARD(134, "主播周奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
GUILD_MEMBER_WEEK_LEVEL_REWARD(135, "主播周奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
LEADERCC_GAME_OUT(133, "小遊戲支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.MINI_GAME),
WEB_SEND_DIAMOND_IN( 136, "WEB转赠金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
WEB_SEND_DIAMOND_OUT( 137, "WEB转赠金币支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
FAMILY_MEMBER_WEEK_LEVEL_REWARD(134, "主播周奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GUILD),
GUILD_MEMBER_WEEK_LEVEL_REWARD(135, "主播周奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.GUILD),
ROOM_BACKGROUND_PAY(138, "购买房间背景", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
ROOM_BACKGROUND_CUSTOM(139, "自定义房间背景", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
ROOM_BACKGROUND_CUSTOM_REJECT(140, "自定义房间背景驳回", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
GUILD_SETTLEMENT_GOLD_IN( 141, "公会周期结算会长钻石收入", BillTypeEnum.IN, CurrencyEnum.GOLD),
WEB_SEND_DIAMOND_IN( 136, "WEB转赠金币收入", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.TRANSFER),
WEB_SEND_DIAMOND_OUT( 137, "WEB转赠金币支出", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.TRANSFER),
PURCHASE_PERSON_PAGE( 142, "购买个人页背景", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
GIVE_PERSON_PAGE( 143, "赠送用户个人页背景", BillTypeEnum.OUT, CurrencyEnum.DIAMOND),
ROOM_BACKGROUND_PAY(138, "购买房间背景", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
ROOM_BACKGROUND_CUSTOM(139, "自定义房间背景", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
ROOM_BACKGROUND_CUSTOM_REJECT(140, "自定义房间背景驳回", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
GUILD_SETTLEMENT_GOLD_IN( 141, "公会周期结算会长钻石收入", BillTypeEnum.IN, CurrencyEnum.GOLD, BillDomainTypeEnum.GUILD),
INVITE_RECHARGE_RECEIVE_REAWARD( 144, "邀请活动奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND),
PURCHASE_PERSON_PAGE( 142, "购买个人页背景", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
GIVE_PERSON_PAGE( 143, "赠送用户个人页背景", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.DRESS_UP_SHOP),
INVITE_RECHARGE_RECEIVE_REAWARD( 144, "邀请活动奖励", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.INVITE_REWARD),
REDENVELOPE_SERVER( 145, "发出全服红包", BillTypeEnum.OUT, CurrencyEnum.DIAMOND, BillDomainTypeEnum.RED_BAG),
REDENVELOPE_BACK( 146, "全服红包退款", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.RED_BAG),
REDENVELOPE_SERVER_GET( 147, "收到全服红包", BillTypeEnum.IN, CurrencyEnum.DIAMOND, BillDomainTypeEnum.RED_BAG),
;
BillObjTypeEnum(int value, String desc, BillTypeEnum type, CurrencyEnum currency) {
BillObjTypeEnum(int value, String desc, BillTypeEnum type, CurrencyEnum currency, BillDomainTypeEnum domain) {
this.value = value;
this.desc = desc;
this.type = type;
this.currency = currency;
this.domain = domain;
}
private final int value;
private final String desc;
private final BillTypeEnum type;
private final CurrencyEnum currency;
private final BillDomainTypeEnum domain;
public static BillObjTypeEnum get(int value) {
Optional<BillObjTypeEnum> result = Arrays.stream(BillObjTypeEnum.values()).filter(eventEnum ->

View File

@@ -0,0 +1,14 @@
package com.accompany.sharding.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class DiamondBillRecordStatVo {
private Integer partitionId;
private Integer objType;
private BigDecimal totalDiamond;
}

View File

@@ -4,6 +4,7 @@ package com.accompany.sharding.mapper;
import com.accompany.sharding.model.BillRecord;
import com.accompany.sharding.vo.BillRecordDateVo;
import com.accompany.sharding.vo.BillRecordGroupVo;
import com.accompany.sharding.vo.DiamondBillRecordStatVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
@@ -62,4 +63,9 @@ public interface BillRecordMapper extends BaseMapper<BillRecord> {
@Param("startTime") Date startTime,
@Param("endTime") Date endTime,
@Param("zoneIdHour") long zoneIdHour);
List<DiamondBillRecordStatVo> statDiamondBillRecord(@Param("partitionIds") List<Integer> partitionIds,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime);
}

View File

@@ -119,4 +119,16 @@
group by `date`
</select>
<select id="statDiamondBillRecord" resultType="com.accompany.sharding.vo.DiamondBillRecordStatVo">
select u.partition_id,
br.obj_type,
sum(br.amount) `total_diamond`
from bill_record br
inner join users u on br.uid = u.uid
and u.partition_id in <foreach item="id" index="index" collection="partitionIds" open="(" close=")" separator=",">#{id}</foreach>
and br.create_time >= #{startTime} and br.create_time &lt;= #{endTime}
and br.currency = 1
group by u.partition_id, br.obj_type
</select>
</mapper>

View File

@@ -0,0 +1,18 @@
package com.accompany.business.dto;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class DiamondStatDto {
private Integer partitionId;
private BigDecimal totalDiamond;
private Integer domainType;
private String domainDesc;
private BigDecimal addDiamond;
private BigDecimal subDiamond;
}

View File

@@ -0,0 +1,30 @@
package com.accompany.business.model;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class DiamondStat {
@TableId
private String date;
private BigDecimal totalDiamond;
private BigDecimal enDiamond;
private String enDomainDetail;
private BigDecimal arDiamond;
private String arDomainDetail;
private BigDecimal zhDiamond;
private String zhDomainDetail;
private BigDecimal trDiamond;
private String trDomainDetail;
private BigDecimal totalRemainDiamond;
private BigDecimal enRemainDiamond;
private BigDecimal arRemainDiamond;
private BigDecimal zhRemainDiamond;
private BigDecimal trRemainDiamond;
}

View File

@@ -1,741 +0,0 @@
package com.accompany.business.model;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class UserPurseExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public UserPurseExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andUidIsNull() {
addCriterion("uid is null");
return (Criteria) this;
}
public Criteria andUidIsNotNull() {
addCriterion("uid is not null");
return (Criteria) this;
}
public Criteria andUidEqualTo(Long value) {
addCriterion("uid =", value, "uid");
return (Criteria) this;
}
public Criteria andUidNotEqualTo(Long value) {
addCriterion("uid <>", value, "uid");
return (Criteria) this;
}
public Criteria andUidGreaterThan(Long value) {
addCriterion("uid >", value, "uid");
return (Criteria) this;
}
public Criteria andUidGreaterThanOrEqualTo(Long value) {
addCriterion("uid >=", value, "uid");
return (Criteria) this;
}
public Criteria andUidLessThan(Long value) {
addCriterion("uid <", value, "uid");
return (Criteria) this;
}
public Criteria andUidLessThanOrEqualTo(Long value) {
addCriterion("uid <=", value, "uid");
return (Criteria) this;
}
public Criteria andUidIn(List<Long> values) {
addCriterion("uid in", values, "uid");
return (Criteria) this;
}
public Criteria andUidNotIn(List<Long> values) {
addCriterion("uid not in", values, "uid");
return (Criteria) this;
}
public Criteria andUidBetween(Long value1, Long value2) {
addCriterion("uid between", value1, value2, "uid");
return (Criteria) this;
}
public Criteria andUidNotBetween(Long value1, Long value2) {
addCriterion("uid not between", value1, value2, "uid");
return (Criteria) this;
}
public Criteria andChargeGoldNumIsNull() {
addCriterion("charge_gold_num is null");
return (Criteria) this;
}
public Criteria andChargeGoldNumIsNotNull() {
addCriterion("charge_gold_num is not null");
return (Criteria) this;
}
public Criteria andChargeGoldNumEqualTo(Long value) {
addCriterion("charge_gold_num =", value, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andChargeGoldNumNotEqualTo(Long value) {
addCriterion("charge_gold_num <>", value, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andChargeGoldNumGreaterThan(Long value) {
addCriterion("charge_gold_num >", value, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andChargeGoldNumGreaterThanOrEqualTo(Long value) {
addCriterion("charge_gold_num >=", value, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andChargeGoldNumLessThan(Long value) {
addCriterion("charge_gold_num <", value, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andChargeGoldNumLessThanOrEqualTo(Long value) {
addCriterion("charge_gold_num <=", value, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andChargeGoldNumIn(List<Long> values) {
addCriterion("charge_gold_num in", values, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andChargeGoldNumNotIn(List<Long> values) {
addCriterion("charge_gold_num not in", values, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andChargeGoldNumBetween(Long value1, Long value2) {
addCriterion("charge_gold_num between", value1, value2, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andChargeGoldNumNotBetween(Long value1, Long value2) {
addCriterion("charge_gold_num not between", value1, value2, "chargeGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumIsNull() {
addCriterion("noble_gold_num is null");
return (Criteria) this;
}
public Criteria andNobleGoldNumIsNotNull() {
addCriterion("noble_gold_num is not null");
return (Criteria) this;
}
public Criteria andNobleGoldNumEqualTo(Long value) {
addCriterion("noble_gold_num =", value, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumNotEqualTo(Long value) {
addCriterion("noble_gold_num <>", value, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumGreaterThan(Long value) {
addCriterion("noble_gold_num >", value, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumGreaterThanOrEqualTo(Long value) {
addCriterion("noble_gold_num >=", value, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumLessThan(Long value) {
addCriterion("noble_gold_num <", value, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumLessThanOrEqualTo(Long value) {
addCriterion("noble_gold_num <=", value, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumIn(List<Long> values) {
addCriterion("noble_gold_num in", values, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumNotIn(List<Long> values) {
addCriterion("noble_gold_num not in", values, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumBetween(Long value1, Long value2) {
addCriterion("noble_gold_num between", value1, value2, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andNobleGoldNumNotBetween(Long value1, Long value2) {
addCriterion("noble_gold_num not between", value1, value2, "nobleGoldNum");
return (Criteria) this;
}
public Criteria andGoldNumIsNull() {
addCriterion("gold_num is null");
return (Criteria) this;
}
public Criteria andGoldNumIsNotNull() {
addCriterion("gold_num is not null");
return (Criteria) this;
}
public Criteria andGoldNumEqualTo(Long value) {
addCriterion("gold_num =", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumNotEqualTo(Long value) {
addCriterion("gold_num <>", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumGreaterThan(Long value) {
addCriterion("gold_num >", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumGreaterThanOrEqualTo(Long value) {
addCriterion("gold_num >=", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumLessThan(Long value) {
addCriterion("gold_num <", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumLessThanOrEqualTo(Long value) {
addCriterion("gold_num <=", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumIn(List<Long> values) {
addCriterion("gold_num in", values, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumNotIn(List<Long> values) {
addCriterion("gold_num not in", values, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumBetween(Long value1, Long value2) {
addCriterion("gold_num between", value1, value2, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumNotBetween(Long value1, Long value2) {
addCriterion("gold_num not between", value1, value2, "goldNum");
return (Criteria) this;
}
public Criteria andDiamondNumIsNull() {
addCriterion("diamond_num is null");
return (Criteria) this;
}
public Criteria andDiamondNumIsNotNull() {
addCriterion("diamond_num is not null");
return (Criteria) this;
}
public Criteria andDiamondNumEqualTo(Double value) {
addCriterion("diamond_num =", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumNotEqualTo(Double value) {
addCriterion("diamond_num <>", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumGreaterThan(Double value) {
addCriterion("diamond_num >", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumGreaterThanOrEqualTo(Double value) {
addCriterion("diamond_num >=", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumLessThan(Double value) {
addCriterion("diamond_num <", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumLessThanOrEqualTo(Double value) {
addCriterion("diamond_num <=", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumIn(List<Double> values) {
addCriterion("diamond_num in", values, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumNotIn(List<Double> values) {
addCriterion("diamond_num not in", values, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumBetween(Double value1, Double value2) {
addCriterion("diamond_num between", value1, value2, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumNotBetween(Double value1, Double value2) {
addCriterion("diamond_num not between", value1, value2, "diamondNum");
return (Criteria) this;
}
public Criteria andDepositNumIsNull() {
addCriterion("deposit_num is null");
return (Criteria) this;
}
public Criteria andDepositNumIsNotNull() {
addCriterion("deposit_num is not null");
return (Criteria) this;
}
public Criteria andDepositNumEqualTo(Long value) {
addCriterion("deposit_num =", value, "depositNum");
return (Criteria) this;
}
public Criteria andDepositNumNotEqualTo(Long value) {
addCriterion("deposit_num <>", value, "depositNum");
return (Criteria) this;
}
public Criteria andDepositNumGreaterThan(Long value) {
addCriterion("deposit_num >", value, "depositNum");
return (Criteria) this;
}
public Criteria andDepositNumGreaterThanOrEqualTo(Long value) {
addCriterion("deposit_num >=", value, "depositNum");
return (Criteria) this;
}
public Criteria andDepositNumLessThan(Long value) {
addCriterion("deposit_num <", value, "depositNum");
return (Criteria) this;
}
public Criteria andDepositNumLessThanOrEqualTo(Long value) {
addCriterion("deposit_num <=", value, "depositNum");
return (Criteria) this;
}
public Criteria andDepositNumIn(List<Long> values) {
addCriterion("deposit_num in", values, "depositNum");
return (Criteria) this;
}
public Criteria andDepositNumNotIn(List<Long> values) {
addCriterion("deposit_num not in", values, "depositNum");
return (Criteria) this;
}
public Criteria andDepositNumBetween(Long value1, Long value2) {
addCriterion("deposit_num between", value1, value2, "depositNum");
return (Criteria) this;
}
public Criteria andDepositNumNotBetween(Long value1, Long value2) {
addCriterion("deposit_num not between", value1, value2, "depositNum");
return (Criteria) this;
}
public Criteria andIsFirstChargeIsNull() {
addCriterion("is_first_charge is null");
return (Criteria) this;
}
public Criteria andIsFirstChargeIsNotNull() {
addCriterion("is_first_charge is not null");
return (Criteria) this;
}
public Criteria andIsFirstChargeEqualTo(Boolean value) {
addCriterion("is_first_charge =", value, "isFirstCharge");
return (Criteria) this;
}
public Criteria andIsFirstChargeNotEqualTo(Boolean value) {
addCriterion("is_first_charge <>", value, "isFirstCharge");
return (Criteria) this;
}
public Criteria andIsFirstChargeGreaterThan(Boolean value) {
addCriterion("is_first_charge >", value, "isFirstCharge");
return (Criteria) this;
}
public Criteria andIsFirstChargeGreaterThanOrEqualTo(Boolean value) {
addCriterion("is_first_charge >=", value, "isFirstCharge");
return (Criteria) this;
}
public Criteria andIsFirstChargeLessThan(Boolean value) {
addCriterion("is_first_charge <", value, "isFirstCharge");
return (Criteria) this;
}
public Criteria andIsFirstChargeLessThanOrEqualTo(Boolean value) {
addCriterion("is_first_charge <=", value, "isFirstCharge");
return (Criteria) this;
}
public Criteria andIsFirstChargeIn(List<Boolean> values) {
addCriterion("is_first_charge in", values, "isFirstCharge");
return (Criteria) this;
}
public Criteria andIsFirstChargeNotIn(List<Boolean> values) {
addCriterion("is_first_charge not in", values, "isFirstCharge");
return (Criteria) this;
}
public Criteria andIsFirstChargeBetween(Boolean value1, Boolean value2) {
addCriterion("is_first_charge between", value1, value2, "isFirstCharge");
return (Criteria) this;
}
public Criteria andIsFirstChargeNotBetween(Boolean value1, Boolean value2) {
addCriterion("is_first_charge not between", value1, value2, "isFirstCharge");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeIsNull() {
addCriterion("first_recharge_time is null");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeIsNotNull() {
addCriterion("first_recharge_time is not null");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeEqualTo(Date value) {
addCriterion("first_recharge_time =", value, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeNotEqualTo(Date value) {
addCriterion("first_recharge_time <>", value, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeGreaterThan(Date value) {
addCriterion("first_recharge_time >", value, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeGreaterThanOrEqualTo(Date value) {
addCriterion("first_recharge_time >=", value, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeLessThan(Date value) {
addCriterion("first_recharge_time <", value, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeLessThanOrEqualTo(Date value) {
addCriterion("first_recharge_time <=", value, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeIn(List<Date> values) {
addCriterion("first_recharge_time in", values, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeNotIn(List<Date> values) {
addCriterion("first_recharge_time not in", values, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeBetween(Date value1, Date value2) {
addCriterion("first_recharge_time between", value1, value2, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andFirstRechargeTimeNotBetween(Date value1, Date value2) {
addCriterion("first_recharge_time not between", value1, value2, "firstRechargeTime");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNull() {
addCriterion("update_time is null");
return (Criteria) this;
}
public Criteria andUpdateTimeIsNotNull() {
addCriterion("update_time is not null");
return (Criteria) this;
}
public Criteria andUpdateTimeEqualTo(Date value) {
addCriterion("update_time =", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotEqualTo(Date value) {
addCriterion("update_time <>", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThan(Date value) {
addCriterion("update_time >", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("update_time >=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThan(Date value) {
addCriterion("update_time <", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
addCriterion("update_time <=", value, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeIn(List<Date> values) {
addCriterion("update_time in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotIn(List<Date> values) {
addCriterion("update_time not in", values, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeBetween(Date value1, Date value2) {
addCriterion("update_time between", value1, value2, "updateTime");
return (Criteria) this;
}
public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
addCriterion("update_time not between", value1, value2, "updateTime");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

View File

@@ -1,66 +0,0 @@
package com.accompany.business.model;
import java.util.Date;
public class UserPurseStatistics {
private Long statId;
private Long goldNum;
private Double diamondNum;
private Double backpackGoldNum;
private Date createTime;
public Long getStatId() {
return statId;
}
public void setStatId(Long statId) {
this.statId = statId;
}
public Long getGoldNum() {
return goldNum;
}
public void setGoldNum(Long goldNum) {
this.goldNum = goldNum;
}
public Double getDiamondNum() {
return diamondNum;
}
public void setDiamondNum(Double diamondNum) {
this.diamondNum = diamondNum;
}
public Double getBackpackGoldNum() {
return backpackGoldNum;
}
public void setBackpackGoldNum(Double backpackGoldNum) {
this.backpackGoldNum = backpackGoldNum;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public String toString() {
return "UserPurseStatistics{" +
"statId=" + statId +
", goldNum=" + goldNum +
", diamondNum=" + diamondNum +
", backpackGoldNum=" + backpackGoldNum +
", createTime=" + createTime +
'}';
}
}

View File

@@ -1,521 +0,0 @@
package com.accompany.business.model;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class UserPurseStatisticsExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
private Integer limit;
private Integer offset;
public UserPurseStatisticsExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
public Integer getLimit() {
return limit;
}
public void setOffset(Integer offset) {
this.offset = offset;
}
public Integer getOffset() {
return offset;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andStatIdIsNull() {
addCriterion("stat_id is null");
return (Criteria) this;
}
public Criteria andStatIdIsNotNull() {
addCriterion("stat_id is not null");
return (Criteria) this;
}
public Criteria andStatIdEqualTo(Long value) {
addCriterion("stat_id =", value, "statId");
return (Criteria) this;
}
public Criteria andStatIdNotEqualTo(Long value) {
addCriterion("stat_id <>", value, "statId");
return (Criteria) this;
}
public Criteria andStatIdGreaterThan(Long value) {
addCriterion("stat_id >", value, "statId");
return (Criteria) this;
}
public Criteria andStatIdGreaterThanOrEqualTo(Long value) {
addCriterion("stat_id >=", value, "statId");
return (Criteria) this;
}
public Criteria andStatIdLessThan(Long value) {
addCriterion("stat_id <", value, "statId");
return (Criteria) this;
}
public Criteria andStatIdLessThanOrEqualTo(Long value) {
addCriterion("stat_id <=", value, "statId");
return (Criteria) this;
}
public Criteria andStatIdIn(List<Long> values) {
addCriterion("stat_id in", values, "statId");
return (Criteria) this;
}
public Criteria andStatIdNotIn(List<Long> values) {
addCriterion("stat_id not in", values, "statId");
return (Criteria) this;
}
public Criteria andStatIdBetween(Long value1, Long value2) {
addCriterion("stat_id between", value1, value2, "statId");
return (Criteria) this;
}
public Criteria andStatIdNotBetween(Long value1, Long value2) {
addCriterion("stat_id not between", value1, value2, "statId");
return (Criteria) this;
}
public Criteria andGoldNumIsNull() {
addCriterion("gold_num is null");
return (Criteria) this;
}
public Criteria andGoldNumIsNotNull() {
addCriterion("gold_num is not null");
return (Criteria) this;
}
public Criteria andGoldNumEqualTo(Long value) {
addCriterion("gold_num =", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumNotEqualTo(Long value) {
addCriterion("gold_num <>", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumGreaterThan(Long value) {
addCriterion("gold_num >", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumGreaterThanOrEqualTo(Long value) {
addCriterion("gold_num >=", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumLessThan(Long value) {
addCriterion("gold_num <", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumLessThanOrEqualTo(Long value) {
addCriterion("gold_num <=", value, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumIn(List<Long> values) {
addCriterion("gold_num in", values, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumNotIn(List<Long> values) {
addCriterion("gold_num not in", values, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumBetween(Long value1, Long value2) {
addCriterion("gold_num between", value1, value2, "goldNum");
return (Criteria) this;
}
public Criteria andGoldNumNotBetween(Long value1, Long value2) {
addCriterion("gold_num not between", value1, value2, "goldNum");
return (Criteria) this;
}
public Criteria andDiamondNumIsNull() {
addCriterion("diamond_num is null");
return (Criteria) this;
}
public Criteria andDiamondNumIsNotNull() {
addCriterion("diamond_num is not null");
return (Criteria) this;
}
public Criteria andDiamondNumEqualTo(Double value) {
addCriterion("diamond_num =", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumNotEqualTo(Double value) {
addCriterion("diamond_num <>", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumGreaterThan(Double value) {
addCriterion("diamond_num >", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumGreaterThanOrEqualTo(Double value) {
addCriterion("diamond_num >=", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumLessThan(Double value) {
addCriterion("diamond_num <", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumLessThanOrEqualTo(Double value) {
addCriterion("diamond_num <=", value, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumIn(List<Double> values) {
addCriterion("diamond_num in", values, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumNotIn(List<Double> values) {
addCriterion("diamond_num not in", values, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumBetween(Double value1, Double value2) {
addCriterion("diamond_num between", value1, value2, "diamondNum");
return (Criteria) this;
}
public Criteria andDiamondNumNotBetween(Double value1, Double value2) {
addCriterion("diamond_num not between", value1, value2, "diamondNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumIsNull() {
addCriterion("backpack_gold_num is null");
return (Criteria) this;
}
public Criteria andBackpackGoldNumIsNotNull() {
addCriterion("backpack_gold_num is not null");
return (Criteria) this;
}
public Criteria andBackpackGoldNumEqualTo(Double value) {
addCriterion("backpack_gold_num =", value, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumNotEqualTo(Double value) {
addCriterion("backpack_gold_num <>", value, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumGreaterThan(Double value) {
addCriterion("backpack_gold_num >", value, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumGreaterThanOrEqualTo(Double value) {
addCriterion("backpack_gold_num >=", value, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumLessThan(Double value) {
addCriterion("backpack_gold_num <", value, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumLessThanOrEqualTo(Double value) {
addCriterion("backpack_gold_num <=", value, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumIn(List<Double> values) {
addCriterion("backpack_gold_num in", values, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumNotIn(List<Double> values) {
addCriterion("backpack_gold_num not in", values, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumBetween(Double value1, Double value2) {
addCriterion("backpack_gold_num between", value1, value2, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andBackpackGoldNumNotBetween(Double value1, Double value2) {
addCriterion("backpack_gold_num not between", value1, value2, "backpackGoldNum");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

View File

@@ -0,0 +1,16 @@
package com.accompany.business.mybatismapper;
import com.accompany.business.dto.DiamondStatDto;
import com.accompany.business.model.DiamondStat;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface DiamondStatMapper extends BaseMapper<DiamondStat> {
List<DiamondStatDto> statRemainDiamond(@Param("partitionIds") List<Integer> partitionIds);
}

View File

@@ -41,4 +41,5 @@ public interface UserPurseMapper extends BaseMapper<UserPurse> {
int excGoldToGuildUsd(@Param("uid") Long uid, @Param("goldNum") Double goldNum, @Param("guildUsdNum") Double guildUsdNum);
UserPurse queryByUid(@Param("uid") Long uid);
}

View File

@@ -1,22 +0,0 @@
package com.accompany.business.mybatismapper;
import com.accompany.business.model.FinanceGoldDiamond;
import org.apache.ibatis.annotations.Param;
public interface UserPurseMapperExpand {
Long getAllUserNum ( );
Long getConsumeUserNum ( );
int updatePurseGold(@Param("num") Long num, @Param("uid") Long uid);
int updatePurseDiamond(@Param("num") Double num, @Param("uid") Long uid);
/**
* 统计所有用户的金币钻石总余额
*
* @return
*/
FinanceGoldDiamond getAllUserTypeNum();
}

View File

@@ -1,42 +0,0 @@
package com.accompany.business.mybatismapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
public interface UserPurseMapperMgr {
int updateAddDiamonds(@Param("uid") Long uid, @Param("goldNum") Long goldNum);
/**
* 扣减普通金币
*
* @param uid
* @param goldNum
* @return
*/
int updateMinusDiamonds(@Param("uid") Long uid, @Param("goldNum") Long goldNum);
int updateAddCrystals(@Param("uid") Long uid, @Param("diamondNum") double diamondNum);
int updateMinusCrystals(@Param("uid") Long uid, @Param("diamondNum") double diamondNum);
int updateAddGolds(@Param("uid") Long uid, @Param("num") double num);
int updateMinusGolds(@Param("uid") Long uid, @Param("num") double num);
/**
* 兑换钻石为金币
*
* @param uid
* @param diamonNum
* @param goldNum
* @return
*/
int exchangeGoldsToDiamonds(@Param("uid") Long uid, @Param("diamonNum") Double diamonNum, @Param("goldNum") Double goldNum);
int exchangeCrystalsToDiamonds(@Param("uid") Long uid, @Param("diamonNum") Double diamonNum, @Param("goldNum") Double goldNum);
Map<String, Object> sumGoldNumAndDiamondNum();
}

View File

@@ -1,31 +0,0 @@
package com.accompany.business.mybatismapper;
import com.accompany.business.model.UserPurseStatistics;
import com.accompany.business.model.UserPurseStatisticsExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserPurseStatisticsMapper {
int countByExample(UserPurseStatisticsExample example);
int deleteByExample(UserPurseStatisticsExample example);
int deleteByPrimaryKey(Long statId);
int insert(UserPurseStatistics record);
int insertSelective(UserPurseStatistics record);
List<UserPurseStatistics> selectByExample(UserPurseStatisticsExample example);
UserPurseStatistics selectByPrimaryKey(Long statId);
int updateByExampleSelective(@Param("record") UserPurseStatistics record, @Param("example") UserPurseStatisticsExample example);
int updateByExample(@Param("record") UserPurseStatistics record, @Param("example") UserPurseStatisticsExample example);
int updateByPrimaryKeySelective(UserPurseStatistics record);
int updateByPrimaryKey(UserPurseStatistics record);
}

View File

@@ -0,0 +1,129 @@
package com.accompany.business.service;
import com.accompany.business.dto.DiamondStatDto;
import com.accompany.business.model.DiamondStat;
import com.accompany.business.mybatismapper.DiamondStatMapper;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.enumeration.BillDomainTypeEnum;
import com.accompany.core.enumeration.BillObjTypeEnum;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.sharding.mapper.BillRecordMapper;
import com.accompany.sharding.vo.DiamondBillRecordStatVo;
import com.alibaba.fastjson.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class DiamondStatService {
@Autowired
private DiamondStatMapper diamondStatMapper;
@Autowired
private BillRecordMapper billRecordMapper;
public void stat(List<Integer> partitionIds){
List<DiamondStatDto> diamondStatDtoList = diamondStatMapper.statRemainDiamond(partitionIds);
Map<Integer, DiamondStatDto> diamondStatDtoMap = !CollectionUtils.isEmpty(diamondStatDtoList)?
diamondStatDtoList.stream().collect(Collectors.toMap(DiamondStatDto::getPartitionId, d->d)):
Collections.emptyMap();
ZonedDateTime hourAgo = DateTimeUtil.convertWithZoneId(new Date(), PartitionEnum.ENGLISH.getZoneId());
// 获取当天的第一秒
ZonedDateTime startOfDay = hourAgo.withHour(0).withMinute(0).withSecond(0).withNano(0);
Date systemStartTime = DateTimeUtil.converLocalDateTimeToDate(startOfDay.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
// 获取当天的最后一秒
ZonedDateTime endOfDay = hourAgo.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
Date systemEndTime = DateTimeUtil.converLocalDateTimeToDate(endOfDay.withZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());
List<DiamondBillRecordStatVo> diamondBillRecordStatVoList = billRecordMapper.statDiamondBillRecord(partitionIds, systemStartTime, systemEndTime);
Map<Integer, List<DiamondBillRecordStatVo>> diamondBillRecordStatVoMap = !CollectionUtils.isEmpty(diamondBillRecordStatVoList)?
diamondBillRecordStatVoList.stream().collect(Collectors.groupingBy(DiamondBillRecordStatVo::getPartitionId)):
Collections.emptyMap();
String dateStr = hourAgo.format(DateTimeUtil.dateFormatter);
DiamondStat diamondStat = diamondStatMapper.selectById(dateStr);
if (null == diamondStat){
diamondStat = new DiamondStat();
diamondStat.setDate(dateStr);
diamondStat.setTotalDiamond(BigDecimal.ZERO);
diamondStat.setEnDiamond(BigDecimal.ZERO);
diamondStat.setArDiamond(BigDecimal.ZERO);
diamondStat.setZhDiamond(BigDecimal.ZERO);
diamondStat.setTrDiamond(BigDecimal.ZERO);
diamondStat.setTotalRemainDiamond(BigDecimal.ZERO);
diamondStat.setEnRemainDiamond(BigDecimal.ZERO);
diamondStat.setArRemainDiamond(BigDecimal.ZERO);
diamondStat.setZhRemainDiamond(BigDecimal.ZERO);
diamondStat.setTrRemainDiamond(BigDecimal.ZERO);
}
for (Integer partitionId : partitionIds) {
DiamondStatDto statDto = diamondStatDtoMap.get(partitionId);
if (null != statDto){
diamondStat.setTotalRemainDiamond(diamondStat.getTotalRemainDiamond().add(statDto.getTotalDiamond()));
if (PartitionEnum.ENGLISH.getId() == partitionId){
diamondStat.setEnRemainDiamond(statDto.getTotalDiamond());
} else if (PartitionEnum.ARAB.getId() == partitionId) {
diamondStat.setArRemainDiamond(statDto.getTotalDiamond());
} else if (PartitionEnum.CHINESS.getId() == partitionId) {
diamondStat.setZhRemainDiamond(statDto.getTotalDiamond());
} else if (PartitionEnum.TURKEY.getId() == partitionId) {
diamondStat.setArRemainDiamond(statDto.getTotalDiamond());
}
}
List<DiamondBillRecordStatVo> statVoList = diamondBillRecordStatVoMap.get(partitionId);
if (!CollectionUtils.isEmpty(statVoList)){
BigDecimal totalDiamond = BigDecimal.ZERO;
Map<Integer, DiamondStatDto> domainMap = new HashMap<>();
for (DiamondBillRecordStatVo statVo : statVoList){
BillObjTypeEnum billObjTypeEnum = BillObjTypeEnum.get(statVo.getObjType());
BillDomainTypeEnum domainTypeEnum = billObjTypeEnum.getDomain();
DiamondStatDto domainStatDto = domainMap.get(domainTypeEnum.getValue());
if (null == domainStatDto){
domainStatDto = new DiamondStatDto();
domainStatDto.setDomainType(domainTypeEnum.getValue());
domainStatDto.setDomainDesc(domainTypeEnum.getDesc());
domainMap.put(domainTypeEnum.getValue(), domainStatDto);
}
if (BigDecimal.ZERO.compareTo(statVo.getTotalDiamond()) <= 0){
domainStatDto.setAddDiamond(statVo.getTotalDiamond());
} else {
domainStatDto.setSubDiamond(statVo.getTotalDiamond());
}
totalDiamond = totalDiamond.add(statVo.getTotalDiamond());
}
if (PartitionEnum.ENGLISH.getId() == partitionId){
diamondStat.setEnDiamond(totalDiamond);
diamondStat.setEnDomainDetail(JSON.toJSONString(domainMap.values()));
} else if (PartitionEnum.ARAB.getId() == partitionId) {
diamondStat.setArDiamond(totalDiamond);
diamondStat.setArDomainDetail(JSON.toJSONString(domainMap.values()));
} else if (PartitionEnum.CHINESS.getId() == partitionId) {
diamondStat.setZhDiamond(totalDiamond);
diamondStat.setZhDomainDetail(JSON.toJSONString(domainMap.values()));
} else if (PartitionEnum.TURKEY.getId() == partitionId) {
diamondStat.setTrDiamond(totalDiamond);
diamondStat.setTrDomainDetail(JSON.toJSONString(domainMap.values()));
}
}
}
diamondStatMapper.insertOrUpdate(diamondStat);
}
}

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.accompany.business.mybatismapper.DiamondStatMapper">
<select id="statRemainDiamond" resultType="com.accompany.business.dto.DiamondStatDto">
select u.partition_id, sum(up.diamonds) `total_diamond`
from user_purse up
inner join users u on up.uid = u.uid
and u.partition_id in <foreach item="id" index="index" collection="partitionIds" open="(" close=")" separator=",">#{id}</foreach>
where up.diamonds > 0
group by u.partition_id
</select>
</mapper>

View File

@@ -69,9 +69,18 @@
where uid=#{uid} and golds &gt;= #{goldNum};
</update>
<select id="queryByUid" resultType="com.accompany.business.model.UserPurse">
/* SHARDINGSPHERE_HINT: WRITE_ROUTE_ONLY=true */
select * from user_purse where uid = #{uid};
</select>
<select id="queryByUid" resultType="com.accompany.business.model.UserPurse">
/* SHARDINGSPHERE_HINT: WRITE_ROUTE_ONLY=true */
select * from user_purse where uid = #{uid};
</select>
<select id="statRemainDiamond" resultType="com.accompany.business.dto.DiamondStatDto">
select u.partition_id, sum(up.diamonds) `total_diamonds`
from user_purse up
inner join users u on up.uid = u.uid
and u.partition_id in <foreach item="id" index="index" collection="partitionIds" open="(" close=")">#{id}</foreach>
where up.diamonds > 0
group by u.partition_id
</select>
</mapper>

View File

@@ -1,41 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.accompany.business.mybatismapper.UserPurseMapperExpand">
<resultMap id="BaseResultMap" type="com.accompany.business.model.UserPurse">
<id column="uid" property="uid" jdbcType="BIGINT"/>
<result column="gold_num" property="goldNum" jdbcType="BIGINT"/>
<result column="diamond_num" property="diamondNum" jdbcType="DOUBLE"/>
<result column="deposit_num" property="depositNum" jdbcType="BIGINT"/>
<result column="is_first_charge" property="isFirstCharge" jdbcType="BIT"/>
<result column="first_recharge_time" property="firstRechargeTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<!--统计用户量-->
<select id="getAllUserNum" resultType="long">
select COUNT(*) FROM user_purse
</select>
<!--统计已经消费过的用户数量-->
<select id="getConsumeUserNum" resultType="long">
select COUNT(is_first_charge) FROM user_purse where is_first_charge=1
</select>
<update id="updatePurseGold">
update user_purse set gold_num=gold_num + #{num},update_time=now() where uid=#{uid}
</update>
<update id="updatePurseDiamond">
update user_purse set diamond_num=diamond_num + #{num},update_time=now() where uid=#{uid}
</update>
<select id="getAllUserTypeNum" resultType="com.accompany.business.model.FinanceGoldDiamond">
SELECT
sum( charge_gold_num ) as chargeGoldNum,
sum( noble_gold_num ) as nobleGoldNum,
sum( gold_num ) as goldNum,
sum( diamond_num ) as diamondNum
FROM
user_purse
</select>
</mapper>

View File

@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.accompany.business.mybatismapper.UserPurseMapperMgr">
<update id="updateAddDiamonds" parameterType="com.accompany.business.model.UserPurse">
update user_purse set diamonds = diamonds + #{goldNum},update_time=now(),first_charge=0
where uid=#{uid}
</update>
<update id="updateMinusDiamonds" parameterType="com.accompany.business.model.UserPurse">
update user_purse set diamonds=diamonds - #{goldNum},update_time=now()
where uid=#{uid} and diamonds - #{goldNum}>=0
</update>
<update id="updateAddCrystals" parameterType="com.accompany.business.model.UserPurse">
update user_purse set crystals =crystals + #{diamondNum},update_time=now() where uid=#{uid}
</update>
<update id="updateMinusCrystals" parameterType="com.accompany.business.model.UserPurse">
update user_purse set crystals=crystals - #{diamondNum},update_time=now() where uid=#{uid}
and crystals &gt;= #{diamondNum}
</update>
<update id="updateAddGolds" parameterType="com.accompany.business.model.UserPurse">
update user_purse set golds =golds + #{num},update_time=now() where uid=#{uid}
</update>
<update id="updateMinusGolds" parameterType="com.accompany.business.model.UserPurse">
update user_purse set golds=golds - #{num},update_time=now() where uid=#{uid}
and golds &gt;= #{num}
</update>
<update id="exchangeCrystalsToDiamonds" parameterType="com.accompany.business.model.UserPurse">
update user_purse set crystals =crystals - #{diamonNum},diamonds = diamonds + #{goldNum}
, update_time=now() where uid=#{uid} and crystals &gt;= #{diamonNum}
</update>
<update id="exchangeGoldsToDiamonds" parameterType="com.accompany.business.model.UserPurse">
update user_purse set golds = golds - #{diamonNum},diamonds = diamonds + #{goldNum}
, update_time=now() where uid=#{uid} and golds &gt;= #{diamonNum}
</update>
<select id="sumGoldNumAndDiamondNum" resultType="java.util.Map">
select sum(diamonds) as goldNum, sum(crystals) as diamondNum from user_purse
</select>
</mapper>

View File

@@ -1,214 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.accompany.business.mybatismapper.UserPurseStatisticsMapper">
<resultMap id="BaseResultMap" type="com.accompany.business.model.UserPurseStatistics">
<id column="stat_id" jdbcType="BIGINT" property="statId" />
<result column="gold_num" jdbcType="BIGINT" property="goldNum" />
<result column="diamond_num" jdbcType="DOUBLE" property="diamondNum" />
<result column="backpack_gold_num" jdbcType="DOUBLE" property="backpackGoldNum" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
stat_id, gold_num, diamond_num, backpack_gold_num, create_time
</sql>
<select id="selectByExample" parameterType="com.accompany.business.model.UserPurseStatisticsExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
'true' as QUERYID,
<include refid="Base_Column_List" />
from user_purse_statistics
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
<if test="limit != null">
<if test="offset != null">
limit ${offset}, ${limit}
</if>
<if test="offset == null">
limit ${limit}
</if>
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user_purse_statistics
where stat_id = #{statId,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from user_purse_statistics
where stat_id = #{statId,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.accompany.business.model.UserPurseStatisticsExample">
delete from user_purse_statistics
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" keyProperty="statId" parameterType="com.accompany.business.model.UserPurseStatistics" useGeneratedKeys="true">
insert into user_purse_statistics (gold_num, diamond_num, backpack_gold_num,
create_time)
values (#{goldNum,jdbcType=BIGINT}, #{diamondNum,jdbcType=DOUBLE}, #{backpackGoldNum,jdbcType=DOUBLE},
#{createTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" keyProperty="statId" parameterType="com.accompany.business.model.UserPurseStatistics" useGeneratedKeys="true">
insert into user_purse_statistics
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="goldNum != null">
gold_num,
</if>
<if test="diamondNum != null">
diamond_num,
</if>
<if test="backpackGoldNum != null">
backpack_gold_num,
</if>
<if test="createTime != null">
create_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="goldNum != null">
#{goldNum,jdbcType=BIGINT},
</if>
<if test="diamondNum != null">
#{diamondNum,jdbcType=DOUBLE},
</if>
<if test="backpackGoldNum != null">
#{backpackGoldNum,jdbcType=DOUBLE},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.accompany.business.model.UserPurseStatisticsExample" resultType="java.lang.Integer">
select count(*) from user_purse_statistics
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update user_purse_statistics
<set>
<if test="record.statId != null">
stat_id = #{record.statId,jdbcType=BIGINT},
</if>
<if test="record.goldNum != null">
gold_num = #{record.goldNum,jdbcType=BIGINT},
</if>
<if test="record.diamondNum != null">
diamond_num = #{record.diamondNum,jdbcType=DOUBLE},
</if>
<if test="record.backpackGoldNum != null">
backpack_gold_num = #{record.backpackGoldNum,jdbcType=DOUBLE},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update user_purse_statistics
set stat_id = #{record.statId,jdbcType=BIGINT},
gold_num = #{record.goldNum,jdbcType=BIGINT},
diamond_num = #{record.diamondNum,jdbcType=DOUBLE},
backpack_gold_num = #{record.backpackGoldNum,jdbcType=DOUBLE},
create_time = #{record.createTime,jdbcType=TIMESTAMP}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.accompany.business.model.UserPurseStatistics">
update user_purse_statistics
<set>
<if test="goldNum != null">
gold_num = #{goldNum,jdbcType=BIGINT},
</if>
<if test="diamondNum != null">
diamond_num = #{diamondNum,jdbcType=DOUBLE},
</if>
<if test="backpackGoldNum != null">
backpack_gold_num = #{backpackGoldNum,jdbcType=DOUBLE},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
</set>
where stat_id = #{statId,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.accompany.business.model.UserPurseStatistics">
update user_purse_statistics
set gold_num = #{goldNum,jdbcType=BIGINT},
diamond_num = #{diamondNum,jdbcType=DOUBLE},
backpack_gold_num = #{backpackGoldNum,jdbcType=DOUBLE},
create_time = #{createTime,jdbcType=TIMESTAMP}
where stat_id = #{statId,jdbcType=BIGINT}
</update>
</mapper>

View File

@@ -44,29 +44,4 @@ public class BillTask extends BaseTask {
});
log.info("retryBillQueue end ...");
}
@Autowired
private GiftService giftService;
/**
* 礼物上线定时任务
* 每分钟的第1s执行一次
*/
@Scheduled(cron = "1 */1 * * * ?")
public void GiftOnline() {
log.info("onLine gift task start");
int num = giftService.onLineAllInTimeGift();
log.info("onLine gift task end, onLine gift num = {} ", num);
}
/**
* 礼物下线定时任务
* 每分钟的第1s执行一次
*/
@Scheduled(cron = "1 */1 * * * ?")
public void GiftOffline() {
log.info("offLine gift task start");
int num = giftService.offLineAllOutTimeGift();
log.info("offLine gift task end, offLine gift num = {} ", num);
}
}

View File

@@ -0,0 +1,32 @@
package com.accompany.scheduler.task;
import com.accompany.business.service.DiamondStatService;
import com.accompany.core.enumeration.PartitionEnum;
import com.accompany.scheduler.base.BaseTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.*;
@Component
@Slf4j
public class DiamondStatTask extends BaseTask {
@Autowired
private DiamondStatService service;
@Scheduled(cron = "0 0 0 * * ?")
public void statEn() {
List<Integer> partitionIds = List.of(PartitionEnum.ENGLISH.getId(), PartitionEnum.CHINESS.getId());
service.stat(partitionIds);
}
@Scheduled(cron = "0 0 5 * * ?")
public void statAr() {
List<Integer> partitionIds = List.of(PartitionEnum.ARAB.getId(), PartitionEnum.TURKEY.getId());
service.stat(partitionIds);
}
}

View File

@@ -1,24 +0,0 @@
package com.accompany.scheduler.config;
import com.accompany.mq.producer.MQMessageProducer;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author: liaozetao
* @date: 2023/12/13 11:10
* @description:
*/
@Slf4j
@Configuration
@ConditionalOnClass(value = RocketMQTemplate.class)
public class RocketMQConfiguration {
@Bean
public MQMessageProducer mqMessageProducer(RocketMQTemplate rocketMQTemplate) {
return new MQMessageProducer(rocketMQTemplate);
}
}