Browse Source

watero增加推送信息
1.注册用户推送T1/T2滤芯券
2.T1/T2滤芯券 45天未使用推送一次
3.T1/T2滤芯券 85天未使用推送一次
4.关注一个月未注册推送一次

wangxiaoming 5 years ago
parent
commit
895fee5339
17 changed files with 247 additions and 15 deletions
  1. 21 0
      watero-common-core/src/main/java/com/iamberry/wechat/sendMsg/SendMessageUtil.java
  2. 15 4
      watero-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java
  3. 3 1
      watero-common-tool/src/main/java/com/iamberry/wechat/tools/loadResultUtil.java
  4. 7 0
      watero-wechat-interface/src/main/java/com/iamberry/wechat/face/coupon/CouponItemService.java
  5. 6 0
      watero-wechat-interface/src/main/java/com/iamberry/wechat/face/member/MemberService.java
  6. 5 0
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/coupon/CouponItemServiceImpl.java
  7. 7 0
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/CouponItemMapper.java
  8. 6 0
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/MemberMapper.java
  9. 13 1
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/couponItemMapper.xml
  10. 11 0
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/memberMapper.xml
  11. 23 0
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/member/MemberServiceImpl.java
  12. 8 0
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/MemberDao.java
  13. 5 0
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/imp/MemberDaoImpl.java
  14. 13 6
      watero-wechat-web/src/main/java/com/iamberry/wechat/handles/home/HomeHandler.java
  15. 100 1
      watero-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java
  16. 2 0
      watero-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java
  17. 2 2
      watero-wechat-web/src/main/resources/ResultInfo.properties

+ 21 - 0
watero-common-core/src/main/java/com/iamberry/wechat/sendMsg/SendMessageUtil.java

@@ -71,6 +71,9 @@ public class SendMessageUtil {
 			case 13:  //13、会员激活-生日提醒
 				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.member_activation, date, url);
 				break;
+			case 14:  //14、关注一个月还未注册通知
+				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.register_member, date, url);
+				break;
 			default: 
 				break;
 			}
@@ -268,4 +271,22 @@ public class SendMessageUtil {
 				.replaceFirst("remarkValue",remark);
 		sendTemplateMessageToOpenid(temp, openId, url,13);
 	}
+
+	/**
+	 * 关注一个月还未注册通知
+	 * @param first
+	 * @param keyword1
+	 * @param keyword2
+	 * @param remark
+	 * @param openId
+	 * @param url
+	 */
+	public void registerMember(String first,String keyword1,String keyword2,String remark,String openId,String url){
+		String temp = ResultInfo.REGISTERMEMBER;
+		temp = temp.replaceFirst("firstValueIamberry", first)
+				.replaceFirst("keyword1Value",keyword1)
+				.replaceFirst("keyword2Value",keyword2)
+				.replaceFirst("remarkValue",remark);
+		sendTemplateMessageToOpenid(temp, openId, url,14);
+	}
 }

