package com.dsh.activity.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.activity.entity.*; import com.dsh.activity.feignclient.account.AppUserClient; import com.dsh.activity.feignclient.account.CityClient; import com.dsh.activity.feignclient.account.StoreStaffClient; import com.dsh.activity.feignclient.account.StudentClient; import com.dsh.activity.feignclient.account.model.AppUserByNameAndPhoneDTO; import com.dsh.activity.feignclient.model.CouponExamineListSearch; import com.dsh.activity.feignclient.model.CouponListOfSearch; import com.dsh.activity.feignclient.model.TAppUser; import com.dsh.activity.feignclient.other.OperatorClient; import com.dsh.activity.feignclient.other.RegionClient; import com.dsh.activity.feignclient.other.StoreClient; import com.dsh.activity.feignclient.other.model.CityDataAndProvinceDataVo; import com.dsh.activity.feignclient.other.model.Store; import com.dsh.activity.feignclient.other.model.StoreInfoDto; import com.dsh.activity.feignclient.other.model.TOperatorCity; import com.dsh.activity.model.CouponListVo; import com.dsh.activity.model.CouponRecordQuery; import com.dsh.activity.model.request.CommodityRequest; import com.dsh.activity.model.request.CouponDataVo; import com.dsh.activity.model.request.CouponPackageReq; import com.dsh.activity.model.response.CouponPackageResp; import com.dsh.activity.model.response.HuiminAgreementVO; import com.dsh.activity.model.response.HuiminCardVO; import com.dsh.activity.service.*; import com.dsh.activity.util.GDMapGeocodingUtil; import com.dsh.activity.util.ResultUtil; import com.dsh.activity.util.TokenUtil; import com.dsh.activity.util.ToolUtil; import com.google.gson.Gson; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; /** * @author zhibing.pu * @date 2023/6/24 11:27 */ @RestController @RequestMapping("/huimin") @Api(tags = "惠民卡新增") public class HuiminController { @Autowired private ICouponService couponService; @Autowired private HuiminAgreementService huiminAgreementService; @Autowired private HuiminAgreementSettingService huiminAgreementSettingService; @Resource private HuiminCardService huiminCardService; @Resource private PayHuiminService payHuiminService; @Autowired private TokenUtil tokenUtil; /** * 查询注册赠送优惠券 判断当前优惠券限领数量 */ @ResponseBody @PostMapping("/getHuiminAgreementAndList") @ApiOperation(value = "惠民卡富文本内容-惠民卡列表") @ApiImplicitParams({ @ApiImplicitParam(value = "页码,首页1", name = "pageSize", dataType = "int", required = true), @ApiImplicitParam(value = "页条数", name = "pageNo", dataType = "int", required = true), @ApiImplicitParam(value = "门店id", name = "storeId", dataType = "int", required = true), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil getHuiminAgreementAndList(Integer pageSize, Integer pageNo,Integer storeId) { try { Integer uid = tokenUtil.getUserIdFormRedis(); if (null == uid) { return ResultUtil.tokenErr(); } pageNo = (pageNo - 1) * pageSize; HuiminAgreementVO huiminAgreementVO = new HuiminAgreementVO(); List list = huiminCardService.list(new LambdaQueryWrapper() .eq(THuiminCard::getStoreId, storeId)); if (list.isEmpty()){ // 没有配置惠民卡 展示富文本内容 huiminAgreementVO.setShowType(1); }else{ huiminAgreementVO.setShowType(2); } List cardList = huiminCardService.getHuiminAgreementAndList(pageNo,pageSize,storeId); List payHuimins = payHuiminService.list(new LambdaQueryWrapper() .eq(TPayHuimin::getAppUserId, uid) .ge(TPayHuimin::getEndTime,new Date()) .eq(TPayHuimin::getStatus, 1)); List huiminCardVOS = new ArrayList<>(); for (THuiminCard huiminCardVO : cardList) { HuiminCardVO huiminCardVO1 = new HuiminCardVO(); huiminCardVO1.setId(huiminCardVO.getId()); List collect = payHuimins.stream().filter(e -> e.getCardId().equals(huiminCardVO.getId())).collect(Collectors.toList()); if (!collect.isEmpty()){ huiminCardVO1.setCover(huiminCardVO.getBuyCover()); }else{ huiminCardVO1.setCover(huiminCardVO.getUnBuyCover()); } huiminCardVOS.add(huiminCardVO1); } huiminAgreementVO.setCardList(huiminCardVOS); return ResultUtil.success(huiminAgreementVO); } catch (Exception e) { e.printStackTrace(); return ResultUtil.success(new HuiminAgreementVO()); } } }