From ad9fbd2c18f280ef9bba47f28353d367cf2d94e8 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期二, 14 五月 2019 11:28:03 +0800 Subject: [PATCH] Merge branch 'div_12' --- fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserController.java | 410 +++++++++++++++++++--------------------------------------- 1 files changed, 133 insertions(+), 277 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 82d20ee..b32316f 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 @@ -11,23 +11,13 @@ 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.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 net.sf.json.JSONObject; /** - * 鐢ㄦ埛 + * 鐢ㄦ埛 * * @author Administrator * @@ -36,61 +26,14 @@ @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; - - - /** - * 鑾峰彇鎶藉娆℃暟 - * @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 */ @@ -100,282 +43,88 @@ try { // 闅忔満20鏉℃暟鎹� List<ShamUser> listUser = shamUserService.listRandUser(20); - + JSONArray array = new JSONArray(); - for (ShamUser shamUser: listUser) { + for (ShamUser shamUser : listUser) { JSONObject dataInfo = new JSONObject(); - + String name = shamUser.getName(); if (name.length() == 1) { name = "Jx****" + name; } else { name = name.substring(0, 1) + "****" + name.substring(name.length() - 2, name.length() - 1); } - + String prize = generateAward(); if (prize == null) { - prize = "鎶戒腑涓�寮犵鍒╁厤鍗曞埜"; + prize = "涓�寮犵鍒╁厤鍗曞埜"; } - + dataInfo.put("pic", shamUser.getPicUrl()); dataInfo.put("content", name + "锛屾娊涓�" + prize); array.add(dataInfo); } - + JSONObject data = new JSONObject(); data.put("result_list", array); - + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - + } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触")); e.printStackTrace(); } } - - /** - * 鑾峰彇鎶藉缁撴灉 - * @param callback - * @param acceptData - * @param uid - * @param out - */ - @RequestMapping(value = "getLotteryResult") - public void getLotteryResult(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 prize = "No_Prizes"; // freeCoupon 銆� rebateCoupon - - 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; - } - - List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, device); - if (list != null && list.size() == 5) { // 鏃犳娊濂栨満浼� - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻")); - return; - } else if (list != null && list.size() < 5 ){ // 鎷ユ湁鎶藉鏈轰細 - int hasPrize = 0; - Long couponId = null; - - for (DeviceLotteryRecord deviceLotteryRecord: list) { - Long systemCouponId = deviceLotteryRecord.getSystemCouponId(); - if (systemCouponId != null) { - hasPrize ++; - couponId = systemCouponId; - } - } - - // 鍓�3娆℃病鏈夊鍔辨椂銆佸悗闈袱娆″繀涓� - if (hasPrize == 0 && list.size() == 3) { - long result = (1 + Math.round(Math.random() * (9))); - - if (result <=5) { - prize = CouponTypeEnum.welfareFreeCoupon.name(); // 绂忓埄鍏嶈垂鍒� - } else { - prize = CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒� - } - - } else if (hasPrize == 1 && list.size() == 4) { - SystemCoupon systemCoupon = systemCouponService.selectByPrimaryKey(couponId); - - if (systemCoupon != null) { - CouponTypeEnum type = systemCoupon.getType(); - if (type == CouponTypeEnum.welfareFreeCoupon) { - prize = CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒� - } else { - prize = CouponTypeEnum.welfareFreeCoupon.name(); // 绂忓埄鍏嶈垂鍒� - } - } else { - prize = CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒� - } - } else { // 澶т簬3娆℃満浼� - - if (hasPrize < 2 ) { // 涓嶈冻涓や釜濂栧搧 - - } else { - - } - - - } - - - - - - - - } - - } else { //宸茬櫥褰� - UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); - if (userInfoExtra == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇℃伅涓嶆纭�")); - return; - } - - Integer lotteryNewbies = userInfoExtra.getLotteryNewbies(); - if (lotteryNewbies == null ) { // 鏈娊杩� - // 鏄惁鏈夎繃璁㈠崟锛氳繑鍒┿�佸垎浜鍗� - boolean hasOrder = commonOrderCountService.hasRebateAndShareOrder(uid); - if (hasOrder) { - count = 0; // 涓嶇畻鏂扮敤鎴� - } - - } else { - count = lotteryNewbies; // 鍓╀綑娆℃暟 - } - } - - // 鎶藉瑙勫垯 - 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 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; // 涓嶇畻鏂扮敤鎴� - } - - } else { - count = lotteryNewbies; // 鍓╀綑娆℃暟 - } - } - - return count; - } - - - - - - /** * 鐢熸垚濂栭」 * * @return */ public String generateAward() { - + RandomGift randomGift1 = new RandomGift(); randomGift1.prize = "鎶戒腑鍗庝负鎵嬫満20涓�鍙�"; randomGift1.probability = 2; - + RandomGift randomGift2 = new RandomGift(); randomGift2.prize = "鐜伴噾绾㈠寘楼188"; randomGift2.probability = 5; - + RandomGift randomGift3 = new RandomGift(); randomGift3.prize = "鐜伴噾绾㈠寘楼88"; randomGift3.probability = 13; - + RandomGift randomGift4 = new RandomGift(); randomGift4.prize = "涓�寮犵鍒╁厤鍗曞埜"; randomGift4.probability = 40; - + RandomGift randomGift5 = new RandomGift(); randomGift5.prize = "涓�寮犺繑鍒╁鍔卞埜"; randomGift5.probability = 40; - + List<RandomGift> giftList = new ArrayList<RandomGift>(); giftList.add(randomGift1); giftList.add(randomGift2); giftList.add(randomGift3); giftList.add(randomGift4); giftList.add(randomGift5); - + long result = (1 + Math.round(Math.random() * (99))); - + int minRange = 0; int maxRange = 0; - + String prize = null; - + for (int i = 0; i < giftList.size(); i++) { RandomGift obj2 = giftList.get(i); int probability = obj2.probability; - + maxRange = maxRange + probability; minRange = 100 - maxRange; - + if (probability != 0) { if (result > minRange && result <= maxRange) { prize = obj2.prize; @@ -383,10 +132,117 @@ } } } - + return prize; } + + + /** + * 鑾峰彇鎶藉骞垮憡鍒楄〃 + * + * @param callback + * @param out + */ + @RequestMapping(value = "getDailyRadioList") + public void getDailyRadioList(String callback, PrintWriter out) { + + try { + // 闅忔満20鏉℃暟鎹� + List<ShamUser> listUser = shamUserService.listRandUser(20); + + JSONArray array = new JSONArray(); + for (ShamUser shamUser : listUser) { + JSONObject dataInfo = new JSONObject(); + + String name = shamUser.getName(); + if (name.length() == 1) { + name = "Jx****" + name; + } else { + name = name.substring(0, 1) + "****" + name.substring(name.length() - 2, name.length() - 1); + } + + String prize = dailyGenerateAward(); + if (prize == null) { + prize = "涓ゅ紶杩斿埄濂栧姳鍒�"; + } + + dataInfo.put("pic", shamUser.getPicUrl()); + dataInfo.put("content", name + "锛屾娊涓�" + prize); + array.add(dataInfo); + } + + JSONObject data = new JSONObject(); + data.put("result_list", array); + + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触")); + e.printStackTrace(); + } + } + + + /** + * 鐢熸垚濂栭」-澶╁ぉ鎶� + * + * @return + */ + public String dailyGenerateAward() { + + RandomGift randomGift1 = new RandomGift(); + randomGift1.prize = "鎶戒腑鍗庝负鎵嬫満20涓�鍙�"; + randomGift1.probability = 2; + + RandomGift randomGift2 = new RandomGift(); + randomGift2.prize = "鐜伴噾绾㈠寘楼188"; + randomGift2.probability = 5; + + RandomGift randomGift3 = new RandomGift(); + randomGift3.prize = "鐜伴噾绾㈠寘楼88"; + randomGift3.probability = 13; + + RandomGift randomGift4 = new RandomGift(); + randomGift4.prize = "涓ゅ紶杩斿埄濂栧姳鍒�"; + randomGift4.probability = 40; + + RandomGift randomGift5 = new RandomGift(); + randomGift5.prize = "涓�寮犺繑鍒╁鍔卞埜"; + randomGift5.probability = 40; + + List<RandomGift> giftList = new ArrayList<RandomGift>(); + giftList.add(randomGift1); + giftList.add(randomGift2); + giftList.add(randomGift3); + giftList.add(randomGift4); + giftList.add(randomGift5); + + long result = (1 + Math.round(Math.random() * (99))); + + int minRange = 0; + int maxRange = 0; + + String prize = null; + + for (int i = 0; i < giftList.size(); i++) { + RandomGift obj2 = giftList.get(i); + int probability = obj2.probability; + + maxRange = maxRange + probability; + minRange = 100 - maxRange; + + if (probability != 0) { + if (result > minRange && result <= maxRange) { + prize = obj2.prize; + break; + } + } + } + + return prize; + } + class RandomGift { public String prize;// 濂栭」 public int probability; // 姒傜巼 -- Gitblit v1.8.0