Procházet zdrojové kódy

爱贝源bug修改

wangxiaoming před 7 roky
rodič
revize
06be6c3a93

+ 1 - 1
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/order/OrderItem.java

@@ -49,7 +49,7 @@ public class OrderItem implements Serializable {
 	private String itemProductColor;		//产品颜色
 	private Integer itemProductChildType;	//产品子类型
 	private Integer itemIsSource;			//产品来源
-	private Integer itemGiftSource;			//产品id,赠品才有,标识是哪个产品的赠品
+	private Integer itemGiftSource;			//产品颜色id,赠品才有,标识是哪个产品的赠品
 
 	private List<SalesUserGift> salesUserGiftList; //赠品集合
 

+ 13 - 1
iamberry-common-core/src/main/java/com/iamberry/wechat/core/entity/product/SalesUserGift.java

@@ -12,16 +12,20 @@ public class SalesUserGift implements java.io.Serializable {
     private Integer userId;             //id
     private Integer userProductId;      //产品ID
     private Integer userColorId;        //商品颜色id
+
     private Integer userGiftId;         //赠送产品id
     private Integer userGiftColor;      //产品颜色id
+
     private Integer userGiftCount;      //赠送产品数量
     private Integer userStatus;         //状态    1:使用,2:停用
     private Date userCreateTime;        //创建时间
     private String giftName;            //赠品名称
     private String giftColorName;       //赠品颜色名称
-    private Integer giftChildType;      //赠品类型
+    private Integer giftChildType;      //赠品类型
     private String giftProductPic;      //赠品图文
 
+    private Integer giftType;      //赠品类型
+
     public String getGiftName() {
         return giftName;
     }
@@ -117,4 +121,12 @@ public class SalesUserGift implements java.io.Serializable {
     public void setUserCreateTime(Date userCreateTime) {
         this.userCreateTime = userCreateTime;
     }
+
+    public Integer getGiftType() {
+        return giftType;
+    }
+
+    public void setGiftType(Integer giftType) {
+        this.giftType = giftType;
+    }
 }

+ 25 - 1
iamberry-common-core/src/main/java/com/iamberry/wechat/tools/SendMessageUtil.java

@@ -77,6 +77,9 @@ public class SendMessageUtil {
 			case 9:  //9、发货后 提醒
 				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.order_send_success, date, url);
 				break;
+			case 10:  //10、退款申请通知
+				WeixinUtil.sendTemplateMessage(NameUtils.getConfig("appId"), NameUtils.getConfig("appSecret"), openId, ResultInfo.order_refund_msg, date, url);
+				break;
 			default:
 				break;
 			}
@@ -117,17 +120,38 @@ public class SendMessageUtil {
 	 * @param openId
 	 * @param url
 	 */
-	public void orderApplyRefund(String first,String keyword1,String keyword2,String keyword3,String remark,String openId,String url){
+	public void orderApplyRefund(String first,String keyword1,String keyword2,String keyword3,String keyword4,String remark,String openId,String url){
 		String temp = ResultInfo.APPLYREFUND;
 		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,6);
 	}
 
+	/**
+	 * 退款申请通知
+	 * @param first
+	 * @param keyword1
+	 * @param keyword2
+	 * @param keyword3
+	 * @param remark
+	 * @param openId
+	 * @param url
+	 */
+	public void orderRefundMsg(String first,String keyword1,String keyword2,String keyword3,String remark,String openId,String url){
+		String temp = ResultInfo.ORDERREFUNDMSG;
+		temp = temp.replaceFirst("firstValueIamberry", first)
+				.replaceFirst("keyword1Value",keyword1)
+				.replaceFirst("keyword2Value",keyword2)
+				.replaceFirst("keyword3Value",keyword3)
+				.replaceFirst("colorValue","#1C86EE")
+				.replaceFirst("remarkValue",remark);
+		sendTemplateMessageToOpenid(temp, openId, url,10);
+	}
 
 	/**
 	 * 退货

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

@@ -45,7 +45,7 @@ public class NameUtils {
 	public static final String ORDER_ID = "1310";
 	/** path root */
 	public static final String PATH_ROOT = "https://h5.iamberry.com";
-//	public static final String PATH_ROOT = "http://h5.iamberry.com";
+	public static final String PATH_ROOT_LCOAL = "http://h5.iamberry.com";
 	/** 微信端会员 */
 	public static final String WECHAT_MEMBER_ROOT = "/member"; // 微信端会员根目录
 	public static final String WECHAT_MEMBER_INDEX = "/index"; // 会员首页

+ 14 - 6
iamberry-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -55,13 +55,14 @@ public class ResultInfo {
 	public  static String videoMessageResponseText = "";									// 音频信息
 	public  static String tryCatchDefaultResponseText = "";									// 异常时回复信息
 	public static String rebateOrderText = "";												//定时任务返利模板
+
+	public  static String barCodePrefix="MACHINE_QR_CODE";
 	
 	public static String QRCODE_IMAGE = "/common/qrcode_images";		//下载二维码图片保存路径
 	
 	public static String DRP_INDEX_PAGE = "http://h5.iamberry.com/iamberry/wechat/drp/indexPage";
 	
-	
-	//测试环境
+		//测试环境
 		// 商城首页,,,
 		public static String INDEX_PAGE = "http://h5.iamberry.com/iamberry/wechat/index";
 		// 订单发货的界面
@@ -82,6 +83,8 @@ public class ResultInfo {
 		public static String order_apply_barter= "";	//用户 申请换货 提醒
 		public static String order_send_success= "";	//发货后 提醒
 
+		public static String order_refund_msg= "";	//退款申请通知
+
 	// 返现到账通知消息模版
 	public static String REWARDSREMINDTEMP =  "{'first':{'color':'#173177','value':'firstValueIamberry'}, order:{'color':'#173177','value':'orderValueIamberry'}, 'money':{'color':'#173177', 'value':'moneyValueIamberry'}, 'remark':{'color':'#173177','value':'remarkValueIamberry'}}";
 	
@@ -101,7 +104,7 @@ public class ResultInfo {
 	//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'}}";
 
 	/**  用户申请退款提醒 */
-	public static String APPLYREFUND= "{'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 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'}}";
@@ -113,8 +116,7 @@ public class ResultInfo {
 	public static String SENDSUCCESS= "{'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 REFUNDAPPLICATIONNOTICE= "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'orderProductPrice':{'color':'#173177','value':'keyword1Value'}, 'orderProductName':{'color':'#173177', 'value':'keyword2Value'}, 'orderName':{'color':'#173177', 'value':'keyword3Value'},'remark':{'color':'colorValue','value':'remarkValue'}}";
-
+	public static String ORDERREFUNDMSG= "{'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 final String REWARDSWILLMESSAGE = "尊敬的客户您好~您有新的返现即将入账~";
@@ -129,13 +131,19 @@ public class ResultInfo {
 	public static final String PAYSUCCESS = "尊敬的用户,您好,您已成功支付";
 	public static final String PAYSUCCESSFOOT = "感谢您的支持,祝您使用愉快!";
 	public static final String sendRemark1 = "如有问题请致电400-800-6692或直接在微信留言,Aiberle爱贝源将第一时间为您服务!(点击查看订单详情)";
+	public static final String refundRejectRemark = "请确认您的退款申请信息填写无误。";
+	public static final String refundAgreeRemark = "退款金额将在三个工作日内退款到您的支付账户。";
+
 	public static final String returnRemark =  "点击查看退款退货详情。如有问题请致电400-800-6692或直接在微信留言,Aiberle爱贝源将第一时间为您服务!";
+	public static final String returnRejectRemark =  "请确认您的退货申请信息填写无误。如有问题请致电400-800-6692或直接在微信留言,Aiberle爱贝源将第一时间为您服务!";
+	public static final String returnAgreeRemark =  "请您尽快联系客服人员处理,根据客服人员指引将机器寄回。如有问题请致电400-800-6692或直接在微信留言,Aiberle爱贝源将第一时间为您服务!";
+
 	public static final String exchangeRemark =  "请确认您的换货申请信息填写无误!如有问题请致电400-800-6692或直接在微信留言,Aiberle爱贝源将第一时间为您服务!";
 
 	/**
 	 * 订单详情连接
 	 */
-	public static String ORDER_DETAIL = "https://s.iamberry.com/aiberle/wechat/order-details.html?orderId=";
+	public static String ORDER_DETAIL = "";
 
 	// 凡是下线关注时的回复语
 	public static String FOLLOW_REPLY_MESSAGE_TEXT = "恭喜您,已获得购买冲奶机优惠40元资格!";

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

@@ -70,6 +70,9 @@ public class loadResultUtil {
 			ResultInfo.rebateOrderText=prop.getProperty("rebateOrderText");
 			ResultInfo.FOLLOW_REPLY_MESSAGE_TEXT=prop.getProperty("follow_reply_message_text");
 			ResultInfo.FOLLOW_REPLY_MESSAGE_IS_IMAGE_TEXT="true".equals(prop.getProperty("follow_reply_message_is_image_text"))?true:false;
+
+			/*微信推送*/
+			ResultInfo.ORDER_DETAIL = prop.getProperty("wx_push_url");
 			
 			//消息的回调连接
 			ResultInfo.INDEX_PAGE = prop.getProperty("INDEX_PAGE"); 	// 商城首页,,,
@@ -88,6 +91,8 @@ public class loadResultUtil {
 			ResultInfo.order_apply_barter = prop.getProperty("order_apply_barter");			//用户 申请换货 提醒
 			ResultInfo.order_send_success = prop.getProperty("order_send_success");			//发货后 提醒
 
+			ResultInfo.order_refund_msg = prop.getProperty("order_refund_msg");			//退款申请通知
+
 		} catch (IOException e) {
 			ResultInfo.SUCCESSINFO="操作成功!";
 			ResultInfo.ERRORINFO="操作失败!";
@@ -143,7 +148,9 @@ public class loadResultUtil {
 			ResultInfo.FOLLOW_REPLY_MESSAGE_TEXT="恭喜您,已获得购买冲奶机优惠100元资格!";
 			ResultInfo.FOLLOW_REPLY_MESSAGE_IS_IMAGE_TEXT=false;
 			
-			
+			/*微信推送*/
+			ResultInfo.ORDER_DETAIL = "http://s.iamberry.com/aiberle/wechat/order-details.html?orderId=";
+
 			ResultInfo.INDEX_PAGE = "http://h5.iamberry.com/iamberry/wechat/index"; 	// 商城首页,,,
 			ResultInfo.PAGE_SHIPMENT = "http://h5.iamberry.com/iamberry/pay/goOrderInfo?orderId="; // 订单发货的界面
 			ResultInfo.TUIHUI_SHIPMENT = "http://h5.iamberry.com/iamberry/wechat/agentWechat/reback"; //收益退回的界面

+ 4 - 2
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/cart/CartServiceImpl.java

@@ -372,6 +372,7 @@ public class CartServiceImpl implements CartService {
 									payMoney,
 									itemList.get(0).getItemProductName(),
 									order.getSalesOrderid(),
+									remark,	//退款备注
 									ResultInfo.sendRemark1,
 									order2.getSalesOpenid(),
 									ResultInfo.ORDER_DETAIL+order.getSalesOrderid()
@@ -420,8 +421,9 @@ public class CartServiceImpl implements CartService {
 							sendMessageUtil.orderApplyReturn(
 									"尊敬的用户,已收到您的【退货申请】",
 									orderId,
-									payMoney,
-									productNum+"件",order2.getSalesReturnDes(),
+									itemList.get(0).getItemProductName(),
+									productNum+"件",
+									order2.getSalesReturnDes(),
 									ResultInfo.returnRemark,
 									order2.getSalesOpenid(),
 									ResultInfo.ORDER_DETAIL+orderId

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

@@ -60,6 +60,7 @@ PUBLIC
 			pi.product_name giftName,
 			pc.color_name giftColorName,
 			pi.product_child_type giftChildType,
+			pi.product_type giftType,
 			pc.color_product_pic giftProductPic
 		FROM
 			tb_iamberry_sales_user_gift ug
@@ -213,7 +214,8 @@ PUBLIC
 			I.ITEM_PRODUCT_DISCOUNT itemProductDiscount, I.ITEM_PRODUCT_PRICE itemProductPrice,
 			I.ITEM_PRODUCT_PIC itemProductPic, I.ITEM_NUM itemNum, I.ITEM_TOTAL itemTotal,
 			P.PRODUCT_DISCOUNT productDiscount,P. PRODUCT_PRICE productPrice,
-			P.PRODUCT_STATUS productStatus,I.ITEM_PRODUCT_ID itemProductId,I.item_product_color itemProductColor,I.item_gift_source itemGiftSource
+			P.PRODUCT_STATUS productStatus,I.ITEM_PRODUCT_ID itemProductId,	I.item_color_id itemColorId,
+			I.item_product_color itemProductColor,I.item_gift_source itemGiftSource
 		FROM 
 			TB_IAMBERRY_SHOP_ORDER_ITEM I
 		LEFT JOIN TB_IAMBERRY_PRODUCT_INFO P ON I.ITEM_PRODUCT_ID = P.PRODUCT_ID

+ 29 - 4
iamberry-wechat-service/src/main/java/com/iamberry/wechat/service/wechat/WeChatServiceImpl.java

@@ -227,17 +227,28 @@ public class WeChatServiceImpl implements WeChatService {
 			} else if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_EVENT)) {// 事件推送
 				
 				String eventType = requestMap.get("Event");// 事件类型
+				String eventKey = requestMap.get("EventKey");
 				String url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=";
 				if(eventType.equals("SCAN")){ // 已关注用户扫描二维码事件
-					boolean flag = subUserScannQrcodeEvent(requestMap, fromUserName);
-					if (flag) {
-						Status status = getCouponImgText(requestMap);
+
+					//扫描机器二维码返回跳转到完善信息页面
+					if (eventKey.indexOf(ResultInfo.barCodePrefix) != -1) {
+						Status status = scannQrcodeGiveGift(requestMap, fromUserName);
 						if (status.isFlag()) {
 							return status.getCountext();
 						}
 						respContent = status.getCountext();
 					} else {
-						respContent = ResultInfo.subDefaultResponseText;
+						boolean flag = subUserScannQrcodeEvent(requestMap, fromUserName);
+						if (flag) {
+							Status status = getCouponImgText(requestMap);
+							if (status.isFlag()) {
+								return status.getCountext();
+							}
+							respContent = status.getCountext();
+						} else {
+							respContent = ResultInfo.subDefaultResponseText;
+						}
 					}
 				} else if (eventType.equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)) {// 订阅
 					
@@ -291,6 +302,20 @@ public class WeChatServiceImpl implements WeChatService {
 //System.out.println("start-回复信息:" + respMessage);
 		return respMessage;
 	}
+
+	/**
+	 * 扫码进入赠送礼品信息页面(已关注)
+	 * @param requestMap
+	 */
+	public Status scannQrcodeGiveGift(Map<String, String> requestMap, String fromUserName) {
+		Status status = new Status();
+		String senceid = requestMap.get("EventKey");//场景值
+		senceid = senceid.replaceAll(ResultInfo.barCodePrefix,"");//替换标识前的字符串
+		String str = "【Aiberle爱贝源】经检测,您的机器为Aiberle爱贝源正品,请放心使用。";//bindingMachine(senceid, fromUserName);
+		status.setCountext(str);
+		status.setFlag(false);
+		return status;
+	}
 	
 	/**
 	 * 已关注用户扫描二维码事件

+ 1 - 1
iamberry-wechat-web/src/main/java/com/iamberry/wechat/filters/AdminLoginFilter.java

@@ -62,7 +62,7 @@ public class AdminLoginFilter implements Filter {
 		// 防止盗链:一旦请求后台的数据,一定要经过判断,就算只是基本防范
 		String referer = req.getHeader("referer");
 		if (StringUtils.isEmpty(referer) || 
-				(!(referer.startsWith("http://localhost") || referer.startsWith(NameUtils.IMAGE_BASE_URL)))) {
+				(!(referer.startsWith("http://localhost") || referer.startsWith(NameUtils.IMAGE_BASE_URL) || referer.startsWith(NameUtils.PATH_ROOT_LCOAL)  ))) {
 			setRequestDispatcherInfo(req, resp);return;
 		}
 

+ 101 - 7
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java

@@ -2,6 +2,7 @@ package com.iamberry.wechat.handles.admin;
 
 import java.io.IOException;
 import java.net.URLDecoder;
+import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
@@ -330,6 +331,9 @@ public class AdminOrderHandlers {
 		order.setSalesPostNum(actionDto.getPostNum());
 		// 判断当前的订单,是否支持希望进行的操作
 		Order currentOrder = adminOrderService.selectOrderStatusByOrderId(orderId);
+		//获取当前订单订单项
+		List<OrderItem> itemList = adminOrderService.getShopOrderItemByOrderId(currentOrder.getSalesOrderid());
+
 		Integer orderStatus = currentOrder.getSalesStatus();
 		order.setOldStatus(orderStatus);
 		if (!orderUtil.orderStatusIntToOrderStatusString(orderStatus).equals(actionDto.getOrderStatus())) {
@@ -420,6 +424,23 @@ public class AdminOrderHandlers {
 					order.setSalesStatus(2);
 					if (adminOrderService.updateOrderStatusByOrderId(order)) {// 驳回退款
 						mv.addObject("msgObj", new MessageDto(true, "驳回退款成功!", "驳回退款成功,订单进入待发货状态!"));
+
+						DecimalFormat df=new DecimalFormat("0.00");
+						String payMoney = df.format((float)currentOrder.getSalesYetAmount()/100) + "元";
+						try {
+							sendMessageUtil.orderRefundMsg(
+									"尊敬的用户,您的退款申请被退回",
+									payMoney,
+									itemList.get(0).getItemProductName(),
+									order.getSalesOrderid(),
+									ResultInfo.refundRejectRemark + ResultInfo.sendRemark1,
+									currentOrder.getSalesOpenid(),
+									ResultInfo.ORDER_DETAIL+order.getSalesOrderid()
+							);
+						} catch (Exception e) {
+							logger.info("订单号:"+ orderId +"的订单驳回退款,发送微信消息失败!");
+						}
+
 						return mv;
 					} else {
 						mv.addObject("msgObj", new MessageDto(false, "对不起,驳回退款订单失败", "对不起,对不起,驳回退款订单失败,请稍后重试!"));
@@ -440,6 +461,23 @@ public class AdminOrderHandlers {
 						rabackInfo.setStatus(3);
 						rebackServices.updateStatus(rabackInfo);
 						mv.addObject("msgObj", new MessageDto(true, "订单退款成功", "恭喜您!订单退款成功,订单将封存!"));
+
+						DecimalFormat df=new DecimalFormat("0.00");
+						String payMoney = df.format((float)currentOrder.getSalesYetAmount()/100) + "元";
+						try {
+							sendMessageUtil.orderRefundMsg(
+									"尊敬的用户,您的退款申请已通过",
+									payMoney,
+									itemList.get(0).getItemProductName(),
+									order.getSalesOrderid(),
+									ResultInfo.refundAgreeRemark + ResultInfo.sendRemark1,
+									currentOrder.getSalesOpenid(),
+									ResultInfo.ORDER_DETAIL+order.getSalesOrderid()
+							);
+						} catch (Exception e) {
+							logger.info("订单号:"+ orderId +"的订单同意退款,发送微信消息失败!");
+						}
+
 						return mv;
 					} else {
 						mv.addObject("msgObj", new MessageDto(false, "对不起,操作有误", "对不起,您刚才的操作流程有误,请按照系统流程操作!"));
@@ -473,8 +511,38 @@ public class AdminOrderHandlers {
 				if (adminOrderService.updateOrderStatusByOrderId(order)) {
 					if(orderUtil.orderStatusIntToOrderStatusString(7).equals(actionDto.getToOrderStatus())){
 						mv.addObject("msgObj", new MessageDto(true, "订单申请退货成功", "恭喜您!同意订单:" + orderId + "退货,等待收到货物后确认退货!"));
+
+						int productNum = 0;
+						for (OrderItem item : itemList) {
+							productNum += item.getItemNum();
+						}
+						sendMessageUtil.orderApplyReturn(
+								"尊敬的用户,您的退货申请已通过",
+								orderId,
+								itemList.get(0).getItemProductName(),
+								productNum+"件",
+								currentOrder.getSalesReturnDes(),
+								ResultInfo.returnAgreeRemark,
+								currentOrder.getSalesOpenid(),
+								ResultInfo.ORDER_DETAIL+orderId
+						);
 					}else{
 						mv.addObject("msgObj", new MessageDto(true, "成功驳回订单退货", "订单:" + orderId + "退货被驳回,状态返回已发货!"));
+
+						int productNum = 0;
+						for (OrderItem item : itemList) {
+							productNum += item.getItemNum();
+						}
+						sendMessageUtil.orderApplyReturn(
+								"尊敬的用户,您的退货申请被退回",
+								orderId,
+								itemList.get(0).getItemProductName(),
+								productNum+"件",
+								currentOrder.getSalesReturnDes(),
+								ResultInfo.returnRejectRemark,
+								currentOrder.getSalesOpenid(),
+								ResultInfo.ORDER_DETAIL+orderId
+						);
 					}
 					return mv;
 				} else {
@@ -543,13 +611,13 @@ public class AdminOrderHandlers {
 								break;
 						}
 						//发送消息
-						String temp = ResultInfo.INCOMEREMINDTEMP;
-						temp = temp.replaceFirst("firstValueIamberry", ResultInfo.NEXTUSERTUIHUOMESSAGE)
-								.replaceFirst("accountValueIamberry",URLDecoder.decode( member.getUserNickname(), "UTF-8"))
-								.replaceFirst("timeValueIamberry", DateTimeUtil.format(new Date(),NameUtils.DATE_TIME_FORMAT))
-								.replaceFirst("typeValueIamberry", "用户退货")
-								.replaceFirst("remarkValueIamberry", ResultInfo.INTOSHOP);
-						sendMessageUtil.sendTemplateMessageToOpenid(temp, toopenid, ResultInfo.TUIHUI_SHIPMENT,3);	
+//						String temp = ResultInfo.INCOMEREMINDTEMP;
+//						temp = temp.replaceFirst("firstValueIamberry", ResultInfo.NEXTUSERTUIHUOMESSAGE)
+//								.replaceFirst("accountValueIamberry",URLDecoder.decode( member.getUserNickname(), "UTF-8"))
+//								.replaceFirst("timeValueIamberry", DateTimeUtil.format(new Date(),NameUtils.DATE_TIME_FORMAT))
+//								.replaceFirst("typeValueIamberry", "用户退货")
+//								.replaceFirst("remarkValueIamberry", ResultInfo.INTOSHOP);
+//						sendMessageUtil.sendTemplateMessageToOpenid(temp, toopenid, ResultInfo.TUIHUI_SHIPMENT,3);
 					}
 					
 					return mv;
@@ -624,8 +692,34 @@ public class AdminOrderHandlers {
 				if (adminOrderService.updateOrderStatusByOrderId(order)) {
 					if(orderUtil.orderStatusIntToOrderStatusString(9).equals(actionDto.getToOrderStatus())){
 						mv.addObject("msgObj", new MessageDto(true, "同意换货成功", "恭喜您!同意订单:" + orderId + "换货,请收货后录入物流信息并同意换货!"));
+						try {
+							sendMessageUtil.orderApplyBarter(
+									"尊敬的用户,您的退货申请已通过。",
+									orderId,
+									itemList.get(0).getItemProductName(),
+									ResultInfo.exchangeRemark,
+									currentOrder.getSalesOpenid(),
+									ResultInfo.ORDER_DETAIL+orderId
+							);
+						} catch (Exception e) {
+							logger.info("订单号:"+ orderId +"的订单申请换货,发送微信消息失败!");
+						}
+
 					}else{
 						mv.addObject("msgObj", new MessageDto(true, "驳回换货成功", "您已驳回订单:" + orderId + "换货,订单状态改为已发货!"));
+						try {
+							sendMessageUtil.orderApplyBarter(
+									"尊敬的用户,您的换货申请被退回。",
+									orderId,
+									itemList.get(0).getItemProductName(),
+									ResultInfo.exchangeRemark,
+									currentOrder.getSalesOpenid(),
+									ResultInfo.ORDER_DETAIL+orderId
+							);
+						} catch (Exception e) {
+							logger.info("订单号:"+ orderId +"的订单申请换货,发送微信消息失败!");
+						}
+
 					}
 					return mv;
 				} else {

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

@@ -496,7 +496,7 @@ public class CartHandlers {
 			//将所有赠品筛选出来
 			while (it.hasNext()) {
 				ShopOrderItemDto item = (ShopOrderItemDto)it.next();
-				if (item.getItemProductDiscount() == 0) {
+				if (item.getItemGiftSource() != null && !"".equals(item.getItemGiftSource())) {
 					SalesUserGift gift = new SalesUserGift();
 					gift.setGiftName(item.getItemProductName());
 					gift.setGiftColorName(item.getItemProductColor());

+ 21 - 16
iamberry-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -254,11 +254,11 @@ public class OrderHandler {
 			return msg;
 		}
 		if (temp.getOrderUserRemark() != null && !temp.getOrderUserRemark().isEmpty()) {
-			Pattern pattern = Pattern.compile("^[\u4e00-\u9fa5_a-zA-Z0-9]+$");
-			if (!pattern.matcher(temp.getOrderUserRemark()).find()) {
-				msg.setMessage(ResultInfo.paramFormatError);
-				return msg;
-			}
+//			Pattern pattern = Pattern.compile("^[\u4e00-\u9fa5_a-zA-Z0-9]+$");
+//			if (!pattern.matcher(temp.getOrderUserRemark()).find()) {
+//				msg.setMessage(ResultInfo.paramFormatError);
+//				return msg;
+//			}
 			if (!(temp.getOrderUserRemark().length() >= 1 && temp.getOrderUserRemark().length() <= 100)) {
 				msg.setMessage(ResultInfo.paramFormatError);
 				return msg;
@@ -294,13 +294,17 @@ public class OrderHandler {
 		
 		for (CartDto cartDto : cartDtos) {
 			//判断购买产品是产品还是配件
-			switch (cartDto.getCartIsSource()) {
-				case 1:
-					cartDto = cartService.selectCartProductColor(cartDto);
-					break;
-				case 2:
-					cartDto = cartService.getCartProductFitting(cartDto);
-			}
+//			switch (cartDto.getCartIsSource()) {
+//				case 1:
+//					cartDto = cartService.selectCartProductColor(cartDto);
+//					break;
+//				case 2:
+//					cartDto = cartService.getCartProductFitting(cartDto);
+//			}
+
+			//产品和配件都是从产品表出,配件和产品的区别在于类型
+			cartDto = cartService.selectCartProductColor(cartDto);
+
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 				cartIds.add(cartDto.getCartId());
 				Integer subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计
@@ -327,20 +331,21 @@ public class OrderHandler {
 			if (giftList != null && giftList.size() > 0) {
 				for (SalesUserGift gift : giftList) {
 					OrderItem item = new OrderItem();
-					item.setItemNum(gift.getUserGiftCount());
+					item.setItemNum(gift.getUserGiftCount() * cartDto.getCartNum());
 					item.setItemProductDiscount(0);
-					item.setItemProductId(gift.getUserProductId());
+					item.setItemProductId(gift.getUserGiftId());
 					item.setItemProductName(gift.getGiftName());
 					item.setItemProductPic(gift.getGiftProductPic());
 					item.setItemSalesOrderid(order.getSalesOrderid());
 					item.setItemTotal(0);
 					item.setItemProductPrice(0);
-					item.setItemColorId(gift.getUserColorId());
+					item.setItemColorId(gift.getUserGiftColor());
 					item.setItemProductColor(gift.getGiftColorName());
 					item.setItemProductChildType(gift.getGiftChildType());
 					item.setItemIsSource(1);
+					item.setItemProductType(gift.getGiftType());
+					item.setItemProductChildType(gift.getGiftChildType());
 					item.setItemGiftSource(cartDto.getCartColorId());
-					item.setItemProductType(cartDto.getProductType());
 					item.setItemProductChildType(cartDto.getProductChildType());
 					list.add(item);
 				}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 5 - 1
iamberry-wechat-web/src/main/resources/ResultInfo.properties


+ 6 - 0
iamberry-wechat-web/src/main/resources/jdbc.properties

@@ -17,6 +17,12 @@ jdbc.initialPoolSize=3
 #jdbc.password=iamberry123
 
 ### Development
+#jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/berry?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
+#jdbc.username=iamberry
+#jdbc.password=iamberry123
+###  end ######
+
+### Development
 jdbc.url=jdbc:mysql://192.168.1.254:3306/aiberle?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
 jdbc.username=root
 jdbc.password=root