admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
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
package com.yeshi.fanli.controller.client.v1.h5;
 
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
 
import javax.annotation.Resource;
 
import com.yeshi.fanli.util.SystemInfoUtil;
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.dto.GoodsMoneyConfigParamsDTO;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.taobao.ShareHotGoods;
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.util.TaoBaoConstant;
import org.yeshi.utils.TimeUtil;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
 
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
 
@Controller
@RequestMapping("api/apph5/v1/tlj")
public class AppH5TaoLiJinController {
 
    @Resource
    private TLJBuyGoodsService tljBuyGoodsService;
 
    @Resource
    private ShareHotGoodsService shareHotGoodsService;
 
    @Resource
    private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
 
    @Resource
    private ConfigTaoLiJinService configTaoLiJinService;
 
    @RequestMapping("getTLJBuyGoods")
    public void getTLJBuyGoods(AcceptData acceptData, PrintWriter out, String callback) {
        if (acceptData.getSystem() == null)
            acceptData.setSystem(SystemInfoUtil.getSystem(acceptData));
        //
        List<TLJBuyGoods> goodsList = tljBuyGoodsService
                .listByDay(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"));
        int count = goodsList.size();
 
        JSONObject data = new JSONObject();
        JSONArray goodsArray = new JSONArray();
        goodsList = goodsList.size() > 10 ? goodsList.subList(0, 10) : goodsList;
        BigDecimal proportion = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
 
        GoodsMoneyConfigParamsDTO configParamsDTO =  orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                acceptData.getVersion(),null);
        for (TLJBuyGoods goods : goodsList) {
            TaoBaoGoodsBrief taoBaoGoodsBrief = goods.getGoods();
            if (taoBaoGoodsBrief == null) {
                continue;
            }
            // 计算推广红包
            BigDecimal spreadMoney = TaoBaoUtil.getGoodsHongBaoMoney(taoBaoGoodsBrief, proportion,false);
            // 推广红包 不能小于1
            if (spreadMoney.compareTo(new BigDecimal(1.0)) < 0) {
                continue;
            }
 
            GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, configParamsDTO);
 
            // 大于1.6.5的才会显示福利价
            if (com.yeshi.fanli.util.VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
                if (detailVO.getCouponPrice() != null && detailVO.getCouponPrice().compareTo(new BigDecimal(0)) > 0)
                    detailVO.setCouponPrice(detailVO.getCouponPrice().subtract(spreadMoney));
                else
                    detailVO.setZkPrice(detailVO.getZkPrice().subtract(spreadMoney));
            }
            goodsArray.add(gson.toJson(detailVO));
        }
        data.put("goodsList", goodsArray);
        data.put("count", count);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
 
    /**
     * 分享爆款商品
     * 
     * @param acceptData
     * @param out
     * @param callback
     */
    @RequestMapping("getShareHotGoods")
    public void getShareHotGoods(AcceptData acceptData, PrintWriter out, String callback) {
        if (acceptData.getSystem() == null)
            acceptData.setSystem(SystemInfoUtil.getSystem(acceptData));
        List<ShareHotGoods> goodsList = shareHotGoodsService
                .listByDay(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"));
        int count = goodsList.size();
 
        JSONObject data = new JSONObject();
        JSONArray goodsArray = new JSONArray();
        goodsList = goodsList.size() > 10 ? goodsList.subList(0, 10) : goodsList;
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
        GoodsMoneyConfigParamsDTO configParamsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
                acceptData.getVersion(),null);
        for (ShareHotGoods hotGoods : goodsList) {
            TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
            if (taoBaoGoodsBrief == null) {
                continue;
            }
 
            // 计算推广红包
            String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
            BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, taoBaoGoodsBrief);
 
            // 推广红包 不能小于1
            if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) {
                continue;
            }
 
            GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, configParamsDTO);
 
            // 大于1.6.5的才会显示福利价
            if (com.yeshi.fanli.util.VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
                if (detailVO.getCouponPrice() != null && detailVO.getCouponPrice().compareTo(new BigDecimal(0)) > 0)
                    detailVO.setCouponPrice(detailVO.getCouponPrice().subtract(spreadMoney));
                else
                    detailVO.setZkPrice(detailVO.getZkPrice().subtract(spreadMoney));
            }
            // 去掉标签
            detailVO.setLabels(null);
            goodsArray.add(gson.toJson(detailVO));
        }
 
        data.put("goodsList", goodsArray);
        data.put("count", count);
        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
    }
 
}