nickchange
2023-11-21 41b60f3df5f3054aad44307c13a26b14f3b32ac0
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
136
137
package com.dsh.activity.controller;
 
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.activity.entity.BodySideAppointment;
import com.dsh.activity.entity.IntroduceRewards;
import com.dsh.activity.feignclient.account.AppUserClient;
import com.dsh.activity.feignclient.model.IntrduceOfUserRequest;
import com.dsh.activity.feignclient.model.PurchaseRecordVo;
import com.dsh.activity.feignclient.other.model.Store;
import com.dsh.activity.model.*;
import com.dsh.activity.service.IntroduceRewardsService;
import com.dsh.activity.service.IntroduceUserService;
import io.swagger.annotations.Api;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
 
@Api
@CrossOrigin
@RestController
@RequestMapping("")
public class IntroduceRewardsController {
 
    @Autowired
    private IntroduceRewardsService idrService;
    @Autowired
    private IntroduceUserService introduceUserService;
 
 
    private final SimpleDateFormat mat = new SimpleDateFormat("MM-dd HH:mm");
 
    /**
     * 获取介绍有礼-参与用户记录表
     * @return
     */
    @RequestMapping("/base/introduceUser/listAllUser")
    public List<IntroduceUser> listAllUser(@RequestBody IntroduceUserQuery query){
        return introduceUserService.listAll(query);
    }
    /**
     * 通过id获取介绍有礼
     * @return
     */
    @RequestMapping("/base/introduce/getInfoById")
    public IntroduceRewards getInfoById(@RequestBody Integer id){
        return idrService.getById(id);
 
    }
    /**
     * 获取介绍有礼记录表
     * @return
     */
    @RequestMapping("/base/introduce/listAll")
    public List<IntroduceVO> listAll(@RequestBody IntroduceQuery query){
        Date date = new Date();
        List<IntroduceVO> introduceVOS = idrService.listAll(query);
        for (IntroduceVO introduceVO : introduceVOS) {
 
            Date startTime = introduceVO.getStartTime();
            Date endTime = introduceVO.getEndTime();
            if (date.after(startTime) && date.before(endTime)) {
                introduceVO.setActivityState(1);
            } else if (date.before(startTime)) {
                introduceVO.setActivityState(2);
            } else if (date.after(endTime)) {
                introduceVO.setActivityState(3);
            }
        }
        return introduceVOS;
    }
    /**
     * 增加/修改介绍有礼记录
     * @return
     */
    @RequestMapping("/base/introduce/addIntroduce")
    public Object addIntroduce(@RequestBody IntroduceRewards  introduceRewards){
 
        if (introduceRewards.getId()!=null){
            return idrService.updateById(introduceRewards);
        }else {
            introduceRewards.setInsertTime(new Date());
            return idrService.save(introduceRewards);
        }
    }
 
    /**
     * 上/下架介绍有礼 type = 1上架 type=2下架
     * @return
     */
    @RequestMapping("/base/introduce/changeState")
    public Object changeState(@RequestBody IntroduceChangeStateDTO dto){
        return idrService.changeState(dto);
    }
 
    @PostMapping("/base/introduce/useOfRewards")
    public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody IntrduceOfUserRequest request){
        List<PurchaseRecordVo> recordVos = new ArrayList<>();
        List<IntroduceRewards> list = idrService.list(new QueryWrapper<IntroduceRewards>()
                .ge("startTime",request.getStartTime())
                .lt("endTime",request.getEndTime()));
        if (request.getUserIds().size() > 0 && list.size() > 0){
            IntroduceRewards introduceRewards = list.get(0);
            request.getUserIds().forEach( userId -> {
                PurchaseRecordVo recordVo = new PurchaseRecordVo();
                recordVo.setPurchaseAmount("+"+introduceRewards.getGiveClass());
                recordVo.setPurchaseType("介绍有礼");
                recordVos.add(recordVo);
            } );
        }
        return recordVos;
    }
 
    @PostMapping("/base/introduce/getGiftList")
    @ResponseBody
    public IntroduceRewards getGiftList(@RequestBody String cityCode){
        List<IntroduceRewards> list = idrService.list(new LambdaQueryWrapper<IntroduceRewards>()
                .eq(IntroduceRewards::getCityCode,cityCode)
                .le(IntroduceRewards::getStartTime,new Date())
                .ge(IntroduceRewards::getEndTime,new Date())
                .orderByDesc(IntroduceRewards::getInsertTime)
                .last("LIMIT 1"));
        if (list.size()>0){
            return list.get(0);
        }
        return null;
    }
 
}