From 6e281067fe81dbf180c63a2833f74c1615d32f18 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 30 十一月 2020 16:44:46 +0800
Subject: [PATCH] 抽奖服务完善

---
 service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityAwardResultServiceImpl.java |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 51 insertions(+), 2 deletions(-)

diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityAwardResultServiceImpl.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityAwardResultServiceImpl.java
index d469f2d..99edf50 100644
--- a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityAwardResultServiceImpl.java
+++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityAwardResultServiceImpl.java
@@ -1,11 +1,20 @@
 package com.ks.lucky.service.impl.remote;
 
+import com.ks.lucky.exception.LuckyActivityAwardException;
+import com.ks.lucky.exception.LuckyActivityAwardResultException;
+import com.ks.lucky.exception.LuckyActivityException;
+import com.ks.lucky.mapper.LuckyActivityAwardResultExtraMapper;
 import com.ks.lucky.mapper.LuckyActivityAwardResultMapper;
+import com.ks.lucky.pojo.DO.LuckyActivity;
 import com.ks.lucky.pojo.DO.LuckyActivityAwardResult;
+import com.ks.lucky.pojo.DO.LuckyActivityAwardResultExtra;
 import com.ks.lucky.query.ActivityAwardResultQuery;
 import com.ks.lucky.remote.service.LuckyActivityAwardResultService;
 import com.ks.lucky.service.impl.AppManager;
+import com.ks.lucky.service.impl.LuckyActivityAwardResultManager;
+import com.ks.lucky.service.impl.LuckyActivityManager;
 import org.apache.dubbo.config.annotation.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -17,7 +26,16 @@
     private LuckyActivityAwardResultMapper luckyActivityAwardResultMapper;
 
     @Resource
+    private LuckyActivityAwardResultExtraMapper luckyActivityAwardResultExtraMapper;
+
+    @Resource
+    private LuckyActivityAwardResultManager luckyActivityAwardResultManager;
+
+    @Resource
     private AppManager appManager;
+
+    @Resource
+    private LuckyActivityManager luckyActivityManager;
 
 
     @Override
@@ -41,8 +59,39 @@
         return null;
     }
 
+
+    @Transactional(rollbackFor = Exception.class)
     @Override
-    public void recieveAward(String appKey, String uid, Long activityId) {
-        //TODO 棰嗗
+    public void recieveAward(String appKey, String uid, Long activityId) throws LuckyActivityException, LuckyActivityAwardException, LuckyActivityAwardResultException {
+        //----------楠岃瘉寮�濮�-----------
+        Long appId = appManager.getAppId(appKey);
+        LuckyActivity activity = luckyActivityManager.selectByPrimaryKey(activityId);
+        if (activity == null) {
+            //涓嶅瓨鍦�
+            throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�");
+        }
+        if (activity.getState() != LuckyActivity.STATE_OPENED) {
+            throw new LuckyActivityAwardException(1, "娲诲姩灏氭湭寮�濂�");
+        }
+
+        ActivityAwardResultQuery query = new ActivityAwardResultQuery();
+        query.uid = uid;
+        query.appId = appId;
+        query.activityId = activityId;
+        List<LuckyActivityAwardResult> list = luckyActivityAwardResultMapper.list(query);
+        if (list == null || list.size() == 0) {
+            throw new LuckyActivityAwardException(LuckyActivityAwardException.CODE_NOT_EXIST, "灏氭湭涓");
+        }
+
+        Long id = list.get(0).getId();
+        LuckyActivityAwardResult result = luckyActivityAwardResultMapper.selectByPrimaryKeyForUpdate(id);
+        if (result.getState() != LuckyActivityAwardResult.STATE_NOT_RECIEVE) {
+            throw new LuckyActivityAwardException(1, "灏氭湭澶勪簬鍙鍙栫姸鎬�");
+        }
+        LuckyActivityAwardResultExtra extra = luckyActivityAwardResultExtraMapper.selectByAwardResultId(result.getId());
+
+        //----------楠岃瘉缁撴潫-----------
+        //鍙戝
+        luckyActivityAwardResultManager.sendAward(result, extra);
     }
 }

--
Gitblit v1.8.0