admin
2019-09-03 74ee9c42c1d87f3724a21e92871bc8c95c8364c6
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
package com.yeshi.fanli.controller.client.v1.h5;
 
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
 
import javax.annotation.Resource;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
 
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.lable.QualityFactory;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
 
@Controller
@RequestMapping("api/apph5/v1/miandan")
public class AppH5MianDanController {
 
    @Resource
    private QualityGoodsService qualityGoodsService;
 
    @Resource
    private HongBaoManageService hongBaoManageService;
 
    @Resource
    private UserInfoService userInfoService;
 
    @RequestMapping("getGoodsList")
    public void getGoodsList(AcceptData acceptData, PrintWriter out, int page, int pageSize, String callback) {
        List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize);
        if (listQuery == null || listQuery.size() == 0) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "没有更多了"));
            return;
        }
 
        List<Long> listGid = new ArrayList<Long>();
        for (QualityFactory qualityFactory : listQuery) {
            TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
            if (taoBaoGoodsBrief == null) {
                continue;
            }
            listGid.add(taoBaoGoodsBrief.getAuctionId());
        }
 
        // API网络接口验证是否在售
        List<TaoBaoGoodsBrief> listTaoKeGoods = null;
        try {
            listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
        } catch (TaoKeApiException e) {
            e.printStackTrace();
        } catch (TaobaoGoodsDownException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 
        BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
        BigDecimal shareRate = hongBaoManageService.getShareRate();
        /* 遍历列表数据 */
        for (QualityFactory selectionGoods : listQuery) {
 
            TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
 
            if (taoBaoGoodsBrief == null) {
                continue;
            }
 
            if (listTaoKeGoods != null && listTaoKeGoods.size() > 0) {
                boolean stateSale = false; // 默认停售
                Long goodsId = taoBaoGoodsBrief.getAuctionId();
                for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
                    Long auctionId = taoKeGoods.getAuctionId();
                    if (goodsId == auctionId || goodsId.equals(auctionId)) {
                        stateSale = true; // 在售
                        break;
                    }
                }
 
                if (!stateSale) {
                    continue;
                }
            }
 
            BigDecimal couplePrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
            if (couplePrice.compareTo(new BigDecimal("9.9")) == 1) {
                continue; // 券后价大于10
            }
            GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate);
            array.add(gson.toJson(detailVO));
        }
        JSONObject data = new JSONObject();
        data.put("goodsList", array);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
 
    @RequestMapping("getMianDanInfo")
    public void getMianDanInfo(AcceptData acceptData, PrintWriter out, Long uid, String callback) {
        if (uid == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户未登录"));
            return;
        }
        // 获取用户信息
        UserInfo user = userInfoService.getUserById(uid);
        if (user == null) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户不存在"));
            return;
        }
        // 获取免单券数量
        int couponCount = 1;
        JSONObject userJson = new JSONObject();
        userJson.put("nickName", user.getNickName());
        userJson.put("portrait", user.getPortrait());
        userJson.put("id", user.getId());
 
        JSONObject data = new JSONObject();
        data.put("user", userJson);
        data.put("couponCount", couponCount);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
 
}