ソースを参照

双十二补充:
1.关注用户一个月未注册会员将推送注册会员信息
2.注册用户,推送优惠券使用买一赠一的兑换券信息
3.45天未使用优惠券,将推送使用买一赠一的兑换券信息
4.85天未使用,推送使用买一赠一的兑换券信息
5.增加买一赠一的兑换券

wangxiaoming 5 年 前
コミット
dd90335a09
29 ファイル変更513 行追加137 行削除
  1. 10 0
      iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/TempOrderDto.java
  2. 0 10
      iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/member/Member.java
  3. 0 10
      iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/order/Order.java
  4. 53 2
      iamberry-common-core/src/main/java/com/iamberry/wechat/tools/SendMessageUtil.java
  5. 13 2
      iamberry-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java
  6. 3 0
      iamberry-common-tool/src/main/java/com/iamberry/wechat/tools/loadResultUtil.java
  7. 7 0
      iamberry-wechat-interface/src/main/java/com/iamberry/wechat/face/coupon/CouponItemService.java
  8. 6 0
      iamberry-wechat-interface/src/main/java/com/iamberry/wechat/face/member/MemberService.java
  9. 36 36
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/ActivityUtil.java
  10. 1 11
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/cart/CartServiceImpl.java
  11. 5 0
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/coupon/CouponItemServiceImpl.java
  12. 2 0
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/home/HomeServiceImpl.java
  13. 7 0
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/CouponItemMapper.java
  14. 6 1
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/MemberMapper.java
  15. 8 8
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/cartMapper.xml
  16. 11 0
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/couponItemMapper.xml
  17. 15 6
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/memberMapper.xml
  18. 2 3
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/orderMapper.xml
  19. 47 0
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/member/MemberServiceImpl.java
  20. 7 0
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/MemberDao.java
  21. 5 0
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/member/dao/imp/MemberDaoImpl.java
  22. 10 10
      iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/impl/AdminOrderDaoImpl.java
  23. 2 0
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java
  24. 0 13
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/cart/CartHandlers.java
  25. 12 5
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/home/HomeHandler.java
  26. 98 0
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java
  27. 25 9
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java
  28. 117 1
      iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java
  29. 5 10
      iamberry-wechat-web/src/main/resources/ResultInfo.properties

+ 10 - 0
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/TempOrderDto.java

