公会-土耳其-公会水晶-兑换-记录
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package com.accompany.business.model.guildpolicy2;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class GuildCrystalExchangeRecord {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
private String cycleDate;
|
||||
private Integer partitionId;
|
||||
private Long guildMemberId;
|
||||
private Integer guildId;
|
||||
private Byte roleType;
|
||||
private Long uid;
|
||||
private Double crystalNum;
|
||||
private Double diamondNum;
|
||||
private BigDecimal rate;
|
||||
private Date createTime;
|
||||
|
||||
}
|
@@ -0,0 +1,7 @@
|
||||
package com.accompany.business.mapper;
|
||||
|
||||
import com.accompany.business.model.guildpolicy2.GuildCrystalExchangeRecord;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
public interface GuildCrystalExchangeRecordMapper extends BaseMapper<GuildCrystalExchangeRecord> {
|
||||
}
|
@@ -0,0 +1,36 @@
|
||||
package com.accompany.business.service.guildpolicy2;
|
||||
|
||||
import com.accompany.business.mapper.GuildCrystalExchangeRecordMapper;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.model.guildpolicy2.GuildCrystalExchangeRecord;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Service
|
||||
public class GuildCrystalExchangeRecordService extends ServiceImpl<GuildCrystalExchangeRecordMapper, GuildCrystalExchangeRecord> {
|
||||
|
||||
public void insertRecord(Long uid, GuildMember guildMember,
|
||||
Double guildCrystalNumD,
|
||||
Double diamondD,
|
||||
BigDecimal rate,
|
||||
String cycleDate, Date now){
|
||||
|
||||
GuildCrystalExchangeRecord record = new GuildCrystalExchangeRecord();
|
||||
record.setCycleDate(cycleDate);
|
||||
record.setPartitionId(guildMember.getPartitionId());
|
||||
record.setGuildMemberId(guildMember.getId());
|
||||
record.setGuildId(guildMember.getGuildId());
|
||||
record.setRoleType(guildMember.getRoleType());
|
||||
record.setUid(uid);
|
||||
record.setCrystalNum(guildCrystalNumD);
|
||||
record.setDiamondNum(diamondD);
|
||||
record.setRate(rate);
|
||||
record.setCreateTime(now);
|
||||
|
||||
save(record);
|
||||
}
|
||||
|
||||
}
|
@@ -5,6 +5,7 @@ import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.service.guild.GuildMemberService;
|
||||
import com.accompany.business.service.purse.UserPurseService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.business.util.FullMonthCycleTimeUtil;
|
||||
import com.accompany.business.vo.guildpolicy.GuildCrystalExchangeConfigVo;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
@@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@@ -28,6 +30,8 @@ public class GuildCrystalExchangeService {
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private GuildMemberService guildMemberService;
|
||||
@Autowired
|
||||
private GuildCrystalExchangeRecordService recordService;
|
||||
|
||||
private final BigDecimal RATE = BigDecimal.ONE;
|
||||
private final long EXCHANGE_LIMIT = 1000L;
|
||||
@@ -78,6 +82,7 @@ public class GuildCrystalExchangeService {
|
||||
throw new ServiceException(BusiStatus.PARTITION_ERROR);
|
||||
}
|
||||
|
||||
Date now = new Date();
|
||||
Double guildCrystalNumD = guildCrystalNum.doubleValue();
|
||||
|
||||
UserPurse userPurse = userPurseService.queryUserPurse(uid);
|
||||
@@ -90,8 +95,8 @@ public class GuildCrystalExchangeService {
|
||||
Double diamondD = BigDecimal.valueOf(guildCrystalNum).multiply(RATE).doubleValue();
|
||||
userPurseService.excGuildCrystalToDiamond(uid, guildCrystalNumD, diamondD, BusiStatus.PURSE_MONEY_NOT_ENOUGH);
|
||||
|
||||
// todo
|
||||
//insertGuildCrystalExchangeRecord(uid, guildMember, guildCrystalNumD, diamondD, RATE);
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(now, partitionEnum.getZoneId());
|
||||
recordService.insertRecord(uid, guildMember, guildCrystalNumD, diamondD, RATE, cycleDate, now);
|
||||
|
||||
log.info("[guild crystal 兑换] {} guild crystal {} 要兑换的金币数 {} 比率 {} 成功", uid, guildCrystalNum, diamondD, RATE);
|
||||
}
|
||||
|
@@ -7,7 +7,9 @@ import com.accompany.business.mybatismapper.UserPurseMapper;
|
||||
import com.accompany.business.service.guild.GuildMemberService;
|
||||
import com.accompany.business.service.purse.GuildCrystalSettlementPurseService;
|
||||
import com.accompany.business.service.record.BillRecordService;
|
||||
import com.accompany.business.util.FullMonthCycleTimeUtil;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.SneakyThrows;
|
||||
@@ -37,9 +39,11 @@ public class GuildCrystalSettlementService {
|
||||
|
||||
@SneakyThrows
|
||||
public void settlement(Integer partitionId, Date cycleTime, Integer waitSecond) {
|
||||
PartitionEnum partitionEnum = PartitionEnum.getByPartitionId(partitionId);
|
||||
|
||||
//当天零点再前推1秒,相当于昨天23:59:59 给客户端周查询
|
||||
Date now = null == cycleTime? DateTimeUtil.addSeconds(DateTimeUtil.getBeginTimeOfDay(new Date()),-1): DateTimeUtil.getEndTimeOfDay(cycleTime);
|
||||
String cycleDate = DateTimeUtil.convertDate(now, DateTimeUtil.DEFAULT_DATE_PATTERN);
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(now, partitionEnum.getClanMode());
|
||||
|
||||
List<GuildMember> guildMemberList = guildMemberService.listByPartitionId(partitionId);
|
||||
if (CollectionUtils.isEmpty(guildMemberList)){
|
||||
|
Reference in New Issue
Block a user