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<HuiminAgreementVO> 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<THuiminCard> list = huiminCardService.list(new LambdaQueryWrapper<THuiminCard>()
|
.eq(THuiminCard::getStoreId, storeId));
|
if (list.isEmpty()){
|
// 没有配置惠民卡 展示富文本内容
|
huiminAgreementVO.setShowType(1);
|
}else{
|
huiminAgreementVO.setShowType(2);
|
}
|
List<THuiminCard> cardList = huiminCardService.getHuiminAgreementAndList(pageNo,pageSize,storeId);
|
List<TPayHuimin> payHuimins = payHuiminService.list(new LambdaQueryWrapper<TPayHuimin>()
|
.eq(TPayHuimin::getAppUserId, uid)
|
.ge(TPayHuimin::getEndTime,new Date())
|
.eq(TPayHuimin::getStatus, 1));
|
List<HuiminCardVO> huiminCardVOS = new ArrayList<>();
|
for (THuiminCard huiminCardVO : cardList) {
|
HuiminCardVO huiminCardVO1 = new HuiminCardVO();
|
huiminCardVO1.setId(huiminCardVO.getId());
|
List<TPayHuimin> 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());
|
}
|
}
|
|
|
}
|