无关风月
2025-03-28 0e2f30e179b0669b674b8c4086488128a548e385
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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());
        }
    }
 
 
}