|
@@ -23,6 +23,7 @@ import com.game.common.core.domain.HttpRet;
|
|
|
import com.game.common.core.domain.HttpRetPageArr;
|
|
|
import com.game.common.core.domain.R;
|
|
|
import com.game.common.core.redis.RedisCache;
|
|
|
+import com.game.common.utils.MoneyUtils;
|
|
|
import com.game.common.utils.SecurityUtils;
|
|
|
import com.game.common.utils.StringUtils;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
@@ -88,6 +89,7 @@ public class AppUserCountDividendController extends BaseController
|
|
|
@PostMapping("/send")
|
|
|
@ApiOperation(value = "发放分红", notes = "发放分红")
|
|
|
|
|
|
+
|
|
|
public HttpRet<Boolean> send(AppUserDividendSendDto dto)
|
|
|
{
|
|
|
String userId = dto.getUserId();
|
|
@@ -107,6 +109,13 @@ public class AppUserCountDividendController extends BaseController
|
|
|
if(null == dividendList || dividendList.size() < 1){
|
|
|
return HttpRet.fail("发放失败,不存在或已发放");
|
|
|
}
|
|
|
+ AppUser curUser = appUserService.selectAppUserByUserid(Long.parseLong(userId));
|
|
|
+ if(curUser.getDiamondCoin() < dividendList.stream().mapToDouble(e->e.getDiamondCoin()).sum()){
|
|
|
+ return HttpRet.fail("发放失败,余额不足");
|
|
|
+ }
|
|
|
+ if(curUser.getCoin() < dividendList.stream().mapToDouble(e->e.getCoin()).sum()){
|
|
|
+ return HttpRet.fail("发放失败,金币不足");
|
|
|
+ }
|
|
|
|
|
|
List<Long> ids = dividendList.stream().map(AppUserCountDividend::getUserId).collect(Collectors.toList());
|
|
|
List<AppUser> userList = appUserService.selectListByIds(ids);
|
|
@@ -116,8 +125,27 @@ public class AppUserCountDividendController extends BaseController
|
|
|
List<FinTranRecord> tranRecordList = new ArrayList<>();
|
|
|
AppUser appUser = userMap.get(String.valueOf(e.getUserId()));
|
|
|
AppUser updateAppUser = new AppUser();
|
|
|
+ AppUser curUpdateAppUser = new AppUser();
|
|
|
updateAppUser.setUserid(appUser.getUserid());
|
|
|
if(null != e.getDiamondCoin() && e.getDiamondCoin()>0){
|
|
|
+
|
|
|
+ curUser.setDiamondCoinCash(curUser.getDiamondCoinCash() - MoneyUtils.consumeCash(curUser.getDiamondCoin(),curUser.getDiamondCoinCash(),e.getDiamondCoin()));
|
|
|
+ curUser.setDiamondCoin(curUser.getDiamondCoin() - e.getDiamondCoin());
|
|
|
+ curUser.setDiamondCoinTotal(curUser.getDiamondCoinTotal() - e.getDiamondCoin());
|
|
|
+ curUpdateAppUser.setUserid(curUser.getUserid());
|
|
|
+ curUpdateAppUser.setDiamondCoinCash(curUser.getDiamondCoinCash());
|
|
|
+ curUpdateAppUser.setDiamondCoin(curUser.getDiamondCoin());
|
|
|
+ curUpdateAppUser.setDiamondCoinTotal(curUser.getDiamondCoinTotal());
|
|
|
+
|
|
|
+ FinTranAddedInfo curAddedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
|
|
|
+ FinTranRecord curTran = FinTranRecord.initFinTranRecordSomeParams(curAddedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.U_Outcome_Balance, curUser);
|
|
|
+ curTran.setDiamondCoinChange(e.getDiamondCoin() * -1);
|
|
|
+ curTran.setAfterDiamondCoin(curUser.getDiamondCoin());
|
|
|
+ curTran.setCurrencyType(TranCurrencyType.Balance.getType());
|
|
|
+ curTran.setRemarks(e.getDateNo() + " 发放团队分红奖励");
|
|
|
+ tranRecordList.add(curTran);
|
|
|
+
|
|
|
+
|
|
|
updateAppUser.setDiamondCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
|
|
|
updateAppUser.setDiamondCoinTotal(appUser.getDiamondCoinTotal() + e.getDiamondCoin());
|
|
|
updateAppUser.setDiamondCoinCash(appUser.getDiamondCoinCash() + e.getDiamondCoin());
|
|
@@ -131,6 +159,21 @@ public class AppUserCountDividendController extends BaseController
|
|
|
tranRecordList.add(tran);
|
|
|
}
|
|
|
if(null != e.getCoin() && e.getCoin()>0){
|
|
|
+
|
|
|
+ curUser.setCoinCash(curUser.getCoinCash() - MoneyUtils.consumeCash(curUser.getCoin(),curUser.getCoinCash(),e.getCoin()));
|
|
|
+ curUser.setCoin(curUser.getCoin() - e.getCoin());
|
|
|
+ curUpdateAppUser.setUserid(curUser.getUserid());
|
|
|
+ curUpdateAppUser.setCoinCash(curUser.getCoinCash());
|
|
|
+ curUpdateAppUser.setCoin(curUser.getCoin());
|
|
|
+
|
|
|
+ FinTranAddedInfo curAddedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
|
|
|
+ FinTranRecord curTran = FinTranRecord.initFinTranRecordSomeParams(curAddedInfo, FinTranType3.AGENT_DIVIDED, FinTranType1.U_Outcome_Coin, curUser);
|
|
|
+ curTran.setDiamondCoinChange(e.getDiamondCoin() * -1);
|
|
|
+ curTran.setAfterCoin(curUser.getCoin());
|
|
|
+ curTran.setCurrencyType(TranCurrencyType.Coin.getType());
|
|
|
+ curTran.setRemarks(e.getDateNo() + " 发放团队分红奖励");
|
|
|
+ tranRecordList.add(curTran);
|
|
|
+
|
|
|
updateAppUser.setCoin(appUser.getDiamondCoin() + e.getDiamondCoin());
|
|
|
|
|
|
FinTranAddedInfo addedInfo = FinTranAddedInfo.createTranInfo(appUser.getUserid(), 0, 0, AppSceneType.Scene_None, "");
|
|
@@ -142,6 +185,7 @@ public class AppUserCountDividendController extends BaseController
|
|
|
tranRecordList.add(tran);
|
|
|
}
|
|
|
appUserService.updateAppUser(updateAppUser);
|
|
|
+ appUserService.updateAppUser(curUpdateAppUser);
|
|
|
|
|
|
redisCache.deleteObject("U:UserInfo:".concat(String.valueOf(appUser.getUserid())));
|
|
|
if(tranRecordList.size() > 0){
|