| | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.LoginUserUtil; |
| | | import cc.mrbird.febs.common.utils.RedisUtils; |
| | | import cc.mrbird.febs.dapp.dto.ApiStartDto; |
| | | import cc.mrbird.febs.dapp.entity.*; |
| | | import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; |
| | | import cc.mrbird.febs.dapp.enumerate.MemberOnHookPlanEnum; |
| | | import cc.mrbird.febs.dapp.mapper.*; |
| | | import cc.mrbird.febs.dapp.service.ApiIgtOnHookPlanService; |
| | | import cc.mrbird.febs.dapp.vo.ApiAwardInfoVo; |
| | | import cc.mrbird.febs.dapp.vo.ApiPlanInfoVo; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.json.JSON; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.HashMap; |
| | | import java.util.LinkedList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | private final DappMemberDao dappMemberDao; |
| | | private final DappAccountMoneyChangeDao dappAccountMoneyChangeDao; |
| | | private final RedisUtils redisUtils; |
| | | private final DappOnHookAwardDao dappOnHookAwardDao; |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public FebsResponse start(ApiStartDto apiStartDto) { |
| | |
| | | if(CollUtil.isEmpty(isProfitPlan)){ |
| | | throw new FebsException(MessageSourceUtils.getString("login_err_003")); |
| | | } |
| | | //获取下一个开奖 |
| | | 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")); |
| | | } |
| | | Date awardTime = dappOnHookAward.getAwardTime(); |
| | | DateTime dateTime = DateUtil.offsetMinute(awardTime, 5); |
| | | int orderNum = 1; |
| | | for(String profitPlan : isProfitPlan){ |
| | | String yyyyMMddHHMM = DateUtil.format(dateTime, "yyyy-MM-dd hh:mm"); |
| | | DappOnHookAward dappOnHookAwardNext = dappOnHookAwardDao.selectByByAwardTime(yyyyMMddHHMM); |
| | | |
| | | JSONObject jsonObject = JSONUtil.parseObj(profitPlan); |
| | | IgtOnHookPlanOrderItem igtOnHookPlanOrderItem = new IgtOnHookPlanOrderItem(); |
| | | igtOnHookPlanOrderItem.setMemberId(memberId); |
| | |
| | | igtOnHookPlanOrderItem.setState(2); |
| | | igtOnHookPlanOrderItem.setPlanCode(planCode); |
| | | igtOnHookPlanOrderItem.setIsGoal(1); |
| | | igtOnHookPlanOrderItem.setBelongNum(dappOnHookAwardNext.getRecordNum()); |
| | | igtOnHookPlanOrderItem.setOrderNum(orderNum); |
| | | igtOnHookPlanOrderItemDao.insert(igtOnHookPlanOrderItem); |
| | | orderNum++; |
| | | dateTime = DateUtil.offsetMinute(dateTime, 5); |
| | | } |
| | | |
| | | DappAccountMoneyChangeEntity dappAccountMoneyChangeEntity = new DappAccountMoneyChangeEntity(memberId, availableAmount, balance |
| | |
| | | return totalProfit; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse awardInfo() { |
| | | DappMemberEntity dappMemberEntity = LoginUserUtil.getAppUser(); |
| | | Long memberId = dappMemberEntity.getId(); |
| | | ArrayList<ApiAwardInfoVo> apiAwardInfoVos = new ArrayList<>(); |
| | | DateTime date = DateUtil.date(); |
| | | String yyyyMMddHHMM = DateUtil.format(date, "yyyy-MM-dd hh:mm"); |
| | | List<DappOnHookAward> dappOnHookAwards = dappOnHookAwardDao.selectInfoByByAwardTime(yyyyMMddHHMM); |
| | | if(CollUtil.isNotEmpty(dappOnHookAwards)){ |
| | | for(DappOnHookAward dappOnHookAward : dappOnHookAwards){ |
| | | ApiAwardInfoVo apiAwardInfoVo = new ApiAwardInfoVo(); |
| | | apiAwardInfoVo.setAwardNum(dappOnHookAward.getAwardNum()); |
| | | apiAwardInfoVo.setRecordNum(dappOnHookAward.getRecordNum()); |
| | | IgtOnHookPlanOrderItem igtOnHookPlanOrderItem = igtOnHookPlanOrderItemDao.selectByMemberIdAndBelongNum(memberId,dappOnHookAward.getRecordNum()); |
| | | if(ObjectUtil.isNotEmpty(igtOnHookPlanOrderItem)){ |
| | | BigDecimal bigDecimal = igtOnHookPlanOrderItem.getAmount().setScale(1, BigDecimal.ROUND_DOWN); |
| | | apiAwardInfoVo.setAmount(bigDecimal.toString()); |
| | | }else{ |
| | | apiAwardInfoVo.setAmount("-"); |
| | | } |
| | | apiAwardInfoVos.add(apiAwardInfoVo); |
| | | } |
| | | } |
| | | return new FebsResponse().success().data(apiAwardInfoVos); |
| | | } |
| | | |
| | | private String getProfitCase(String identity,BigDecimal balance){ |
| | | //匹配会员等级获取对应的收益率 |
| | | List<DataDictionaryCustom> dataDictionaryCustoms = dataDictionaryCustomMapper.selectDicByType(DataDictionaryEnum.LEVEL_MB.getType()); |