From 0e2d8cb8e2794265bbd2241a2f320203af053721 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期五, 15 三月 2019 17:50:09 +0800
Subject: [PATCH] Merge branch 'div'
---
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