package com.yeshi.fanli.controller.admin; import java.io.PrintWriter; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.yeshi.fanli.exception.PushException; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.config.SystemService; import com.yeshi.fanli.service.inter.push.PushRecordService; import com.yeshi.fanli.service.inter.push.PushService; import com.yeshi.fanli.service.inter.user.AccountMessageService; import com.yeshi.fanli.service.inter.user.SystemZnxService; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.factory.IOSPushFactory; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.JsonUtil; import net.sf.json.JSONObject; @Controller(value = "adminPushController") @RequestMapping("admin/new/api/v1/push") public class PushController { public final static int GOODS = 1; // 商品推送 public final static int URL = 2; // 网页推送 public final static int DETAIL = 3; // 详情推送 public final static int ZNX = 4; // 站内推送 public final static int WEEX = 5; // 站内推送 public final static int BAICHUAN = 6; // 站内推送 @Resource private PushRecordService pushRecordService; @Resource private ConfigService configService; @Resource private SystemZnxService systemZnxService; @Resource private AccountMessageService accountMessageService; @Resource private SystemService systemService; @Resource private PushService pushService; /** * 商品推送 * * @param uId * -用户ID 可为空 * @param url * -商品链接 * @param title * -推送标题 * @param content * -推送内容 * @param out * @throws Exception */ @RequestMapping(value = "pushGoodsAll_f", method = RequestMethod.POST) public void pushGoods(Long uId, String url, String title, String content, PrintWriter out) throws Exception { String auctionId = null; if (!StringUtil.isNullOrEmpty(url) && url.contains("id=")) { String[] sts = url.split("\\?")[1].split("&"); for (String st : sts) if (st.contains("id=")) { auctionId = st.replace("id=", ""); } } if (StringUtil.isNullOrEmpty(auctionId)) { out.print(JsonUtil.loadFalseResult("提取商品ID失败")); return; } JSONObject json = IOSPushFactory.createGoodsPush(Long.parseLong(auctionId), title, content); if (json.toString().getBytes().length > 256) { out.print(JsonUtil.loadFalseResult("标题或内容过长,请删减后再试")); return; } pushService.pushGoods(uId, url, title, content); out.print(JsonUtil.loadTrueResult("推送成功")); } /** * 网页推送 * * @param url * @param title * @param content * @param out * @throws Exception */ @RequestMapping(value = "pushUrlAll_f", method = RequestMethod.POST) public void pushUrl(String url, String title, String content, PrintWriter out) throws Exception { if (StringUtil.isNullOrEmpty(url) || StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(content)) { out.print(JsonUtil.loadFalseResult("请填写链接,标题与内容")); return; } JSONObject json = IOSPushFactory.createURLPush(HttpUtil.getShortLink(url), title, content); if (json.toString().getBytes().length > 256) { out.print(JsonUtil.loadFalseResult("标题或内容过长,请删减后再试")); return; } pushService.pushUrl(null, url, title, content); out.print(JsonUtil.loadTrueResult("推送成功")); } /** * * 方法说明: 站内信推送 * * @author mawurui createTime 2018年3月12日 下午5:45:00 * @param uId * @param title * @param content * @throws Exception */ @RequestMapping(value = "pushFanZNX_f", method = RequestMethod.POST) public void pushSystemZnx(Long uId, String title, String content, PrintWriter out) throws Exception { pushService.pushZNX(uId, title, content); out.print(JsonUtil.loadTrueResult("推送成功")); } /** * 短链接转换 * * @param url * @param out * @throws Exception */ @RequestMapping(value = "convertLink") public void convertLink(String callback, String url, PrintWriter out) { if (StringUtil.isNullOrEmpty(url)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("转链数据不能为空")); return; } try { String shortLink = org.yeshi.utils.HttpUtil.getShortLink(url); JSONObject jsonData = new JSONObject(); jsonData.put("url", url); jsonData.put("shortLink", shortLink); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(jsonData)); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("转换失败")); e.printStackTrace(); } } /** * 商品推送 -(新后台) * * @param uId * -用户ID 可为空 * @param url * -商品链接 * @param title * -推送标题 * @param content * -推送内容 * @param out * @throws Exception */ @RequestMapping(value = "newPushGoodsAll") public void newPushGoodsAll(String callback, Long uid, String url, String title, String content, PrintWriter out) throws Exception { String auctionId = null; if (!StringUtil.isNullOrEmpty(url) && url.contains("id=")) { String[] sts = url.split("\\?")[1].split("&"); for (String st : sts) if (st.contains("id=")) { auctionId = st.replace("id=", ""); } } if (StringUtil.isNullOrEmpty(auctionId)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("提取商品ID失败")); return; } JSONObject json = IOSPushFactory.createGoodsPush(Long.parseLong(auctionId), title, content); if (json.toString().getBytes().length > 256) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("标题或内容过长,请删减后再试")); return; } try { pushService.pushGoods(uid, url, title, content); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("推送成功")); } catch (Exception e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败")); e.printStackTrace(); } } /** * 网页推送 -(新后台) * * @param url * @param title * @param content * @param out * @throws Exception */ @RequestMapping(value = "newPushUrlAll") public void newPushUrlAll(String callback, String url, String title, String content, PrintWriter out) { if (StringUtil.isNullOrEmpty(url) || StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(content)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请填写链接,标题与内容")); return; } JSONObject json = IOSPushFactory.createURLPush(HttpUtil.getShortLink(url), title, content); if (json.toString().getBytes().length > 256) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("标题或内容过长,请删减后再试")); return; } try { pushService.pushUrl(null, url, title, content); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("推送成功")); } catch (PushException e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败")); e.printStackTrace(); } } /** * * 方法说明: 站内信推送 -(新后台) * * @param uId * @param title * @param content * @throws Exception */ @RequestMapping(value = "newPushFanZNX") public void newPushFanZNX(String callback, String uids, String title, String content, PrintWriter out) { if (StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(content)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请填写标题与内容")); return; } try { String[] uidArray = null; if (uids != null) { uidArray = uids.split(","); } if (uidArray == null) { pushService.pushZNX(null, title, content); } else { for (int i = 0; i < uidArray.length; i++) { String str_uid = uidArray[i]; if (str_uid != null && str_uid.trim().length() > 0) { pushService.pushZNX(Long.parseLong(str_uid), title, content); } } } JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("推送成功")); } catch (PushException e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败")); e.printStackTrace(); } } /** * * 方法说明: 百川推送 -(新后台) * * @param uId * @param title * @param content * @throws Exception */ @RequestMapping(value = "pushBaiChuan") public void pushBaiChuan(String callback, String uids, String title, String content, String url, PrintWriter out) { if (StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(content)) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请填写标题与内容")); return; } try { String[] uidArray = null; if (uids != null) { uidArray = uids.split(","); } if (uidArray == null) { pushService.pushBaiChuanUrl(null, title, content, url); } else { for (int i = 0; i < uidArray.length; i++) { String str_uid = uidArray[i]; if (str_uid != null && str_uid.trim().length() > 0) { pushService.pushBaiChuanUrl(Long.parseLong(str_uid), title, content, url); } } } JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("推送成功")); } catch (PushException e) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败")); e.printStackTrace(); } } }