suochencheng 7 yıl önce
ebeveyn
işleme
2e9370a80f

+ 5 - 0
src/main/java/com/izouma/awesomeadmin/constant/AppConstant.java

@@ -237,6 +237,11 @@ public interface AppConstant {
          */
         Integer SONG = 8;
 
+        /**
+         * 奖励
+         */
+        Integer BONUS = 9;
+
     }
 
     public interface Aliapi {

+ 0 - 5
src/main/java/com/izouma/awesomeadmin/dao/PlayerInfoMapper.xml

@@ -362,11 +362,6 @@
             id in (${idStr})
         </if>
 
-        <if test="userId != null and !&quot;&quot;.equals(userId)">
-            user_id = #{userId,jdbcType=INTEGER}
-            and house_id = #{houseId}
-        </if>
-
     </update>
     <select id="queryPlayerInfoByPage" parameterType="java.util.Map"
             resultType="com.izouma.awesomeadmin.model.PlayerInfo">

+ 2 - 0
src/main/java/com/izouma/awesomeadmin/dao/SystemNoticeMapper.java

@@ -29,5 +29,7 @@ public interface SystemNoticeMapper{
     SystemNotice querySystemNotice(SystemNotice record);
 
     List<SystemNotice> query(SystemNotice record);
+
+    int receiveBonus(SystemNotice systemNotice);
 }
 

Dosya farkı çok büyük olduğundan ihmal edildi
+ 239 - 227
src/main/java/com/izouma/awesomeadmin/dao/SystemNoticeMapper.xml


+ 3 - 0
src/main/java/com/izouma/awesomeadmin/service/PlayerInfoService.java

@@ -3,6 +3,7 @@ package com.izouma.awesomeadmin.service;
 import java.util.*;
 
 import com.izouma.awesomeadmin.dto.Page;
+import com.izouma.awesomeadmin.dto.Result;
 import com.izouma.awesomeadmin.model.HouseInfo;
 import com.izouma.awesomeadmin.model.PlayerInfo;
 
@@ -35,5 +36,7 @@ public interface PlayerInfoService {
     boolean overTimePlayer(PlayerInfo playerInfo);
 
     List<PlayerInfo> getSettlementPlayer(PlayerInfo record);
+
+    Result receiveBonus(PlayerInfo record);
 }
 

+ 7 - 2
src/main/java/com/izouma/awesomeadmin/service/impl/HouseInfoServiceImpl.java

@@ -200,7 +200,7 @@ public class HouseInfoServiceImpl implements HouseInfoService {
 
             if (houseInfo != null) {
 
-                if (houseInfo.getStatusFlag() == AppConstant.HouseStatus.END) {//只有结束比赛的才能结
+                if (houseInfo.getStatusFlag() == AppConstant.HouseStatus.END) {//只有结束比赛的才能结
 
                     HouseLevel houseLevel = houseInfo.getHouseLevelInfo();
 
@@ -249,7 +249,7 @@ public class HouseInfoServiceImpl implements HouseInfoService {
                                         + "开始的游戏竞赛 " + houseInfo.getHouseName() + "获得了第" + playerInfo.getHouseRank()
                                         + "名,赶快领取你的奖励吧。";
                                 systemNotice.setContent(content);
-                                systemNotice.setTypeFlag(AppConstant.NoticeType.RESULT);
+                                systemNotice.setTypeFlag(AppConstant.NoticeType.RECEIVE);
 
                                 systemNoticeService.createSystemNotice(systemNotice);
                             }
@@ -266,6 +266,11 @@ public class HouseInfoServiceImpl implements HouseInfoService {
                         //TODO 加入到赛季奖金池中
                     }
 
+
+                    //更新为结算完成状态。
+                    houseInfo.setStatusFlag(AppConstant.HouseStatus.SETTLEMENT);
+                    houseInfoMapper.updateByPrimaryKeySelective(houseInfo);
+
                     return true;
                 }
 

+ 88 - 2
src/main/java/com/izouma/awesomeadmin/service/impl/PlayerInfoServiceImpl.java

@@ -1,14 +1,18 @@
 package com.izouma.awesomeadmin.service.impl;
 
+import java.math.BigDecimal;
 import java.util.*;
 
-import com.izouma.awesomeadmin.model.HouseInfo;
+import com.izouma.awesomeadmin.dao.MemberCoinMapper;
+import com.izouma.awesomeadmin.dao.SystemNoticeMapper;
+import com.izouma.awesomeadmin.dao.UserInfoMapper;
+import com.izouma.awesomeadmin.dto.Result;
+import com.izouma.awesomeadmin.model.*;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.izouma.awesomeadmin.constant.AppConstant;
 import com.izouma.awesomeadmin.dto.Page;
-import com.izouma.awesomeadmin.model.PlayerInfo;
 import com.izouma.awesomeadmin.service.PlayerInfoService;
 import com.izouma.awesomeadmin.dao.PlayerInfoMapper;
 
@@ -23,6 +27,15 @@ public class PlayerInfoServiceImpl implements PlayerInfoService {
     @Autowired
     private PlayerInfoMapper playerInfoMapper;
 
+    @Autowired
+    private UserInfoMapper userInfoMapper;
+
+    @Autowired
+    private MemberCoinMapper memberCoinMapper;
+
+    @Autowired
+    private SystemNoticeMapper systemNoticeMapper;
+
     @Override
     public List<PlayerInfo> getPlayerInfoList(PlayerInfo record) {
 
@@ -221,5 +234,78 @@ public class PlayerInfoServiceImpl implements PlayerInfoService {
 
         return false;
     }
+
+    /**
+     * 领取奖励
+     *
+     * @param record
+     * @return
+     */
+    @Override
+    public Result receiveBonus(PlayerInfo record) {
+
+        logger.info("receiveBonus");
+        try {
+            PlayerInfo playerInfo = playerInfoMapper.queryPlayerInfo(record);
+            if (playerInfo != null) {
+                if (AppConstant.PlayerStatus.SETTLEMENT != playerInfo.getStatusFlag()) {//结算完成
+                    return new Result(false, "玩家处于非结算状态,不能领取!");
+                }
+
+                double money = playerInfo.getBonus().doubleValue();
+                if (money > 0) {
+                    MemberCoin memberCoin = new MemberCoin();
+                    memberCoin.setUserId(record.getId());
+                    memberCoin.setMoney(BigDecimal.valueOf(money));
+
+                    int userId = Integer.valueOf(playerInfo.getUserId());
+                    UserInfo userInfo = userInfoMapper.selectByPrimaryKey(record.getId());
+
+
+                    double balance = userInfo.getMoneyCoin();
+                    double moneyCoin = balance + money;
+
+                    memberCoin.setPlayerId(playerInfo.getId());
+                    memberCoin.setHouseId(playerInfo.getHouseId());
+                    memberCoin.setGameId(playerInfo.getGameId());
+                    memberCoin.setSeasonId(playerInfo.getSeasonId());
+
+                    memberCoin.setCreateUser("系统");
+                    memberCoin.setBalance(BigDecimal.valueOf(moneyCoin));
+                    memberCoin.setTypeFlag(AppConstant.CoinType.BONUS);
+                    memberCoin.setRemark("参加比赛获取奖励:" + money + "余额");
+                    memberCoinMapper.insertSelective(memberCoin);
+
+                    UserInfo updateUser = new UserInfo();
+                    updateUser.setId(userId);
+                    updateUser.setMoneyCoin(moneyCoin);
+                    userInfoMapper.updateByPrimaryKeySelective(updateUser);
+
+
+                }
+
+                playerInfo.setStatusFlag(AppConstant.PlayerStatus.RECEIVE);
+                playerInfoMapper.updateByPrimaryKeySelective(playerInfo);
+
+                //更新领取状态。
+                SystemNotice systemNotice = new SystemNotice();
+                systemNotice.setStatusFlag(1);
+                systemNotice.setPlayerId(playerInfo.getId());
+                systemNotice.setHouseId(playerInfo.getHouseId());
+                systemNotice.setSeasonId(playerInfo.getSeasonId());
+                systemNotice.setUserId(playerInfo.getUserId());
+                systemNotice.setTypeFlag(AppConstant.NoticeType.RECEIVE);
+                systemNoticeMapper.receiveBonus(systemNotice);
+
+                return new Result(true, "领取成功");
+            }
+
+
+        } catch (Exception e) {
+            logger.error("receiveBonus", e);
+        }
+
+        return new Result(false, "领取失败");
+    }
 }
 

+ 23 - 8
src/main/java/com/izouma/awesomeadmin/web/PlayerInfoController.java

@@ -1,21 +1,24 @@
 package com.izouma.awesomeadmin.web;
 
-import java.util.*;
-
-import com.izouma.awesomeadmin.util.ExportExcelUtil;
-import org.apache.commons.lang.StringUtils;
-import org.apache.shiro.authz.annotation.RequiresAuthentication;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
 import com.izouma.awesomeadmin.constant.AppConstant;
 import com.izouma.awesomeadmin.dto.Page;
 import com.izouma.awesomeadmin.dto.Result;
 import com.izouma.awesomeadmin.model.PlayerInfo;
 import com.izouma.awesomeadmin.service.PlayerInfoService;
+import com.izouma.awesomeadmin.util.ExportExcelUtil;
+import org.apache.shiro.authz.annotation.RequiresAuthentication;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * controller类
@@ -152,6 +155,18 @@ public class PlayerInfoController {
         return new Result(false, "删除异常");
     }
 
+    /**
+     * <p>领取奖励。</p>
+     */
+    @RequestMapping(value = "/receive", method = RequestMethod.POST)
+    @ResponseBody
+    public Result receiveBonus(PlayerInfo record) {
+
+        return playerInfoService.receiveBonus(record);
+
+    }
+
+
     /**
      * 导出Excel
      *

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor