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