From 9db53b847ba90d437d9545485416f23887adf934 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 26 二月 2019 11:38:04 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserController.java | 323 ----------------------------------------------------- 1 files changed, 1 insertions(+), 322 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserController.java b/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserController.java index 39f3dc4..ef7b945 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserController.java @@ -1,33 +1,18 @@ package com.yeshi.fanli.controller.apph5; import java.io.PrintWriter; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; -import org.yeshi.utils.DateUtil; import org.yeshi.utils.JsonUtil; import com.alibaba.fastjson.JSONArray; -import com.yeshi.fanli.entity.accept.AcceptData; -import com.yeshi.fanli.entity.bus.user.DeviceLotteryRecord; import com.yeshi.fanli.entity.bus.user.ShamUser; -import com.yeshi.fanli.entity.bus.user.UserInfoExtra; -import com.yeshi.fanli.entity.bus.user.UserSystemCoupon; -import com.yeshi.fanli.entity.system.SystemCoupon; -import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum; -import com.yeshi.fanli.service.inter.config.ConfigService; -import com.yeshi.fanli.service.inter.config.SystemCouponService; -import com.yeshi.fanli.service.inter.order.CommonOrderCountService; -import com.yeshi.fanli.service.inter.user.DeviceLotteryRecordService; import com.yeshi.fanli.service.inter.user.ShamUserService; -import com.yeshi.fanli.service.inter.user.UserInfoExtraService; -import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import net.sf.json.JSONObject; @@ -41,67 +26,13 @@ @RequestMapping("api/apph5/v1/user") public class AppH5UserController { - @Resource - private DeviceLotteryRecordService deviceLotteryRecordService; - - @Resource - private UserInfoExtraService userInfoExtraService; - - @Resource - private CommonOrderCountService commonOrderCountService; @Resource private ShamUserService shamUserService; - @Resource - private ConfigService configService; - - @Resource - private SystemCouponService systemCouponService; - - @Resource - private UserSystemCouponService userSystemCouponService; - - // 鏈�澶ф娊濂栨鏁� - private static int MAX_COUNT = 5; - /** - * 鑾峰彇鎶藉娆℃暟 - * - * @param callback - * @param acceptData - * @param uid - * @param out - */ - @RequestMapping(value = "getLotteryCount") - public void getLotteryCount(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - int count = 0; - try { - count = getSurplusCount(acceptData, uid); - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage())); - e.printStackTrace(); - } - - try { - // 鎶藉瑙勫垯 - String lotteryRule = configService.get("lottery_rule_newbies"); - - JSONObject data = new JSONObject(); - data.put("count", count); - data.put("rule", lotteryRule); - - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鑾峰彇鎶藉娆℃暟 + * 鑾峰彇鎶藉骞垮憡鍒楄〃 * * @param callback * @param out @@ -145,258 +76,6 @@ } } - /** - * 鑾峰彇鎶藉缁撴灉 - * - * @param callback - * @param acceptData - * @param uid - * @param out - */ - @RequestMapping(value = "getLotteryResult") - public void getLotteryResult(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - - try { - // 濂栧搧 - int count = 0; - String prize = ""; - Long couponId = null; - - if (uid == null) { // 鏈櫥褰� - int platformType = 0; - String platform = acceptData.getPlatform(); - if ("android".equals(platform)) { - platformType = 1; - } else if ("ios".equals(platform)) { - platformType = 2; - } else { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("骞冲彴鏈夎")); - return; - } - - String device = acceptData.getDevice(); - if (device == null || device.trim().length() == 0) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璁惧涓嶅瓨鍦�")); - return; - } - int hasPrize = 0; - - List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, - device); - if (list != null && list.size() == MAX_COUNT) { // 鏃犳娊濂栨満浼� - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻")); - return; - } else if (list != null && list.size() < MAX_COUNT) { // 鎷ユ湁鎶藉鏈轰細 - for (DeviceLotteryRecord deviceLotteryRecord : list) { - Long systemCouponId = deviceLotteryRecord.getSystemCouponId(); - if (systemCouponId != null) { - hasPrize++; - couponId = systemCouponId; - } - } - count = MAX_COUNT - 1 - list.size(); - } else { - count = MAX_COUNT - 1; - } - - // 濂栧搧 - prize = getLotteryPrize(MAX_COUNT, hasPrize, list.size(), couponId); - // 鎶戒腑 - Long newCouponId = null; - if (prize != null && prize.trim().length() > 0) { - SystemCoupon coupon= systemCouponService.getCouponByType(prize); - newCouponId =coupon.getId(); - } - - // 鎻掑叆璁板綍 - DeviceLotteryRecord record = new DeviceLotteryRecord(); - record.setDevice(device); - record.setPlatform(platformType); - record.setSystemCouponId(newCouponId); - record.setCreateTime(new Date()); - deviceLotteryRecordService.insertSelective(record); - - } else { // 宸茬櫥褰� - UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); - if (userInfoExtra == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇℃伅涓嶆纭�")); - return; - } - - Integer lotteryNewbies = userInfoExtra.getLotteryNewbies(); - if (lotteryNewbies == null || lotteryNewbies < 1 ) { // 娆℃暟宸茬敤鍏� - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻")); - return; - } else { - count = lotteryNewbies - 1; // 鍓╀綑娆℃暟 - } - - List<UserSystemCoupon> list = userSystemCouponService.getUserCouponBySource(uid, UserSystemCoupon.SOURCE_CHOUJIANG); - if (list != null && list.size() == 1) { - couponId = list.get(0).getSystemCoupon().getId(); - } - - // 濂栧搧 - prize = getLotteryPrize(MAX_COUNT, list.size(), MAX_COUNT- lotteryNewbies, couponId); - // 鎶戒腑 - if (prize != null && prize.trim().length() > 0) { - SystemCoupon coupon= systemCouponService.getCouponByType(prize); - - String endDay = DateUtil.plusDay(coupon.getExpiryDay(), new Date()); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Date endTime = format.parse(endDay); - - int stateActivated = 1; - if (coupon.getType() == CouponTypeEnum.welfareFreeCoupon) { - stateActivated = 0; - } - - UserSystemCoupon userCoupon = new UserSystemCoupon(); - userCoupon.setUid(uid); - userCoupon.setSource(UserSystemCoupon.SOURCE_CHOUJIANG); - userCoupon.setSystemCoupon(coupon); - userCoupon.setState(UserSystemCoupon.STATE_CAN_USE); - userCoupon.setStateActivated(stateActivated); - userCoupon.setStartTime(new Date()); - userCoupon.setEndTime(endTime); - userCoupon.setCreateTime(new Date()); - userCoupon.setUpdateTime(new Date()); - userSystemCouponService.insertSelective(userCoupon); - } - - // 鍓╀綑娆℃暟 - userInfoExtra.setLotteryNewbies(count); - userInfoExtraService.saveUserInfoExtra(userInfoExtra); - } - - if (prize == null || prize.trim().length() == 0) { - prize = "NoPrize"; - } - - JSONObject data = new JSONObject(); - data.put("count", count); - data.put("result", prize); - - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎶藉澶辫触")); - e.printStackTrace(); - } - } - - /** - * 濂栧搧鎶藉彇 - * @param maxCount 鏈�澶ф鏁� - * @param hasPrize 鎷ユ湁濂栧搧鏁伴噺 - * @param record 宸叉娊娆℃暟 - * @param couponId 鍒竔d - * @return - */ - public String getLotteryPrize(int maxCount, int hasPrize, int record, Long couponId) { - - String prize = null; - String freeCoupon = CouponTypeEnum.welfareFreeCoupon.name(); // 绂忓埄鍏嶈垂鍒� - String rebateCoupon = CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒� - - if (hasPrize == 1 && record == maxCount - 1) { - // 鏈�鍚庝竴娆★細 鍙敹鍒颁竴涓鍝� - SystemCoupon systemCoupon = systemCouponService.selectByPrimaryKey(couponId); - if (systemCoupon != null) { - CouponTypeEnum type = systemCoupon.getType(); - if (type.name() == freeCoupon) { - prize = rebateCoupon; // 濂栧姳鍒� - } else { - prize = freeCoupon; // 绂忓埄鍏嶈垂鍒� - } - } else { - prize = rebateCoupon; // 濂栧姳鍒� - } - - } else if (hasPrize == 0 && record == maxCount - 2) { - // 鍓�3娆℃病鏈夊鍔辨椂銆佸悗闈袱娆″繀涓� - long result = (1 + Math.round(Math.random() * (9))); - if (result <= 5) { - prize = freeCoupon; // 绂忓埄鍏嶈垂鍒� - } else { - prize = rebateCoupon; // 濂栧姳鍒� - } - - } else { // 澶т簬3娆℃満浼� - - if (hasPrize < 2) { // 涓嶈冻涓や釜濂栧搧 - long result = (1 + Math.round(Math.random() * (9))); - if (result <= 3) { - prize = freeCoupon; // 绂忓埄鍏嶈垂鍒� - } else if (result <= 6) { - prize = rebateCoupon; // 濂栧姳鍒� - } - } - } - - return prize; - } - - - - - /** - * 鑾峰彇鎶藉缁撴灉 - * - * @param callback - * @param acceptData - * @param uid - * @param out - */ - public int getSurplusCount(AcceptData acceptData, Long uid) throws Exception { - - // 榛樿鏈�澶ф娊濂栨鏁� - int count = 5; - - if (uid == null) { // 鏈櫥褰� - int platformType = 0; - String platform = acceptData.getPlatform(); - if ("android".equals(platform)) { - platformType = 1; - } else if ("ios".equals(platform)) { - platformType = 2; - } else { - throw new Exception("骞冲彴鏈夎"); - } - - String device = acceptData.getDevice(); - if (device == null || device.trim().length() == 0) { - throw new Exception("璁惧涓嶅瓨鍦�"); - } - - List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, device); - if (list != null && list.size() > 0) { - count = count - list.size(); - } - - } else { // 宸茬櫥褰� - UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); - if (userInfoExtra == null) { - throw new Exception("淇℃伅涓嶆纭�"); - } - - Integer lotteryNewbies = userInfoExtra.getLotteryNewbies(); - if (lotteryNewbies == null) { // 鏈娊杩� - // 鏄惁鏈夎繃璁㈠崟锛氳繑鍒┿�佸垎浜鍗� - boolean hasOrder = commonOrderCountService.hasRebateAndShareOrder(uid); - if (hasOrder) { - count = 0; // 涓嶇畻鏂扮敤鎴� - } - userInfoExtra.setLotteryNewbies(count); - userInfoExtraService.saveUserInfoExtra(userInfoExtra); - - } else { - count = lotteryNewbies; // 鍓╀綑娆℃暟 - } - } - - return count; - } /** * 鐢熸垚濂栭」 -- Gitblit v1.8.0