+ 15 - 4
watero-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -174,10 +174,18 @@ public class ResultInfo {
 	 */
 	public static String COUPON_URL = "https://s.iamberry.com/watero/wechat/coupon_bag1.html?type=1";
 	/**
+	 * 会员专享
+	 */
+	public static String COUPON_URL_2 = "https://s.iamberry.com/watero/wechat/coupon_bag1.html?type=2";
+	/**
 	 * 团购活动首页
 	 */
 	public static String INDEX_BULK_URL = "https://s.iamberry.com/watero/wechat/20190807.html";
 	/**
+	 * 注册会员页面
+	 */
+	public static String HUIYUAN_URL = "https://s.iamberry.com/watero/wechat/vip-equity.html";
+	/**
 	 * <礼品卡>推荐人推送消息 跳转页面
 	 */
 	public static String AGENT_REFERRER_MACHINE_PAGE = "";
@@ -220,7 +228,11 @@ public class ResultInfo {
 	/**
 	 * 会员激活
 	 */
-	public static String member_activation_desc="";	//会员激活-生日提醒
+	public static String member_activation_desc="";	//会员激活-生日提醒-模板中的内容
+	/**
+	 * 关注一个月还未注册通知
+	 */
+	public static String register_member="";
 	/**
 	 * 订单关闭通知	 	模版id	TM00984
 	 */
@@ -290,9 +302,8 @@ public class ResultInfo {
 	/** 	会员积分 	*/
 	public static String MEMBERACTIVATION = "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'},'remark':{'color':'#173177','value':'remarkValue'}}";
 
-
-
-
+	/** 	关注一个月还未注册通知 	*/
+	public static String REGISTERMEMBER = "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'},'remark':{'color':'#173177','value':'remarkValue'}}";
 
 	/** 	RST模板消息 statr 	*/
 	/**

+ 3 - 1
watero-common-tool/src/main/java/com/iamberry/wechat/tools/loadResultUtil.java

@@ -89,7 +89,9 @@ public class loadResultUtil {
 			ResultInfo.chineseLotteryFailure = prop.getProperty("chineseLotteryFailure");			//七夕回复失败
 
 			ResultInfo.member_activation = prop.getProperty("member_activation");		//会员激活-生日提醒
-			ResultInfo.member_activation_desc = prop.getProperty("member_activation_desc");		//会员激活-生日提醒
+			ResultInfo.member_activation_desc = prop.getProperty("member_activation_desc");		//会员激活-生日提醒-模板中的内容
+
+			ResultInfo.register_member = prop.getProperty("register_member");		//关注一个月还未注册通知
 
 		} catch (IOException e) {
 			new RuntimeException(e.getMessage());

+ 7 - 0
watero-wechat-interface/src/main/java/com/iamberry/wechat/face/coupon/CouponItemService.java

@@ -66,4 +66,11 @@ public interface CouponItemService {
 	 * @return
 	 */
 	public List<CouponItemDto> expiredAndNoTake(CouponItemDto couponItemDto);
+
+	/**
+	 * 按照一定的时间 - 获取没有使用的优惠券 -- T1/T2兑换券提醒 定时器
+	 * @param couponItem
+	 * @return
+	 */
+	List<CouponItemDto> getNoUseCouponList(CouponItem couponItem);
 }

+ 6 - 0
watero-wechat-interface/src/main/java/com/iamberry/wechat/face/member/MemberService.java

@@ -160,4 +160,10 @@ public interface MemberService{
 	 * @return
 	 */
 	List<Member> getNowBirthDate();
+
+	/**
+	 * 获取关注一个月但未注册的用户-用于推送-定时任务
+	 * @return
+	 */
+	List<Member> getNoRegister(Member member);
 }

+ 5 - 0
watero-wechat-service/src/main/java/com/iamberry/wechat/service/coupon/CouponItemServiceImpl.java

@@ -62,4 +62,9 @@ public class CouponItemServiceImpl implements CouponItemService {
 	public List<CouponItemDto> expiredAndNoTake(CouponItemDto couponItemDto) {
 		return couponItemMapper.expiredAndNoTake(couponItemDto);
 	}
+
+	@Override
+	public List<CouponItemDto> getNoUseCouponList(CouponItem couponItem) {
+		return couponItemMapper.getNoUseCouponList(couponItem);
+	}
 }

+ 7 - 0
watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/CouponItemMapper.java

@@ -66,4 +66,11 @@ public interface CouponItemMapper {
 	 * @return
 	 */
 	public List<CouponItemDto> expiredAndNoTake(CouponItemDto couponItemDto);
+
+	/**
+	 * 按照一定的时间 - 获取没有使用的优惠券 -- T1/T2兑换券提醒 定时器
+	 * @param couponItem
+	 * @return
+	 */
+	List<CouponItemDto> getNoUseCouponList(CouponItem couponItem);
 }

+ 6 - 0
watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/MemberMapper.java

@@ -140,4 +140,10 @@ public interface MemberMapper {
 	 * @return
 	 */
 	List<Member> getNowBirthDate();
+
+	/**
+	 * 获取关注一个月但未注册的用户-用于推送-定时任务
+	 * @return
+	 */
+	List<Member> getNoRegister(Member member);
 }

+ 13 - 1
watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/couponItemMapper.xml

@@ -182,7 +182,7 @@
 		FROM TB_IAMBERRY_COUPON_ITEM CI
 		JOIN TB_IAMBERRY_COUPON_TYPE CT ON CI.COUPON_ID=CT.COUPON_ID
 		<where>
-			CI.COUPON_ID != 40000
+			CI.COUPON_ID NOT IN (40000, 10000)
 			<if test="couponId != null and couponId != ''">
 				AND CI.COUPON_ID=#{couponId}
 			</if>
@@ -198,4 +198,16 @@
 		</where>
 		ORDER BY CI.COUPON_RECEIVE_DATE DESC
 	</select>
+
+	<select id="getNoUseCouponList" resultType="CouponItemDto" parameterType="CouponItemDto">
+		SELECT
+		<include refid="allField"></include>
+		FROM TB_IAMBERRY_COUPON_ITEM CI
+		JOIN TB_IAMBERRY_COUPON_TYPE CT ON CI.COUPON_ID=CT.COUPON_ID
+		WHERE
+		CI.COUPON_ID=#{couponId}
+		AND CI.COUPON_USE_STATUS = 1
+		AND date_format(CI.coupon_receive_date,'%Y-%m-%d') = date_format(#{couponReceiveDate},'%Y-%m-%d')
+	</select>
+
 </mapper>

+ 11 - 0
watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/memberMapper.xml

@@ -399,4 +399,15 @@
 		WHERE date_format(user_birth_date,'%m-%d') = date_format(now(),'%m-%d')
 	</select>
 
+	<!-- 获取关注一个月但未注册的用户-用于推送-定时任务 -->
+	<select id="getNoRegister" resultType="Member">
+		SELECT
+			<include refid="allField"/>
+		FROM tb_iamberry_user_userinfo
+		WHERE
+			date_format(user_sub_date,'%Y-%m-%d') = date_format(#{userSubDate},'%Y-%m-%d')
+		AND user_status = 2
+		AND user_is_vip = 1
+	</select>
+
 </mapper> 

+ 23 - 0
watero-wechat-service/src/main/java/com/iamberry/wechat/service/member/MemberServiceImpl.java

@@ -10,8 +10,10 @@ import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
 import com.iamberry.wechat.face.coupon.CouponItemService;
 import com.iamberry.wechat.face.coupon.CouponTypeService;
+import com.iamberry.wechat.sendMsg.SendMessageUtil;
 import com.iamberry.wechat.service.mapper.CouponItemMapper;
 import com.iamberry.wechat.service.mapper.CouponTypeMapper;
+import com.iamberry.wechat.tools.ResultInfo;
 import com.iamberry.wechat.tools.StrUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,6 +56,8 @@ public class MemberServiceImpl implements MemberService {
 	private CouponItemMapper couponItemMapper;
 	@Autowired
 	private CouponTypeMapper couponTypeMapper;
+	@Autowired
+	private SendMessageUtil sendMessageUtil;
 	/**
 	 * 根据userid得到会员信息
 	 * @param userId
@@ -145,6 +149,20 @@ public class MemberServiceImpl implements MemberService {
 				throw new RuntimeException("赠送生日优惠券失败");
 			}
 		}
+
+		try {
+			sendMessageUtil.servicePush(
+					"亲爱的用户,恭喜您注册成功!100会员积分、100元滤芯套装优惠券、T1/T2滤芯兑换券已发放至您的账户。",
+					"会员积分+会员专享优惠券",
+					"T1/T2滤芯兑换券有效期3个月",
+					"可在“服务中心-会员中心”查看积分及会员专享优惠券,请及时使用优惠券。",
+					member.getUserOpenid(),
+					ResultInfo.COUPON_URL_2);
+		}catch (Exception e){
+			logger.info("注册成功提醒使用优惠券失败,失败openId:" + member.getUserOpenid()+",优惠券ID:"+uuidStr);
+			e.printStackTrace();
+		}
+
 		return flag;
 	}
 
@@ -391,4 +409,9 @@ public class MemberServiceImpl implements MemberService {
 	public List<Member> getNowBirthDate() {
 		return memberDao.getNowBirthDate();
 	}
+
+	@Override
+	public List<Member> getNoRegister(Member member) {
+		return memberDao.getNoRegister(member);
+	}
 }

+ 8 - 0
watero-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/MemberDao.java

@@ -135,4 +135,12 @@ public interface MemberDao {
 	 * @return
 	 */
 	List<Member> getNowBirthDate();
+
+	/**
+	 * 获取关注一个月但未注册的用户-用于推送-定时任务
+	 * @return
+	 */
+	List<Member> getNoRegister(Member member);
+
+
 }

+ 5 - 0
watero-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/imp/MemberDaoImpl.java

@@ -198,4 +198,9 @@ public class MemberDaoImpl  implements MemberDao {
 	public List<Member> getNowBirthDate() {
 		return memberMapper.getNowBirthDate();
 	}
+
+	@Override
+	public List<Member> getNoRegister(Member member) {
+		return memberMapper.getNoRegister(member);
+	}
 }

+ 13 - 6
watero-wechat-web/src/main/java/com/iamberry/wechat/handles/home/HomeHandler.java

@@ -151,13 +151,20 @@ public class HomeHandler {
 				} catch (UnsupportedEncodingException e) {
 					nickname = "";
 				}
-				m.setUserHead(headimgurl);
-				m.setUserNickname(nickname);
-				if(nickname != null && !"".equals(nickname)){
-					m.setUserStatus(2);
+
+				Member mem = new Member();
+				mem.setUserHead(headimgurl);
+				mem.setUserNickname(nickname);
+				mem.setUserOpenid(m.getUserOpenid());
+				if(m.getUserStatus() == 2){
+					memberService.nowUpdateUserByOpenId(mem);
+				}else{
+					if(nickname != null && !"".equals(nickname)){
+						mem.setUserStatus(2);
+					}
+					homeService.updateWechatMemberInfoByByOpenid(mem);
 				}
-				homeService.updateWechatMemberInfoByByOpenid(m);
-			logger.info("获取个人信息成功;openid:"+m.getUserOpenid());
+				logger.info("获取个人信息成功;openid:"+m.getUserOpenid());
 		}catch (Exception e){
 			logger.info("获取个人信息失败;openid:"+m.getUserOpenid());
 			e.printStackTrace();

+ 100 - 1
watero-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java

@@ -422,11 +422,12 @@ public class MQTask implements InitializingBean {
 
 	/**
 	 * 每天有过期的优惠券提醒
+	 * 在这个定时任务里面,不提醒生日优惠券,不提醒T1/T2兑换券,生日优惠券当天会有提醒生日福利,T1/T2优惠券会45天提醒一次,85天提醒一次
 	 * @throws Exception
 	 */
 //	@Scheduled(cron = "0 0 */1 * * ?")//每小时执行一次
 //	@Scheduled(cron = "0 0/2 * * * ?")//每2分钟执行一次
-	@Scheduled(cron = "0 0 9 * * ?")//每天早上9点触发
+	@Scheduled(cron = "0 0 8 * * ?")//每天早上9点触发
 	public void expiredCouponRemind() throws Exception {
 		logger.info("---------------- 过期优惠券提醒开始 ---------------");
 		CouponItemDto couponItemDto = new CouponItemDto();
@@ -561,4 +562,102 @@ public class MQTask implements InitializingBean {
 		}
 	}
 
+
+	/**
+	 * T1/T2优惠券会45天提醒一次,85天提醒一次
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "0 0 8 * * ?")//每天早上8点触发
+	public void registerMember() throws Exception {
+		logger.info("----------------  T1/T2优惠券提醒-开始 ---------------");
+		//45天未使用优惠券的券
+		Calendar calendar = Calendar.getInstance();
+		calendar.setTime(new Date());
+		calendar.add(Calendar.DATE, -45);//45天前
+		CouponItem couponItem = new CouponItem();
+		couponItem.setCouponId(10000);
+		couponItem.setCouponReceiveDate(calendar.getTime());
+		List<CouponItemDto> couponItemDtoList = couponItemService.getNoUseCouponList(couponItem);
+		if(couponItemDtoList!=null && couponItemDtoList.size()>0){
+			logger.info("---------------- 45天未使用优惠券的券 - 前当前任务处理数量-"+ couponItemDtoList.size() +" ---------------");
+			for (CouponItemDto couponItemDto:couponItemDtoList) {
+				try {
+					sendMessageUtil.servicePush(
+							"亲爱的用户,您的T1/T2滤芯兑换券有效期还有45天",
+							"T1/T2滤芯兑换券",
+							"45天后失效",
+							"可在“服务中心-会员中心-会员专享”查看,请尽快使用。",
+							couponItemDto.getUseropenid(),
+							ResultInfo.COUPON_URL_2);
+				}catch (Exception e){
+					logger.info("注册成功提醒使用优惠券失败,失败openId:" + couponItemDto.getUseropenid()+",优惠券ID:"+couponItemDto.getCouponItemId());
+					e.printStackTrace();
+				}
+			}
+			logger.info("---------------- 注册会员未使用优惠券提醒-结束 ---------------");
+		}
+
+		//85天未使用优惠券的券
+		Calendar nowcalendar = Calendar.getInstance();
+		nowcalendar.setTime(new Date());
+		nowcalendar.add(Calendar.DATE, -85);//85天前
+		CouponItem nowcouponItem = new CouponItem();
+		nowcouponItem.setCouponId(10000);
+		nowcouponItem.setCouponReceiveDate(nowcalendar.getTime());
+		List<CouponItemDto> nowcouponItemDtoList = couponItemService.getNoUseCouponList(nowcouponItem);
+		if(nowcouponItemDtoList!=null && nowcouponItemDtoList.size()>0){
+			logger.info("---------------- 85天未使用优惠券的券 - 前当前任务处理数量-"+ nowcouponItemDtoList.size() +" ---------------");
+			for (CouponItemDto couponItemDto:nowcouponItemDtoList) {
+				try {
+					sendMessageUtil.servicePush(
+							"亲爱的用户,您的T1/T2滤芯兑换券即将到期",
+							"T1/T2滤芯兑换券",
+							"5天后失效",
+							"可在“服务中心-会员中心-会员专享”查看,请尽快使用。",
+							couponItemDto.getUseropenid(),
+							ResultInfo.COUPON_URL_2);
+				}catch (Exception e){
+					logger.info("注册成功提醒使用优惠券失败,失败openId:" + couponItemDto.getUseropenid()+",优惠券ID:"+couponItemDto.getCouponItemId());
+					e.printStackTrace();
+				}
+			}
+		}
+		logger.info("---------------- T1/T2优惠券提醒-结束 ---------------");
+	}
+
+	/**
+	 * 关注一个月后未注册,推送注册信息
+	 * @throws Exception
+	 */
+	@Scheduled(cron = "0 0 8 * * ?")//每天早上8点触发
+	public void mqRegisterMember() throws Exception {
+		logger.info("---------------- 关注用户过一个月还未注册,推送注册信息-开始 ---------------");
+		Calendar calendar = Calendar.getInstance();
+		calendar.setTime(new Date());
+		calendar.add(Calendar.DATE, -30);//30天前
+
+		Member member = new Member();
+		member.setUserSubDate(calendar.getTime());
+		List<Member> memberList = memberService.getNoRegister(member);
+
+		if(memberList!=null && memberList.size()>0){
+			logger.info("---------------- 当前任务处理数量-"+ memberList.size() +" ---------------");
+			for (Member m:memberList) {
+				try {
+					sendMessageUtil.registerMember(
+							"欢迎关注WaterO水时代公众号。现在注册会员,即可赠送100积分,享受购买滤芯年套装直减100元优惠,还送T1/T2滤芯兑换券!",
+							"服务中心-会员中心-成为会员",
+							"400-8006692",
+							"赶紧注册会员吧!更多惊喜等你来!",
+							m.getUserOpenid(),
+							ResultInfo.HUIYUAN_URL);
+				}catch (Exception e){
+					logger.info("关注用户过一个月还未注册,推送注册信息失败,失败openId:" + member.getUserOpenid());
+					e.printStackTrace();
+				}
+			}
+			logger.info("---------------- 关注用户过一个月还未注册,推送注册信息-结束 ---------------");
+		}
+	}
+
 }

+ 2 - 0
watero-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java

@@ -1220,4 +1220,6 @@ public class ResponseWechatPayHandler {
 		return msg;
 	}
 
+
+
 }

+ 2 - 2
watero-wechat-web/src/main/resources/ResultInfo.properties

@@ -84,5 +84,5 @@ probation_shut_down=qAn04oDBfK4VSB8bROeR-5BhhYri1oUK51FVlh6KwU4
 prize_receive_push=7d_r3XJsY5MAISYCDxrjdnPXgNm3IU8XLRYWXbCJjbs
 service_push=5hWq6wd6W9HbMZ0ICSRTDyCKh_r_MjpQtWzkQRSKLio
 probation_spell_success=PmRYkC7WJft9t4HJZD4_w6tNmxXiaPBPlyfwIbhPLMI
-
-member_activation=MuLXODrGIrHripVp1Ku4vkAS-QO-8aRUkEgR41Zqrlk
+member_activation=MuLXODrGIrHripVp1Ku4vkAS-QO-8aRUkEgR41Zqrlk
+register_member=rkhPsVzHgnCgFJ4WITfobN00dxrhMpq6Afg9knuCei0