jyy
2021-01-12 f8dedc24fe558d31c7272346cd5849a5656cddc1
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
package com.matrix.system.hive.action;
 
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.MoneyCardUse;
import com.matrix.system.hive.bean.SysProjUse;
import com.matrix.system.hive.bean.SysProjUseFlow;
import com.matrix.system.hive.dao.SysProjUseDao;
import com.matrix.system.hive.service.MoneyCardUseService;
import com.matrix.system.hive.service.SysProjUseService;
import com.matrix.system.hive.service.SysProjuseFreezeService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
 
 
/**
 * 会员套餐管理
 *
 * @author guchunxia
 * @date 2016-09-03
 */
@Controller
@RequestMapping(value = "admin/taoCanUser")
public class TaocanController extends BaseController {
    @Resource
    private SysProjUseService sysProjUseService;
 
    @Autowired
    private SysProjUseDao projUseDao;
 
    @Resource
    private SysProjuseFreezeService sysProjuseFreezeService;
 
    @Resource
    private MoneyCardUseService moneyCardUseService;
 
 
    public static final String fnCode = "projUse";
    public static final String search = fnCode + ":search";
    public static final String edit = fnCode + ":edit";
    public static final String del = fnCode + ":del";
    public static final String add = fnCode + ":add";
 
    /**
     * 查看会员套餐使用情况
     *
     * @author guchunxia
     * @date 2016-09-03
     */
    @RequestMapping(value = "/showTc")
    public @ResponseBody
    AjaxResult showTc(PaginationVO pageVo, SysProjUse sysProjUse) {
 
        sysProjUse.setType(Dictionary.SHOPPING_GOODS_TYPE_TC);
        List<SysProjUse> projUseList =sysProjUseService.findInPage(sysProjUse,null);
        //设置套餐中的项目
        projUseList.forEach(taocanProjUse -> {
            taocanProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(taocanProjUse.getId()));
        });
        return new AjaxResult(AjaxResult.STATUS_SUCCESS, projUseList, sysProjUseService.findTotal(sysProjUse));
    }
 
    /**
     * 将套餐设置为有效
     *
     * @author guchunxia
     * @date 2016-09-03
     */
    @RequestMapping(value = "/activeTc")
    public @ResponseBody
    AjaxResult activeTc(SysProjUse sysProjUse) {
 
        return sysProjUseService.activeTc(sysProjUse);
 
    }
 
    /**
     * 将套餐设置为无效
     *
     * @author guchunxia
     * @date 2016-09-03
     */
    @RequestMapping(value = "/invalidTc")
    public @ResponseBody
    AjaxResult invalidTc(SysProjUse sysProjUse) {
 
 
        int i = sysProjUseService.invalidTc(sysProjUse);
        if (i > 0) {
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "已设置为无效");
        } else {
            return new AjaxResult(AjaxResult.STATUS_FAIL, "设置失败");
        }
    }
 
    /**
     * 转让套餐
     *
     * @param sysProjUse 转让信息
     *                   被转让的会员id
     * @return
     * @author guchunxia
     * @date 2016-09-04
     */
    @RequestMapping(value = "/transferTc")
    public @ResponseBody
    AjaxResult transferTc(SysProjUse sysProjUse, Long vipId2) {
 
        int i = sysProjUseService.transferTc(sysProjUse, vipId2);
        if (i > 0) {
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "套餐转让成功");
        }
        return new AjaxResult(AjaxResult.STATUS_FAIL, "套餐转让失败");
    }
 
    @RequestMapping(value = "/returnTc")
    public @ResponseBody
    AjaxResult returnTc(SysProjUse sysProjUse, Long moneyCardUseId, String tcRemark, Long shopId, Double money, String tcName) {
 
        System.out.println("moneyCardUseId = " + moneyCardUseId);
        MoneyCardUse card = moneyCardUseService.findById(moneyCardUseId);
        System.out.println("card = " + card);
        int i = sysProjUseService.returnMoneyTc(sysProjUse, card, moneyCardUseId);
        if (i > 0) {
 
 
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "退款成功");
        }
        return new AjaxResult(AjaxResult.STATUS_FAIL, "退款失败");
    }
 
 
    /**
     * 冻结会员套餐
     *
     * @param sysProjUse
     * @return
     */
    @RequestMapping(value = "/freezeTc")
    public @ResponseBody
    AjaxResult freezeTc(SysProjUse sysProjUse) {
 
        int i = sysProjUseService.freezeTc(sysProjUse);
        if (i > 0) {
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, "冻结成功");
        }
        return new AjaxResult(AjaxResult.STATUS_FAIL, "冻结失败");
    }
 
 
    /**
     * 退款
     *
     * @return
     */
    @RequestMapping(value = "/getEffectCard")
    public @ResponseBody
    AjaxResult getEffectCard(SysProjUse sysProjUse) {
        MoneyCardUse cardUse = null;
        cardUse = moneyCardUseService.findByVipId(sysProjUse.getVipId());
        double money = sysProjUseService.getTotalMoneyTc(sysProjUse);
        if (cardUse != null) {
            cardUse.setRealMoney(money);
            List<MoneyCardUse> list = new ArrayList<MoneyCardUse>();
            list.add(cardUse);
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "有有效会籍卡", list, null);
        } else {
            //无会员卡则new一个,为了把钱传递到前台
            cardUse = new MoneyCardUse();
            cardUse.setRealMoney(money);
            List<MoneyCardUse> list = new ArrayList<MoneyCardUse>();
            list.add(cardUse);
            return new AjaxResult(AjaxResult.STATUS_SUCCESS, null, "无有效会籍卡", list, null);
        }
 
    }
 
    /**
     * 进入套餐修改页面
     *
     * @return
     */
    @RequestMapping(value = "/editForm")
    public String editForm(Long id) {
        if (id != null) {
            SysProjUse sysProjUse = sysProjUseService.findById(id);
            sysProjUse.setTaocanProjUse(sysProjUseService.selectTaocanProjUse(sysProjUse.getId()));
            WebUtil.getRequest().setAttribute("obj", sysProjUse);
        }
        return "admin/hive/vip/tc-form";
    }
 
    /**
     * 添加或修改会员套餐信息
     */
    @RequestMapping(value = "/addOrModify")
    public @ResponseBody
    AjaxResult addOrModify(SysProjUse sysProjUse) {
        if (sysProjUse.getId() != null) {
 
            //插入修改记录
            SysUsers user=getMe();
            //插入修改记录
            SysProjUse oldProjUse = sysProjUseService.findById(sysProjUse.getId());
            SysProjUseFlow projUseFlow=new SysProjUseFlow();
            projUseFlow.setProjUseId(sysProjUse.getId());
            projUseFlow.setOptionType("人工修改");
            projUseFlow.setProjName(oldProjUse.getProjName());
            projUseFlow.setCreateBy(user.getSuName());
            projUseFlow.setUpdateBy(user.getSuName());
            projUseFlow.setPrice(sysProjUse.getPrice());
            projUseFlow.setStatus(sysProjUse.getStatus());
            projUseFlow.setBalance(sysProjUse.getBalance());
            projUseFlow.setFailTime(sysProjUse.getFailTime());
            projUseFlow.setIsOver(sysProjUse.getIsOver());
            projUseFlow.setRemark(sysProjUse.getUpdateRemark());
            projUseFlow.setSurplusCount(sysProjUse.getSurplusCount());
            projUseDao.insertFlow(projUseFlow);
 
 
            int modifyResult = sysProjUseService.modify(sysProjUse);
 
            List<SysProjUse> modifyUse = sysProjUse.getTaocanProjUse();
 
            if (modifyResult > 0) {
                if (CollectionUtils.isNotEmpty(modifyUse)) {
                    for (SysProjUse use : modifyUse) {
 
                        //插入修改记录
                        SysProjUse oldProjUse2 = sysProjUseService.findById(use.getId());
                        SysProjUseFlow projUseFlow2=new SysProjUseFlow();
                        //套餐中的项目需要记录套餐id
                        projUseFlow2.setProjUseId(oldProjUse.getId());
                        projUseFlow2.setOptionType("人工修改");
                        projUseFlow2.setProjName(oldProjUse2.getProjName());
                        projUseFlow2.setCreateBy(user.getSuName());
                        projUseFlow2.setUpdateBy(user.getSuName());
                        projUseFlow2.setPrice(use.getPrice());
                        projUseFlow2.setStatus(use.getStatus());
                        projUseFlow2.setBalance(use.getBalance());
                        projUseFlow2.setFailTime(use.getFailTime());
                        projUseFlow2.setIsOver(use.getIsOver());
                        projUseFlow2.setRemark(sysProjUse.getUpdateRemark());
                        projUseFlow2.setSurplusCount(use.getSurplusCount());
                        projUseDao.insertFlow(projUseFlow2);
 
                        sysProjUseService.modify(use);
                    }
                }
                return new AjaxResult(AjaxResult.STATUS_SUCCESS, "修改成功");
            } else {
                return new AjaxResult(AjaxResult.STATUS_FAIL, "修改失败");
            }
        } else {
            return add(sysProjUseService, sysProjUse, "套餐");
        }
    }
 
 
}