From 11c098089f8c4714188e91032e5a19e8fe94bf96 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期四, 22 八月 2019 09:26:52 +0800
Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java | 372 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 335 insertions(+), 37 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java
index 848d494..e63e0cb 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeServiceImpl.java
@@ -1,29 +1,89 @@
package com.yeshi.fanli.service.impl.integral;
+import java.math.BigDecimal;
+import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
+import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.integral.IntegralExchangeMapper;
+import com.yeshi.fanli.dto.msg.MsgOtherExchangeContentDTO;
+import com.yeshi.fanli.entity.bus.user.HongBaoV2;
+import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
+import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
+import com.yeshi.fanli.entity.integral.CodePublishRecord;
+import com.yeshi.fanli.entity.integral.IntegralDetail;
import com.yeshi.fanli.entity.integral.IntegralExchange;
import com.yeshi.fanli.entity.integral.IntegralExchange.ExchangeTypeEnum;
+import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.exception.integral.IntegralExchangeException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
+import com.yeshi.fanli.service.inter.integral.CodePublishRecordService;
+import com.yeshi.fanli.service.inter.integral.IntegralDetailService;
+import com.yeshi.fanli.service.inter.integral.IntegralExchangeRecordService;
import com.yeshi.fanli.service.inter.integral.IntegralExchangeService;
+import com.yeshi.fanli.service.inter.msg.MsgInviteDetailService;
+import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
+import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
+import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
import com.yeshi.fanli.vo.integral.ExchangeTipVO;
import com.yeshi.fanli.vo.user.UserInfoExtraVO;
@Service
public class IntegralExchangeServiceImpl implements IntegralExchangeService {
+ @Resource(name = "taskExecutor")
+ private TaskExecutor executor;
+
@Resource
private IntegralExchangeMapper integralExchangeMapper;
@Resource
+ private ConfigService configService;
+
+ @Resource
private UserInfoExtraService userInfoExtraService;
+
+ @Resource
+ private UserSystemCouponService userSystemCouponService;
+
+ @Resource
+ private UserTaoLiJinOriginService userTaoLiJinOriginService;
+
+ @Resource
+ private HongBaoV2Service hongBaoV2Service;
+
+ @Resource
+ private UserMoneyDetailService userMoneyDetailService;
+
+ @Resource
+ private UserInfoService userInfoService;
+
+ @Resource
+ private CodePublishRecordService codePublishRecordService;
+
+ @Resource
+ private IntegralExchangeRecordService integralExchangeRecordService;
+
+ @Resource
+ private UserOtherMsgNotificationService userOtherMsgNotificationService;
+
+ @Resource
+ private MsgInviteDetailService msgInviteDetailService;
+
+ @Resource
+ private IntegralDetailService integralDetailService;
@Override
@@ -53,9 +113,33 @@
if (exchange == null)
throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
+ Integer goldCoin = exchange.getGoldCoin();
ExchangeTipVO exchangeTip = new ExchangeTipVO();
- Integer goldCoin = exchange.getGoldCoin();
+ exchangeTip.setId(id);
+ ExchangeTypeEnum type = exchange.getType();
+ if (ExchangeTypeEnum.inviteCodeActivate == type) {
+ exchangeTip.setType(type.name());
+ return exchangeTip;
+ }
+
+ long exchangeCount = 0;
+ if (ExchangeTypeEnum.freeCouponBuy == type) {
+ exchangeCount = integralExchangeRecordService.countRecordByUid(id, uid, null);
+ if (exchangeCount >= 1) {
+ throw new IntegralExchangeException(1, "鑷喘鍏嶅崟鍒革紝浠呰兘鍏戞崲涓�娆�");
+ }
+ }
+
+ Integer upperLimit = exchange.getUpperLimit();
+ if (upperLimit != null) { // 鏄惁鏈夐檺鍒舵瘡鏃ユ鏁�
+ Integer today = 1;
+ exchangeCount = integralExchangeRecordService.countRecordByUid(id, uid, today);
+ if (exchangeCount >= upperLimit) {
+ throw new IntegralExchangeException(1, "浠婃棩鍏戞崲宸茶揪涓婇檺");
+ }
+ }
+
Integer goldCoinHas = extraVO.getGoldCoin();
if (goldCoin.intValue() > goldCoinHas.intValue()) {
exchangeTip.setType("notEnough");
@@ -64,23 +148,22 @@
return exchangeTip;
}
- ExchangeTypeEnum type = exchange.getType();
if (ExchangeTypeEnum.freeCouponBuy == type) {
exchangeTip.setTip("鑷喘鍏嶅崟鍒镐粎鑳借嚜宸变娇鐢紝涓旀瘡涓敤鎴稩D鍙兘鍏戞崲涓�娆°�俓r\n娉�:鍏戞崲鎴愬姛鍚庤鍒扳�滄垜鐨�-绂忓埄涓績鈥濅腑鏌ョ湅");
} else if (ExchangeTypeEnum.freeCouponGive == type) {
exchangeTip.setTip("璧犻�佸厤鍗曞埜鍏戞崲娆℃暟涓嶉檺锛岃禒閫佹鏁颁笉闄愶紝鍙楄禒浜鸿嫢鏃犫�滈個璇蜂汉鈥濇垚鍔熼鍙栧悗灏嗘垚涓轰綘鐨勪竴绾ч槦鍛樸�俓r\n娉�:鍏戞崲鎴愬姛鍚庤鍒扳�滄垜鐨�-绂忓埄涓績鈥濅腑鏌ョ湅");
- } else if (ExchangeTypeEnum.rebateCoupon == type) {
+ } else if (ExchangeTypeEnum.rebatePercentCoupon == type) {
exchangeTip.setTip("杩斿埄濂栧姳鍒稿厬鎹㈡鏁颁笉闄愶紝璧犻�佹鏁颁笉闄愶紝鍙楄禒浜鸿嫢鏃犫�滈個璇蜂汉鈥濇垚鍔熼鍙栧悗灏嗘垚涓轰綘鐨勪竴绾ч槦鍛樸�俓r\n娉�:鍏戞崲鎴愬姛鍚庤鍒扳�滄垜鐨�-绂忓埄涓績鈥濅腑鏌ョ湅");
- } else if (ExchangeTypeEnum.inviteCodeActivate == type) {
- exchangeTip.setTip("娉細鍏戞崲鎴愬姛鍚庤鍒扳�滄秷鎭�-绯荤粺娑堟伅鈥濇煡鐪�");
} else if (ExchangeTypeEnum.inviteCodePublish == type) {
+ if(codePublishRecordService.countValidRecord(uid) > 0)
+ throw new IntegralExchangeException(1, "涓夊ぉ涔嬪唴涓嶅彲閲嶅鍏戞崲");
exchangeTip.setInviteCode(extraVO.getInviteCode());
exchangeTip.setTip("鍏戞崲鎴愬姛鍚庯紝灏嗗彂甯冧簬鈥滄縺娲婚個璇风爜鍏戞崲鍔熻兘涓�濓紝闇�婵�娲婚個璇风殑鐢ㄦ埛鍙敤閲戝竵鍏戞崲锛屾湰娆″睍绀烘湁鏁堟湡涓�3澶┿��");
} else if (ExchangeTypeEnum.taoLiJin == type) {
- exchangeTip.setName(exchange.getAmount() + "鍏冩帹骞跨孩鍖�");
+ exchangeTip.setName(exchange.getAmount().setScale(0) + "鍏冩帹骞跨孩鍖�");
exchangeTip.setTip("娉�:鍏戞崲鎴愬姛鍚庤鍒扳�滄垜鐨�-鎺ㄥ箍绾㈠寘鈥濅腑鏌ョ湅");
} else if (ExchangeTypeEnum.cash == type) {
- exchangeTip.setName(exchange.getAmount() + "鍏冪幇閲戠孩鍖�");
+ exchangeTip.setName(exchange.getAmount().setScale(0) + "鍏冪幇閲戠孩鍖�");
exchangeTip.setTip("娉細鍏戞崲鎴愬姛鍚庤鍒扳�滄垜鐨�-璐︽埛浣欓鈥濅腑鏌ョ湅");
} else {
throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
@@ -91,22 +174,40 @@
return exchangeTip;
}
-
@Override
- public void exchange(Long uid, Long id, Long inviteId) throws IntegralExchangeException{
- if (uid == null || uid <= 0)
+ public IntegralExchange exchange(Long uid, Long id) throws IntegralExchangeException {
+ if (uid == null || uid <= 0)
throw new IntegralExchangeException(1, "鐢ㄦ埛鏈櫥褰�");
-
- if (id == null || id <= 0)
+
+ if (id == null || id <= 0)
throw new IntegralExchangeException(1, "鍏戞崲id涓嶆纭�");
-
- UserInfoExtraVO extraVO = userInfoExtraService.getInfoExtraVOByUid(uid);
+
+ UserInfoExtra extraVO = userInfoExtraService.getUserInfoExtra(uid);
if (extraVO == null)
throw new IntegralExchangeException(1, "鐢ㄦ埛鐩稿叧淇℃伅涓嶅瓨鍦�");
-
+
IntegralExchange exchange = integralExchangeMapper.selectByPrimaryKey(id);
if (exchange == null)
throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
+
+ ExchangeTypeEnum type = exchange.getType();
+
+ long exchangeCount = 0;
+ if (ExchangeTypeEnum.freeCouponBuy == type) {
+ exchangeCount = integralExchangeRecordService.countRecordByUid(id, uid, null);
+ if (exchangeCount >= 1) {
+ throw new IntegralExchangeException(1, "鑷喘鍏嶅崟鍒革紝浠呰兘鍏戞崲涓�娆�");
+ }
+ }
+
+ Integer upperLimit = exchange.getUpperLimit();
+ if (upperLimit != null) { // 鏄惁鏈夐檺鍒舵瘡鏃ユ鏁�
+ Integer today = 1;
+ exchangeCount = integralExchangeRecordService.countRecordByUid(id, uid, today);
+ if (exchangeCount >= upperLimit) {
+ throw new IntegralExchangeException(1, "鍏戞崲宸茶揪涓婇檺");
+ }
+ }
Integer goldCoin = exchange.getGoldCoin();
Integer goldCoinHas = extraVO.getGoldCoin();
@@ -114,41 +215,238 @@
throw new IntegralExchangeException(1, "褰撳墠璐︽埛涓彲鐢ㄩ噾甯佷笉瓒筹紝鏃犳硶鍏戞崲璇ュ鍝侊紒");
}
- ExchangeTypeEnum type = exchange.getType();
- if (ExchangeTypeEnum.freeCouponBuy == type) {
- // 鑷喘鍏嶅崟鍒�
+ String thing = "";
+ String thingNum = "";
+ int couponNews = 0;
+ try {
+ if (ExchangeTypeEnum.freeCouponBuy == type) {
+ thing = "鑷喘鍏嶅崟鍒�";
+ thingNum = "1寮�";
+ userSystemCouponService.exchangeCoupon(uid, type.name(), UserSystemCoupon.SOURCE_EXCHANGE, null);
+
+ couponNews = 1;
+ } else if (ExchangeTypeEnum.freeCouponGive == type) {
+ thing = "璧犻�佸厤鍗曞埜";
+ thingNum = "1寮�";
+ userSystemCouponService.exchangeCoupon(uid, type.name(), UserSystemCoupon.SOURCE_EXCHANGE, null);
+ couponNews = 1;
+ } else if (ExchangeTypeEnum.rebatePercentCoupon == type) {
+ thing = "濂栧姳鍏嶅崟鍒�";
+ thingNum = "3澶�";
+ String percent = configService.get("exchange_rebate_percent");
+ userSystemCouponService.exchangeCoupon(uid, type.name(), UserSystemCoupon.SOURCE_EXCHANGE, new BigDecimal(percent));
+ couponNews = 1;
+ } else if (ExchangeTypeEnum.inviteCodePublish == type) {
+ thing = "閭�璇风爜鍙戝竷鍗�";
+ thingNum = "1缁�";
+ if(codePublishRecordService.countValidRecord(uid) > 0)
+ throw new IntegralExchangeException(1, "涓夊ぉ涔嬪唴涓嶅彲閲嶅鍏戞崲");
+ codePublishRecordService.publishInviteCode(uid);
+ } else if (ExchangeTypeEnum.taoLiJin == type) {
+ thing = "鎺ㄥ箍绾㈠寘";
+ thingNum = exchange.getAmount() + "鍏�";
+ userTaoLiJinOriginService.exchangeMoney(uid, exchange.getAmount());
+ } else if (ExchangeTypeEnum.cash == type) {
+ thing = "鐜伴噾绾㈠寘";
+ BigDecimal money = exchange.getAmount();
+ thingNum = money + "鍏�";
+
+ // 1銆佹彃鍏ョ孩鍖呮暟鎹�
+ HongBaoV2 hongBaoV2 = new HongBaoV2();
+ hongBaoV2.setMoney(money);
+ hongBaoV2.setType(HongBaoV2.TYPE_EXCHANGE);
+ hongBaoV2.setState(HongBaoV2.STATE_YILINGQU);
+ hongBaoV2.setVersion(2);
+ hongBaoV2.setCreateTime(new Date());
+ hongBaoV2.setUpdateTime(new Date());
+ hongBaoV2.setUserInfo(new UserInfo(uid));
+ hongBaoV2.setPreGetTime(new Date());
+ hongBaoV2.setGetTime(new Date());
+ hongBaoV2Service.insertSelective(hongBaoV2);
+
+ // 2.鎻掑叆璧勯噾鏄庣粏,鐢ㄦ埛浣欓
+ UserMoneyDetail userMoneyDetail = UserMoneyDetailFactory.createScoreConvert(money, new UserInfo(uid));
+ userMoneyDetailService.addUserMoneyDetail(userMoneyDetail);
+ userInfoService.addMoney(new UserInfo(uid), money);
+ } else {
+ throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
+ }
+ exchangeCount ++;
+ String progress = exchange.getProgress();
+ if (!StringUtil.isNullOrEmpty(progress))
+ progress = progress.replace("{宸插厬鎹",exchangeCount + "").replace("{涓婇檺鏁皚", exchange.getUpperLimit() + "");
+ exchange.setProgress(progress);
- } else if (ExchangeTypeEnum.freeCouponGive == type) {
- // 璧犻�佸厤鍗曞埜
+ // 鍓╀綑閲戝竵
+ int surplus = goldCoinHas.intValue() - goldCoin.intValue();
+ exchange.setUserGoldCoin(surplus + "鏋�");
+ // 鏇存柊閲戝竵 + 绂忓埄涓績娑堟伅鏁�
+ if (extraVO.getCouponNews() != null && extraVO.getCouponNews() > 0)
+ couponNews = couponNews + extraVO.getCouponNews();
- } else if (ExchangeTypeEnum.rebateCoupon == type) {
- // 濂栧姳鍏嶅崟鍒�
+ UserInfoExtraVO extraUpdate = new UserInfoExtraVO();
+ extraUpdate.setId(extraVO.getId());
+ extraUpdate.setGoldCoin(surplus);
+ extraUpdate.setCouponNews(couponNews);
+ userInfoExtraService.saveUserInfoExtra(extraUpdate);
+ // 娣诲姞鍏戞崲璁板綍
+ integralExchangeRecordService.addExchangeRecord(id, uid);
- } else if (ExchangeTypeEnum.inviteCodeActivate == type) {
- if (inviteId == null || inviteId <= 0)
- throw new IntegralExchangeException(1, "浼犻�掑弬鏁颁笉姝g‘");
+ // 鍔犲叆鏄庣粏
+ IntegralDetail detail = new IntegralDetail();
+ detail.setUid(uid);
+ detail.setTitle("閲戝竵鍏戞崲-" + thing + "-" + thingNum);
+ detail.setMoney(-goldCoin);
+ detail.setCreateTime(new Date());
+ integralDetailService.insertSelective(detail);
- // 婵�娲婚個璇风爜
- UserInfoExtraVO inviteExtra = userInfoExtraService.getInfoExtraVOByUid(inviteId);
+ // 娑堟伅
+ final String things = thing;
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ MsgOtherExchangeContentDTO msgOther = new MsgOtherExchangeContentDTO();
+ msgOther.setState("閲戝竵鍏戞崲鎴愬姛");
+ msgOther.setExpend(goldCoin + "閲戝竵");
+ msgOther.setTotalGold(surplus + "閲戝竵");
+ msgOther.setThing(things);
+ userOtherMsgNotificationService.exchangeMsg(uid, "", msgOther);
+ }
+ });
+
+ return exchange;
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ throw new IntegralExchangeException(1, "鍏戞崲寮傚父");
+ }
+ }
+
+
+ @Override
+ public ExchangeTipVO verifyInviteCode(Long uid, Long id) throws IntegralExchangeException{
+ if (uid == null || uid <= 0)
+ throw new IntegralExchangeException(1, "鐢ㄦ埛鏈櫥褰�");
+
+ if (id == null || id <= 0)
+ throw new IntegralExchangeException(1, "鍏戞崲id涓嶆纭�");
+
+ UserInfoExtra extraVO = userInfoExtraService.getUserInfoExtra(uid);
+ if (extraVO == null)
+ throw new IntegralExchangeException(1, "鐢ㄦ埛鐩稿叧淇℃伅涓嶅瓨鍦�");
+
+ if (!StringUtil.isNullOrEmpty(extraVO.getInviteCode()))
+ throw new IntegralExchangeException(1, "閭�璇风爜宸叉縺娲伙紝鏃犻渶鍏戞崲");
+
+ CodePublishRecord record = codePublishRecordService.selectByPrimaryKey(id);
+ if (record == null)
+ throw new IntegralExchangeException(1, "鍏戞崲璁板綍涓嶅瓨鍦�");
+
+ IntegralExchange exchange = integralExchangeMapper.getValidByType(ExchangeTypeEnum.inviteCodeActivate.name());
+ if (exchange == null)
+ throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
+
+ ExchangeTipVO exchangeTip = new ExchangeTipVO();
+ exchangeTip.setId(id);
+ Integer goldCoin = exchange.getGoldCoin();
+ Integer goldCoinHas = extraVO.getGoldCoin();
+ if (goldCoin.intValue() > goldCoinHas.intValue()) {
+ exchangeTip.setType("notEnough");
+ exchangeTip.setTip("褰撳墠璐︽埛涓彲鐢ㄩ噾甯佷笉瓒筹紝鏃犳硶鍏戞崲璇ュ鍝侊紒");
+ exchangeTip.setGoldCoin((goldCoin.intValue() - goldCoinHas.intValue()) + "閲戝竵");
+ return exchangeTip;
+ }
+
+ exchangeTip.setTip("娉細鍏戞崲鎴愬姛鍚庤鍒扳�滄秷鎭�-绯荤粺娑堟伅鈥濇煡鐪�");
+ exchangeTip.setGoldCoin(goldCoin + "閲戝竵");
+ exchangeTip.setType(ExchangeTypeEnum.inviteCodeActivate.name());
+ return exchangeTip;
+ }
+
+
+ @Override
+ public void exchangeInviteCode(Long uid, Long id) throws IntegralExchangeException {
+ if (uid == null || uid <= 0)
+ throw new IntegralExchangeException(1, "鐢ㄦ埛鏈櫥褰�");
+
+ if (id == null || id <= 0)
+ throw new IntegralExchangeException(1, "鍏戞崲id涓嶆纭�");
+
+ UserInfoExtra extraVO = userInfoExtraService.getUserInfoExtra(uid);
+ if (extraVO == null)
+ throw new IntegralExchangeException(1, "鐢ㄦ埛鐩稿叧淇℃伅涓嶅瓨鍦�");
+
+ if (!StringUtil.isNullOrEmpty(extraVO.getInviteCode()))
+ throw new IntegralExchangeException(1, "閭�璇风爜宸叉縺娲伙紝鏃犻渶鍏戞崲");
+
+ CodePublishRecord record = codePublishRecordService.selectByPrimaryKey(id);
+ if (record == null)
+ throw new IntegralExchangeException(1, "鍏戞崲璁板綍涓嶅瓨鍦�");
+
+ IntegralExchange exchange = integralExchangeMapper.getValidByType(ExchangeTypeEnum.inviteCodeActivate.name());
+ if (exchange == null)
+ throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
+
+ Integer goldCoin = exchange.getGoldCoin();
+ Integer goldCoinHas = extraVO.getGoldCoin();
+ if (goldCoin.intValue() > goldCoinHas.intValue())
+ throw new IntegralExchangeException(1, "褰撳墠璐︽埛涓彲鐢ㄩ噾甯佷笉瓒筹紝鏃犳硶鍏戞崲璇ュ鍝侊紒");
+
+
+ try {
+ UserInfoExtraVO inviteExtra = userInfoExtraService.getInfoExtraVOByUid(record.getUid());
if (inviteExtra == null || StringUtil.isNullOrEmpty(inviteExtra.getInviteCode()))
throw new IntegralExchangeException(1, "鍏戞崲澶辫触锛岃鐢ㄦ埛閭�璇风爜涓嶅瓨鍦�");
- } else if (ExchangeTypeEnum.inviteCodePublish == type) {
- // 閭�璇风爜鍙戝竷
+ String inviteCode = inviteExtra.getInviteCode();
+ userInfoExtraService.activateInviteCode(uid, inviteExtra.getInviteCode());
-
- } else if (ExchangeTypeEnum.taoLiJin == type) {
- // 鎺ㄥ箍绾㈠寘
+ // 鍓╀綑閲戝竵
+ int surplus = goldCoinHas.intValue() - goldCoin.intValue();
-
- } else if (ExchangeTypeEnum.cash == type) {
- // 鐜伴噾绾㈠寘
+ // 鏇存柊閲戝竵
+ UserInfoExtraVO extraUpdate = new UserInfoExtraVO();
+ extraUpdate.setId(extraVO.getId());
+ extraUpdate.setGoldCoin(surplus);
+ userInfoExtraService.saveUserInfoExtra(extraUpdate);
- } else {
- throw new IntegralExchangeException(1, "鍏戞崲鏂瑰紡涓嶅瓨鍦�");
+ // 鍔犲叆鏄庣粏
+ IntegralDetail detail = new IntegralDetail();
+ detail.setUid(uid);
+ detail.setTitle("閲戝竵鍏戞崲-閭�璇风爜婵�娲诲崱-1缁�");
+ detail.setMoney(-goldCoin);
+ detail.setCreateTime(new Date());
+ integralDetailService.insertSelective(detail);
+
+ // 娣诲姞鍏戞崲璁板綍
+ integralExchangeRecordService.addExchangeRecord(id, uid);
+
+ // 娑堟伅
+ executor.execute(new Runnable() {
+ @Override
+ public void run() {
+ UserInfo userInfo = userInfoService.selectByPKey(record.getUid());
+ if (userInfo == null)
+ return;
+
+ String beizu = "閭�璇蜂汉锛�" + userInfo.getNickName() + "锛岄個璇风爜锛�" + inviteCode;
+
+ MsgOtherExchangeContentDTO msgOther = new MsgOtherExchangeContentDTO();
+ msgOther.setState("閲戝竵鍏戞崲鎴愬姛");
+ msgOther.setExpend(goldCoin + "閲戝竵");
+ msgOther.setTotalGold(surplus + "閲戝竵");
+ msgOther.setThing("閭�璇风爜婵�娲诲崱");
+
+ userOtherMsgNotificationService.exchangeMsg(uid, beizu, msgOther);
+ }
+ });
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ throw new IntegralExchangeException(1, "鍏戞崲澶辫触");
}
+
+
}
}
--
Gitblit v1.8.0