|
@@ -1,50 +1,39 @@
|
|
|
package com.iamberry.wechat.service.wechat;
|
|
|
|
|
|
-import java.io.UnsupportedEncodingException;
|
|
|
-import java.net.URLEncoder;
|
|
|
-import java.text.ParseException;
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-import com.iamberry.wechat.core.entity.machineNumber.MachineNumber;
|
|
|
-import com.iamberry.wechat.face.machineNumber.MachineNumberService;
|
|
|
-import com.iamberry.wechat.tools.*;
|
|
|
-import net.sf.json.JSONObject;
|
|
|
-
|
|
|
-import org.apache.commons.lang3.StringEscapeUtils;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
import com.iamberry.app.tool.log.RatFWLogger;
|
|
|
import com.iamberry.wechat.core.entity.drp.PlaceInfo;
|
|
|
import com.iamberry.wechat.core.entity.member.Member;
|
|
|
import com.iamberry.wechat.core.entity.qrcode.Qrcode;
|
|
|
import com.iamberry.wechat.core.entity.qrcode.TemporaryQrcode;
|
|
|
-import com.iamberry.wechat.core.entity.wx.ImageTextInfo;
|
|
|
-import com.iamberry.wechat.core.entity.wx.ImageTextMore;
|
|
|
-import com.iamberry.wechat.core.entity.wx.KeyWord;
|
|
|
-import com.iamberry.wechat.core.entity.wx.MenuKeySet;
|
|
|
-import com.iamberry.wechat.core.entity.wx.Status;
|
|
|
-import com.iamberry.wechat.core.entity.wx.TextMessage;
|
|
|
+import com.iamberry.wechat.core.entity.wx.*;
|
|
|
+import com.iamberry.wechat.face.activity.ActivityService;
|
|
|
import com.iamberry.wechat.face.admin.SystemService;
|
|
|
import com.iamberry.wechat.face.drp.PlaceInfoService;
|
|
|
import com.iamberry.wechat.face.home.HomeService;
|
|
|
+import com.iamberry.wechat.face.machineNumber.MachineNumberService;
|
|
|
import com.iamberry.wechat.face.qrcode.QrcodeService;
|
|
|
import com.iamberry.wechat.face.qrcode.TemporaryQrcodeService;
|
|
|
-import com.iamberry.wechat.face.wechat.ImageTextInfoService;
|
|
|
-import com.iamberry.wechat.face.wechat.ImageTextMoreService;
|
|
|
-import com.iamberry.wechat.face.wechat.KeyWordService;
|
|
|
-import com.iamberry.wechat.face.wechat.MenuKeySetService;
|
|
|
-import com.iamberry.wechat.face.wechat.WeChatService;
|
|
|
+import com.iamberry.wechat.face.wechat.*;
|
|
|
import com.iamberry.wechat.service.MessageManager;
|
|
|
import com.iamberry.wechat.service.MessageUtil;
|
|
|
import com.iamberry.wechat.service.ShopUtil;
|
|
|
import com.iamberry.wechat.service.mapper.PlaceInfoMapper;
|
|
|
import com.iamberry.wechat.service.relationship.Dao.WdRelationDao;
|
|
|
+import com.iamberry.wechat.tools.*;
|
|
|
+import net.sf.json.JSONObject;
|
|
|
+import org.apache.commons.lang3.StringEscapeUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* description : wechat handler的核心服务类
|
|
@@ -53,6 +42,9 @@ import com.iamberry.wechat.service.relationship.Dao.WdRelationDao;
|
|
|
*/
|
|
|
@Service
|
|
|
public class WeChatServiceImpl implements WeChatService {
|
|
|
+
|
|
|
+ private Logger logger = LoggerFactory.getLogger(WeChatServiceImpl.class);
|
|
|
+
|
|
|
@Autowired
|
|
|
private KeyWordService keyWordService;
|
|
|
@Autowired
|
|
@@ -79,6 +71,8 @@ public class WeChatServiceImpl implements WeChatService {
|
|
|
private WdRelationDao wdRelationDao;
|
|
|
@Autowired
|
|
|
private MachineNumberService machineNumberService;
|
|
|
+ @Autowired
|
|
|
+ private ActivityService activityService;
|
|
|
/**
|
|
|
* 处理微信发来的请求
|
|
|
* @param FromUserName
|
|
@@ -169,6 +163,7 @@ public class WeChatServiceImpl implements WeChatService {
|
|
|
|
|
|
String eventType = requestMap.get("Event");// 事件类型
|
|
|
String eventKey = requestMap.get("EventKey");
|
|
|
+
|
|
|
if(eventType.equals("SCAN")){
|
|
|
|
|
|
//扫描机器二维码返回跳转到完善信息页面
|
|
@@ -178,7 +173,7 @@ public class WeChatServiceImpl implements WeChatService {
|
|
|
return status.getCountext();
|
|
|
}
|
|
|
respContent = status.getCountext();
|
|
|
- } else {
|
|
|
+ }else {
|
|
|
// 已关注用户扫描二维码事件
|
|
|
int flag = subUserScannQrcodeEvent(requestMap, fromUserName);
|
|
|
if (flag == 1 ) {
|
|
@@ -192,7 +187,9 @@ public class WeChatServiceImpl implements WeChatService {
|
|
|
respContent = ResultInfo.subDefaultResponseText;
|
|
|
} else if (flag == 4) {
|
|
|
respContent = "欢迎您关注美国watero!您已享受购买水机终身优惠价3280元(普通会员销售价3680元),并且购买即赠三年滤芯套装,快来购买吧!<a href=\"http://w.iamberry.com/watero/wechat/wxCart/goProductList\">点击购买</a>";
|
|
|
- } else {
|
|
|
+ } else if (flag == 5) { //618好友助力
|
|
|
+
|
|
|
+ }else {
|
|
|
respContent = "欢迎您关注美国watero,恭喜您成为金牌会员。自己购买或者推荐朋友购买水机均将享受3280元优惠价,并免费赠送3年滤芯哦!点击菜单“分销中心-代理分销”可进入您的专属分销管理中心。";
|
|
|
}
|
|
|
}
|
|
@@ -207,6 +204,12 @@ public class WeChatServiceImpl implements WeChatService {
|
|
|
return status.getCountext();
|
|
|
}
|
|
|
respContent = status.getCountext();
|
|
|
+ } else if(eventKey.indexOf(ResultInfo.barCodeActivity) != -1){
|
|
|
+ Status status = bindingActivity(requestMap, fromUserName);
|
|
|
+ if (status.isFlag()) {
|
|
|
+ return status.getCountext();
|
|
|
+ }
|
|
|
+ respContent = status.getCountext();
|
|
|
} else {
|
|
|
//未关注用户扫描二维码关注事件处理
|
|
|
Status status = scannQRcodeSub(requestMap, fromUserName);
|
|
@@ -254,14 +257,47 @@ public class WeChatServiceImpl implements WeChatService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 618h好友助力
|
|
|
+ * @param requestMap
|
|
|
+ */
|
|
|
+ public Status bindingActivity(Map<String, String> requestMap, String fromUserName) {
|
|
|
+ Status status = new Status();
|
|
|
+ String senceid = requestMap.get("EventKey");//场景值
|
|
|
+ System.out.println("场景值"+senceid);
|
|
|
+ senceid = senceid.replaceAll(ResultInfo.barCodeActivity,"");//替换标识前的字符串
|
|
|
+ StringBuilder str = new StringBuilder();
|
|
|
+ try {
|
|
|
+ Integer flag = activityService.addActivityHelp(senceid,fromUserName);
|
|
|
+ if(flag < 1){
|
|
|
+ str.append("哇!确认过眼神,你将获得我们618天猫上朵旗舰店隐藏福利!");
|
|
|
+ str.append("现在立即TB搜索【上朵旗舰店】,联系客服,报福利暗号“618上朵”");
|
|
|
+ str.append("即可获赠额外50元优惠券哦~数量有限,赶紧行动起来哈~~~”");
|
|
|
+ logger.info(senceid + "的助力任务助力失败,助力好友为:"+fromUserName);
|
|
|
+ }else{
|
|
|
+ str.append("哇!确认过眼神,你将获得我们618天猫上朵旗舰店隐藏福利!");
|
|
|
+ str.append("现在立即TB搜索【上朵旗舰店】,联系客服,报福利暗号“618上朵”");
|
|
|
+ str.append("即可获赠额外50元优惠券哦~数量有限,赶紧行动起来哈~~~”");
|
|
|
+ logger.info(senceid + "的助力任务助力成功,助力好友为:"+fromUserName);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ inLongLogger.info(senceid + "的助力任务助力失败,助力好友为:"+fromUserName);
|
|
|
+ str.append("助力失败,请重试!");
|
|
|
+ }
|
|
|
+ status.setCountext(str.toString());
|
|
|
+ status.setFlag(false);
|
|
|
+ return status;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 扫码进入赠送礼品信息页面(已关注)
|
|
|
* @param requestMap
|
|
|
*/
|
|
|
public Status scannQrcodeGiveGift(Map<String, String> requestMap, String fromUserName) {
|
|
|
Status status = new Status();
|
|
|
String senceid = requestMap.get("EventKey");//场景值
|
|
|
+ System.out.println("场景值"+senceid);
|
|
|
senceid = senceid.replaceAll(ResultInfo.barCodePrefix,"");//替换标识前的字符串
|
|
|
- String str = bindingMachine(senceid, fromUserName);
|
|
|
+ String str = bindingMachine(senceid, fromUserName);
|
|
|
status.setCountext(str);
|
|
|
status.setFlag(false);
|
|
|
return status;
|
|
@@ -275,7 +311,6 @@ public class WeChatServiceImpl implements WeChatService {
|
|
|
public Status scannQrcodeSubGiveGift(Map<String, String> requestMap, String fromUserName) {
|
|
|
//赋值&更新数据
|
|
|
Status status = new Status();
|
|
|
- Member member = refreshUserInfo(fromUserName);
|
|
|
String senceid = requestMap.get("EventKey");//场景值
|
|
|
senceid = senceid.replaceAll(ResultInfo.barCodePrefix,"");//替换标识前的字符串
|
|
|
String str = bindingMachine(senceid, fromUserName);
|
|
@@ -322,7 +357,7 @@ public class WeChatServiceImpl implements WeChatService {
|
|
|
return str.toString();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 绑定代理商信息(激活 微信openid绑定商户)
|
|
|
* @param content
|
|
@@ -382,6 +417,9 @@ public class WeChatServiceImpl implements WeChatService {
|
|
|
*/
|
|
|
public int subUserScannQrcodeEvent(Map<String, String> requestMap, String fromUserName) throws Exception {
|
|
|
String senceid = requestMap.get("EventKey");//已经关注用户扫描二维码触发事件:获取二维码场景值
|
|
|
+
|
|
|
+ System.out.println("场景值sxx:"+senceid);
|
|
|
+
|
|
|
Member member = refreshUserInfo(fromUserName);
|
|
|
// 是否更新数据
|
|
|
boolean isNew = false;
|