Pārlūkot izejas kodu

七夕活动提交

liujiankang 5 gadi atpakaļ
vecāks
revīzija
035e722603

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

@@ -29,7 +29,7 @@ import com.iamberry.wechat.tools.NameUtils;
  * @explain	管理员登陆过滤器,未登陆时不能访问/main/*、/admin/*中资源; <br>
  * 			注意:绝对不允许添加/admin/*或者admin/**此类的权限路径,"admin/**"是绝对不允许的
  */
-//@WebFilter(value = { "/main/*", "/admin/*" })
+@WebFilter(value = { "/main/*", "/admin/*" })
 public class AdminLoginFilter implements Filter {
 	
 	private static final String ERROR_PAGE = "/WEB-INF/views/admin/msg/error.jsp";

+ 2 - 1
watero-wechat-web/src/main/java/com/iamberry/wechat/filters/CSRFTokenFilter.java

@@ -10,6 +10,7 @@ import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
+import javax.servlet.annotation.WebFilter;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -29,7 +30,7 @@ import com.iamberry.wechat.tools.IpAddressUtil;
  * 			使用注意:如果多次重复启动,可能导致系统拒绝服务,这只是因为tomcat默认最多接受200个cookie的缘故,关闭浏览器重新打开即可。
  * 			另外系统本身已经做了优化处理,保证99%情况下不会出现问题。
  */
-//@WebFilter(value = {"/admin/*", "/loginUI"})
+@WebFilter(value = {"/admin/*", "/loginUI"})
 public class CSRFTokenFilter implements Filter {
 	
 	/**

+ 112 - 1
watero-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java

@@ -1,6 +1,7 @@
 package com.iamberry.wechat.handles.admin;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -9,6 +10,8 @@ import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.iamberry.wechat.core.entity.cart.ShopOrderItemDto;
+import com.iamberry.wechat.face.cart.CartService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -89,6 +92,9 @@ public class AdminOrderHandlers {
 	
 	@Autowired
 	private RebackServices rebackServices;
+
+	@Autowired
+	private CartService cartService;
 	
 	/**
 	 * 后台进入订单列表功能
@@ -231,6 +237,7 @@ public class AdminOrderHandlers {
 	 * @return ModelAndView
 	 * @throws Exception
 	 */
+	@ResponseBody
 	@RequestMapping("/getShopOrderByOrderId/{orderId}")
 	public ModelAndView getShopOrderByOrderId(HttpServletRequest request,
 			@PathVariable("orderId") String orderId) throws Exception{
@@ -799,7 +806,7 @@ public class AdminOrderHandlers {
 	/**
 	 * 订单备注
 	 * @param actionDTO
-	 * @throws IOException 
+	 * @throws IOException
 	 */
 	@RequestMapping(value="/remark/{id}",produces = {"application/json;charset=UTF-8"})
 	@ResponseBody
@@ -830,4 +837,108 @@ public class AdminOrderHandlers {
 			return "{\"status\":\"false\",\"info\":\"备注失败,请稍后重试!\"}";
 		}
 	}
+
+
+	//默认分配拼单的信息
+	private static String hxgOrderid = "1225094505P11863I";
+	private static String hxgOpenid = "o3G6nw_3cxE7CINzCT1or2f6dxL4";
+
+	/**
+	 * 系统拼单
+	 * @param
+	 * @throws IOException
+	 */
+	@RequestMapping(value="/spell",produces = {"application/json;charset=UTF-8"})
+	@ResponseBody
+	public String spell(HttpServletResponse response,HttpServletRequest request) throws IOException {
+		String orderId = request.getParameter("orderId");
+		//查询该订单的状态
+		Order order = adminOrderService.selectOrderStatusByOrderId(orderId);
+		if (null == order) {
+			return "{\"status\":true,\"info\":\"该订单不存在!\"}";
+		}
+		if (!"15".equals(order.getSalesStatus().toString())) {
+			return "{\"status\":true,\"info\":\"该订单已完成拼单!\"}";
+		}
+		/**
+		 * 修改拼单信息并推送
+		 */
+		if(order.getSalesStatus() != null && order.getSalesStatus() == 15){
+			//邀请人订单修改
+			Order or1 = new Order();
+			or1.setSalesOrderid(orderId);
+			or1.setSalesStatus(2);
+			or1.setSalesSpellOrderId(hxgOrderid);//默认何秀刚的已完成订单
+			cartService.updateOrderSpellOrderId(or1);//修改状态为已支付,待发货,关联拼单订单id
+			//邀请人信息state
+			List<ShopOrderItemDto> orderItems1 = cartService.selectShopOrderItem(orderId);
+			//邀请人信息end
+			if(order.getSalesOpenid() != null){
+				Member	memberOne = memberService.getMemberByUserOpenId(order.getSalesOpenid());
+				String name = "我";
+				if(memberOne != null && !memberOne.getUserNickname().equals("")){
+					try {
+						name = URLDecoder.decode(memberOne.getUserNickname(),"UTF-8");
+					} catch (UnsupportedEncodingException e) {
+						e.printStackTrace();
+					}
+				}
+				String names  = name +","+"微信好友";
+				//推送微信模板消息
+                logger.info("微信账户支付推送拼单成功消息-------------------------------------------------5");
+				try {
+					sendMessageUtil.spellPush(
+							"恭喜您与微信好友拼单成功,点击逛逛更多好货吧。",
+							orderItems1.get(0).getItemProductName(),
+							names,
+							"点击查看拼单详情>>",
+							order.getSalesOpenid(),
+                            ResultInfo.ORDER_GUOQI+"?salesStatus=2");
+				}catch (Exception e){
+					logger.info("推送拼单成功消息失败,失败openId:"+order.getSalesOpenid());
+					e.printStackTrace();
+				}
+
+				// 给rst推送订单
+				try {
+					MQMessage message = new MQMessage();
+					message.setServiceToMessage(orderId);
+					message.setServiceOtherMessage("efast.trade.new.add");
+					message.setServiceIsSend(2);			// 没有推送的信息
+					message.setServiceStatus(1); 			// 推送成功
+					message.setServiceType(1); 				// 添加订单信息
+					message.setServiceHandlerObjectName("efastOrderServiceImpl");
+					message.setServiceHandlerMethodName("addOrderInfoToEfast");
+					mQservice.insertMQMessage(message);
+				} catch (Exception e) {
+					e.printStackTrace();
+					return "{\"status\":false,\"info\":\"拼单失败,请稍后重试!\"}";
+				}
+			}
+		}else{
+			return "{\"status\":false,\"info\":\"拼单失败,请检查订单状态!\"}";
+		}
+		return "{\"status\":true,\"info\":\"拼单成功!\"}";
+
+	}
+
+
+	/**
+	 * 查询订单是否拼团成功
+	 * @param request
+	 * @param orderId
+	 * @return ModelAndView
+	 * @throws Exception
+	 */
+/*	@ResponseBody
+	@RequestMapping("/getOrderByOrderId/{orderId}")
+	public String getOrderByOrderId(HttpServletRequest request,
+											  @PathVariable("orderId") String orderId) throws Exception{
+		Order order = new Order();
+		if (null != orderId && !"".equals(orderId)) {
+			order = this.adminOrderService.getShopOrderByOrderId(orderId);
+
+		}
+		return order.getSalesSpellOrderId();
+	}*/
 }

+ 7 - 2
watero-wechat-web/src/main/java/com/iamberry/wechat/handles/agent/AgentHandler.java

@@ -94,9 +94,14 @@ public class AgentHandler {
 	@ResponseBody
 	public ResultMsg getMemberInfo(HttpServletRequest req){
 		ResultMsg rm = new ResultMsg();
-		Member member = WechatUtils.getUserBySession(req);
+		Member member = new Member();
+		String openId = req.getParameter("openId");
+		if(openId != null && !openId.equals("")){
+			member = memberService.getMemberByUserOpenId(openId);
+		}else{
+			member = WechatUtils.getUserBySession(req);
+		}
 		member = memberService.getMemberByUserOpenId(member.getUserOpenid());
-		
 		AgentMemberDto agentMember = agentMemberService.getMemberInfo(member);
 		agentMember.setUserIsVip(member.getUserIsVip());
 		agentMember.setUser38Interests(2);

+ 219 - 29
watero-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -1,5 +1,6 @@
 package com.iamberry.wechat.handles.order;
 
+import com.iamberry.app.tool.log.RatFWLogger;
 import com.iamberry.wechat.core.entity.PageBean;
 import com.iamberry.wechat.core.entity.ResultMsg;
 import com.iamberry.wechat.core.entity.WechatUtils;
@@ -23,11 +24,13 @@ import com.iamberry.wechat.face.coupon.ExchangeService;
 import com.iamberry.wechat.face.home.HomeService;
 import com.iamberry.wechat.face.member.CashLogService;
 import com.iamberry.wechat.face.member.MemberService;
+import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.face.pay.PayService;
 import com.iamberry.wechat.face.porduct.ProductColorService;
 import com.iamberry.wechat.face.qrcode.TemporaryQrcodeService;
 import com.iamberry.wechat.face.reback.RebackServices;
 import com.iamberry.wechat.handles.mq.MQServiceProxy;
+import com.iamberry.wechat.sendMsg.SendMessageUtil;
 import com.iamberry.wechat.service.ActivityUtil;
 import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.OrderNOUtil;
@@ -36,15 +39,14 @@ import com.iamberry.wechat.tools.ValidatorUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.*;
 
 /**
@@ -56,7 +58,8 @@ import java.util.*;
 @Controller
 @RequestMapping("/wechat/order")
 public class OrderHandler {
-	
+	@Autowired
+	private RatFWLogger logger;
 	@Autowired
 	private CartService cartService;
 	
@@ -96,6 +99,9 @@ public class OrderHandler {
 	private ActivityUtil activityUtil;
 	@Autowired
 	private SettlementGiftService settlementGiftService;
+	@Autowired
+	private SendMessageUtil sendMessageUtil;
+
 	/**
 	 * 支付前,调用方法
 	 * @param request
@@ -108,7 +114,17 @@ public class OrderHandler {
 		
 		ResultMsg msg = new ResultMsg();
 		msg.setResultCode(ResultInfo.ERRORCODE);
-		
+
+		String orderId = request.getParameter("orderId");
+		if(orderId != null && !orderId.equals("")){
+			Order order = new Order();
+			order.setSalesOrderid(orderId);
+			order = cartService.selectOrderInfoById(order);
+			if(order!= null && order.getSalesSpellOrderId() != null){
+				msg.setMessage(ResultInfo.spellErrorMsg);
+				return msg;
+			}
+		}
 		OrderPayDto dto = new OrderPayDto();
 		// 用户信息
 		Member member = WechatUtils.getUserBySession(request);
@@ -182,12 +198,25 @@ public class OrderHandler {
 		int sum = 0; // 产品数量
 		int productNum = 0;	//计算商品为滤芯的数量
 		boolean disable = true;	//标识,是否可用优惠券,当购买商品只有滤芯时禁止使用优惠券
-
+		//获取是否是拼团订单字段 1是 2否
+		String isSpell = request.getParameter("isSpell");
 		for (CartDto cartDto : cartDtos) {
+			int subTotal = cartDto.getProductPrice();
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
-				total += cartDto.getCartNum() * cartDto.getProductPrice();
-				sum++;
+				if (isSpell != null && isSpell.equals("1")) {
+						//是否可拼团
+
+						if(cartDto.getProductIsSpell() != null && cartDto.getProductIsSpell().intValue() == 2){
+							subTotal = cartDto.getColorSpellAmount(); // 小计 拼团价
+						}else{
+							subTotal = cartDto.getProductPrice(); // 小计 正常价
+						}
+
+				}
 			}
+			total += cartDto.getCartNum() * subTotal;
+			sum++;
+
 			//计算商品为滤芯的数量
 			if (cartDto.getProductType().intValue() == 2) {
 				productNum++;
@@ -397,6 +426,8 @@ public class OrderHandler {
 		List<OrderItem> list = new ArrayList<OrderItem>();
 		List<Integer> cartIds = new ArrayList<Integer>();
 
+
+
 		//添加赠品
 		ActivityDate activityDate = activityUtil.isActivity();
 		if(activityDate.isStatus()){
@@ -421,10 +452,20 @@ public class OrderHandler {
 			if(7 == cartDto.getCartColorId() || 8 == cartDto.getCartColorId()){
 				isCludeT1ORT2 = true;
 			}
-			
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 				cartIds.add(cartDto.getCartId());
-				Integer subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计
+				Integer subTotal = 0;
+				//是否是团购订单
+				if(temp.getIsSpell() != null && temp.getIsSpell() == 1){
+					//是否可拼团
+					if(cartDto.getProductIsSpell().intValue() == 2){
+						subTotal = cartDto.getCartNum() * cartDto.getColorSpellAmount(); // 小计 拼团价
+					}else{
+						subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计 正常价
+					}
+				}else{
+					subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计 正常价
+				}
 				total += subTotal;
 				OrderItem item = new OrderItem();
 				item.setItemNum(cartDto.getCartNum());
@@ -441,6 +482,16 @@ public class OrderHandler {
 			}
 		}
 
+		//是否是团购订单
+		if(temp.getIsSpell() != null && temp.getIsSpell() == 1){
+			order.setSalesIsSpellOrder(1);//团购订单
+		}else{
+			order.setSalesIsSpellOrder(2);
+		}
+		//是否是被邀请人支付(完成拼单)
+		if(temp.getSpellOrderId() != null && !temp.getSpellOrderId().equals("")){
+			order.setSalesSpellOrderId(temp.getSpellOrderId());
+		}
 		// 准备订单对象
 		order.setSalesOpenid(member.getUserOpenid()); // openid 
 		order.setSalesAmount(total); // 订单金额
@@ -601,7 +652,12 @@ public class OrderHandler {
 	
 		if(updateFlase){
 			//设置订单状态,还有优惠券id
-			order.setSalesStatus(2);
+
+			if(temp.getIsSpell() == 1){//如果是团购订单则状态改为正在团购
+				order.setSalesStatus(15);
+			}else{
+				order.setSalesStatus(2);
+			}
 			cartService.updateOrderStatus(order);
 			//修改优惠券状态
 			if(hasCoupon){
@@ -609,21 +665,25 @@ public class OrderHandler {
 //				int i=couponItemService.updateCouponItemById(couponItem);
 			}
 
-			// 给rst推送订单
-			try {
-				MQMessage message = new MQMessage();
-				message.setServiceToMessage(order.getSalesOrderid());
-				message.setServiceOtherMessage("efast.trade.new.add");
-				message.setServiceIsSend(2);			// 没有推送的信息
-				message.setServiceStatus(1); 			// 推送成功
-				message.setServiceType(1); 				// 添加订单信息
-				message.setServiceHandlerObjectName("efastOrderServiceImpl");
-				message.setServiceHandlerMethodName("addOrderInfoToEfast");
-				mQservice.insertMQMessage(message);
-			} catch (Exception e) {
-				e.printStackTrace();
+			if(temp.getIsSpell() == null || temp.getIsSpell() == 2){//如果是团购订单则暂时不推送订单,在完成拼单后再推送
+				/*if(o.getSalesIsSpellOrder() != null && o.getSalesIsSpellOrder() == 1 && o.getSalesSpellOrderId() != null){*/
+				// 给rst推送订单
+				try {
+					MQMessage message = new MQMessage();
+					message.setServiceToMessage(order.getSalesOrderid());
+					message.setServiceOtherMessage("efast.trade.new.add");
+					message.setServiceIsSend(2);			// 没有推送的信息
+					message.setServiceStatus(1); 			// 推送成功
+					message.setServiceType(1); 				// 添加订单信息
+					message.setServiceHandlerObjectName("efastOrderServiceImpl");
+					message.setServiceHandlerMethodName("addOrderInfoToEfast");
+					mQservice.insertMQMessage(message);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
 			}
-				
+
+
 			//更新账户余额
 //			if(balancePayAmount>0){
 //				member.setUserIncome(-balancePayAmount);
@@ -656,6 +716,134 @@ public class OrderHandler {
 //			}
 //			rebackServices.loadSingleOrderReward(order);
 			productInfoService.updateProductNumList(order.getSalesOrderid());
+
+			/**
+			 * 修改拼单信息并推送
+			 */
+			if(temp.getSpellOrderId() != null && !temp.getSpellOrderId().equals("")){
+				//邀请人订单修改
+				Order or1 = new Order();
+				or1.setSalesOrderid(temp.getSpellOrderId());
+				or1.setSalesStatus(2);
+				or1.setSalesSpellOrderId(order.getSalesOrderid());
+				cartService.updateOrderSpellOrderId(or1);//修改状态为已支付,待发货,关联拼单订单id
+				//邀请人信息state
+				Order orderOne = new Order();
+				orderOne.setSalesOrderid(temp.getSpellOrderId());
+				orderOne = cartService.selectOrderInfoById(orderOne);
+				List<ShopOrderItemDto> orderItems1 = cartService.selectShopOrderItem(temp.getSpellOrderId());
+				//邀请人信息end
+				//被邀请人信息state
+				Order orderTwo = new Order();
+				orderTwo.setSalesOrderid(order.getSalesOrderid());
+				orderTwo = cartService.selectOrderInfoById(orderTwo);
+				List<ShopOrderItemDto> orderItems2 = cartService.selectShopOrderItem(order.getSalesOrderid());
+				//被邀请人信息end
+				if(orderOne.getSalesOpenid() != null){
+				Member	memberOne = memberService.getMemberByUserOpenId(orderTwo.getSalesOpenid());
+				String name = "我";
+				if(memberOne != null && !memberOne.getUserNickname().equals("")){
+					try {
+						name = URLDecoder.decode(memberOne.getUserNickname(),"UTF-8");
+					} catch (UnsupportedEncodingException e) {
+						e.printStackTrace();
+					}
+				}
+					String names = name +",微信好友";
+
+					try {
+						names  = name +","+(member.getUserNickname() == null? "微信好友": URLDecoder.decode(member.getUserNickname(),"UTF-8"));
+					} catch (UnsupportedEncodingException e) {
+						e.printStackTrace();
+					}
+				//推送微信模板消息
+					logger.info("微信账户支付推送拼单成功消息-------------------------------------------------1");
+					try {
+						sendMessageUtil.spellPush(
+								"恭喜您与"+name+"拼单成功,点击逛逛更多好货吧。",
+								orderItems1.get(0).getItemProductName(),
+								names,
+								"点击查看拼单详情>>",
+								orderOne.getSalesOpenid(),
+								ResultInfo.ORDER_GUOQI+"?salesStatus=2");
+					}catch (Exception e){
+						logger.info("推送拼单成功消息失败,失败openId:"+orderOne.getSalesOpenid());
+						e.printStackTrace();
+					}
+				}
+				//推送邀请人订单到rst
+				try {
+					MQMessage message = new MQMessage();
+					message.setServiceToMessage(temp.getSpellOrderId());
+					message.setServiceOtherMessage("efast.trade.new.add");
+					message.setServiceIsSend(2);			// 没有推送的信息
+					message.setServiceStatus(1); 			// 推送成功
+					message.setServiceType(1); 				// 添加订单信息
+					message.setServiceHandlerObjectName("efastOrderServiceImpl");
+					message.setServiceHandlerMethodName("addOrderInfoToEfast");
+					mQservice.insertMQMessage(message);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+
+
+
+
+
+				//被邀请人(当前)订单修改
+				Order or2 = new Order();
+				or2.setSalesOrderid(order.getSalesOrderid());
+				or2.setSalesStatus(2);
+				or2.setSalesSpellOrderId(temp.getSpellOrderId());
+				cartService.updateOrderSpellOrderId(or2);
+
+				if(orderTwo.getSalesOpenid() != null){
+					Member	memberOne = memberService.getMemberByUserOpenId(orderOne.getSalesOpenid());
+					String name = "微信好友";
+					if(memberOne != null && !memberOne.getUserNickname().equals("")){
+						try {
+							name = URLDecoder.decode(memberOne.getUserNickname(),"UTF-8");
+						} catch (UnsupportedEncodingException e) {
+							e.printStackTrace();
+						}
+					}
+					String names  = member.getUserNickname() == null? "我": member.getUserNickname() +","+name;
+					try {
+						names  = member.getUserNickname() == null? "我": URLDecoder.decode(member.getUserNickname(),"UTF-8") +","+name;
+					} catch (UnsupportedEncodingException e) {
+						e.printStackTrace();
+					}
+					//推送微信模板消息
+					logger.info("微信账户支付推送拼单成功消息-------------------------------------------------2");
+					try {
+						sendMessageUtil.spellPush(
+								"恭喜您与"+name+"拼单成功,点击逛逛更多好货吧。",
+								orderItems2.get(0).getItemProductName(),
+								names,
+								"点击查看拼单详情>>",
+								orderTwo.getSalesOpenid(),
+								ResultInfo.ORDER_GUOQI+"?salesStatus=2");
+					}catch (Exception e){
+						logger.info("推送拼单成功消息失败,失败openId:"+orderTwo.getSalesOpenid());
+						e.printStackTrace();
+					}
+				}
+				//推送被邀请人订单到rst
+				try {
+					MQMessage message = new MQMessage();
+					message.setServiceToMessage(order.getSalesOrderid());
+					message.setServiceOtherMessage("efast.trade.new.add");
+					message.setServiceIsSend(2);			// 没有推送的信息
+					message.setServiceStatus(1); 			// 推送成功
+					message.setServiceType(1); 				// 添加订单信息
+					message.setServiceHandlerObjectName("efastOrderServiceImpl");
+					message.setServiceHandlerMethodName("addOrderInfoToEfast");
+					mQservice.insertMQMessage(message);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+
+			}
 		}
 
 		msg.setResultCode(ResultInfo.SUCCESSCODE);
@@ -679,7 +867,7 @@ public class OrderHandler {
 		ResultMsg msg = new ResultMsg();
 		msg.setResultCode(ResultInfo.ERRORCODE);
 		Integer orderStatus = cartService.selectOrderStatusByOrderId(orderId);
-		if (orderStatus != null && orderStatus.intValue() == 2) {
+		if (orderStatus != null && (orderStatus.intValue() == 2 || orderStatus.intValue() == 15) ) {
 			msg.setResultCode(ResultInfo.SUCCESSCODE);
 			msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 			msg.setStatus(true);
@@ -704,6 +892,7 @@ public class OrderHandler {
 			@RequestParam(value = "orderId") String orderId) throws Exception {
 		ResultMsg msg = new ResultMsg();
 		msg.setResultCode(ResultInfo.ERRORCODE);
+
 		Member member = WechatUtils.getUserBySession(request); // 当前用户
 		Order order = new Order();
 		order.setSalesOrderid(orderId);
@@ -776,6 +965,8 @@ public class OrderHandler {
 					cartDto.setProductDiscount(sg.getSettGiftPrice());
 					cartDto.setProductPrice(sg.getSettGiftPrice());
 					cartDto.setTotal(sg.getSettGiftPrice()*num);
+					cartDto.setProductIsSpell(cd.getProductIsSpell());
+					cartDto.setColorSpellAmount(sg.getSettGiftPrice());
 					giftList.add(cartDto);
 				}
 			}
@@ -816,5 +1007,4 @@ public class OrderHandler {
 		}
 	}
 
-
-}
+}

+ 230 - 22
watero-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java

@@ -3,19 +3,18 @@ package com.iamberry.wechat.handles.pay;
 import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.UUID;
+import java.util.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.iamberry.wechat.core.entity.WechatUtils;
+import com.iamberry.wechat.core.entity.cart.ShopOrderItemDto;
 import com.iamberry.wechat.core.entity.rent.ReserveOrder;
+import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.face.reserve.ReserveService;
 import org.apache.commons.lang3.StringUtils;
 import org.jdom.Document;
@@ -23,7 +22,9 @@ import org.jdom.Element;
 import org.jdom.input.SAXBuilder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.xml.sax.InputSource;
 
 import com.iamberry.app.tool.log.RatFWLogger;
@@ -125,6 +126,8 @@ public class ResponseWechatPayHandler {
 	private SystemService systemService;
 	@Autowired
 	private EfastOrderService efastOrderService;
+    @Autowired
+    private AdminOrderService adminOrderService;
 	/**
 	 * 销售订单支付回调方法
 	 */
@@ -149,14 +152,25 @@ public class ResponseWechatPayHandler {
 				//resXml:返回给微信服务器的数据
 				resXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
 				String orderIdMD5 = StaticInfo.orderIdMD5.decrypt(wpr.getAttach());
+
+				//2019-07-29 新增团购功能,查询订单信息,判断是否是团购订单
+				Order o = new Order();
+				o.setSalesOrderid(orderIdMD5);
+				o = cartService.selectOrderInfoById(o);
+
 //System.out.println("===========pay 117==============");
-				
+
 				if (orderIdMD5.equals(wpr.getOutTradeNo())) {
 					Date nowDate = new Date();
 					// 组装数据
 					Order order = new Order();
 					order.setSalesOrderid(orderIdMD5);
-					order.setSalesStatus(2); // 已支付
+					if(o.getSalesIsSpellOrder() != null && o.getSalesIsSpellOrder() == 1){
+						order.setSalesStatus(15); // 正在拼单
+					}else{
+						order.setSalesStatus(2); // 已支付
+					}
+
 					order.setSalesTransactionId(wpr.getTransactionId()); // 微信支付ID
 					order.setSalesTransactionDate(new Date()); // 微信支付时间
 					order.setSalesOpenid(wpr.getOpenid());
@@ -215,22 +229,155 @@ public class ResponseWechatPayHandler {
 					} catch (Exception e) {
 						// TODO: handle exception
 					}
+					System.out.println("被邀请人订单状态:"+o.getSalesIsSpellOrder()+"------------------------");
+					//拼单订单暂时不推送,拼单成功后推送
+					if(o.getSalesIsSpellOrder() == null || o.getSalesIsSpellOrder() == 2){
+						// 给rst推送订单
+						try {
+							MQMessage message = new MQMessage();
+							message.setServiceToMessage(orderIdMD5);
+							message.setServiceOtherMessage("efast.trade.new.add");
+							message.setServiceIsSend(2);			// 没有推送的信息
+							message.setServiceStatus(1); 			// 推送成功
+							message.setServiceType(1); 				// 添加订单信息
+							message.setServiceHandlerObjectName("efastOrderServiceImpl");
+							message.setServiceHandlerMethodName("addOrderInfoToEfast");
+							mQservice.insertMQMessage(message);
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}
+					/*Member members = WechatUtils.getUserBySession(request); */// 当前用户
+					/**
+					 * 修改拼单信息并推送
+					 */
+					System.out.println("被邀请人订单编号:"+o.getSalesSpellOrderId()+"------------------------");
+					if(o.getSalesSpellOrderId() != null && !o.getSalesSpellOrderId().equals("")){
+						//邀请人订单修改
+						Order or1 = new Order();
+						or1.setSalesOrderid(o.getSalesSpellOrderId());
+						or1.setSalesStatus(2);
+						or1.setSalesSpellOrderId(o.getSalesOrderid());
+						cartService.updateOrderSpellOrderId(or1);//修改状态为已支付,待发货,关联拼单订单id
+						//邀请人信息state
+						Order orderOne = new Order();
+						orderOne.setSalesOrderid(o.getSalesSpellOrderId());
+						orderOne = cartService.selectOrderInfoById(orderOne);
+						List<ShopOrderItemDto> orderItems1 = cartService.selectShopOrderItem(o.getSalesSpellOrderId());
+						//邀请人信息end
+						//被邀请人信息state
+						Order orderTwo = new Order();
+						orderTwo.setSalesOrderid(order.getSalesOrderid());
+						orderTwo = cartService.selectOrderInfoById(orderTwo);
+						List<ShopOrderItemDto> orderItems2 = cartService.selectShopOrderItem(o.getSalesOrderid());
 
-					// 给rst推送订单
-					try {
-						MQMessage message = new MQMessage();
-						message.setServiceToMessage(orderIdMD5);
-						message.setServiceOtherMessage("efast.trade.new.add");
-						message.setServiceIsSend(2);			// 没有推送的信息
-						message.setServiceStatus(1); 			// 推送成功
-						message.setServiceType(1); 				// 添加订单信息
-						message.setServiceHandlerObjectName("efastOrderServiceImpl");
-						message.setServiceHandlerMethodName("addOrderInfoToEfast");
-						mQservice.insertMQMessage(message);
-					} catch (Exception e) {
-						e.printStackTrace();
+						Member	memberTwo = memberService.getMemberByUserOpenId(orderTwo.getSalesOpenid());
+						//被邀请人信息end
+						if(orderOne.getSalesOpenid() != null){
+							Member	memberOne = memberService.getMemberByUserOpenId(orderOne.getSalesOpenid());
+							String name = "我";
+							if(memberOne != null && !memberOne.getUserNickname().equals("")){
+
+								try {
+									name = URLDecoder.decode(memberOne.getUserNickname(),"UTF-8");
+								} catch (UnsupportedEncodingException e) {
+									e.printStackTrace();
+								}
+							}
+							String names  = name +","+(memberTwo.getUserNickname() == null? "微信好友": memberTwo.getUserNickname());
+							try {
+								names  = name +","+(memberTwo.getUserNickname() == null? "微信好友": URLDecoder.decode(memberTwo.getUserNickname(),"UTF-8"));
+							} catch (UnsupportedEncodingException e) {
+								e.printStackTrace();
+							}
+							//推送微信模板消息
+							try {
+								sendMessageUtil.spellPush(
+										"恭喜您与"+name+"拼单成功,点击逛逛更多好货吧。",
+										orderItems1.get(0).getItemProductName(),
+										names,
+										"点击查看拼单详情>>",
+										orderOne.getSalesOpenid(),
+										ResultInfo.ORDER_GUOQI+"?salesStatus=2");
+							}catch (Exception e){
+								logger.info("推送拼单成功消息失败,失败openId:"+orderOne.getSalesOpenid());
+								e.printStackTrace();
+							}
+						}
+						// 给邀请人推送订单
+                        logger.info("微信账户支付推送拼单成功消息-------------------------------------------------3");
+						try {
+							MQMessage message = new MQMessage();
+							message.setServiceToMessage(o.getSalesSpellOrderId());
+							message.setServiceOtherMessage("efast.trade.new.add");
+							message.setServiceIsSend(2);			// 没有推送的信息
+							message.setServiceStatus(1); 			// 推送成功
+							message.setServiceType(1); 				// 添加订单信息
+							message.setServiceHandlerObjectName("efastOrderServiceImpl");
+							message.setServiceHandlerMethodName("addOrderInfoToEfast");
+							mQservice.insertMQMessage(message);
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+
+
+						//被邀请人(当前)订单修改
+						Order or2 = new Order();
+						or2.setSalesOrderid(order.getSalesOrderid());
+						or2.setSalesStatus(2);
+						or2.setSalesSpellOrderId(orderOne.getSalesOrderid());
+						cartService.updateOrderSpellOrderId(or2);
+
+						if(o.getSalesOpenid() != null){
+							Member	memberOne = memberService.getMemberByUserOpenId(orderOne.getSalesOpenid());
+							String name = "微信好友";
+							if(memberOne != null && !memberOne.getUserNickname().equals("")){
+								try {
+									name = URLDecoder.decode(memberOne.getUserNickname(),"UTF-8");
+								} catch (UnsupportedEncodingException e) {
+									e.printStackTrace();
+								}
+							}
+							String names  = memberTwo.getUserNickname() == null? "我": memberTwo.getUserNickname() +","+name;
+							try {
+								names  = memberTwo.getUserNickname() == null? "我": URLDecoder.decode(memberTwo.getUserNickname(),"UTF-8") +","+name;
+							} catch (UnsupportedEncodingException e) {
+								e.printStackTrace();
+							}
+							//推送微信模板消息
+                            logger.info("微信账户支付推送拼单成功消息-------------------------------------------------4");
+							try {
+								sendMessageUtil.spellPush(
+										"恭喜您与"+name+"拼单成功,点击逛逛更多好货吧。",
+										orderItems2.get(0).getItemProductName(),
+										names,
+										"点击查看拼单详情>>",
+										o.getSalesOpenid(),
+										ResultInfo.ORDER_GUOQI+"?salesStatus=2");
+							}catch (Exception e){
+								logger.info("推送拼单成功消息失败,失败openId:"+o.getSalesOpenid());
+								e.printStackTrace();
+							}
+						}
+
+						// 给被邀请人推送订单
+						try {
+							MQMessage message = new MQMessage();
+							message.setServiceToMessage(order.getSalesOrderid());
+							message.setServiceOtherMessage("efast.trade.new.add");
+							message.setServiceIsSend(2);			// 没有推送的信息
+							message.setServiceStatus(1); 			// 推送成功
+							message.setServiceType(1); 				// 添加订单信息
+							message.setServiceHandlerObjectName("efastOrderServiceImpl");
+							message.setServiceHandlerMethodName("addOrderInfoToEfast");
+							mQservice.insertMQMessage(message);
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
 					}
 
+
+
 					try {	//修改用户购买记录为已购买
 						memberService.updateIsBaughtByOpenid(wpr.getOpenid(), 2);
 						//更新用户绑定状态
@@ -245,7 +392,11 @@ public class ResponseWechatPayHandler {
 						System.out.println("修改已购买状态和终身绑定失败!");
 						e.printStackTrace();
 					}
-					
+
+
+
+
+
 				} else {
 					resXml = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[报文有误]]></return_msg></xml>";
 					logger.error(this, "订单:" + orderIdMD5 + "支付成功,但是没有通过校验!");
@@ -876,4 +1027,61 @@ public class ResponseWechatPayHandler {
 
 		}
 	}
+
+
+    /**
+     * 查询订单是否拼团成功
+     * @param request
+     * @return ModelAndView
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/getOrderByOrderId")
+    public String getOrderByOrderId(HttpServletRequest request) throws Exception{
+		String orderId = request.getParameter("orderId");
+		String salesSpellOrderId = null;
+        Order order = new Order();
+        if (null != orderId && !"".equals(orderId)) {
+            order = this.adminOrderService.getShopOrderByOrderId(orderId);
+            if(order != null && order.getSalesSpellOrderId()!= null){
+				salesSpellOrderId = order.getSalesSpellOrderId();
+			}else{
+				salesSpellOrderId = null;
+			}
+
+        }
+        if(salesSpellOrderId == null ){
+			return "1";
+		}else{
+			return "2";
+		}
+    }
+
+	/**
+	 * 20190807七夕团购活动
+	 * @param fromUserName openid
+	 * @return
+	 */
+	@ResponseBody
+	@RequestMapping("/isOrder")
+	public String isOrder(String fromUserName) {
+		/*if (fromUserName == null) {
+			return "网络故障,请稍后再试!";
+		}*/
+		Date date = new Date();
+		Calendar stateCalendar = Calendar.getInstance();
+		stateCalendar.set(2019,7,7,00,00,00);
+		Date stateDate = stateCalendar.getTime();
+		stateCalendar.set(2019,7,7,23,59,59);
+		Date endDate = stateCalendar.getTime();
+		if(stateDate.before(date) && endDate.after(date)){
+			return "符合";
+		}
+		Integer num = cartService.selectIsOrder("o3G6nw7DSmcQwSy3LtNhEcPYMqRI");
+		if(num > 0){
+			return ResultInfo.chineseLottery;
+		}else{
+			return ResultInfo.chineseLotteryFailure;
+		}
+	}
 }

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

@@ -57,7 +57,10 @@ eventExpiredMsg=\u6d3b\u52a8\u5df2\u8fc7\u671f\u0021
 repeatCollectionMsg=\u60a8\u5df2\u9886\u53d6\u0035\u0030\u5143\u73b0\u91d1\u62b5\u7528\u5238\uff0c\u5feb\u70b9\u51fb\u201c\u0036\u0031\u0038\u5927\u4fc3\u201d\u4f7f\u7528\u5427\u007e
 failedReceiveMsg=\u9886\u53d6\u4f18\u60e0\u5238\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\uff01
 successReceiveMsg=\u60a8\u7684\u0035\u0030\u5143\u5df2\u5230\u8d26\uff0c\u5feb\u53bb\u4f7f\u7528\u5427\u007e\u007e\n<a href='https://s.iamberry.com/watero/wechat/20190618.html'>\u70b9\u51fb\u8fd9\u91cc</a>\uff0c\u9a6c\u4e0a\u67e5\u770b\u964d\u4ef7\u5b9d\u8d1d\u007e\u007e\n
+spellErrorMsg=\u8be5\u8ba2\u5355\u5df2\u5b8c\u6210\u62fc\u5355\uff0c\u5feb\u53bb\u53d1\u8d77\u62fc\u5355\u5427\uff01
 
+chineseLottery=\u6b22\u8fce\u60a8\u53c2\u4e0e\u672c\u6b21\u4e03\u5915\u6d3b\u52a8\u62bd\u5956https://hd.faisco.cn/20101191/1cRno1XYiMbxop-fkWLFCw/load.html?style=75
+chineseLotteryFailure=\u5f88\u62b1\u6b49\uff0c\u60a8\u6ca1\u6709\u5728\u6d3b\u52a8\u671f\u95f4\u4e0b\u5355\uff0c\u65e0\u6cd5\u53c2\u4e0e\u672c\u6b21\u62bd\u5956
 #ce shi  huanjin
 PAGE_SHIPMENT = http://test.iamberry.com/watero/pay/goOrderInfo?orderId=
 TUIHUI_SHIPMENT = http://static.iamberry.com/watero/wechat/daili_rebackOrder_list.html
@@ -77,4 +80,5 @@ probation_apply_success=-2mhs7Y0aUFtas4rnatcGj3xYv0XyFjnfaEqf4PJJvo
 probation_pay_success=BWudEQXeAwon2BTa-RQO3X_sVP6AkmDGngKhi92KDc0
 probation_shut_down=qAn04oDBfK4VSB8bROeR-5BhhYri1oUK51FVlh6KwU4
 prize_receive_push=7d_r3XJsY5MAISYCDxrjdnPXgNm3IU8XLRYWXbCJjbs
-service_push=5hWq6wd6W9HbMZ0ICSRTDyCKh_r_MjpQtWzkQRSKLio
+service_push=5hWq6wd6W9HbMZ0ICSRTDyCKh_r_MjpQtWzkQRSKLio
+probation_spell_success=PmRYkC7WJft9t4HJZD4_w6tNmxXiaPBPlyfwIbhPLMI

+ 3 - 0
watero-wechat-web/src/main/resources/iamberry-wechat-service-mybatis.xml

@@ -240,6 +240,9 @@
 		<!--赠品-->
 		<typeAlias type="com.iamberry.wechat.core.entity.cart.SettlementGift" alias="SettlementGift"/>
 
+		<!--团购-->
+		<!--<typeAlias type="com.iamberry.wechat.core.entity.order.ShopSpellInfo" alias="ShopSpellInfo"/>-->
+
 		<package name="com.iamberry.wechat.core.entity.rent"/>
 	</typeAliases>
 	<mappers>

+ 1 - 1
watero-wechat-web/src/main/resources/platform.properties

@@ -125,7 +125,7 @@ rst_base_url=http://test.iamberry.com/rst/mcahine/getMachineInfo?barCode=
 # efast_base_url
 efast_base_url=http://121.199.165.244/efast_test/efast_api/webservice/web/index.php
 # rst_efast_base_url
-rst_efast_base_url=http://test.iamberry.com/rst/mallorder/order
+rst_efast_base_url=http://test.iamberry.com/rst/mallorder/order/
 # order_field
 order_field=order_sn,deal_code,order_status,shipping_status,pay_status,process_status,is_send,is_locked,is_separate,consignee,address,zipcode,tel,mobile,shipping_name,pay_name,invoice_no,order_amount ,money_paid,user_id ,orders.goods_sn,orders.goods_name,orders.goods_number,orders.goods_price,orders.goods_barcode,orders.payment_ft,pay_time,to_buyer,postscript,order_amount,user_nick,money_paid,shipping_fee
 # binding downlod

+ 51 - 7
watero-wechat-web/src/main/webapp/WEB-INF/views/admin/order/orderList.jsp

@@ -141,6 +141,7 @@
 			  	<span onclick="location.href='${pageContext.request.contextPath }${statusUrl }&orderStatus=quitOrder'" class="quitOrder">取消订单</span>
 			  	<span onclick="location.href='${pageContext.request.contextPath }${statusUrl }&orderStatus=etcOrder'" class="etcOrder">待支付</span>
 			  	<span onclick="location.href='${pageContext.request.contextPath }${statusUrl }&orderStatus=returnOrderSuccess'" class="returnOrderSuccess">已退款</span>
+			  	<span onclick="location.href='${pageContext.request.contextPath }${statusUrl }&orderStatus=spelling'" class="spelling">正在拼单</span>
 
 			  </div>
 			</div>
@@ -264,6 +265,18 @@
 								      		</li>
 								      	</c:forEach>
 								      </c:if>
+
+
+									<%--	<c:choose>
+											<c:when test="${order.salesStatus ==15 }">
+												<li><a href="#" lang="${order.salesOrderid }"
+													   title="${oper.name}" alt="${oper.name}" onclick="return orderAction(this)">
+													<i class="Hui-iconfont">${oper.img}</i><font>${oper.name}</font>
+												</a>
+												</li>
+											</c:when>
+										</c:choose>--%>
+
 								    </ul>
 								  </div>
 								</div>
@@ -290,13 +303,12 @@
 				function orderAction(_this) {
 					var $a = $(_this);
 					var orderStatusStr = $a.children("font").text();
-					if (orderStatusStr == "发货" || orderStatusStr == "录入物流信息并发货") {
+					if (orderStatusStr === "发货" || orderStatusStr === "录入物流信息并发货") {
 						$("#layui-layer4").show();
 						$("#sendOrderDivTitle").html("为'" + $a.attr("lang") + "'发货:");
 						$("#form-admin-add").attr("action", $a.attr("href"));
 						return false;
-					} else if (orderStatusStr == "备注") {
-						orderid = $a.attr("lang");
+					} else if (orderStatusStr === "备注") {
 						$("#layui-remark").show();
 						$("#form-admin-remark").attr("action", $a.attr("href"));
 						// 回显现有的备注
@@ -304,7 +316,7 @@
 						$(".optionclass").attr("selected", "");
 						$("#optionclass" + $("#" + $a.attr("lang") + "AdminRemarkColor").attr("lang")).attr("selected", true);
 						return false;
-					} else if (orderStatusStr == "同步订单状态") {
+					} else if (orderStatusStr === "同步订单状态") {
                         var url = $a.attr("href");
                         $.ajax({
                             type:'POST',
@@ -315,6 +327,23 @@
                             }
                         });
                         return false;
+                    }else if (orderStatusStr === "系统拼单") {
+                        var orderid = $a.attr("lang");
+                        $.ajax({
+                            type: "POST",
+                            url: "/watero/admin/order/spell",
+                            data: {"orderId" : orderid},
+                            dataType: "json",
+                            success: function(data){
+                                var obj = eval('(' + data + ')');
+                                if (obj.status) {
+                                    layer.msg(obj.info,{icon:1,time:2000});
+                                } else {
+                                    layer.msg(obj.info,{icon:5,time:2000});
+                                }
+                            }
+                        });
+                        return false;
                     }
 					return true;
 				}
@@ -398,9 +427,24 @@
 				  		  }
 					    });
 					}) */
-				
-				
-				
+
+
+                // 系统拼单
+                /*function spell() {
+                        $.ajax({
+                            type: "POST",
+                            url: url,
+                            dataType: "json",
+                            success: function(data){
+                                if (data.status) {
+                                    layer.msg(data.info,{icon:1,time:2000});
+                                } else {
+                                    layer.msg(data.info,{icon:5,time:2000});
+                                }
+                            }
+                        });
+
+                }*/
 				</script>
 </body>
 </html>