From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 18 一月 2020 12:06:27 +0800
Subject: [PATCH] 用户注册信息

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinNewbiesServiceImpl.java |   67 ++++++++++++++++++++++++++-------
 1 files changed, 53 insertions(+), 14 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinNewbiesServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinNewbiesServiceImpl.java
index 694c0fd..efb2880 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinNewbiesServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinNewbiesServiceImpl.java
@@ -4,8 +4,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.List;
 
 import javax.annotation.Resource;
 
@@ -19,8 +18,10 @@
 import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail;
 import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum;
 import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinNewbies;
+import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
 import com.yeshi.fanli.entity.push.DeviceActive;
+import com.yeshi.fanli.entity.taobao.TLJFreeBuyGoods;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
 import com.yeshi.fanli.exception.taobao.TaoKeApiException;
@@ -36,14 +37,18 @@
 import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.TaoBaoConstant;
+import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.vo.redpack.TaoLiJinWinDetailVO;
+
+import net.sf.json.JSONObject;
 
 @Service
 public class UserTaoLiJinNewbiesServiceImpl implements UserTaoLiJinNewbiesService {
@@ -53,6 +58,9 @@
 	
 	@Resource
 	private ConfigTaoLiJinService configTaoLiJinService;
+	
+	@Resource	
+	private UserInfoService userInfoService;
 	
 	@Resource	
 	private UserInfoExtraService userInfoExtraService;
@@ -139,6 +147,10 @@
 		if (uid == null || uid <= 0) 
 			return null; // 鏈櫥褰曞脊鍑�
 		
+		UserInfo userInfo = userInfoService.selectByPKey(uid);
+		if (userInfo == null)
+			return null;
+		
 		UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
 		if (userInfoExtra == null || userInfoExtra.getFirstLoginTime() == null) 
 			return null;
@@ -215,11 +227,11 @@
 		detail.setTitle(TaoLiJinDetailTypeEnum.add.getDesc());
 		detail.setType(TaoLiJinDetailTypeEnum.add);
 		detail.setCreateTime(new Date());
+		detail.setRemark("鏂颁汉绾㈠寘");
 		userTaoLiJinDetailService.insertSelective(detail);
 		
-		
-		Map<String,String> map = new HashMap<String,String>();
-		map.put("url", configTaoLiJinService.getValueByKey("new_user_free_buy_list"));
+		JSONObject json = new JSONObject();
+		json.put("url", configTaoLiJinService.getValueByKey("new_user_free_buy_list"));
 		
 		TaoLiJinWinDetailVO winDetailVO = new TaoLiJinWinDetailVO();
 		winDetailVO.setTitle("鏂颁汉绾㈠寘");
@@ -227,10 +239,10 @@
 		winDetailVO.setMoney(money.toString());
 		winDetailVO.setDesc("宸查鍙栵細" + balance + "鍏�");
 		winDetailVO.setTips(configTaoLiJinService.getValueByKey("new_user_win_tips"));
-		winDetailVO.setParams(map.toString());
+		winDetailVO.setParams(json.toString());
 		winDetailVO.setJumpDetail(jumpDetailV2Service.getByTypeCache("web"));
 		winDetailVO.setLogo(Constant.systemCommonConfig.getDefaultPortrait());
-		winDetailVO.setLogoLight(Constant.systemCommonConfig.getDefaultPortrait());
+		winDetailVO.setLogoLight(userInfo.getPortrait());
 		return winDetailVO;
 	}
 	
@@ -242,32 +254,46 @@
 		if (uid == null || uid <= 0 || goods == null) 
 			throw new UserTaoLiJinNewbiesException(1,"鍙傛暟淇℃伅缂哄け");
 		
