yujian
2020-01-18 f4a0f2acc63d7785eab108419a4e16f5f688cb95
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCouponControllerV2.java
@@ -2,6 +2,7 @@
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
@@ -15,7 +16,8 @@
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.exception.user.UserInfoExtraException;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.exception.user.UserSystemCouponException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
@@ -26,7 +28,10 @@
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.service.inter.user.vip.UserVIPInfoService;
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;
@@ -72,6 +77,8 @@
   @Resource
   private UserLotteryRecordService userLotteryRecordService;
   
   @Resource
   private UserVIPInfoService userVIPInfoService;
   /**
    * 用户券列表查询
@@ -97,7 +104,7 @@
         JSONObject data = new JSONObject();
         if (page == 1) {
            // 福利中心图片
            List<SwiperPicture> listswiper = swiperPictureService.getByBannerCard("welfare_top_1.6.5");
            List<SwiperPicture> listswiper = swiperPictureService.getByBannerCardAndVersion("welfare_top_1.6.5",acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()));
            if (listswiper != null && listswiper.size() > 0) {
               String topPicture = listswiper.get(0).getSrc();
               data.put("topPicture", topPicture);
@@ -106,7 +113,7 @@
   
         long count = UserSystemCouponService.countUserCouponList(uid);
         
         List<UserSystemCouponVO> resultList = UserSystemCouponService.getCouponList((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         List<UserSystemCouponVO> resultList = UserSystemCouponService.getCouponList(acceptData,(page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
         if (resultList == null) {
            resultList = new ArrayList<UserSystemCouponVO>();
         }
@@ -123,14 +130,11 @@
                  UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
                  // 未读券是否大于0
                  if (userInfoExtra != null && userInfoExtra.getCouponNews() > 0) {
                     userInfoExtra.setCouponNews(0);
                     try {
                        userInfoExtraService.saveUserInfoExtra(userInfoExtra);
                     } catch (UserInfoExtraException e) {
                        e.printStackTrace();
                     }
                     UserInfoExtra extra = new UserInfoExtra();
                     extra.setId(userInfoExtra.getId());
                     extra.setCouponNews(0);
                     userInfoExtraService.updateByPrimaryKeySelective(extra);
                  }
               }
            });
         }
@@ -169,5 +173,73 @@
         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;
      }
      if (userVIPInfoService.isVIP(uid)) {
         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-10");
      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(ConfigKeyEnum.rewardCouponHelp.getKey()));
         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);
      }
   }
}