List of usage examples for org.hibernate.criterion DetachedCriteria add
public DetachedCriteria add(Criterion criterion)
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
/** * ?/*from ww w. j av a 2 s. co m*/ */ @Override public void doChasePlan(long curPeriodId, Boolean iswonStop) { DetachedCriteria criteria = DetachedCriteria.forClass(ChasePlan.class); criteria.setProjection(Projections.property("id")); if (iswonStop != null) criteria.add(Restrictions.eq("wonStop", iswonStop)); criteria.add(Restrictions.eq("lotteryType", getLottery())); criteria.add(Restrictions.eq("curPeriodId", curPeriodId)); criteria.add(Restrictions.eq("state", ChaseState.RUNNING)); List<Long> list = queryService.findByDetachedCriteria(criteria); if (list != null && !list.isEmpty()) { for (Long chasePlanId : list) { this.handChasePlan(chasePlanId); } } }
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
@Transactional(readOnly = true) public List<I> getCanOpenResults() { DetachedCriteria criteria = DetachedCriteria.forClass(issueDataDao.getEntityClass()); criteria.add(Restrictions.lt("endedTime", new Date())); criteria.add(Restrictions.gt("endedTime", DateUtils.addDays(new Date(), -1))); criteria.add(Restrictions.eq("state", IssueState.ISSUE_SATE_END)); criteria.addOrder(Order.desc("id")); return issueDataDao.findByDetachedCriteria(criteria, true); }
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
/** * ???//ww w . jav a 2s .co m * * @param scheme * */ public void sendUserPrice(S scheme) { // KenoScheme kenoScheme = null; Float bouns = 0.0f; Float scoreRate = 0.0f; scheme.setPrizeSended(true); // zhuhui motify by 2011-05-03 ? scheme.setPrizeSendTime(new Date()); // xxxc motify by 2012-09-03 ?? scheme.setWinningUpdateStatus(WinningUpdateStatus.PRICE_UPDATED); this.schemeDao.save(scheme); if (Lottery.isKeno(scheme.getLotteryType())) {//? System.out.println(scheme.getLotteryType() + "?");//? if (Lottery.SSC.equals(scheme.getLotteryType())) { sscScheme = (SscScheme) scheme; playName = sscScheme.getBetType().getTypeName(); simpleName = Lottery.SSC.getSchemeNumberPrefix(); } else if (Lottery.SDEL11TO5.equals(scheme.getLotteryType())) { sdEl11to5Scheme = (SdEl11to5Scheme) scheme; playName = sdEl11to5Scheme.getBetType().getTypeName(); simpleName = Lottery.SDEL11TO5.getSchemeNumberPrefix(); } else if (Lottery.GDEL11TO5.equals(scheme.getLotteryType())) { gdEl11to5Scheme = (GdEl11to5Scheme) scheme; playName = gdEl11to5Scheme.getBetType().getTypeName(); simpleName = Lottery.GDEL11TO5.getSchemeNumberPrefix(); } else if (Lottery.EL11TO5.equals(scheme.getLotteryType())) { el11to5Scheme = (El11to5Scheme) scheme; playName = el11to5Scheme.getBetType().getTypeName(); simpleName = Lottery.EL11TO5.getSchemeNumberPrefix(); } else if (Lottery.AHKUAI3.equals(scheme.getLotteryType())) { kuaiScheme = (AhKuai3Scheme) scheme; playName = kuaiScheme.getBetType().getTypeName(); simpleName = Lottery.AHKUAI3.getSchemeNumberPrefix(); } else if (Lottery.XJEL11TO5.equals(scheme.getLotteryType())) { xjEl11to5Scheme = (XjEl11to5Scheme) scheme; playName = xjEl11to5Scheme.getBetType().getTypeName(); simpleName = Lottery.XJEL11TO5.getSchemeNumberPrefix(); } DetachedCriteria criteria = DetachedCriteria.forClass(Integral.class, "m"); criteria.add(Restrictions.eq("m.parent", simpleName)); criteria.add(Restrictions.eq("m.playName", playName)); List<Integral> list = integralDao.findByDetachedCriteria(criteria); bouns = list.get(0).getBouns(); scoreRate = list.get(0).getScoreRate(); } PrizeSendType prizeSendType = new DefaultPrizeSendType(scheme);// ? StringBuffer memosb = new StringBuffer(""); if (scheme.getShareType() == ShareType.TOGETHER) { memosb.append("??"); } else if (scheme.isChasePlanScheme()) { memosb.append("?"); } else { memosb.append(""); } memosb.append("[" + scheme.getSchemeNumber() + "]"); memosb.append("?{prize}"); VariableString varReturnMemo = new VariableString(memosb.toString(), null);// ???? // List<Subscription> subscriptionList = findSubscriptionsOfScheme(scheme.getId(), SubscriptionState.NORMAL);// /? BigDecimal actualTotalReturn = BigDecimal.ZERO;// ?? BigDecimal joinPrize; //? BigDecimal schemeCost = BigDecimalUtil.valueOf(scheme.getSchemeCost()); for (Subscription subscription : subscriptionList) { joinPrize = BigDecimalUtil.divide( BigDecimalUtil.multiply(subscription.getCost(), prizeSendType.getTotalReturn()), schemeCost); subscription.setBonusSended(true); subscription.setBonus(joinPrize);// ? subscription = subscriptionDao.save(subscription);// varReturnMemo.setVar("prize", Constant.numFmt.format(joinPrize));// ??? // ? userManager.oprUserMoney(userManager.getUser(subscription.getUserId()), joinPrize, varReturnMemo.toString(), FundMode.IN, FundDetailType.SCHEME_BONUS, null); /// agentEntityManager.recordAgent(userManager.getUser(subscription.getUserId()), scheme.getLotteryType(), AgentDetailType.PRIZE, new Date(), joinPrize, null); if (joinPrize.compareTo(BigDecimal.valueOf(bouns)) > 0) { } else { // // String remark = varReturnMemo.toString()+"?"+scoreRate+"?"+joinPrize.multiply(BigDecimal.valueOf(scoreRate))+""; String remark = varReturnMemo.toString().concat("?").concat(scoreRate.toString()) .concat("?").concat(joinPrize.multiply(BigDecimal.valueOf(scoreRate)).toString()) .concat(""); userManager.oprUserScore(userManager.getUser(subscription.getUserId()), joinPrize.multiply(BigDecimal.valueOf(scoreRate)), remark, FundMode.IN, ScoreDetailType.WINNING, null); } actualTotalReturn = actualTotalReturn.add(joinPrize);// ?? } // ? BigDecimal remainPrize = prizeSendType.getTotalReturn().subtract(actualTotalReturn); // ???1? if (remainPrize.doubleValue() < 0) { throw new ServiceException("???"); } else if (remainPrize.doubleValue() > 0) { // ??? if (remainPrize.compareTo(BigDecimal.valueOf(0.01)) > 0) { varReturnMemo.setVar("prize", Constant.numFmt.format(remainPrize)); userManager.oprUserMoney(userManager.getUser(scheme.getSponsorId()), remainPrize, varReturnMemo.toString(), FundMode.IN, FundDetailType.SCHEME_BONUS, null); /// agentEntityManager.recordAgent(userManager.getUser(scheme.getSponsorId()), scheme.getLotteryType(), AgentDetailType.PRIZE, new Date(), remainPrize, null); if (remainPrize.compareTo(BigDecimal.valueOf(bouns)) > 0) { } else { // String s = null; String remark = varReturnMemo.toString().concat("?").concat(scoreRate.toString()) .concat("?") .concat(remainPrize.multiply(BigDecimal.valueOf(scoreRate)).toString()).concat(""); userManager.oprUserScore(userManager.getUser(scheme.getSponsorId()), remainPrize.multiply(BigDecimal.valueOf(scoreRate)), remark, FundMode.IN, ScoreDetailType.WINNING, null); } } } if (prizeSendType.getOrganigerDeduct().doubleValue() > 0) {// ???? userManager.oprUserMoney(userManager.getUser(scheme.getSponsorId()), prizeSendType.getOrganigerDeduct(), "?[" + scheme.getSchemeNumber() + "]???", FundMode.IN, FundDetailType.SCHEME_COMMISSION, null); } UserNewestLogSupport.won(scheme); ticketThenEntityManager.synchronizationWonTicket(scheme); // User user = userManager.getUser(scheme.getSponsorId()); // //? // scheme.getSchemeCost(); // // cyy-c 2011-04-13 // // // List<Subscription> subscriptionList = findSubscriptionsOfScheme(scheme.getId(), SubscriptionState.NORMAL);// /? // if (null != subscriptionList && !subscriptionList.isEmpty()) {// ? // Subscription subscription = subscriptionList.get(0);// ? // subscription.setBonus(scheme.getPrizeAfterTax());// ? // subscriptionDao.save(subscription);// ? // userManager.oprUserMoney(user, scheme.getPrizeAfterTax(), this.getLottery() // .getLotteryName() + ":?:[" + scheme.getSchemeNumber() + "]", FundMode.IN, // FundDetailType.SCHEME_BONUS, null);// ? // /// // agentEntityManager.recordAgent(user, this.getLottery(), AgentDetailType.PRIZE,new Date(), scheme.getPrizeAfterTax(),null); // } }
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
@Transactional(readOnly = true) public S getLastChaseScheme(long chaseId) { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(this.schemeDao.getEntityClass()); detachedCriteria.add(Restrictions.eq("chaseId", chaseId)); detachedCriteria.addOrder(Order.desc("id")); List<S> schemeList = this.schemeDao.findByDetachedCriteria(detachedCriteria, 0, 1, true); if (schemeList != null && schemeList.size() > 0) { return schemeList.get(0); }/*from w ww. j av a 2 s . c om*/ return null; }
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS) public List<Subscription> findSubscriptionsOfScheme(final long schemeId, final SubscriptionState state) { final S scheme = getScheme(schemeId); DetachedCriteria criteria = DetachedCriteria.forClass(Subscription.class); criteria.add(Restrictions.eq("schemeId", schemeId)); criteria.add(Restrictions.eq("lotteryType", scheme.getLotteryType())); if (state != null) { criteria.add(Restrictions.eq("state", state)); }// ww w .j av a 2s . com return subscriptionDao.findByDetachedCriteria(criteria); }
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
/** * /*from w w w.j a va 2 s.c o m*/ * * @param periodId * @return */ @SuppressWarnings("unchecked") @Transactional(readOnly = true) public Integer calAllSchemeCount(Long periodId) { Class<S> clazz = ReflectionUtils.getSuperClassGenricType(getClass(), 1); DetachedCriteria criteria = DetachedCriteria.forClass(clazz); criteria.add(Restrictions.eq("periodId", periodId)); criteria.setProjection(Projections.rowCount()); List<Integer> resultList = schemeDao.findByDetachedCriteria(criteria); if (resultList != null && resultList.size() > 0) { return resultList.get(0); } else { return 0; } }
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
/** * ?//from ww w . j av a2s . com * * @param periodId * @return */ @Transactional(readOnly = true) public Integer calAllSaleCount(Long periodId) { Class<S> clazz = ReflectionUtils.getSuperClassGenricType(getClass(), 1); DetachedCriteria criteria = DetachedCriteria.forClass(clazz); criteria.add(Restrictions.eq("periodId", periodId)); criteria.add(Restrictions.eq("state", SchemeState.SUCCESS)); criteria.setProjection(Projections.sum("schemeCost")); List<Integer> resultList = schemeDao.findByDetachedCriteria(criteria); if (null != resultList && !resultList.isEmpty()) { Integer count = resultList.get(0); if (null != count) { return count.intValue(); } else { return 0; } } else { return 0; } }
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
/** * /*from www . ja v a 2 s. co m*/ * * @param periodId * @return */ @Transactional(readOnly = true) public Integer calAllPrizeCount(Long periodId) { Class<S> clazz = ReflectionUtils.getSuperClassGenricType(getClass(), 1); DetachedCriteria criteria = DetachedCriteria.forClass(clazz); criteria.add(Restrictions.eq("periodId", periodId)); criteria.add(Restrictions.eq("won", true)); criteria.setProjection(Projections.rowCount()); List<Integer> resultList = schemeDao.findByDetachedCriteria(criteria); if (resultList != null && resultList.size() > 0) { return resultList.get(0); } else { return 0; } }
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
/** * ?/* ww w . j a v a 2 s. c o m*/ * * @param periodId * @return */ @Transactional(readOnly = true) public Integer calSuccessSchemeCount(Long periodId) { Class<S> clazz = ReflectionUtils.getSuperClassGenricType(getClass(), 1); DetachedCriteria criteria = DetachedCriteria.forClass(clazz); criteria.add(Restrictions.eq("periodId", periodId)); criteria.add(Restrictions.eq("state", SchemeState.SUCCESS)); criteria.setProjection(Projections.rowCount()); List<Integer> resultList = schemeDao.findByDetachedCriteria(criteria); if (resultList != null && resultList.size() > 0) { return resultList.get(0); } else { return 0; } }
From source file:com.cai310.lottery.service.lottery.keno.impl.KenoServiceImpl.java
/** * ??/*from w ww . ja v a2 s .c om*/ * * @param dateNow * * @param beforeTime * ??? * @param size * ? * @return ??? */ @Transactional(readOnly = true) public List<I> getCanChaseIssue(Date dateNow, Integer beforeTime, Integer size) { if (null == dateNow) return null; if (null == beforeTime) return null; if (null == size) return null; Class<S> clazz = ReflectionUtils.getSuperClassGenricType(getClass(), 0); DetachedCriteria criteria = DetachedCriteria.forClass(clazz); criteria.add(Restrictions.not(Restrictions.eq("state", IssueState.ISSUE_SATE_FINISH))); criteria.add(Restrictions.gt("endedTime", DateUtils.addMinutes(dateNow, beforeTime))); criteria.addOrder(Order.asc("endedTime")); return issueDataDao.findByDetachedCriteria(criteria, 0, size, true); }