package com.yeshi.fanli.controller.client.v2;
|
|
import java.io.PrintWriter;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.core.task.TaskExecutor;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
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.UserInfoExtra;
|
import com.yeshi.fanli.entity.order.CommonOrder;
|
import com.yeshi.fanli.exception.user.UserInfoExtraException;
|
import com.yeshi.fanli.exception.user.UserSystemCouponException;
|
import com.yeshi.fanli.log.LogHelper;
|
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.CommonOrderService;
|
import com.yeshi.fanli.service.inter.user.DeviceLotteryRecordService;
|
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
import com.yeshi.fanli.service.inter.user.UserLotteryRecordService;
|
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
|
import com.yeshi.fanli.util.Constant;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.TimeUtil;
|
import com.yeshi.fanli.vo.user.UserSystemCouponVO;
|
|
import net.sf.json.JSONObject;
|
|
/**
|
* 福利中心
|
*
|
* @author Administrator
|
*
|
*/
|
@Controller
|
@RequestMapping("api/v2/user/coupon")
|
public class UserCouponControllerV2 {
|
|
@Resource(name = "taskExecutor")
|
private TaskExecutor executor;
|
|
@Resource
|
private ConfigService configService;
|
|
@Resource
|
private SystemCouponService systemCouponService;
|
|
@Resource
|
private UserSystemCouponService UserSystemCouponService;
|
|
@Resource
|
private SwiperPictureService swiperPictureService;
|
|
@Resource
|
private CommonOrderService commonOrderService;
|
|
@Resource
|
private DeviceLotteryRecordService deviceLotteryRecordService;
|
|
@Resource
|
private UserSystemCouponService userSystemCouponService;
|
|
@Resource
|
private UserInfoExtraService userInfoExtraService;
|
|
|
@Resource
|
private UserLotteryRecordService userLotteryRecordService;
|
|
|
/**
|
* 用户券列表查询
|
*
|
* @param acceptData
|
* @param page
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping(value = "getCouponList", method = RequestMethod.POST)
|
public void getCouponList(AcceptData acceptData, Integer page, Long uid, PrintWriter out) {
|
if (uid == null || uid <= 0) {
|
out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
|
return;
|
}
|
|
if (page == null || page < 1) {
|
out.print(JsonUtil.loadFalseResult(1, "页码不正确"));
|
return;
|
}
|
|
try {
|
JSONObject data = new JSONObject();
|
if (page == 1) {
|
// 福利中心图片
|
List<SwiperPicture> listswiper = swiperPictureService.getByBannerCard("welfare_top_1.6.5");
|
if (listswiper != null && listswiper.size() > 0) {
|
String topPicture = listswiper.get(0).getSrc();
|
data.put("topPicture", topPicture);
|
}
|
}
|
|
long count = UserSystemCouponService.countUserCouponList(uid);
|
|
List<UserSystemCouponVO> resultList = UserSystemCouponService.getCouponList((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
|
if (resultList == null) {
|
resultList = new ArrayList<UserSystemCouponVO>();
|
}
|
|
data.put("count", count);
|
data.put("list", JsonUtil.getApiCommonGson().toJson(resultList));
|
out.print(JsonUtil.loadTrueResult(data));
|
|
// 更新福利中心未读数量
|
if (page == 1) {
|
executor.execute(new Runnable() {
|
@Override
|
public void run() {
|
UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
|
// 未读券是否大于0
|
if (userInfoExtra != null && userInfoExtra.getCouponNews() > 0) {
|
userInfoExtra.setCouponNews(0);
|
try {
|
userInfoExtraService.saveUserInfoExtra(userInfoExtra);
|
} catch (UserInfoExtraException e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|
});
|
}
|
} catch (UserSystemCouponException e) {
|
out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
|
} catch (Exception e) {
|
out.print(JsonUtil.loadFalseResult(1, "查询失败"));
|
LogHelper.errorDetailInfo(e);
|
}
|
}
|
|
|
/**
|
* 赠送券口令生成
|
* @param acceptData
|
* @param uid
|
* @param id
|
* @param out
|
*/
|
@RequestMapping(value = "giveCoupon", method = RequestMethod.POST)
|
public void giveCoupon(AcceptData acceptData, Long uid, Long id, PrintWriter out) {
|
if (uid == null || uid <= 0) {
|
out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
|
return;
|
}
|
if (id == null || id <= 0) {
|
out.print(JsonUtil.loadFalseResult(1, "传递参数不正确"));
|
return;
|
}
|
try {
|
UserSystemCouponVO vo = UserSystemCouponService.giveCoupon(uid, id);
|
JSONObject data = new JSONObject();
|
data.put("result", JsonUtil.getApiCommonGson().toJson(vo));
|
out.print(JsonUtil.loadTrueResult(data));
|
} catch (UserSystemCouponException e) {
|
out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
|
}
|
}
|
|
|
/**
|
* 用户奖励券
|
*
|
* @param acceptData
|
* @param page
|
* @param uid
|
* @param out
|
*/
|
@RequestMapping(value = "getOrderCouponList", method = RequestMethod.POST)
|
public void getOrderCouponList(AcceptData acceptData, Long uid, String orderNo, PrintWriter out) {
|
|
if (uid == null || StringUtil.isNullOrEmpty(orderNo)) {
|
out.print(JsonUtil.loadFalseResult("传递参数信息不完整"));
|
return;
|
}
|
|
|
List<CommonOrder> listOrder = commonOrderService.getByOrderNo(uid, orderNo);
|
if (listOrder == null || listOrder.size() == 0) {
|
out.print(JsonUtil.loadFalseResult("订单号不存在"));
|
return;
|
}
|
|
boolean valid = false;
|
long limitDate = TimeUtil.convertDateToTemp("2019-09-01");
|
for (CommonOrder commonOrder: listOrder) {
|
Integer wholeOrder = commonOrder.getStateWholeOrder();
|
if (wholeOrder != null && CommonOrder.STATE_WHOLE_ORDER_SHIXIAO == wholeOrder) {
|
out.print(JsonUtil.loadFalseResult("整个订单已失效"));
|
return;
|
}
|
|
Date thirdCreateTime = commonOrder.getThirdCreateTime();
|
if (thirdCreateTime != null && thirdCreateTime.getTime() > limitDate) {
|
valid = true; // 1.6.5上线之后下单
|
}
|
}
|
|
try {
|
|
List<UserSystemCouponVO> resultList = null;
|
if (valid) {
|
resultList = UserSystemCouponService.getOrderCouponList(uid);
|
} else {
|
resultList = UserSystemCouponService.listIncludeNotExchange(uid);
|
}
|
|
if (resultList == null) {
|
resultList = new ArrayList<UserSystemCouponVO>();
|
}
|
|
JSONObject data = new JSONObject();
|
data.put("helpLink", configService.get("reward_coupon_help"));
|
data.put("count", resultList.size());
|
data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList));
|
out.print(JsonUtil.loadTrueResult(data));
|
} catch (UserSystemCouponException e) {
|
out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
|
} catch (Exception e) {
|
out.print(JsonUtil.loadFalseResult(1, "查询失败"));
|
LogHelper.errorDetailInfo(e);
|
}
|
}
|
|
}
|