admin
2019-02-26 9db53b847ba90d437d9545485416f23887adf934
Merge remote-tracking branch 'origin/master'
3个文件已修改
649 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserController.java 323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserRankingsController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java 320 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 券id
     * @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;
    }
    /**
     * 生成奖项
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserRankingsController.java
@@ -12,10 +12,9 @@
import javax.annotation.Resource;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -24,9 +23,8 @@
import com.yeshi.fanli.entity.bus.user.UserRankings;
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
import com.yeshi.fanli.service.inter.user.UserRankingsService;
import com.yeshi.fanli.util.annotation.RequestNoSignValidate;
import org.yeshi.utils.JsonUtil;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/apph5/v1/rewardRank")
fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java
@@ -1,23 +1,34 @@
package com.yeshi.fanli.controller.client;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.DateUtil;
import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.bus.user.DeviceLotteryRecord;
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.exception.user.UserSystemCouponException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemCouponService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
import com.yeshi.fanli.service.inter.order.CommonOrderService;
import com.yeshi.fanli.service.inter.user.DeviceLotteryRecordService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.vo.user.UserSystemCouponRecordVO;
@@ -45,6 +56,25 @@
    
    @Resource
    private CommonOrderService commonOrderService;
    @Resource
    private DeviceLotteryRecordService deviceLotteryRecordService;
    @Resource
    private SystemCouponService systemCouponService;
    @Resource
    private UserSystemCouponService userSystemCouponService;
    @Resource
    private UserInfoExtraService userInfoExtraService;
    @Resource
    private CommonOrderCountService commonOrderCountService;
    // 最大抽奖次数
    private static int MAX_COUNT = 5;
    
    /**
     * 用户券列表查询
@@ -287,4 +317,292 @@
        }
    }
    
    /**
     * 获取抽奖次数
     *
     * @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 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 券id
     * @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;
    }
}