From 01955bc3f6e6eec6d82a5a3848efde1fa6cc8137 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 30 九月 2020 17:29:26 +0800 Subject: [PATCH] 云发单优化 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudOrderServiceImpl.java | 222 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 114 insertions(+), 108 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudOrderServiceImpl.java index c45e4c1..b41937d 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudOrderServiceImpl.java @@ -17,118 +17,124 @@ import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudService; +import org.springframework.transaction.annotation.Transactional; @Service public class UserCloudOrderServiceImpl implements UserCloudOrderService { - @Resource - private UserCloudOrderMapper userCloudOrderMapper; + @Resource + private UserCloudOrderMapper userCloudOrderMapper; - @Lazy - @Resource - private UserCloudService userCloudService; - - - - @Override - public UserCloudOrder addCloudOrder(Long uid, String type) throws UserCloudOrderException{ - if (uid == null) - throw new UserCloudOrderException(1, "鐢ㄦ埛鏈櫥褰�"); - - CloudOrderMenuEnum menuEnum = CloudOrderMenuEnum.getMenuEnum(type); - if (menuEnum == null) - throw new UserCloudOrderException(1, "璇烽�夋嫨姝g‘濂楅"); - - UserCloudOrder cloudOrder = new UserCloudOrder(); - cloudOrder.setUid(uid); - cloudOrder.setState(false); - cloudOrder.setType(menuEnum); - cloudOrder.setMoney(BigDecimal.valueOf(menuEnum.getMoney())); - cloudOrder.setCreateTime(new Date()); - cloudOrder.setUpdateTime(new Date()); - userCloudOrderMapper.insertSelective(cloudOrder); - return cloudOrder; - } - - @Override - public void updateByPrimaryKeySelective(UserCloudOrder cloudOrder) { - userCloudOrderMapper.updateByPrimaryKeySelective(cloudOrder); - } - - @Override - public UserCloudOrder selectByPrimaryKey(Long id) { - return userCloudOrderMapper.selectByPrimaryKey(id); - } - - - @Override - public void cloudPayCloudSuccess(Long orderId) throws UserCloudOrderException{ - UserCloudOrder cloudOrder = userCloudOrderMapper.selectForUpdate(orderId); - if (cloudOrder == null) - throw new UserCloudOrderException(1, "璁㈠崟淇℃伅涓嶅瓨鍦�"); - - if (cloudOrder.getState()) - return; // 宸叉敮浠樻垚鍔熸洿鏂� - - UserCloudOrder updateOrder = new UserCloudOrder(); - updateOrder.setState(true); - updateOrder.setId(cloudOrder.getId()); - updateOrder.setDesc("鎴愬姛寮�閫�" + cloudOrder.getType().getDescShow()); - updateOrder.setUpdateTime(new Date()); - userCloudOrderMapper.updateByPrimaryKeySelective(updateOrder); - - // 鍒涘缓寮�閫氫俊鎭� - try { - userCloudService.openCloud(cloudOrder.getUid(), cloudOrder.getId(), cloudOrder.getType()); - } catch (Exception e) { - LogHelper.error(e); - } - } - - @Override - public UserCloudOrder getLastOrderByUnpaid(Long uid, String type) { - return userCloudOrderMapper.getLastOrderByUnpaid(uid, type); - } - - @Override - public UserCloudOrder getLastOrderByPayEnd(Long uid, String type) { - return userCloudOrderMapper.getLastOrderByPayEnd(uid, type); - } - - - @Override - public List<UserCloudOrder> getOrderRecord(int page, int count, Long uid, Integer state) { - return userCloudOrderMapper.getOrderRecord((page-1)* count, count, uid, state); - } - - @Override - public long countOrderRecord(Long uid, Integer state) { - Long count = userCloudOrderMapper.countOrderRecord(uid, state); - if (count == null) - count = 0L; - return count; - } - - - @Override - public List<UserCloudOrder> getLasthourByUnpaid() { - return userCloudOrderMapper.getLasthourByUnpaid(); - } - - - @Override - public List<UserCloudOrder> query(int page, int count,String key, Integer state) { - return userCloudOrderMapper.query((page-1)* count, count, key, state); - } - - @Override - public long count(String key, Integer state) { - Long count = userCloudOrderMapper.count(key, state); - if (count == null) - count = 0L; - return count; - } - - + @Lazy + @Resource + private UserCloudService userCloudService; + + + @Transactional + @Override + public UserCloudOrder addCloudOrder(Long uid, String type) throws UserCloudOrderException { + if (uid == null) + throw new UserCloudOrderException(1, "鐢ㄦ埛鏈櫥褰�"); + + CloudOrderMenuEnum menuEnum = CloudOrderMenuEnum.getMenuEnum(type); + if (menuEnum == null) + throw new UserCloudOrderException(1, "璇烽�夋嫨姝g‘濂楅"); + + if (menuEnum == CloudOrderMenuEnum.robotMonthHalfPrice || menuEnum == CloudOrderMenuEnum.robotMonthVip) { + List<UserCloudOrder> list = userCloudOrderMapper.list(menuEnum.name(), uid, true); + if (list != null && list.size() > 0) + throw new UserCloudOrderException(1, "鍙兘璐拱涓�娆�"); + } + UserCloudOrder cloudOrder = new UserCloudOrder(); + cloudOrder.setUid(uid); + cloudOrder.setState(false); + cloudOrder.setType(menuEnum); + cloudOrder.setMoney(BigDecimal.valueOf(menuEnum.getMoney())); + cloudOrder.setCreateTime(new Date()); + cloudOrder.setUpdateTime(new Date()); + userCloudOrderMapper.insertSelective(cloudOrder); + return cloudOrder; + } + + @Override + public void updateByPrimaryKeySelective(UserCloudOrder cloudOrder) { + userCloudOrderMapper.updateByPrimaryKeySelective(cloudOrder); + } + + @Override + public UserCloudOrder selectByPrimaryKey(Long id) { + return userCloudOrderMapper.selectByPrimaryKey(id); + } + + + @Override + public void cloudPayCloudSuccess(Long orderId) throws UserCloudOrderException { + UserCloudOrder cloudOrder = userCloudOrderMapper.selectForUpdate(orderId); + if (cloudOrder == null) + throw new UserCloudOrderException(1, "璁㈠崟淇℃伅涓嶅瓨鍦�"); + + if (cloudOrder.getState()) + return; // 宸叉敮浠樻垚鍔熸洿鏂� + + UserCloudOrder updateOrder = new UserCloudOrder(); + updateOrder.setState(true); + updateOrder.setId(cloudOrder.getId()); + updateOrder.setDesc("鎴愬姛寮�閫�" + cloudOrder.getType().getDescShow()); + updateOrder.setUpdateTime(new Date()); + userCloudOrderMapper.updateByPrimaryKeySelective(updateOrder); + + // 鍒涘缓寮�閫氫俊鎭� + try { + userCloudService.openCloud(cloudOrder.getUid(), cloudOrder.getId(), cloudOrder.getType()); + } catch (Exception e) { + LogHelper.error(e); + } + } + + @Override + public UserCloudOrder getLastOrderByUnpaid(Long uid, String type) { + return userCloudOrderMapper.getLastOrderByUnpaid(uid, type); + } + + @Override + public UserCloudOrder getLastOrderByPayEnd(Long uid, String type) { + return userCloudOrderMapper.getLastOrderByPayEnd(uid, type); + } + + + @Override + public List<UserCloudOrder> getOrderRecord(int page, int count, Long uid, Integer state) { + return userCloudOrderMapper.getOrderRecord((page - 1) * count, count, uid, state); + } + + @Override + public long countOrderRecord(Long uid, Integer state) { + Long count = userCloudOrderMapper.countOrderRecord(uid, state); + if (count == null) + count = 0L; + return count; + } + + + @Override + public List<UserCloudOrder> getLasthourByUnpaid() { + return userCloudOrderMapper.getLasthourByUnpaid(); + } + + + @Override + public List<UserCloudOrder> query(int page, int count, String key, Integer state) { + return userCloudOrderMapper.query((page - 1) * count, count, key, state); + } + + @Override + public long count(String key, Integer state) { + Long count = userCloudOrderMapper.count(key, state); + if (count == null) + count = 0L; + return count; + } + + } -- Gitblit v1.8.0