+		// 楠岃瘉鍟嗗搧鏄惁鍦ㄥ厤鍗曞晢鍝佸簱
+		TLJFreeBuyGoods tljFreeBuyGoods = tljFreeBuyGoodsService.selectByAuctionIdAndDay(goods.getAuctionId(),
+				TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"));
+		if (tljFreeBuyGoods == null) 
+			throw new UserTaoLiJinNewbiesException(1, "璇ュ晢鍝侀潪鍏嶅崟鍟嗗搧");
+		
+		// 楠岃瘉鏄惁鏈夊埜
 		if (goods == null || goods.getCouponAmount() == null || 
-				goods.getCouponAmount().compareTo(new BigDecimal(0)) == 0) {
+				goods.getCouponAmount().compareTo(new BigDecimal(0)) <= 0) {
 			executor.execute(new Runnable() {
 				@Override
 				public void run() {
-					tljFreeBuyGoodsService.deleteByGoodsId(goods.getId());
+					tljFreeBuyGoodsService.deleteByGoodsId(goods.getAuctionId());
 				}
 			});
 			throw new UserTaoLiJinNewbiesException(1, "璇ュ晢鍝侀潪鍏嶅崟鍟嗗搧");
 		}
 		
+		// 楠岃瘉鍒稿悗浠� 鏄惁鍦� 1-2鍏�
 		BigDecimal money = TaoBaoUtil.getAfterUseCouplePrice(goods);
-		if (money.compareTo(new BigDecimal(1.0)) < 0 && money.compareTo(new BigDecimal(2.0)) > 0) {
+		if (money.compareTo(new BigDecimal(1.0)) < 0 || money.compareTo(new BigDecimal(2.0)) > 0) {
 			executor.execute(new Runnable() {
 				@Override
 				public void run() {
-					tljFreeBuyGoodsService.deleteByGoodsId(goods.getId());
+					tljFreeBuyGoodsService.deleteByGoodsId(goods.getAuctionId());
 				}
 			});
 			throw new UserTaoLiJinNewbiesException(1, "璇ュ晢鍝侀潪鍏嶅崟鍟嗗搧");
 		}
 		
+		// 楠岃瘉鐢ㄦ埛淇℃伅
 		UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
 		if (userInfoExtra == null || userInfoExtra.getFirstLoginTime() == null)
 			throw new UserTaoLiJinNewbiesException(1001, "浣犱笉鏄�滄柊鐢ㄦ埛鈥濇棤娉曚娇鐢ㄦ柊浜虹孩鍖�0鍏冭喘涔般��");
-			
+		
+		// 楠岃瘉鏄惁婵�娲�
+		if (StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode()))
+			throw new UserTaoLiJinNewbiesException(1002, "閭�璇风爜鏈縺娲伙紝鏃犳硶浣跨敤鏂颁汉绾㈠寘0鍏冭喘涔般��");
+		
+		// 楠岃瘉鏄惁宸茶秴鍑烘柊鐢ㄦ埛瀹氫箟
 		try {
 			int days = DateUtil.daysBetween2(userInfoExtra.getFirstLoginTime(), new Date());
 			if (days > Constant.TLJ_NEW_USER_DEFINE)
@@ -275,12 +301,14 @@
 		} catch (ParseException e1) {
 			throw new UserTaoLiJinNewbiesException(1, "鏃ユ湡淇℃伅璁$畻澶辫触");
 		}
-			
+		
+		// 楠岃瘉浣欓
 		UserTaoLiJinNewbies taoLiJinNewbies = userTaoLiJinNewbiesMapper.selectForUpdate(uid);
 		if (taoLiJinNewbies == null || taoLiJinNewbies.getMoney() == null ||
 				taoLiJinNewbies.getMoney().compareTo(money)	< 0) 
 			throw new UserTaoLiJinNewbiesException(1001, "鏂颁汉绾㈠寘涓嶈冻锛岃鎹釜鍟嗗搧鍐嶈瘯鎴栫户缁鍙栧埌瓒抽鏂颁汉绾㈠寘銆�");
 		
+		// 楠岃瘉鏄惁宸茶繃鏈�
 		if (taoLiJinNewbies.getEndTime() == null 
 				|| taoLiJinNewbies.getEndTime().getTime() < java.lang.System.currentTimeMillis())
 			throw new UserTaoLiJinNewbiesException(1, "鏂颁汉绾㈠寘宸茶繃鏈�");
@@ -295,6 +323,7 @@
 		detail.setTitle(TaoLiJinDetailTypeEnum.reduce.getDesc());
 		detail.setType(TaoLiJinDetailTypeEnum.reduce);
 		detail.setCreateTime(new Date());
+		detail.setRemark("鏂颁汉鍏嶅崟浣跨敤绾㈠寘");
 		userTaoLiJinDetailService.insertSelective(detail);
 		
 		// 鍒涘缓娣樼ぜ閲戦摼鎺�
@@ -317,7 +346,7 @@
 	}
 	
 	
-	@Transactional
+	@Transactional(rollbackFor=Exception.class)
 	private String createTaoLiJin(Long auctionId, BigDecimal perface, int totalNum, String pid) throws UserTaoLiJinNewbiesException {
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 		SimpleDateFormat formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -378,4 +407,14 @@
 		return userTaoLiJinNewbiesMapper.selectByPrimaryKey(uid);
 	}
 
+	
+	@Override
+	public long count(String key) {
+		return userTaoLiJinNewbiesMapper.count(key);
+	}
+	
+	@Override
+	public List<UserTaoLiJinNewbies> query(int page, int count, String key,Integer order) {
+		return userTaoLiJinNewbiesMapper.query((page -1)* count, count, key, order);
+	}
 }

--
Gitblit v1.8.0