From 19533a17aa55fafc70d0a385928e785cb50e1ebc Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期五, 30 七月 2021 02:05:14 +0800 Subject: [PATCH] 爱奇艺视频更新 --- src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java | 54 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 39 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java b/src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java index 189f166..c0596de 100644 --- a/src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java +++ b/src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java @@ -13,6 +13,7 @@ import com.yeshi.buwan.exception.order.OrderException; import com.yeshi.buwan.exception.order.PayException; import com.yeshi.buwan.exception.vip.VIPException; +import com.yeshi.buwan.exception.vip.VideoBuyRecordException; import com.yeshi.buwan.pptv.PPTVVipManager; import com.yeshi.buwan.service.inter.order.OrderService; import com.yeshi.buwan.service.manager.GoldCornManager; @@ -62,7 +63,7 @@ @Transactional(rollbackFor = Exception.class) @Override public OrderRecord createOrder(OrderRecord record) throws OrderException { - if (record.getMoney() == null || (record.getType() == null && record.getVideoInfoId() == null) || record.getOrderType() == null || record.getUid() == null) { + if (record.getMoney() == null || (record.getType() == null && record.getVideoCid() == null) || record.getOrderType() == null || record.getUid() == null) { throw new OrderException(1, "鍙傛暟涓嶅畬鏁�"); } @@ -104,7 +105,7 @@ @Transactional(rollbackFor = Exception.class) // @GlobalTransactional(timeoutMills = 30000, name = "buwan-order", rollbackFor = Exception.class) @Override - public PayWayInfoDTO payOrder(OrderRecord record) throws OrderException, GoldCornException, PayException, VIPException, PPTVException { + public PayWayInfoDTO payOrder(OrderRecord record) throws OrderException, GoldCornException, PayException, VIPException, PPTVException, VideoBuyRecordException { String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId()); switch (record.getPayWay()) { case OrderRecord @@ -175,6 +176,8 @@ paySuccess(record.getId(), OrderRecord.PAY_WAY_GOLDCORN, null, new Date()); return new PayWayInfoDTO(0, VipUtil.getPaySuccessUrl(record.getId())); } + case OrderRecord.PAY_WAY_IAPP: + return new PayWayInfoDTO(OrderRecord.PAY_WAY_IAPP, null); } throw new OrderException(1, "鏀粯鏂瑰紡涓嶅瓨鍦�"); } @@ -206,7 +209,7 @@ @Transactional(rollbackFor = Exception.class) @Override public OrderRecord paySuccess(String id, int payWay, BigDecimal payMoney, Date payTime) throws - VIPException, PPTVException { + VIPException, PPTVException, VideoBuyRecordException, OrderException { orderLogger.info("璁㈠崟鏀粯鎴愬姛鐩殑鎵ц锛歩d-{}锛屾敮浠樻柟寮�-{},鏀粯閲戦-{}锛屾敮浠樻椂闂�-{}", id, payWay, payMoney, payTime.getTime()); Session session = vipOrderRecordDao.getSession(); @@ -215,11 +218,11 @@ Query query = session.createSQLQuery("select * from wk_vip_order_record r where r.id=? for update").addEntity(OrderRecord.class).setCacheable(false).setParameter(0, id); List<OrderRecord> list = query.list(); if (list == null || list.size() == 0) - throw new VIPException(10, "璁㈠崟涓嶅瓨鍦�"); + throw new OrderException(10, "璁㈠崟涓嶅瓨鍦�"); OrderRecord record = list.get(0); if (record.getState() != OrderRecord.STATE_NOT_PAY) - throw new VIPException(1, "璁㈠崟鏈浜庡緟鏀粯鐘舵��"); + throw new OrderException(1, "璁㈠崟鏈浜庡緟鏀粯鐘舵��"); if (payWay != OrderRecord.PAY_WAY_GOLDCORN) { @@ -302,7 +305,7 @@ try { goldCornManager.drawbackGoldCorn(record); } catch (Exception e) { - throw new GoldCornException(1, "褰辫璞嗛��娆炬垚鍔�"); + throw new GoldCornException(1, "褰辫璞嗛��娆惧け璐�"); } } @@ -310,8 +313,20 @@ record.setState(OrderRecord.STATE_CANCEL); record.setUpdateTime(new Date()); record.setRemarks(reason); - vipOrderRecordDao.update(record); + session.update(record); orderLogger.info("鍙栨秷璁㈠崟鎴愬姛锛歩d-{}", id); + } + + @Override + public List<OrderRecord> getCanCancelOrderList(int page, int pageSize) { + + OrderRecordDao.DaoQuery daoQuery = new OrderRecordDao.DaoQuery(); + daoQuery.state = OrderRecord.STATE_NOT_PAY; + //30鍒嗛挓鏈敮浠樺彇娑堣鍗� + daoQuery.maxCreateTime = new Date(System.currentTimeMillis() - 1000 * 60 * 30); + daoQuery.minCreateTime = new Date(daoQuery.maxCreateTime.getTime() - 1000 * 60 * 60L * 24); + + return vipOrderRecordDao.list(daoQuery); } @@ -323,6 +338,7 @@ return record; switch (record.getPayWay()) { + case OrderRecord.PAY_WAY_ALIPAY_GOLDCORN: case OrderRecord.PAY_WAY_ALIPAY: { //鏀粯瀹� AlipayTradeQueryResponse res = null; @@ -342,6 +358,7 @@ } break; + case OrderRecord.PAY_WAY_WX_GOLDCORN: case OrderRecord.PAY_WAY_WX: { //寰俊 try { @@ -406,16 +423,18 @@ UserVIPInfo vip = new UserVIPInfo(); vip.setUid(uid); vip.setCreateTime(new Date()); - vip.setExpireDate(getExpireTime(payTime, null, type)); + + Date[] expireDate = getExpireTime(payTime, null, type); + vip.setExpireDate(expireDate[1]); session.save(vip); - return new Date[]{payTime, vip.getExpireDate()}; + return expireDate; } else { //淇敼 UserVIPInfo vipInfo = (UserVIPInfo) list.get(0); - Date expireDate = getExpireTime(payTime, vipInfo.getExpireDate(), type); - session.createQuery("update UserVIPInfo i set i.expireDate=? ,i.updateTime=? where i.uid=?").setParameter(0, expireDate).setParameter(1, new Date()).setParameter(2, uid).executeUpdate(); + Date[] expireDate = getExpireTime(payTime, vipInfo.getExpireDate(), type); + session.createQuery("update UserVIPInfo i set i.expireDate=? ,i.updateTime=? where i.uid=?").setParameter(0, expireDate[1]).setParameter(1, new Date()).setParameter(2, uid).executeUpdate(); - return new Date[]{vipInfo.getExpireDate() == null ? new Date() : vipInfo.getExpireDate(), expireDate}; + return expireDate; } } @@ -427,13 +446,18 @@ * @param type * @return */ - private Date getExpireTime(Date payTime, Date expireTime, VIPPriceType type) { + private Date[] getExpireTime(Date payTime, Date expireTime, VIPPriceType type) { Calendar calendar = Calendar.getInstance(); if (expireTime != null) { - calendar.setTimeInMillis(expireTime.getTime()); + //涔嬪墠缁湡鏃堕棿鏄惁澶т簬浠樻鏃堕棿 + if (payTime.getTime() < expireTime.getTime()) + calendar.setTimeInMillis(expireTime.getTime()); + else + calendar.setTimeInMillis(payTime.getTime()); } else { calendar.setTimeInMillis(payTime.getTime()); } + long startTime = calendar.getTimeInMillis(); if (type == VIPPriceType.day) { calendar.add(Calendar.DAY_OF_WEEK, 1); } else if (type == VIPPriceType.week) { @@ -447,7 +471,7 @@ } else if (type == VIPPriceType.year) { calendar.add(Calendar.YEAR, 1); } - return new Date(calendar.getTimeInMillis()); + return new Date[]{new Date(startTime), new Date(calendar.getTimeInMillis())}; } -- Gitblit v1.8.0