src/main/java/cc/mrbird/febs/dapp/entity/DappAccountMoneyChangeEntity.java
@@ -54,6 +54,9 @@ private String address; @TableField(exist = false) private String username; @TableField(exist = false) private String startTime; @TableField(exist = false) src/main/java/cc/mrbird/febs/dapp/entity/DappOnHookAward.java
@@ -2,6 +2,7 @@ import cc.mrbird.febs.common.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.util.Date; @@ -16,6 +17,7 @@ private Integer state;//开奖状态 1:一开奖 2:未开奖 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date awardTime;//开奖时间 } src/main/java/cc/mrbird/febs/dapp/service/impl/AdminOperationServiceImpl.java
@@ -88,10 +88,10 @@ throw new FebsException("系统异常,联系开发人员"); } //生成流水记录 DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityIn = new DappAccountMoneyChangeEntity(memberIdOut, dappWalletCoinEntityOut.getTotalAmount().setScale(2,BigDecimal.ROUND_DOWN), DappAccountMoneyChangeEntity dappAccountMoneyChangeEntityIn = new DappAccountMoneyChangeEntity(dappMemberEntityIn.getId(), dappWalletCoinEntityIn.getTotalAmount().setScale(2,BigDecimal.ROUND_DOWN), amount, dappWalletCoinEntityOut.getTotalAmount().setScale(2,BigDecimal.ROUND_DOWN).add(amount), dappWalletCoinEntityIn.getTotalAmount().setScale(2,BigDecimal.ROUND_DOWN).add(amount), "转账", 4); dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntityIn); src/main/java/cc/mrbird/febs/dapp/service/impl/ApiIgtOnHookPlanServiceImpl.java
@@ -31,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @Slf4j @@ -156,7 +157,9 @@ DateTime dateTime = DateUtil.offsetMinute(awardTime, 5); int orderNum = 1; for(String profitPlan : isProfitPlan){ String yyyyMMddHHMM = DateUtil.format(dateTime, "yyyy-MM-dd hh:mm"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String yyyyMMddHHMM = sdf.format(dateTime); DappOnHookAward dappOnHookAwardNext = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM); JSONObject jsonObject = JSONUtil.parseObj(profitPlan); @@ -257,7 +260,9 @@ Long memberId = dappMemberEntity.getId(); ArrayList<ApiAwardInfoVo> apiAwardInfoVos = new ArrayList<>(); DateTime date = DateUtil.date(); String yyyyMMddHHMM = DateUtil.format(date, "yyyy-MM-dd hh:mm"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm"); String yyyyMMddHHMM = sdf.format(date); List<DappOnHookAward> dappOnHookAwards = dappOnHookAwardDao.selectInfoByByAwardTime(yyyyMMddHHMM); if(CollUtil.isNotEmpty(dappOnHookAwards)){ for(DappOnHookAward dappOnHookAward : dappOnHookAwards){ src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -748,18 +748,18 @@ if (ObjectUtil.isEmpty(refererMember)) { return new FebsResponse().fail().message(MessageSourceUtils.getString("register_err_005")); } member = new DappMemberEntity(); member.setUsername(apiAddTeammateDto.getAccount()); member.setPassword(SecureUtil.md5(apiAddTeammateDto.getPassword())); member.setIdentity(DataDictionaryEnum.LEVEL_MB.getCode()); member.setRefererId(member.getInviteId()); dappMemberDao.insert(member); DappMemberEntity memberadd = new DappMemberEntity(); memberadd.setUsername(apiAddTeammateDto.getAccount()); memberadd.setPassword(SecureUtil.md5(apiAddTeammateDto.getPassword())); memberadd.setIdentity(DataDictionaryEnum.LEVEL_MB.getCode()); memberadd.setRefererId(member.getInviteId()); dappMemberDao.insert(memberadd); //更新用户信息 String inviteId = ShareCodeUtil.toSerialCode(member.getId()); member.setInviteId(inviteId); String inviteId = ShareCodeUtil.toSerialCode(memberadd.getId()); memberadd.setInviteId(inviteId); boolean flag = false; String parentId = member.getRefererId(); String parentId = memberadd.getRefererId(); String ids = ""; while (!flag) { ids += ("," + parentId); @@ -772,11 +772,11 @@ flag = true; } } member.setRefererIds(ids); dappMemberDao.updateById(member); memberadd.setRefererIds(ids); dappMemberDao.updateById(memberadd); //初始化账户信息 DappWalletCoinEntity dappWalletCoinEntity = new DappWalletCoinEntity(); dappWalletCoinEntity.setMemberId(member.getId()); dappWalletCoinEntity.setMemberId(memberadd.getId()); dappWalletCoinEntity.setAvailableAmount(AppContants.INIT_MONEY); dappWalletCoinEntity.setFrozenAmount(AppContants.INIT_MONEY); dappWalletCoinEntity.setTotalAmount(AppContants.INIT_MONEY); src/main/java/cc/mrbird/febs/job/OnHookPlanJob.java
@@ -19,6 +19,7 @@ import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.Format; import java.text.SimpleDateFormat; import java.util.List; @Slf4j @@ -167,7 +168,9 @@ DateTime aWardTimeStart = DateUtil.parseDateTime(aWardTime + " 00:00:00"); // DateTime dateTime = DateUtil.offsetMinute(aWardTimeStart, 5); String yyyyMMdd = DateUtil.format(date, "yyyyMMdd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String yyyyMMdd = sdf.format(date); QueryWrapper<DappOnHookAward> dappOnHookAwardQueryWrapper = new QueryWrapper(); dappOnHookAwardQueryWrapper.like("record_num",yyyyMMdd); Integer selectCount = dappOnHookAwardDao.selectCount(dappOnHookAwardQueryWrapper); @@ -177,7 +180,7 @@ Format formatCount = new DecimalFormat("000"); //一般都是将累加的数字当做一些单号的一部分,format要求string int dayMillise = (24 * 60) / 5; for(int i= 0;i < dayMillise;i++){ for(int i= 1;i <= dayMillise;i++){ DappOnHookAward dappOnHookAward = new DappOnHookAward(); int randomInt = RandomUtil.randomInt(10000, 99999); dappOnHookAward.setAwardNum(Integer.toString(randomInt)); @@ -194,7 +197,9 @@ public void updateAwardInfo(){ Log.info("更新挂架开奖记录"); DateTime date = DateUtil.date(); String yyyyMMddHHMM = DateUtil.format(date, "yyyy-MM-dd hh:mm"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String yyyyMMddHHMM = sdf.format(date); DappOnHookAward dappOnHookAward = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM); dappOnHookAward.setState(1); dappOnHookAwardDao.updateById(dappOnHookAward); @@ -209,13 +214,13 @@ public static void main(String[] args) { DateTime date = DateUtil.date(); String aWardTime = DateUtil.format(date, "yyyy-MM-dd"); DateTime aWardTimeStart = DateUtil.parseDateTime(aWardTime + " 00:00:00"); int dayMillise = (24 * 60) / 5; for(int i= 0;i < dayMillise;i++){ System.out.println(aWardTimeStart); aWardTimeStart = DateUtil.offsetMinute(aWardTimeStart, 5); } System.out.println(date); String yyyyMMddHHMM = DateUtil.format(date, "yyyy-MM-dd hh:mm"); System.out.println(yyyyMMddHHMM); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String yyyyMMdd = sdf.format(date); System.out.println(yyyyMMdd); } } src/main/resources/mapper/dapp/DappAccountMoneyChangeDao.xml
@@ -3,11 +3,11 @@ <mapper namespace="cc.mrbird.febs.dapp.mapper.DappAccountMoneyChangeDao"> <select id="selectInPage" resultType="cc.mrbird.febs.dapp.entity.DappAccountMoneyChangeEntity"> select a.*, b.address address from dapp_account_money_change a select a.*, b.username username from dapp_account_money_change a inner join dapp_member b on a.member_id=b.id <where> <if test="record.address !='' and record.address != null"> and (b.address = #{record.address} or b.invite_id=#{record.address}) and (b.username = #{record.address} or b.invite_id=#{record.address}) </if> <if test="record.type != null"> and a.type=#{record.type} src/main/resources/mapper/dapp/DappOnHookAwardDao.xml
@@ -27,6 +27,7 @@ from dapp_on_hook_award a where date_format(a.award_time, '%Y-%m-%d %H:%i') < #{awardTime} order by a.id desc limit 20 </select> src/main/resources/templates/febs/views/dapp/money-change-flow.html
@@ -130,6 +130,7 @@ url: ctx + 'flow/accountMoneyChangeFlow', cols: [[ {field: 'address', title: '地址', minWidth: 150}, {field: 'username', title: '用户名', minWidth: 150}, {field: 'preAmount', title: '变化前金额', minWidth: 100}, {field: 'amount', title: '变化金额', minWidth: 100}, {field: 'afterAmount', title: '变化后金额', minWidth: 100}, src/test/java/cc/mrbird/febs/JunitTest.java
@@ -1,11 +1,17 @@ package cc.mrbird.febs; import cc.mrbird.febs.common.configure.i18n.MessageSourceUtils; import cc.mrbird.febs.common.contants.AppContants; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.dapp.entity.DappMemberEntity; import cc.mrbird.febs.dapp.entity.DappOnHookAward; import cc.mrbird.febs.dapp.entity.DataDictionaryCustom; import cc.mrbird.febs.dapp.entity.IgtOnHookPlanOrderItem; import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; import cc.mrbird.febs.dapp.enumerate.MemberOnHookPlanEnum; import cc.mrbird.febs.dapp.mapper.DappMemberDao; import cc.mrbird.febs.dapp.mapper.DappOnHookAwardDao; import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper; import cc.mrbird.febs.dapp.service.MemberOnHookPlan; import cc.mrbird.febs.job.MineProfitJob; @@ -14,11 +20,13 @@ import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; import com.alibaba.fastjson.JSONObject; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -78,19 +86,27 @@ // @Autowired private DataDictionaryCustomMapper dataDictionaryCustomMapper; @Autowired private RedisUtils redisUtils; @Autowired private DappOnHookAwardDao dappOnHookAwardDao; @Test public void getmember(){ List<DataDictionaryCustom> dataDictionaryCustoms = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.PLAN_F.getType()); LinkedList<Map<String,String>> strings = new LinkedList<>(); for(DataDictionaryCustom dataDictionaryCustom : dataDictionaryCustoms){ Map<String, String> stringStringHashMap = new HashMap<>(); stringStringHashMap.put(dataDictionaryCustom.getDescription(),dataDictionaryCustom.getValue()); strings.add(stringStringHashMap); public void getmember(){//获取下一个开奖 String redisKey = "on_hook_award_id"; String onHookAwardRedisId = redisUtils.getString(redisKey); DappOnHookAward dappOnHookAward = dappOnHookAwardDao.selectById(Long.parseLong(onHookAwardRedisId)); if(ObjectUtil.isEmpty(dappOnHookAward)){ throw new FebsException(MessageSourceUtils.getString("login_err_003")); } Map<String, LinkedList<String>> level_mb = MemberOnHookPlanEnum.valueOf("LEVEL_MB") .getMemberOnHook(Double.valueOf(2),new BigDecimal(0.2),strings); System.out.println(level_mb.toString()); System.out.println(level_mb); Date awardTime = dappOnHookAward.getAwardTime(); System.out.println(awardTime); DateTime dateTime = DateUtil.offsetMinute(awardTime, 5); for(int i =1; i < 100;i++){ String yyyyMMddHHMM = DateUtil.format(dateTime, "yyyy-MM-dd hh:mm"); // DappOnHookAward dappOnHookAwardNext = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM); System.out.println(yyyyMMddHHMM); dateTime = DateUtil.offsetMinute(dateTime, 5); } } }