Quellcode durchsuchen

牙刷618活动,好友助力

wangxiaoming vor 7 Jahren
Ursprung
Commit
4dca41fed9

+ 41 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/tools/SendMessageUtil.java

@@ -104,6 +104,12 @@ public class SendMessageUtil {
 			case 20:  //20、生日赠送积分推送
 				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.birthday_template, date, url);
 				break;
+			case 21:  //21参与成功
+				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.participate_in_success, date, url);
+				break;
+			case 22:  //23助力成功
+				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.helping_success, date, url);
+				break;
 			default: 
 				break;
 			}
@@ -439,4 +445,39 @@ public class SendMessageUtil {
 		sendTemplateMessageToOpenid(temp, openId, url,20);
 	}
 
+	/**
+	 * 618活动  参与成功
+	 * @param first
+	 * @param remark
+	 * @param openId
+	 * @param url
+	 */
+	public void participateInSuccess(String first,String keyword1,String keyword2,String keyword3,String keyword4,String remark,String openId,String url){
+		String temp = ResultInfo.PARTICIPATEINSUCCESS;
+		temp = temp.replaceFirst("firstValueIamberry", first)
+				.replaceFirst("keyword1Value",keyword1)
+				.replaceFirst("keyword2Value",keyword2)
+				.replaceFirst("keyword3Value",keyword3)
+				.replaceFirst("keyword4Value",keyword4)
+				.replaceFirst("colorValue","#1C86EE")
+				.replaceFirst("remarkValue",remark);
+		sendTemplateMessageToOpenid(temp, openId, url,20);
+	}
+
+	/**
+	 * 618活动  助力成功
+	 * @param first
+	 * @param openId
+	 * @param url
+	 */
+	public void helpingSuccess(String first,String keyword1,String keyword2,String remark,String openId,String url){
+		String temp = ResultInfo.HELPINGSUCCESS;
+		temp = temp.replaceFirst("firstValueIamberry", first)
+				.replaceFirst("keyword1Value",keyword1)
+				.replaceFirst("keyword2Value",keyword2)
+				.replaceFirst("colorValue","#1C86EE")
+				.replaceFirst("remarkValue",remark);
+		sendTemplateMessageToOpenid(temp, openId, url,20);
+	}
+
 }

+ 1 - 1
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/ImageUtils.java

@@ -129,7 +129,7 @@ public final class ImageUtils {
                                  String srcImg2, int imgx2, int imgy2,
                                  String pressText, int x, int y,Color colorName,int sizeNum
         ) throws Exception{
-            String fontName = "黑";
+            String fontName = "微软雅黑";
             int fontStyle = Font.BOLD;
             int fontSize = sizeNum;
             Color color = colorName;

+ 2 - 0
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/NameUtils.java

@@ -57,6 +57,8 @@ public class NameUtils {
 	public static String show_qrcode_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=";
 	// 临时二维码
 	public static String QR_SCENE = "{\"expire_seconds\": %s, \"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": %s}}}";
+	// 临时二维码
+	public static String QR_SCENE_STR = "{\"expire_seconds\": %s, \"action_name\": \"QR_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"%s\"}}}";
 	//  永久二维码
 	public static String QR_LIMIT_STR_SCENE = "{\"action_name\": \"QR_LIMIT_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"%s\"}}}";
 	// 获取用户信息

+ 10 - 10
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/PosterNumUtils.java

@@ -9,23 +9,23 @@ public class PosterNumUtils {
     public static final String IMG_PATH = "common/images/activity/";
     public static final String OLD_IMG_PATH = "common/images/activity/ditu.jpg";
 
-    public static final int CODE_WIDTH = 153;
-    public static final int CODE_HEIGHT = 153;
+    public static final int CODE_WIDTH = 120;
+    public static final int CODE_HEIGHT = 120;
 
-    public static final int HEAD_WIDTH = 132;
-    public static final int HEAD_HEIGHT = 132;
+    public static final int HEAD_WIDTH = 130;
+    public static final int HEAD_HEIGHT = 130;
 
 //    public static final int TEXT_X = 220;
     public static final int TEXT_X = -1;
-    public static final int TEXT_Y = 558;
+    public static final int TEXT_Y = 443;
 
-    public static final int HEAD_X = 279;
-    public static final int HEAD_Y = 398;
+    public static final int HEAD_X = 280;
+    public static final int HEAD_Y = 285;
 
-    public static final int CODE_X = 270;
-    public static final int CODE_Y = 1070;
+    public static final int CODE_X = 280;
+    public static final int CODE_Y = 927;
 
-    public static final int TEXT_FONT_SIZE = 35;
+    public static final int TEXT_FONT_SIZE = 36;
 
 
 }

