| | |
| | | package com.yeshi.fanli.controller.admin;
|
| | |
|
| | | import java.io.PrintWriter;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Arrays;
|
| | | import java.util.List;
|
| | |
|
| | | 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.entity.bus.msg.UserSystemMsg;
|
| | | import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum;
|
| | | 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.msg.UserSystemMsgService;
|
| | | 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 com.google.gson.Gson;
|
| | | import com.google.gson.reflect.TypeToken;
|
| | | import com.yeshi.fanli.entity.bus.msg.UserSystemMsg;
|
| | | import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum;
|
| | | import com.yeshi.fanli.exception.push.PushException;
|
| | | import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
|
| | | import com.yeshi.fanli.service.inter.push.PushService;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.factory.IOSPushFactory;
|
| | |
|
| | | import net.sf.json.JSONObject;
|
| | |
|
| | |
| | | @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;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserSystemMsgService userSystemMsgService;
|
| | |
|
| | | /**
|
| | | * 商品推送
|
| | | * |
| | | * @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("推送成功"));
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | * 短链接转换
|
| | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("转链数据不能为空"));
|
| | | return;
|
| | | }
|
| | | |
| | |
|
| | | try {
|
| | | String shortLink = org.yeshi.utils.HttpUtil.getShortLink(url);
|
| | |
|
| | |
| | | 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();
|
| | | }
|
| | | }
|
| | | |
| | | /**
|
| | | * 网页推送 -(新后台)
|
| | | *
|
| | |
| | | * @throws Exception
|
| | | */
|
| | | @RequestMapping(value = "newPushUrlAll")
|
| | | public void newPushUrlAll(String callback, String url, String title, String content, PrintWriter out) {
|
| | | |
| | | public void newPushUrlAll(String callback, String url, String title, String content, String uids, |
| | | String arrayIOS, String arrayAndroid, PrintWriter out) {
|
| | |
|
| | | if (StringUtil.isNullOrEmpty(url) || StringUtil.isNullOrEmpty(title) || StringUtil.isNullOrEmpty(content)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请填写链接,标题与内容"));
|
| | | return;
|
| | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("标题或内容过长,请删减后再试"));
|
| | | return;
|
| | | }
|
| | | |
| | |
|
| | | try {
|
| | | pushService.pushUrl(null, url, title, content);
|
| | |
|
| | | List<String> listuid = null;
|
| | | if (uids != null && uids.trim().length() > 0) {
|
| | | listuid = Arrays.asList(uids.split(","));
|
| | | if (listuid == null || listuid.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户id格式不正确"));
|
| | | return;
|
| | | }
|
| | | }
|
| | | |
| | | if ((arrayIOS == null || arrayIOS.trim().length() == 0)
|
| | | && (arrayAndroid == null || arrayAndroid.trim().length() == 0)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送版本不能为空"));
|
| | | return;
|
| | | } |
| | | |
| | | List<String> listIOS = convertList(arrayIOS);
|
| | | List<String> listAndroid = convertList(arrayAndroid);
|
| | | |
| | | if (listuid == null) {
|
| | | // 全推
|
| | | pushService.pushUrl(null, title, content, url, listIOS, listAndroid);
|
| | | } else {
|
| | | // 部分推送
|
| | | for (String str_uid: listuid) {
|
| | | if (str_uid != null && str_uid.trim().length() > 0) {
|
| | | pushService.pushUrl(Long.parseLong(str_uid), title, content, url, listIOS, listAndroid);
|
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("推送成功"));
|
| | | } catch (PushException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | *
|
| | | * 方法说明: 站内信推送 -(新后台)
|
| | |
| | | * @throws Exception
|
| | | */
|
| | | @RequestMapping(value = "newPushFanZNX")
|
| | | public void newPushFanZNX(String callback, String uids, String title, String content, PrintWriter out) {
|
| | | |
| | | public void newPushFanZNX(String callback, String uids, String title, String content, String arrayIOS, |
| | | String arrayAndroid, 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(",");
|
| | |
|
| | | List<String> listuid = null;
|
| | | if (uids != null && uids.trim().length() > 0) {
|
| | | listuid = Arrays.asList(uids.split(","));
|
| | | if (listuid == null || listuid.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户id格式不正确"));
|
| | | return;
|
| | | }
|
| | | }
|
| | |
|
| | | if (uidArray == null) {
|
| | | pushService.pushZNX(null, title, content);
|
| | |
|
| | | if ((arrayIOS == null || arrayIOS.trim().length() == 0)
|
| | | && (arrayAndroid == null || arrayAndroid.trim().length() == 0)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送版本不能为空"));
|
| | | return;
|
| | | } |
| | | |
| | | List<String> listIOS = convertList(arrayIOS);
|
| | | List<String> listAndroid = convertList(arrayAndroid);
|
| | | |
| | | if (listuid == null) {
|
| | | // 全推
|
| | | pushService.pushZNX(null, title, content, listIOS, listAndroid);
|
| | | } else {
|
| | | for (int i = 0; i < uidArray.length; i++) {
|
| | | String str_uid = uidArray[i];
|
| | | // 部分推送
|
| | | for (String str_uid: listuid) {
|
| | | if (str_uid != null && str_uid.trim().length() > 0) {
|
| | | pushService.pushZNX(Long.parseLong(str_uid), title, content);
|
| | | |
| | | userSystemMsgService.addUserSystemMsg(Long.parseLong(str_uid), |
| | | UserSystemMsgTypeEnum.question, title, content, |
| | | UserSystemMsg.TIME_TAG_EMERGENT, null);
|
| | | pushService.pushZNX(Long.parseLong(str_uid), title, content, listIOS, listAndroid);
|
| | |
|
| | | userSystemMsgService.addUserSystemMsg(Long.parseLong(str_uid), UserSystemMsgTypeEnum.question,
|
| | | title, content, UserSystemMsg.TIME_TAG_EMERGENT, null);
|
| | | }
|
| | | }
|
| | | }
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("推送成功"));
|
| | | } catch (PushException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败"));
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | |
| | | /**
|
| | | *
|
| | | * 方法说明: 百川推送 -(新后台)
|
| | |
| | | * @throws Exception
|
| | | */
|
| | | @RequestMapping(value = "pushBaiChuan")
|
| | | public void pushBaiChuan(String callback, String uids, String title, String content, String url, |
| | | PrintWriter out) {
|
| | | |
| | | public void pushBaiChuan(String callback, String uids, String title, String content, String url, String arrayIOS,
|
| | | String arrayAndroid, 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(",");
|
| | |
|
| | | List<String> listuid = null;
|
| | | if (uids != null && uids.trim().length() > 0) {
|
| | | listuid = Arrays.asList(uids.split(","));
|
| | | if (listuid == null || listuid.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("用户id格式不正确"));
|
| | | return;
|
| | | }
|
| | | }
|
| | |
|
| | | if (uidArray == null) {
|
| | | pushService.pushBaiChuanUrl(null, title, content, url);
|
| | | if ((arrayIOS == null || arrayIOS.trim().length() == 0)
|
| | | && (arrayAndroid == null || arrayAndroid.trim().length() == 0)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送版本不能为空"));
|
| | | return;
|
| | | } |
| | | |
| | | List<String> listIOS = convertList(arrayIOS);
|
| | | List<String> listAndroid = convertList(arrayAndroid);
|
| | | |
| | | if (listuid == null) {
|
| | | // 全推
|
| | | pushService.pushBaiChuanUrl(null, title, content, url, listIOS, listAndroid);
|
| | | } else {
|
| | | for (int i = 0; i < uidArray.length; i++) {
|
| | | String str_uid = uidArray[i];
|
| | | // 部分推送
|
| | | for (String str_uid: listuid) {
|
| | | if (str_uid != null && str_uid.trim().length() > 0) {
|
| | | pushService.pushBaiChuanUrl(Long.parseLong(str_uid), title, content, url);
|
| | | pushService.pushBaiChuanUrl(Long.parseLong(str_uid), title, content, url, listIOS, listAndroid);
|
| | | }
|
| | | }
|
| | | }
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("推送成功"));
|
| | | |
| | |
|
| | | } catch (PushException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败"));
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("推送失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | /**
|
| | | * 版本处理
|
| | | * @param array
|
| | | * @return
|
| | | */
|
| | | public List<String> convertList (String array) {
|
| | | Gson gson = new Gson();
|
| | | List<String> list = null;
|
| | | if (array == null || array.trim().length() == 0) {
|
| | | list = new ArrayList<String>(); // 长度为0 不推送
|
| | | } else {
|
| | | list = gson.fromJson(array, new TypeToken<ArrayList<String>>() {}.getType());
|
| | | if (list != null && list.size() > 0 && list.contains("全推")) {
|
| | | list = null; // 全推
|
| | | }
|
| | | }
|
| | | return list;
|
| | | }
|
| | | }
|