@@ -38,6 +38,8 @@ public class TempOrderDto implements java.io.Serializable{
 	
 	private int balancePayAmount ; //账户余额支付额度
 
+	private int useCouponPrizeColorId ; //赠送颜色id
+
 	public String getOrderAddressInfo() {
 		return orderAddressInfo;
 	}
@@ -110,6 +112,14 @@ public class TempOrderDto implements java.io.Serializable{
 		this.balancePayAmount = balancePayAmount;
 	}
 
+	public int getUseCouponPrizeColorId() {
+		return useCouponPrizeColorId;
+	}
+
+	public void setUseCouponPrizeColorId(int useCouponPrizeColorId) {
+		this.useCouponPrizeColorId = useCouponPrizeColorId;
+	}
+
 	@Override
 	public String toString() {
 		return "TempOrderDto [orderAddressInfo=" + orderAddressInfo

ファイルの差分が大きいため隠しています
+ 0 - 10
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/member/Member.java


+ 0 - 10
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/order/Order.java

@@ -78,8 +78,6 @@ public class Order implements java.io.Serializable{
 
 	private Integer salesSendWarn;	//发货提醒次数
 
-	private Integer salesVipPreferential;	//是否使用了会员的买一赠一的优惠  1.使用  2.未使用
-
 	public Integer getSalesSendWarn() {
 		return salesSendWarn;
 	}
@@ -348,12 +346,4 @@ public class Order implements java.io.Serializable{
 	public void setCancelDate(Date cancelDate) {
 		this.cancelDate = cancelDate;
 	}
-
-	public Integer getSalesVipPreferential() {
-		return salesVipPreferential;
-	}
-
-	public void setSalesVipPreferential(Integer salesVipPreferential) {
-		this.salesVipPreferential = salesVipPreferential;
-	}
 }

+ 53 - 2
iamberry-common-core/src/main/java/com/iamberry/wechat/tools/SendMessageUtil.java

@@ -5,6 +5,8 @@ import com.iamberry.wechat.tools.ResultInfo;
 import com.iamberry.wechat.tools.WeixinUtil;
 import org.springframework.stereotype.Component;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashMap;
 /**
  * @company	深圳爱贝源科技有限公司
@@ -100,6 +102,12 @@ public class SendMessageUtil {
 			case 12:
 				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.member_activation, date, url);
 				break;
+			case 13:	//推荐用户注册会员
+				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.register_member, date, url);
+				break;
+			case 14:	//推荐用户使用优惠券
+				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.recommend_use_coupon, date, url);
+				break;
 			default:
 				break;
 			}
@@ -107,6 +115,9 @@ public class SendMessageUtil {
 			return result;
 		}
 
+	public static void main(String[] args) {
+
+	}
 
 	/**
 	 * 支付成功
@@ -118,12 +129,13 @@ public class SendMessageUtil {
 	 * @param openId
 	 * @param url
 	 */
-	public void probationPaySuccess(String first,String keyword1,String keyword2,String keyword3,String remark,String openId,String url){
+	public void probationPaySuccess(String first,String keyword1,String keyword2,String keyword3,String keyword4,String remark,String openId,String url){
 		String temp = ResultInfo.PROBATIONPAYSUCCESS;
 		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,5);
@@ -184,13 +196,14 @@ public class SendMessageUtil {
 	 * @param openId
 	 * @param url
 	 */
-	public void orderApplyReturn(String first,String keyword1,String keyword2,String keyword3,String keyword4,String remark,String openId,String url){
+	public void orderApplyReturn(String first,String keyword1,String keyword2,String keyword3,String keyword4,String keyword5,String remark,String openId,String url){
 		String temp = ResultInfo.APPLYRETURN;
 		temp = temp.replaceFirst("firstValueIamberry", first)
 				.replaceFirst("keyword1Value",keyword1)
 				.replaceFirst("keyword2Value",keyword2)
 				.replaceFirst("keyword3Value",keyword3)
 				.replaceFirst("keyword4Value",keyword4)
+				.replaceFirst("keyword5Value",keyword5)
 				.replaceFirst("colorValue","#1C86EE")
 				.replaceFirst("remarkValue",remark);
 		sendTemplateMessageToOpenid(temp, openId, url,7);
@@ -274,4 +287,42 @@ public class SendMessageUtil {
 				.replaceFirst("remarkValue",remark);
 		sendTemplateMessageToOpenid(temp, openId, url,12);
 	}
+
+	/**
+	 * 注册成为会员
+	 * @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,13);
+	}
+
+	/**
+	 * 推荐用户使用优惠券
+	 * @param first
+	 * @param keyword1
+	 * @param keyword2
+	 * @param remark
+	 * @param openId
+	 * @param url
+	 */
+	public void recommendUseCoupon(String first,String keyword1,String keyword2,String remark,String openId,String url){
+		String temp = ResultInfo.RECOMMENDUSECOUPON;
+		temp = temp.replaceFirst("firstValueIamberry", first)
+				.replaceFirst("keyword1Value",keyword1)
+				.replaceFirst("keyword2Value",keyword2)
+				.replaceFirst("remarkValue",remark);
+		sendTemplateMessageToOpenid(temp, openId, url,14);
+	}
+
+
 }

+ 13 - 2
iamberry-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -61,6 +61,7 @@ public class ResultInfo {
 	public static String yearMsg = "";												//定时任务返利模板
 
 	public static String  COUPON_URL = "https://s.iamberry.com/aiberle/wechat/coupon_list.html";
+	public static String  HUIYUAN_URL = "https://s.iamberry.com/aiberle/wechat/vip-equity.html";
 
 	/**
 	 * 活动过期
@@ -122,6 +123,10 @@ public class ResultInfo {
 	 * 	服务推送模板
 	 */
 	public static String service_push="";
+	//注册成为会员
+	public static String register_member="";
+	//推荐用户使用优惠券
+	public static String recommend_use_coupon="";
 
 	// 返现到账通知消息模版
 	public static String REWARDSREMINDTEMP =  "{'first':{'color':'#173177','value':'firstValueIamberry'}, order:{'color':'#173177','value':'orderValueIamberry'}, 'money':{'color':'#173177', 'value':'moneyValueIamberry'}, 'remark':{'color':'#173177','value':'remarkValueIamberry'}}";
@@ -136,7 +141,7 @@ public class ResultInfo {
 	public static String ORDERWEIZHIFU = "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'ordertape':{'color':'#173177','value':'ordertapeValue'}, 'ordeID':{'color':'#173177', 'value':'ordeIDVALUE'},'remark':{'color':'#173177','value':'remarkValueIamberry'}}";
 
 	/**	  订单支付成功	 */
-	public static String PROBATIONPAYSUCCESS = "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'},'keyword3':{'color':'#173177', 'value':'keyword3Value'},'remark':{'color':'colorValue','value':'remarkValue'}}";
+	public static String PROBATIONPAYSUCCESS = "{'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'}}";
 
 	/** 	试用订单关闭通知		*/
 	//public static String PROBATIONSHUTDOWN = "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'transid':{'color':'#173177','value':'transidValue'}, 'fee':{'color':'#173177', 'value':'feeValue'}, 'pay_time':{'color':'#173177','value':'pay_timeValue'},'remark':{'color':'#173177','value':'remarkValue'}}";
@@ -145,7 +150,7 @@ public class ResultInfo {
 	public static String APPLYREFUND= "{'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'}}";
 
 	/**  用户 申请退货 提醒 */
-	public static String APPLYRETURN= "{'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'}}";
+	public static String APPLYRETURN= "{'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'}, 'keyword5':{'color':'#173177', 'value':'keyword5Value'},'remark':{'color':'colorValue','value':'remarkValue'}}";
 
 	/**  用户 申请换货 提醒 */
 	public static String APPLYBARTER= "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'},'remark':{'color':'colorValue','value':'remarkValue'}}";
@@ -162,6 +167,11 @@ 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'}}";
+	/** 	推荐用户使用优惠券 	*/
+	public static String RECOMMENDUSECOUPON = "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'Good':{'color':'#173177','value':'keyword1Value'}, 'contentType':{'color':'#173177', 'value':'keyword2Value'},'remark':{'color':'#173177','value':'remarkValue'}}";
+
 	//微信模板消息提示语
 	public static final String REWARDSWILLMESSAGE = "尊敬的客户您好~您有新的返现即将入账~";
 	public static final String REWARDSHASMESSAGE  = "您有新的返现已入账~";
@@ -211,6 +221,7 @@ public class ResultInfo {
 	public static String COUPON_OUTOFDATE="优惠券过期";
 	public static String COUPON_INVALID="优惠券无效";
 	public static String COUPON_CONSUME_NO_ENOUGH="消费额度不足,优惠券无法使用";
+	public static String COUPON_CONSUME_NO_PRIZE="买一赠一出错";
 
 	public static String ORDERID_PRIFIX = "***";
 	public static String COUPONITEMSTATUS_NORMAL = "normal";

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

@@ -105,6 +105,9 @@ public class loadResultUtil {
 			ResultInfo.service_push = prop.getProperty("service_push");			//服务推送模板
 			ResultInfo.member_activation = prop.getProperty("member_activation");			//服务推送模板
 
+			ResultInfo.register_member = prop.getProperty("register_member");
+			ResultInfo.recommend_use_coupon = prop.getProperty("recommend_use_coupon");
+
 		} catch (IOException e) {
 			ResultInfo.SUCCESSINFO="操作成功!";
 			ResultInfo.ERRORINFO="操作失败!";

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

@@ -60,4 +60,11 @@ public interface CouponItemService {
 	 * @author liuzhiwei
 	 */
 	public Integer updateCouponItemList(List<CouponItem> couponItemList);
+
+	/**
+	 * 按照一定的时间 - 获取没有使用的优惠券 -- 定时器
+	 * @param couponItem
+	 * @return
+	 */
+	List<CouponItemDto> getNoUseCouponList(CouponItem couponItem);
 }

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

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

+ 36 - 36
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/ActivityUtil.java

@@ -321,41 +321,41 @@ public class ActivityUtil {
     }
 
 
-    /**
-     * 添加一个免费滤芯
-     * @param cartDtoList
-     * @param openId
-     * @return  true 表示有赠送
-     * @return  false 表示未赠送
-     */
-    public boolean setVipPreFerential(List<CartDto> cartDtoList,String openId){
-        Member member = memberService.getMemberByUserOpenId(openId);
-        if(member.getUserVipPreferential() == 2 ){   //1.未兑换 2.已兑换
-            return false;
-        }
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTime(member.getUserVipDate());
-        calendar.add(Calendar.MONTH,3); //增加三个月   
-        if(!new Date().before(calendar.getTime())){
-            return false;
-        }
-        CartDto addCd = new CartDto();
-        boolean flag = false;
-        for (CartDto cd:cartDtoList) {
-            if(cd.getColorType() == 3){
-                 BeanUtils.copyProperties(cd,addCd);
-                 flag = true;
-                 break;
-            }
-        }
-        if(flag){
-            addCd.setProductDiscount(0);
-            addCd.setCartNum(1);
-            addCd.setProductName("【VIP赠送】"+addCd.getProductName());
-            cartDtoList.add(addCd);
-            return true;
-        }
-        return false;
-    }
+//    /**
+//     * 添加一个免费滤芯
+//     * @param cartDtoList
+//     * @param openId
+//     * @return  true 表示有赠送
+//     * @return  false 表示未赠送
+//     */
+//    public boolean setVipPreFerential(List<CartDto> cartDtoList,String openId){
+//        Member member = memberService.getMemberByUserOpenId(openId);
+//        if(member.getUserVipPreferential() == 2 ){   //1.未兑换 2.已兑换
+//            return false;
+//        }
+//        Calendar calendar = Calendar.getInstance();
+//        calendar.setTime(member.getUserVipDate());
+//        calendar.add(Calendar.MONTH,3); //增加三个月   
+//        if(!new Date().before(calendar.getTime())){
+//            return false;
+//        }
+//        CartDto addCd = new CartDto();
+//        boolean flag = false;
+//        for (CartDto cd:cartDtoList) {
+//            if(cd.getColorType() == 3){
+//                 BeanUtils.copyProperties(cd,addCd);
+//                 flag = true;
+//                 break;
+//            }
+//        }
+//        if(flag){
+//            addCd.setProductDiscount(0);
+//            addCd.setCartNum(1);
+//            addCd.setProductName("【VIP赠送】"+addCd.getProductName());
+//            cartDtoList.add(addCd);
+//            return true;
+//        }
+//        return false;
+//    }
 
 }

+ 1 - 11
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/cart/CartServiceImpl.java

@@ -218,17 +218,6 @@ public class CartServiceImpl implements CartService {
 			}
 		}
 
-		//修改用户使用买一赠一的优惠状态
-		if(order.getSalesVipPreferential() == 1){
-			Member member = new Member();
-			member.setUserOpenid(order.getSalesOpenid());
-			member.setUserVipPreferential(2);	//会员优惠兑换一个滤芯 1.未兑换 2.已兑换
-			count = memberService.nowUpdateUserByOpenId(member);
-			if (count < 1) {
-				throw new RuntimeException("用户使用买一赠一优惠失败");
-			}
-		}
-
 		//订单结算使用积分
 		if(order.getSalesIntegralNum() > 0){
 			count = integralLogService.muOrderChangIntegra(order);
@@ -441,6 +430,7 @@ public class CartServiceImpl implements CartService {
 							sendMessageUtil.orderApplyReturn(
 									"尊敬的用户,已收到您的【退货申请】",
 									orderId,
+									orderId,
 									itemList.get(0).getItemProductName(),
 									productNum+"件",
 									payMoney,

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

@@ -57,4 +57,9 @@ public class CouponItemServiceImpl implements CouponItemService {
 		// TODO Auto-generated method stub
 		return couponItemMapper.updateCouponItemList(couponItemList);
 	}
+
+	@Override
+	public List<CouponItemDto> getNoUseCouponList(CouponItem couponItem) {
+		return couponItemMapper.getNoUseCouponList(couponItem);
+	}
 }

+ 2 - 0
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/home/HomeServiceImpl.java

@@ -56,6 +56,8 @@ public class HomeServiceImpl implements HomeService {
 	public Integer insertMemberInfo(Member member) {
 		// TODO Auto-generated method stub
 		try {
+			//未关注用户触发关注推送注册用户
+
 			return homeServiceDao.insertMemberInfo(member);
 		} catch (DuplicateKeyException e) { // 报错,触发数据库唯一约束错误,系统捕获,而后对获取数据重头再来
 			// TODO: handle exception

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

@@ -62,4 +62,11 @@ public interface CouponItemMapper {
 	public Integer updateCouponItemList(List<CouponItem> couponItemList);
 
 	CouponItem get(String couponId);
+
+	/**
+	 * 按照一定的时间 - 获取没有使用的优惠券 -- 定时器
+	 * @param couponItem
+	 * @return
+	 */
+	List<CouponItemDto> getNoUseCouponList(CouponItem couponItem);
 }

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

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

+ 8 - 8
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/cartMapper.xml

@@ -388,15 +388,15 @@ PUBLIC
 	
 	<!-- 根据orderId查询订单状态,openid和发货时间 -->
 	<select id="getOpenIdAndStatus" parameterType="String" resultType="ShopSalesOrderDto">
-		SELECT 
-			SALES_OPENID salesOpenid, SALES_STATUS salesStatus,SALES_SEND_DATE salesSendDate,
-			SALES_LOCK_TYPE salesLockType,SALES_COUPON_RECEIVE_ID salesCouponReceiveId, sales_vip_preferential salesVipPreferential
-		FROM 
-			TB_IAMBERRY_SHOP_SALES_ORDER 
-		WHERE 
-			SALES_ORDERID = #{salesOrderid} 
+		SELECT
+		SALES_OPENID salesOpenid, SALES_STATUS salesStatus,SALES_SEND_DATE salesSendDate,
+		SALES_LOCK_TYPE salesLockType,SALES_COUPON_RECEIVE_ID salesCouponReceiveId
+		FROM
+		TB_IAMBERRY_SHOP_SALES_ORDER
+		WHERE
+		SALES_ORDERID = #{salesOrderid}
 	</select>
-	
+
 	<!-- 根据购物车ID,批量擅长 -->
 	<delete id="deleteBatchCartListById" parameterType="java.util.List">
 		DELETE FROM 

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

@@ -173,4 +173,15 @@
 	    	</if>
  		</foreach>
  	</update>
+
+	<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>

+ 15 - 6
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/memberMapper.xml

@@ -36,8 +36,7 @@
 		user_template_id templateId,
 		user_dealers userDealers,
 		user_is_vip userIsVip,
-		user_vip_date userVipDate,
-		user_vip_preferential userVipPreferential
+		user_vip_date userVipDate
 	</sql>
 	<!-- 匹配查询会员信息 -->
 	<select id="getMemberByFuzzy" parameterType="Member" resultType="Member">
@@ -384,10 +383,7 @@
 				user_is_vip = #{userIsVip},
 			</if >
 			<if test="userVipDate != null and userVipDate != ''">
-				user_vip_date = #{userVipDate},
-			</if >
-			<if test="userVipPreferential != null ">
-				user_vip_preferential = #{userVipPreferential}
+				user_vip_date = #{userVipDate}
 			</if >
 		</set >
 		where user_openid = #{userOpenid}
@@ -401,4 +397,17 @@
 		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> 

+ 2 - 3
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/orderMapper.xml

@@ -17,7 +17,7 @@ PUBLIC
 			 		SALES_INTEGRAL_NUM, SALES_RATE_AMOUNT, SALES_CREATE_DATE,
 			 		SALES_REWARD_INTEGRAL_NUM, SALES_ADDRESS_INFO, SALES_ADDRESS_POSTNUM,
 			 		SALES_ADDRESS_TEL, SALES_ADDRESS_NAME, SALES_USER_REMARK, SALES_STATUS, 
-			 		SALES_PROXY_REWARD, SALES_REWARD_NUM,SALES_COUPON_RECEIVE_ID, Sales_balance_amount,sales_vip_preferential
+			 		SALES_PROXY_REWARD, SALES_REWARD_NUM,SALES_COUPON_RECEIVE_ID, Sales_balance_amount
 				)
 		 VALUES 
 		  	( 
@@ -38,8 +38,7 @@ PUBLIC
 			  1,
 			  #{salesRewardNum},
 			  #{couponId},
-			  #{balancePayAmount},
-			  #{salesVipPreferential}
+			  #{balancePayAmount}
 		  	)
 	</insert>
 

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

@@ -3,11 +3,14 @@ package com.iamberry.wechat.service.member;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+import com.iamberry.app.tool.log.RatFWLogger;
 import com.iamberry.wechat.core.entity.coupon.CouponItem;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
 import com.iamberry.wechat.face.ism.IntegralLogService;
 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.SendMessageUtil;
 import com.iamberry.wechat.tools.StrUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +48,10 @@ public class MemberServiceImpl implements MemberService {
 	public CouponItemMapper couponItemMapper;
 	@Autowired
 	private IntegralLogService integralLogService;
+	@Autowired
+	private SendMessageUtil sendMessageUtil;
+	@Autowired
+	private RatFWLogger logger;
 	/**
 	 * 根据userid得到会员信息
 	 * @param userId
@@ -208,6 +215,28 @@ public class MemberServiceImpl implements MemberService {
 			throw  new RuntimeException("添加积分失败");
 		}
 
+		Integer couponId = 40001;
+		CouponType couponType = couponTypeMapper.getCouponTypeById(couponId);
+		Calendar calendar = Calendar.getInstance();
+		calendar.add(Calendar.DATE,90);
+		calendar.set(Calendar.HOUR_OF_DAY,23);
+		calendar.set(Calendar.MINUTE,59);
+		calendar.set(Calendar.SECOND,50);
+		//创建优惠券
+		CouponItem couponItem = new CouponItem();
+		String uuidStr = StrUtils.getUUID();
+		couponItem.setCouponItemId(uuidStr);
+		couponItem.setCouponItemUseropenid(member.getUserOpenid());
+		couponItem.setCouponId(couponType.getCouponId());
+		couponItem.setCouponReceiveDate(new Date());
+		couponItem.setCouponUseEndDate(calendar.getTime());
+		couponItem.setCouponUseStatus(1);
+		couponItem.setCouponItemRemark(couponType.getCouponRemark());
+		flag = couponItemMapper.insertCouponItem(couponItem);
+		if(flag < 1){
+			throw new RuntimeException("赠送买一送一优惠券失败");
+		}
+
 		//当天生日,当天送
 		SimpleDateFormat sdf = new SimpleDateFormat("MMdd");
 		String memberBirhDate = sdf.format(member.getUserBirthDate());
@@ -234,6 +263,19 @@ public class MemberServiceImpl implements MemberService {
 				throw new RuntimeException("赠送生日优惠券失败");
 			}
 		}
+
+		try {
+			sendMessageUtil.recommendUseCoupon(
+					"亲爱的用户,恭喜您注册成功!现在就可享受专属会员折扣(购买滤芯产品88折,非滤芯产品95折),100会员积分、单支滤芯买一送一优惠券已发放至您的账户。",
+					"会员积分+会员专享折扣+滤芯买赠优惠券",
+					"单支滤芯买一送一优惠券有效期3个月",
+					"可在“我的爱贝源-会员中心”查看积分及优惠券,请及时使用优惠券。",
+					member.getUserOpenid(),
+					ResultInfo.COUPON_URL);
+		}catch (Exception e){
+			logger.info("注册成功提醒使用优惠券失败,失败openId:" + member.getUserOpenid());
+			e.printStackTrace();
+		}
 		return flag;
 	}
 
@@ -242,4 +284,9 @@ public class MemberServiceImpl implements MemberService {
 		return memberDao.getNowBirthDate();
 	}
 
+	@Override
+	public List<Member> getNoRegister(Member member) {
+		return memberDao.getNoRegister(member);
+	}
+
 }

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

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

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

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

+ 10 - 10
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/impl/AdminOrderDaoImpl.java

@@ -291,16 +291,16 @@ public class AdminOrderDaoImpl implements AdminOrderDao {
 			}
 		}
 
-		//恢复vip买一增一优惠
-		if(ssod.getSalesVipPreferential() == 1){
-			Member member = new Member();
-			member.setUserOpenid(ssod.getSalesOpenid());
-			member.setUserVipPreferential(1);
-			flag = memberService.nowUpdateUserByOpenId(member);
-			if(flag < 1){
-				throw new RuntimeException("修改用户失败买一赠一失败");
-			}
-		}
+//		//恢复vip买一增一优惠
+//		if(ssod.getSalesVipPreferential() == 1){
+//			Member member = new Member();
+//			member.setUserOpenid(ssod.getSalesOpenid());
+//			member.setUserVipPreferential(1);
+//			flag = memberService.nowUpdateUserByOpenId(member);
+//			if(flag < 1){
+//				throw new RuntimeException("修改用户失败买一赠一失败");
+//			}
+//		}
 
 		//恢复积分
 		flag = integralLogService.cancelSurplusIntegral(salesOrderid);

+ 2 - 0
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java

@@ -515,6 +515,7 @@ public class AdminOrderHandlers {
 						sendMessageUtil.orderApplyReturn(
 								"尊敬的用户,您的退货申请已通过",
 								orderId,
+								orderId,
 								itemList.get(0).getItemProductName(),
 								productNum+"件",
 								payMoney,
@@ -532,6 +533,7 @@ public class AdminOrderHandlers {
 						sendMessageUtil.orderApplyReturn(
 								"尊敬的用户,您的退货申请被退回",
 								orderId,
+								orderId,
 								itemList.get(0).getItemProductName(),
 								productNum+"件",
 								payMoney,

+ 0 - 13
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/cart/CartHandlers.java

@@ -851,19 +851,6 @@ public class CartHandlers {
 					}
 				}
 
-				try {
-					//恢复vip买一增一优惠
-					if(orderDto.getSalesVipPreferential() == 1){
-						Member member = new Member();
-						member.setUserOpenid(orderDto.getSalesOpenid());
-						member.setUserVipPreferential(1);
-						Integer count = memberService.nowUpdateUserByOpenId(member);
-					}
-				}catch (Exception e){
-					e.printStackTrace();
-					logger.info("取消订单,恢复买一赠一失败,订单id:"+ orderId);
-				}
-
 				//恢复积分
 				try {
 					Integer flag = integralLogService.cancelSurplusIntegral(orderId);

+ 12 - 5
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/home/HomeHandler.java

@@ -194,12 +194,19 @@ 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());
 		}catch (Exception e){
 			logger.info("获取个人信息失败;openid:"+m.getUserOpenid());

+ 98 - 0
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java

@@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.auth0.jwt.internal.org.apache.commons.lang3.StringEscapeUtils;
 import com.iamberry.app.config.ImberryConfig;
 import com.iamberry.wechat.core.entity.coupon.CouponItem;
+import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
 import com.iamberry.wechat.core.entity.ism.IntegralLog;
 import com.iamberry.wechat.core.entity.member.Member;
@@ -477,6 +478,103 @@ public class MQTask implements InitializingBean {
 		}
 	}
 
+	/**
+	 * 关注一个月后未注册,推送注册信息
+	 * @throws Exception
+	 */
+//	@Scheduled(cron = "0 0/2 * * * ?")//每2分钟执行一次
+	@Scheduled(cron = "0 0 8 * * ?")//每天早上9点触发
+	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(
+							"欢迎关注Aiberle爱贝源公众号。现在注册会员可赠送100积分,享受会员折扣,购买滤芯产品88折,非滤芯产品95折优惠,还赠送单支滤芯买一送一优惠券!",
+							"我的爱贝源-会员中心-成为会员",
+							"400-8006692",
+							"赶紧注册会员吧!更多惊喜等你来!",
+							m.getUserOpenid(),
+							ResultInfo.HUIYUAN_URL);
+				}catch (Exception e){
+					logger.info("关注用户过一个月还未注册,推送注册信息失败,失败openId:" + member.getUserOpenid());
+					e.printStackTrace();
+				}
+			}
+			logger.info("---------------- 关注用户过一个月还未注册,推送注册信息-结束 ---------------");
+		}
+	}
 
+	/**
+	 * 注册会员但未使用优惠券
+	 * 45天提醒一次  85天提醒一次
+	 * @throws Exception
+	 */
+//	@Scheduled(cron = "0 0/2 * * * ?")//每2分钟执行一次
+	@Scheduled(cron = "0 0 8 * * ?")//每天早上9点触发
+	public void mqRecommendUseCoupon() throws Exception {
+		logger.info("---------------- 注册会员未使用优惠券提醒-开始 ---------------");
+
+		//45天未使用优惠券的券
+		Calendar calendar = Calendar.getInstance();
+		calendar.setTime(new Date());
+		calendar.add(Calendar.DATE, -45);//45天前
+		CouponItem couponItem = new CouponItem();
+		couponItem.setCouponId(40001);
+		List<CouponItemDto> couponItemDtoList = couponItemService.getNoUseCouponList(couponItem);
+		if(couponItemDtoList!=null && couponItemDtoList.size()>0){
+			logger.info("---------------- 45天未使用优惠券的券 - 前当前任务处理数量-"+ couponItemDtoList.size() +" ---------------");
+			for (CouponItemDto couponItemDto:couponItemDtoList) {
+				try {
+					sendMessageUtil.recommendUseCoupon(
+							"亲爱的用户,您的单支滤芯买一送一优惠券有效期还有45天",
+							"单支滤芯买一送一优惠券",
+							"45天后失效",
+							"可在“服务中心-会员中心-券包”查看,请尽快使用。",
+							couponItemDto.getUseropenid(),
+							ResultInfo.COUPON_URL);
+				}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(40001);
+		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.recommendUseCoupon(
+							"亲爱的用户,您的单支滤芯买一送一优惠券即将到期",
+							"单支滤芯买一送一优惠券",
+							"5天后失效",
+							"可在“服务中心-会员中心-券包”查看,请尽快使用。",
+							couponItemDto.getUseropenid(),
+							ResultInfo.COUPON_URL);
+				}catch (Exception e){
+					logger.info("注册成功提醒使用优惠券失败,失败openId:" + couponItemDto.getUseropenid()+",优惠券ID:"+couponItemDto.getCouponItemId());
+					e.printStackTrace();
+				}
+			}
+		}
+		logger.info("---------------- 注册会员未使用优惠券提醒-结束 ---------------");
+	}
 }

+ 25 - 9
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -170,8 +170,6 @@ public class OrderHandler {
 
 		//查询活动
 		activityUtil.preferential(cartDtos);
-		//VIP免费赠送一个滤芯
-		boolean hasPreFerential = activityUtil.setVipPreFerential(cartDtos,member.getUserOpenid());
 
 		List<CartDto> tempCarts = new ArrayList<CartDto>();
 		for (CartDto cartDto : cartDtos) {
@@ -238,8 +236,7 @@ public class OrderHandler {
 		dto.setMeonyProportion("0.1");
 		dto.setBalance(member.getUserIncome());
 		dto.setUserIsVip(member.getUserIsVip());
-		dto.setHasPreFerential(hasPreFerential);
-		
+
 		Order order=cartService.getOrderRecentAddress(member.getUserOpenid());
 		
 		if(order!=null){
@@ -351,12 +348,10 @@ public class OrderHandler {
 
 		//添加赠品,秒杀
 		activityUtil.preferential(cartDtos);
-		//VIP免费赠送一个滤芯
-		boolean hasPreFerential = activityUtil.setVipPreFerential(cartDtos,member.getUserOpenid());
-		if(hasPreFerential){
-			order.setSalesVipPreferential(1);//是会员买一赠一的优惠
-		}
 
+		OrderItem paizeItem = new OrderItem();
+		boolean hasPrizeProduct = false;//含有买一赠一的颜色
+		boolean satisfyPrizeProduct = false;//满足买一赠一的方式
 		for (CartDto cartDto : cartDtos) {
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 				cartIds.add(cartDto.getCartId());
@@ -389,8 +384,21 @@ public class OrderHandler {
 				item.setItemProductChildType(cartDto.getProductChildType());
 				item.setItemGiftList(cartDto.getItemGiftList());
 				list.add(item);
+				if(temp.getUseCouponPrizeColorId() != 0 && temp.getUseCouponPrizeColorId()==cartDto.getCartColorId()){
+					BeanUtils.copyProperties(item,paizeItem);
+					paizeItem.setItemProductDiscount(0);
+					paizeItem.setItemProductName("【赠送】"+paizeItem.getItemProductName());
+					hasPrizeProduct = true;
+					if(cartDto.getColorType() == 3){	//该产品是抵扣产品
+						satisfyPrizeProduct = true;
+					}
+				}
 			}
 		}
+		//含有该优惠抵扣产品并且该产品是可抵扣产品
+		if(hasPrizeProduct && satisfyPrizeProduct){
+			list.add(paizeItem);
+		}
 
 		// 准备订单对象
 		order.setSalesOpenid(member.getUserOpenid()); // openid 
@@ -431,11 +439,19 @@ public class OrderHandler {
 				msg.setMessage(ResultInfo.COUPON_CONSUME_NO_ENOUGH); //消费额度不足
 				return msg;
 			}
+
+			if(couponType.getCouponId() == 40001 && !satisfyPrizeProduct && !hasPrizeProduct){
+				msg.setMessage(ResultInfo.COUPON_CONSUME_NO_PRIZE); //消费额度不足
+				return msg;
+			}
+
 			//优惠券的类型,是直接减免额度 还是折扣价 
 			if(couponType.getCouponType()==1){
 				total=total-couponType.getCouponReduce();
 			}else if(couponType.getCouponType()==2){
 				total=total*couponType.getCouponReduce()/100;
+			}else if(couponType.getCouponType()==3){
+				//赠送一个滤芯,上面直接添加到订单项
 			}
 		}
 

+ 117 - 1
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java

@@ -4,12 +4,14 @@ import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.io.StringReader;
 import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.iamberry.wechat.core.entity.ResultMsg;
+import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
 import com.iamberry.wechat.core.entity.coupon.CouponType;
 import com.iamberry.wechat.core.entity.eo.Promotions;
 import com.iamberry.wechat.core.entity.ism.IntegralConfig;
@@ -184,13 +186,15 @@ public class ResponseWechatPayHandler {
 				}
 				//推送消息到微信
 				{
+					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 					DecimalFormat df=new DecimalFormat("0.00");
 					String payMoney = df.format((float)or.getSalesYetAmount()/100) + "元";
 					sendMessageUtil.probationPaySuccess(
 							ResultInfo.PAYSUCCESS,
-							orderItemList.get(0).getItemProductName()+"...",
 							or.getSalesOrderid(),
 							payMoney,
+							"Aiberle微信商城",
+							sdf.format(new Date()),
 							ResultInfo.sendRemark1,
 							order.getSalesOpenid(),
 							ResultInfo.ORDER_DETAIL+order.getSalesOrderid());
@@ -371,6 +375,22 @@ public class ResponseWechatPayHandler {
 			ratFWLogger.info("error+订单获取积分失败,订单编号:"+or.getSalesOrderid());
 			e.printStackTrace();
 		}
+
+		//推送消息到微信
+		{
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+			DecimalFormat df=new DecimalFormat("0.00");
+			String payMoney = df.format((float)or.getSalesYetAmount()/100) + "元";
+			sendMessageUtil.probationPaySuccess(
+					ResultInfo.PAYSUCCESS,
+					or.getSalesOrderid(),
+					payMoney,
+					"Aiberle微信商城",
+					sdf.format(new Date()),
+					ResultInfo.sendRemark1,
+					order.getSalesOpenid(),
+					ResultInfo.ORDER_DETAIL+order.getSalesOrderid());
+		}
 		return msg;
 	}
 
@@ -453,4 +473,100 @@ public class ResponseWechatPayHandler {
 		}
 		ratFWLogger.info("---------------- 生日提醒-提醒用户-结束 ---------------");
 	}
+
+	@ResponseBody
+	@RequestMapping(value = "/register_member")
+	public void registerMember() throws Exception {
+		ratFWLogger.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){
+			ratFWLogger.info("---------------- 当前任务处理数量-"+ memberList.size() +" ---------------");
+			for (Member m:memberList) {
+				try {
+					sendMessageUtil.registerMember(
+							"欢迎关注Aiberle爱贝源公众号。现在注册会员可赠送100积分,享受会员折扣,购买滤芯产品88折,非滤芯产品95折优惠,还赠送单支滤芯买一送一优惠券!",
+							"我的爱贝源-会员中心-成为会员",
+							"400-8006692",
+							"赶紧注册会员吧!更多惊喜等你来!",
+							m.getUserOpenid(),
+							ResultInfo.HUIYUAN_URL);
+				}catch (Exception e){
+					ratFWLogger.info("推送今日生日的用户消息失败,失败openId:" + member.getUserOpenid());
+					e.printStackTrace();
+				}
+			}
+			ratFWLogger.info("---------------- 关注用户过一个月还未注册,推送注册信息-结束 ---------------");
+		}
+	}
+
+	@ResponseBody
+	@RequestMapping(value = "/mq_recommend_use_coupon")
+	public void mqRecommendUseCoupon() throws Exception {
+		ratFWLogger.info("---------------- 注册会员未使用优惠券提醒-开始 ---------------");
+
+		//45天未使用优惠券的券
+		Calendar calendar = Calendar.getInstance();
+		calendar.setTime(new Date());
+		calendar.add(Calendar.DATE, -45);//45天前
+		CouponItem couponItem = new CouponItem();
+		couponItem.setCouponId(40001);
+		couponItem.setCouponReceiveDate(calendar.getTime());
+		List<CouponItemDto> couponItemDtoList = couponItemService.getNoUseCouponList(couponItem);
+		if(couponItemDtoList!=null && couponItemDtoList.size()>0){
+			ratFWLogger.info("---------------- 45天未使用优惠券的券 - 前当前任务处理数量-"+ couponItemDtoList.size() +" ---------------");
+			for (CouponItemDto couponItemDto:couponItemDtoList) {
+				try {
+					sendMessageUtil.recommendUseCoupon(
+							"亲爱的用户,您的单支滤芯买一送一优惠券有效期还有45天",
+							"单支滤芯买一送一优惠券",
+							"45天后失效",
+							"可在“服务中心-会员中心-券包”查看,请尽快使用。",
+							couponItemDto.getUseropenid(),
+							ResultInfo.COUPON_URL);
+				}catch (Exception e){
+					ratFWLogger.info("注册成功提醒使用优惠券失败,失败openId:" + couponItemDto.getUseropenid()+",优惠券ID:"+couponItemDto.getCouponItemId());
+					e.printStackTrace();
+				}
+			}
+			ratFWLogger.info("---------------- 注册会员未使用优惠券提醒-结束 ---------------");
+		}
+
+		//85天未使用优惠券的券
+		Calendar nowcalendar = Calendar.getInstance();
+		nowcalendar.setTime(new Date());
+		nowcalendar.add(Calendar.DATE, -85);//45天前
+		CouponItem nowcouponItem = new CouponItem();
+		nowcouponItem.setCouponId(40001);
+		nowcouponItem.setCouponReceiveDate(nowcalendar.getTime());
+		List<CouponItemDto> nowcouponItemDtoList = couponItemService.getNoUseCouponList(nowcouponItem);
+		if(nowcouponItemDtoList!=null && nowcouponItemDtoList.size()>0){
+			ratFWLogger.info("---------------- 85天未使用优惠券的券 - 前当前任务处理数量-"+ nowcouponItemDtoList.size() +" ---------------");
+			for (CouponItemDto couponItemDto:nowcouponItemDtoList) {
+				try {
+					sendMessageUtil.recommendUseCoupon(
+							"亲爱的用户,您的单支滤芯买一送一优惠券即将到期",
+							"单支滤芯买一送一优惠券",
+							"5天后失效",
+							"可在“服务中心-会员中心-券包”查看,请尽快使用。",
+							couponItemDto.getUseropenid(),
+							ResultInfo.COUPON_URL);
+				}catch (Exception e){
+					ratFWLogger.info("注册成功提醒使用优惠券失败,失败openId:" + couponItemDto.getUseropenid()+",优惠券ID:"+couponItemDto.getCouponItemId());
+					e.printStackTrace();
+				}
+			}
+		}
+		ratFWLogger.info("---------------- 注册会员未使用优惠券提醒-结束 ---------------");
+	}
+
+
+
+
 }

+ 5 - 10
iamberry-wechat-web/src/main/resources/ResultInfo.properties

@@ -71,22 +71,17 @@ wx_push_url=http://s.iamberry.com/aiberle/wechat/order-details.html?orderId=
 PAGE_SHIPMENT = http://h5.iamberry.com/iamberry/pay/goOrderInfo?orderId=
 TUIHUI_SHIPMENT = http://h5.iamberry.com/iamberry/wechat/agentWechat/reback
 ORDER_GUOQI = http://h5.iamberry.com/iamberry/pay/goOrderList
-########################test.iamberry.com################
-#rewards_template_id=ji1cu0TBpo8inMB2lVv3IdyNoFo5aBfSKDiGAuX28v8
-#Income_template_id=3oJmW0XWy47RSdLwgjj1Iy2hs8JIivq-WWVPsWPAMMI
-#Shipment_template_id=744KA1PdB1I5PzRcjtxqbEz5t2bp8vdsi4I2ytW1rbE
-#Order_template_id=K58fJRkIy0ELcbKvrpxwt4K_zXUbprYKM4fWVgHwjro
-########################################################
 rewards_template_id=d9PDeKqQh19QIbQbSJ2iPftW3yzCIrWRbP0wncjI92w
 Income_template_id=Q0QpJWNcKODceBtxrYUUVRZejljaL0A31Bql3SlrdYI
 Shipment_template_id=tSUvS9TdxgTxqlDp1dK-4clzDKPCbGUIdQDCCSUt7sE
 Order_template_id=sWKXh5WgBAGM1r8pwBs7Jjr1PP4Q41FsVUj4TT306u0
-probation_pay_success=eYitquwqnl4WlmBzDAJPztiCvavhmXNtt20gBHR1q7Y
+probation_pay_success=0aHj4W2dcDtR-da4I6HKCrIHBAatKvZUtElE8O7paBk
 order_apply_refund=PbTdaDa4payS_Iq6PE7xQRSaG1S21HW0lncnU4dfbYI
-order_apply_return=pnxucPuUygE6epyyC3oPGhjxm2o7mK_B2vLzYxIYXRo
+order_apply_return=yZiwDVn9EiL5ZEj4E8CBMF7iiSIgYBsi1K39RZyT7_g
 order_apply_barter=qmj2m-BVyZtEKsKCSBbPlJVSykOr2YScr9pRkPA909w
 order_send_success=Nd6MapQ80Ye4PsQOwJdYljxyPGz6N5gfmGip_KztnhY
 order_refund_msg=KNMyO9uDRrXlhJtdQuqCwH1T_AoMFYBCQUhQrlR1EdQ
 service_push=HWm_f0WURL-ff76jXEM-PrVXsjnuxde8a_dyCnvtfMM
-
-member_activation=dLotcC9KsMd-47gRsLsJjAY9uXDpGTpKd7BRtdKqsdg
+member_activation=dLotcC9KsMd-47gRsLsJjAY9uXDpGTpKd7BRtdKqsdg
+register_member=gWHXkecRoD7-H_JjS9XU3BqmliTyIHul3W5Y3Y5DXT8
+recommend_use_coupon=ocMywc3lMxCJv12W1HIKQFS06nTbiapyd18v1iI-mTg