Administrator
2018-11-09 215b69ed5f01ab8c08bc4df749ed9fe95c79524d
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
package com.yeshi.fanli.controller.client;
 
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import javax.annotation.Resource;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.HttpUtil;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.taobao.TbImgUtil;
 
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.exception.ShareGoodsException;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 
import net.sf.json.JSONObject;
 
@Controller(value = "ShareController1")
@RequestMapping("api/v1/share")
public class ShareController {
 
    @Resource
    private ShareGoodsService shareGoodsService;
 
    @Resource
    private ConfigService configService;
 
    @Resource
    private HongBaoManageService hongBaoManageService;
 
    // 获取商品分享链接
    @RequestMapping(value = "getGoodsShareUrl")
    public void getGoodsShareUrl(AcceptData acceptData, long id, PrintWriter out) {
        out.print(JsonUtil
                .loadTrueResult(String.format("%s?id=" + id, Constant.systemCommonConfig.getAppShareInfoUrl())));
    }
 
    /**
     * 获取淘宝的分享链接
     * 
     * @param acceptData
     * @param uid
     *            -用户ID
     * @param auctionId-商品ID
     * @param out
     */
    @RequestMapping(value = "gettaobaosharelink")
    public void getTaobaoShareLink(AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) {
        if (uid == null || uid <= 0) {
            out.print(JsonUtil.loadFalseResult(1, "用户ID不能为空"));
            return;
        }
 
        if (auctionId == null || auctionId <= 0) {
            out.print(JsonUtil.loadFalseResult(2, "商品ID不能为空"));
            return;
        }
 
        try {
            TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(uid, auctionId);
 
            JSONObject data = new JSONObject();
            String url = String.format("http://%s%s?uid=%s&id=%s", configService.getH5Host(),
                    Constant.systemCommonConfig.getShareGoodsPagePath(), AESUtil.encrypt(uid + "", Constant.UIDAESKEY),
                    auctionId + "");
 
            String shortLink = HttpUtil.getShortLink(url);
            if (!StringUtil.isNullOrEmpty(shortLink)) {
                url = shortLink;
            }
 
            data.put("clickUrl", url);
            data.put("token", taoBaoLink.getTaoToken());
            data.put("rule", "http://apph5.yeshitv.com/apppage/all_help_content.html?id=148&from=singlemessage&isappinstalled=0");
            data.put("pictUrl", TbImgUtil.getTBSizeImg(taoBaoLink.getGoods().getPictUrl(), 500));
 
            String shareText = "";
            // 无券
            String shopType = taoBaoLink.getGoods().getUserType() == 0 ? "淘宝价" : "天猫价";
 
            if (StringUtil.isNullOrEmpty(taoBaoLink.getGoods().getCouponInfo())) {
                String text = configService.get("goods_share_text_nocoupon");
                shareText = text.replace("[标题]", taoBaoLink.getGoods().getTitle()).replace("[在售价]",
                        "¥" + taoBaoLink.getGoods().getZkPrice());
            } else// 有券
            {
                String text = configService.get("goods_share_text_coupon");
                shareText = text.replace("[标题]", taoBaoLink.getGoods().getTitle())
                        .replace("[在售价]", "¥" + taoBaoLink.getGoods().getZkPrice())
                        .replace("[券后价]", "¥" + TaoBaoUtil.getAfterUseCouplePrice(taoBaoLink.getGoods()));
            }
            shareText = shareText.replace("[价格类型]", shopType);
            data.put("shareText", shareText);
            String descText=shareText.replace(taoBaoLink.getGoods().getTitle()+"\r\n", "");
            if(descText.startsWith("\\r\\n"))
                descText=descText.substring(0);
            data.put("descText",descText );
 
            // 添加分享记录
            BigDecimal rate = new BigDecimal(hongBaoManageService.get("hongbao_goods_proportion"));
            UserShareGoodsHistory history = new UserShareGoodsHistory();
            history.setTkCode(taoBaoLink.getTaoToken());
            history.setLink(taoBaoLink.getClickUrl());
            history.setQuanLink(taoBaoLink.getCouponLink());
 
            history.setCreateTime(new Date());
            history.setGoodsId(taoBaoLink.getGoods().getAuctionId());
            history.setGoodsType(UserShareGoodsHistory.TYPE_TAOBAO);
            history.setHongbao(TaoBaoUtil.getShareGoodsHongBaoInfo(taoBaoLink.getGoods(), rate));
            List<String> imgList = taoBaoLink.getGoods().getImgList();
            if (imgList == null) {
                imgList = new ArrayList<>();
            }
            history.setPictures(JsonUtil.getGson().toJson(imgList));
            history.setUser(new UserInfo(uid));
            history.setPostPicture(taoBaoLink.getGoods().getPictUrl());
 
            out.print(JsonUtil.loadTrueResult(data));
 
            // 异步操作
            com.yeshi.fanli.util.ThreadUtil.run(new Runnable() {
 
                @Override
                public void run() {
                    shareGoodsService.addShareGoodsHistory(history);
                }
            });
            return;
        } catch (ShareGoodsException e) {
            out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
        }
 
    }
 
}