+ 31 - 0
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -162,6 +162,16 @@ public class ResultInfo {
 	public static String failed_purchase="";	//购买失败	 	模版id
 
 	/**
+	 * 618活动  参与成功
+	 */
+	public static String participate_in_success="";	//参与成功  模版id
+
+	/**
+	 * 618活动  助力成功
+	 */
+	public static String helping_success="";	//助力成功  模版id
+
+	/**
 	 * 订单关闭通知	 	模版id	TM00984
 	 */
 	public static String probation_shut_down="";
@@ -264,6 +274,12 @@ public class ResultInfo {
 	/** 生日赠送积分推送 **/
 	public static String BIRTHDAYTEMPLATE = "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'remark':{'color':'#173177','value':'remarkValue'}}";
 
+	/** 618活动  参与成功 **/
+	public static String PARTICIPATEINSUCCESS =  "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'}, 'keyword3':{'color':'#173177', 'value':'keyword3Value'},  'keyword4':{'color':'#173177', 'value':'keyword4Value'}, remark':{'color':'colorValue','value':'remarkValue'}}";
+
+	/**  618活动  助力成功 **/
+	public static String HELPINGSUCCESS =  "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'},remark':{'color':'colorValue','value':'remarkValue'}}";
+
 	/**
 	 * 微信模板消息提示语
 	 */
@@ -317,6 +333,21 @@ public class ResultInfo {
 	public static String PROBATION_START_FIRST = "感谢您申请试用美国Watero净饮水一体机";
 	public static String PROBATION_END_FIRST = "您的订单正在安排配送员派送中,请继续留意关注申请详情,谢谢。";
 
+
+	public static String HELP_FRIENDS = "亲爱的朵粉会员,您的朋友【USER】已献出一份支持,还差一点啦,继续加油哟~";
+	public static String HELP_SUCCESS = "USER,恭喜你已获得10名好友支持,快解锁福利";
+	public static String HELP_NAME = "【福利】 会员送送送!";
+	public static String HELP_REM_1 = "点击查看活动助力详情";
+	public static String HELP_REM_2 = "立即点击,领取您的免费刷头。";
+	public static String help_url;
+
+	public static String ACTIVITY_SUCCESS = "尊敬的soodo会员,您已成功报名该活动。";
+	public static String ACTIVITY_DATE = "2018-06-13至2018-06-21";
+	public static String SOODO_NAME = "soodo上朵公众号";
+	public static String ACTIVITY_REM = "请查看官方公众号活动页面";
+	public static String ACTIVITY_USER_REM = "点击查看我的活动信息。";
+
+
 	/**
 	 * 获取RST系统产品信息接口地址
 	 */

+ 4 - 0
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/loadResultUtil.java

@@ -82,6 +82,10 @@ public class loadResultUtil {
 
 			ResultInfo.registered_template = prop.getProperty("registered_template");	//首次注册推送信息
 			ResultInfo.birthday_template = prop.getProperty("birthday_template");			//生日赠送积分推送
+
+			ResultInfo.participate_in_success = prop.getProperty("participate_in_success");			// 618活动  参与成功
+			ResultInfo.helping_success = prop.getProperty("helping_success");			//618活动  助力成功
+			ResultInfo.help_url = prop.getProperty("ACTIVITY_URL");			//618活动  助力成功
 		} catch (IOException e) {
 			new RuntimeException(e.getMessage());
 		}

+ 52 - 2
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/activity/ActivityServiceImpl.java

@@ -1,13 +1,18 @@
 package com.iamberry.wechat.service.activity;
 
+import com.iamberry.app.tool.log.RatFWLogger;
 import com.iamberry.wechat.core.entity.activity.Activity;
 import com.iamberry.wechat.core.entity.activity.ActivityHelp;
 import com.iamberry.wechat.core.entity.coupon.CouponItem;
+import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.face.activity.ActivityService;
 import com.iamberry.wechat.face.coupon.CouponItemService;
 import com.iamberry.wechat.service.mapper.ActivityHelpMapper;
 import com.iamberry.wechat.service.mapper.ActivityMapper;
 import com.iamberry.wechat.service.mapper.CouponItemMapper;
+import com.iamberry.wechat.service.mapper.MemberMapper;
+import com.iamberry.wechat.tools.ResultInfo;
+import com.iamberry.wechat.tools.SendMessageUtil;
 import com.iamberry.wechat.tools.StrUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -30,6 +35,12 @@ public class ActivityServiceImpl  implements ActivityService {
     private ActivityHelpMapper activityHelpMapper;
     @Autowired
     private CouponItemMapper couponItemMapper;
+    @Autowired
+    private SendMessageUtil sendMessageUtil;
+    @Autowired
+    private RatFWLogger logger;
+    @Autowired
+    private MemberMapper memberMapper;
 
     /**
      * 获取集合
@@ -105,12 +116,20 @@ public class ActivityServiceImpl  implements ActivityService {
     /**
      * 好友助力
      * @param openId
-     * @param activityOpenId
+     * @param activityOpenId  助力id
      * @return
      */
     @Override
     @Transactional
     public  Integer  addActivityHelp(String openId,String activityOpenId){
+        if(openId.equals(activityOpenId)){  //自己扫自己的二维码
+            return -1;
+        }
+        boolean isHelp = false; //没有成功
+        boolean isSendMsg = true;   //是否推送信息
+        Member userMember = memberMapper.getMemberByUserOpenId(openId);
+        Member activityMember = memberMapper.getMemberByUserOpenId(activityOpenId);
+
         Activity activity = new Activity();
         activity.setUserOpenId(openId);
         List<Activity> activityList = activityMapper.getActivityList(activity);
@@ -123,7 +142,11 @@ public class ActivityServiceImpl  implements ActivityService {
         ac.setActivityId(activity.getActivityId());
         //已有多少人助力
         Integer  activityAlreadyHelp = activity.getActivityAlreadyHelp() + 1;
-        if(activityAlreadyHelp >= activity.getActivityAllHelp()){
+        if(activityAlreadyHelp > activity.getActivityAllHelp()){
+            isSendMsg = false;
+        }
+        if(activityAlreadyHelp == activity.getActivityAllHelp()){
+            isHelp = true;     //已助力完成
             ac.setActivityStatus(2);
         }
         ac.setActivityAlreadyHelp(activityAlreadyHelp);
@@ -139,6 +162,33 @@ public class ActivityServiceImpl  implements ActivityService {
         if(flag < 1){
             throw new RuntimeException("添加助力好友失败");
         }
+
+        if(isSendMsg){
+            //给用户发送消息
+            String firstStr = "";
+            String remStr = "";
+            if(isHelp){ //助力完成
+                firstStr = ResultInfo.HELP_SUCCESS.replaceAll("USER",userMember.getUserNickname());
+                remStr = ResultInfo.HELP_REM_1;
+            }else{
+                firstStr = ResultInfo.HELP_FRIENDS.replaceAll("USER",activityMember.getUserNickname());
+                remStr = ResultInfo.HELP_REM_2;
+            }
+            String numStr = activityAlreadyHelp + "人";
+            try {
+                sendMessageUtil.helpingSuccess(
+                        firstStr,
+                        ResultInfo.HELP_NAME,
+                        numStr,
+                        remStr,
+                        openId,
+                        ResultInfo.help_url
+                );
+            } catch (Exception e) {
+                logger.info("============助力成功信息发送失败============");
+                e.printStackTrace();
+            }
+        }
         return  flag;
     }
 

+ 13 - 10
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/wechat/WeChatServiceImpl.java

@@ -173,7 +173,13 @@ public class WeChatServiceImpl implements WeChatService {
 							return status.getCountext();
 						}
 						respContent = status.getCountext();
-					}else {
+					}else if(eventKey.indexOf(ResultInfo.barCodeActivity) != -1){
+						Status status = bindingActivity(requestMap, fromUserName);
+						if (status.isFlag()) {
+							return status.getCountext();
+						}
+						respContent = status.getCountext();
+					} else {
 						// 已关注用户扫描二维码事件
 						int flag = subUserScannQrcodeEvent(requestMap, fromUserName);
 						if (flag == 1 ) {
@@ -188,7 +194,7 @@ public class WeChatServiceImpl implements WeChatService {
 						} else if (flag == 4) {
 							respContent = "欢迎您关注美国watero!您已享受购买水机终身优惠价3280元(普通会员销售价3680元),并且购买即赠三年滤芯套装,快来购买吧!<a href=\"http://w.iamberry.com/watero/wechat/wxCart/goProductList\">点击购买</a>";
 						} else if (flag == 5) {		//618好友助力
-
+							respContent = "哇!确认过眼神,你将获得我们618天猫上朵旗舰店隐藏福利!</br>";
 						}else {
 							respContent = "欢迎您关注美国watero,恭喜您成为金牌会员。自己购买或者推荐朋友购买水机均将享受3280元优惠价,并免费赠送3年滤芯哦!点击菜单“分销中心-代理分销”可进入您的专属分销管理中心。";
 						}
@@ -263,26 +269,24 @@ public class WeChatServiceImpl implements WeChatService {
 	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("助力失败,请重试!");
 		}
+
+		str.append("哇!确认过眼神,你将获得我们618天猫上朵旗舰店隐藏福利!");
+		str.append("现在立即TB搜索【上朵旗舰店】,联系客服,报福利暗号“618上朵”");
+		str.append("即可获赠额外50元优惠券哦~数量有限,赶紧行动起来哈~~~”");
+
 		status.setCountext(str.toString());
 		status.setFlag(false);
 		return status;
@@ -295,7 +299,6 @@ public class WeChatServiceImpl implements WeChatService {
 	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);
         status.setCountext(str);

+ 27 - 6
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/activity/ActivityHandler.java

@@ -1,5 +1,6 @@
 package com.iamberry.wechat.handles.activity;
 
+import com.iamberry.app.tool.log.RatFWLogger;
 import com.iamberry.wechat.core.entity.ResultMsg;
 import com.iamberry.wechat.core.entity.WechatUtils;
 import com.iamberry.wechat.core.entity.activity.Activity;
@@ -49,6 +50,10 @@ public class ActivityHandler {
 	private SystemService systemService;
 	@Autowired
 	private CouponItemService couponItemService;
+	@Autowired
+	private SendMessageUtil sendMessageUtil;
+	@Autowired
+	private RatFWLogger logger;
 
 
 	/**
@@ -128,8 +133,6 @@ public class ActivityHandler {
 	@ResponseBody
 	@RequestMapping("/participate_activity")
 	public synchronized ResultMsg getColorPatterns(HttpServletRequest req){
-		long start = new Date().getTime();
-
 		ResultMsg rm = ResultMsg.getSuccess();
 
 		Member member = WechatUtils.getUserBySession(req);
@@ -158,7 +161,12 @@ public class ActivityHandler {
 			String codeName = name + "Code.png";
 			String headName = name + "Head.png";
 			String imgName = name  + ".png";
+
+			long start = new Date().getTime();
 			boolean flag = generatePoster(member,filePath,codeName,imgName,headName);
+			long end = new Date().getTime();
+			System.out.println("生成时间为:"+ (end-start));
+
 			if(!flag){
 				rm = ResultMsg.getError();
 				rm.setMessage("生成图片失败");
@@ -181,9 +189,22 @@ public class ActivityHandler {
 			Integer f = 0;
 			if(acList==null || acList.size() < 1 ){
 				f = activityService.save(activity);
+				try {
+					sendMessageUtil.participateInSuccess(
+							ResultInfo.ACTIVITY_SUCCESS,
+							ResultInfo.HELP_NAME,
+							ResultInfo.ACTIVITY_DATE,
+							ResultInfo.SOODO_NAME,
+							ResultInfo.ACTIVITY_REM,
+							ResultInfo.ACTIVITY_USER_REM,
+							member.getUserOpenid(),
+							ResultInfo.help_url
+					);
+				} catch (Exception e) {
+					logger.info("============助力成功信息发送失败============");
+					e.printStackTrace();
+				}
 			}
-			long end = new Date().getTime();
-			System.out.println("生成时间为:"+ (end-start));
 			if(f < 1){
 				return rm;
 			}else{
@@ -246,7 +267,7 @@ public class ActivityHandler {
 		}
 
 		//生成机器二维码
-		String json = String.format(NameUtils.QR_SCENE, 2592000, ResultInfo.barCodeActivity + member.getUserOpenid());
+		String json = String.format(NameUtils.QR_SCENE_STR, 2592000, ResultInfo.barCodeActivity + member.getUserOpenid());
 		QRCJson qrc = WeixinUtil.createQrcode(json);
 		try {
 			/*下载二维码*/
@@ -267,7 +288,7 @@ public class ActivityHandler {
 			ImageUtils.pressPost(newImg,
 					headImg,PosterNumUtils.HEAD_X,PosterNumUtils.HEAD_Y,
 					codeImg,PosterNumUtils.CODE_X,PosterNumUtils.CODE_Y,
-					name,PosterNumUtils.TEXT_X,PosterNumUtils.TEXT_Y,Color.black,PosterNumUtils.TEXT_FONT_SIZE
+					name,PosterNumUtils.TEXT_X,PosterNumUtils.TEXT_Y,new Color(51, 51, 51),PosterNumUtils.TEXT_FONT_SIZE
 			);
 			/*添加文字*/
 //			ImageUtils.pressImage(newImg,headImg,PosterNumUtils.HEAD_X,PosterNumUtils.HEAD_Y,1);

+ 1 - 1
tooth-wechat-web/src/main/java/com/iamberry/wechat/test/Test.java

@@ -13,7 +13,7 @@ public class Test {
     public static void main(String[] args) {
 
         //生成机器二维码
-//        String json = String.format(NameUtils.QR_SCENE, 2592000, ResultInfo.barCodeActivity + "123");
+//        String json = String.format(NameUtils.QR_SCENE_STR, 2592000, ResultInfo.barCodeActivity + "oZ9pv02WMRQgyDVRY1a_daYecwHI");
 //        QRCJson qrc = WeixinUtil.createQrcode(json);
 //
 //        if(true){

+ 5 - 0
tooth-wechat-web/src/main/resources/ResultInfo.properties

@@ -56,6 +56,8 @@ ORDER_GUOQI = http://test.iamberry.com/tooth/pay/goOrderList
 TRY_ORDER_DETAIL = http://test.iamberry.com/tooth/wechat/probation/try_order
 RENT_ORDER_DETAIL = http://test.iamberry.com/tooth/view/rent/lease_order_details.html?rentStatus=-1
 AGENT_REFERRER_MACHINE_PAGE = http://test.iamberry.com/tooth/view/gift_card_get_give.html
+
+ACTIVITY_URL = https://s.iamberry.com/soodo/wechat/index-2018-618-list.html
 ########################--\u6C34\u65F6\u4EE3	xiaoxi moban	--################
 Income_template_id=vpBRhKfrBUEf5HuXxwGRn61mNpk6A3gRXoVAQPqrxMU
 rewards_template_id=x881e_4cmm6PHBZJC26S8p3UCCS-rvDVOzm9xy4qAKg
@@ -78,3 +80,6 @@ failed_purchase=gnk9JaOkAaumN1qNUjxH5IHTjundAj_-O9_G531FpH4
 
 registered_template=JunNceH3S4siog445TlsVVin1D2yYqopj6U_xatNWCI
 birthday_template=xx
+
+participate_in_success=EAHie4LJAWr82FfNiClPCr9zA4OEiiqvB2wINfUaT_k
+helping_success=vQJrb-IFzwWj18UcmiLeD55_7v7jNgxFj6WuVnr8UTM

BIN
tooth-wechat-web/src/main/webapp/common/images/activity/ditu.jpg