浏览代码

积分商城

wangxiaoming 7 年之前
父节点
当前提交
583c3081c7

+ 2 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/tools/WeixinUtil.java

@@ -484,6 +484,8 @@ public class WeixinUtil {
 	public static void sendTemplateMessage(String appId, String appSecret,
 			String openId, String template_id, Object data, String redirectUrl) {
 
+		logger.info("推送消息模板:"+ template_id );
+
 		// 准备数据
 		AccessToken token = getAccessToken(appId, appSecret);
 		String access_token = token.getToken();

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

@@ -355,11 +355,8 @@ public class MemberServiceImpl implements MemberService {
 		Member member = memberDao.getMemberByUserId(userId);
 		List<RankRule> rankRuleList = useIntegralMapper.listRankRule(new RankRule());
 		try {
-			System.out.println("获取积分等级member.getUserIntegral() = " + member.getUserIntegral());
 			RankRule rr = null;
-
 			for (RankRule rankRule : rankRuleList) {
-				System.out.println("等级 = " + rankRule.getRankRuleIntegral());
 				if (member.getUserIntegral() > rankRule.getRankRuleIntegral()) {
 					if (rr == null) {
 						rr = rankRule;

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

@@ -337,7 +337,155 @@ public class ResponseWechatPayHandler {
 			e.printStackTrace();
 		}
 	}
-	
+
+	/**
+	 * 销售订单支付回调方法 -- tooth订单返回
+	 */
+	//@RequestMapping("/testOrderPayBack")
+	public synchronized void testOrderPayBack(HttpServletRequest request,
+											  HttpServletResponse response, String orderId, String openId) throws IOException {
+		String orderIdMD5 = orderId;
+		if (true) {
+			/*免费领取充电器支付邮费---start*/
+			if (orderIdMD5.startsWith("mflq")) {
+				ChargerReceive cr = new ChargerReceive();
+				cr.setReceiveOrderId(orderIdMD5);
+				cr.setReceiveStatus(2);
+				cr.setReceiveTransactionId("");
+				cr.setReceiveTransactionDate(new Date());
+				Integer flag = chargReceiveService.updateByOrderId(cr);
+				if (flag < 1) {
+					System.out.println("免费领取充电器支付邮费回调修改记录失败!");
+				}
+				/*免费领取充电器支付邮费---end*/
+			} else {
+				Date nowDate = new Date();
+				// 组装数据
+				Order order = new Order();
+				order.setSalesOrderid(orderIdMD5);
+				order.setSalesStatus(2); // 已支付
+				order.setSalesTransactionId(""); // 微信支付ID
+				order.setSalesTransactionDate(new Date()); // 微信支付时间
+				order.setSalesOpenid(openId);
+
+				Order or = adminOrderService.getShopOrderByOrderId(orderIdMD5);
+				if (or.getSalesStatus() != 1) {
+					return;
+				}
+
+				// 修改订单状态
+				int count = cartService.updateOrderStatus(order);
+
+				/*计算使用优惠券优惠的金额*/
+				Integer couponAmount = 0;
+				//修改优惠券状态
+				order = cartService.selectOrderInfoById(order);
+				String couponId = order.getCouponId();
+				if (couponId != null && !couponId.equals("")) {
+					CouponItem couponItem = new CouponItem();
+					couponItem.setCouponItemId(couponId);
+					couponItem.setCouponUseStatus(2);
+					couponItem.setCouponUseDate(new Date());
+					couponItemService.updateCouponItemById(couponItem);
+
+					CouponItemDto couponItemDto = couponItemService.getCouponItemById(couponId);
+					if (couponItemDto.getCouponType() == 1) {  //按照金额
+						couponAmount = couponItemDto.getCouponReduce() / 100;
+					} else if (couponItemDto.getCouponType() == 2) {  ////按照折扣
+						couponAmount = or.getSalesAmount() - or.getSalesAmount() / (couponItemDto.getCouponReduce() / 100) / 100;
+					}
+				}
+
+				/*-- 计算积分 ----*/
+				List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(orderIdMD5);
+				Integer allIntegral = 0;  //总积分
+				Integer allBrushAmount = 0;		//牙刷总金额与优惠券相减  -- 未乘以3
+
+				for (int i = 0; i < orderItemList.size(); i++) {
+					OrderItem orderItem = orderItemList.get(i);
+					Integer amount = orderItem.getItemProductDiscount() / 100;		//商品优惠价
+					if (orderItem.getItemProductType() == 100) {	//类型为电动牙刷
+						Integer integral = amount * (orderItem.getItemNum() * 3 - orderItem.getItemNum());		//计算牙刷*2的金额
+						allIntegral += integral;
+					} else {
+						Integer integral = amount * (orderItem.getItemNum() * 3);
+						allBrushAmount += integral;
+					}
+				}
+				if (couponAmount > 0) {  //有优惠券减去优惠券的金额 -- 先用牙刷总金额减去优惠券
+					allBrushAmount += -couponAmount;
+				}
+
+				/**
+				 * start
+				 * 两种情况:
+				 * 1) 刷头金额低于抵扣金额时:支付金额*2;
+				 * 2) 刷头金额高于等于抵扣金额时:399*2
+				 */
+				if(allBrushAmount < 0){		 //刷头金额低于抵扣金额  ==> 牙刷金额*2 + (刷头金额 - 优惠券)*2
+					allIntegral += allBrushAmount * 2;		//牙刷减去(优惠券减去刷头的金额)
+				}else{		//刷头金额高于等于抵扣金额
+					//allIntegral += allBrushAmount * 3;	//----- 删除
+				}
+				/*-----end-----*/
+
+				ratFWLogger.error(this, "订单:" + orderIdMD5 + "订单使用优惠卷金额:" + couponAmount + "所得积分为:" + allIntegral);
+				boolean flag = apparatusService.addStayIntegral(or.getSalesOpenid(), 3, allIntegral, or.getSalesOrderid(),null);
+				ratFWLogger.info("积分是否入账:" + flag);
+				/*----------计算积分-----------*/
+
+				if (count < 1) {
+					ratFWLogger.info("修改订单失败:" + flag);
+				}
+
+				// 给订单的回调修改状态
+				try {
+					MQMessage message = new MQMessage();
+					message.setServiceToMessage(orderIdMD5);
+					message.setServiceOtherMessage("");
+					message.setServiceIsSend(2);            // 没有推送的信息
+					message.setServiceStatus(1);            // 推送成功
+					message.setServiceHandlerObjectName("cartServiceImpl");
+					message.setServiceHandlerMethodName("supdateStateByOrderId");
+					message.setServiceType(1);
+					mQservice.insertMQMessage(message);
+				} catch (Exception e) {
+					// TODO: handle exception
+				}
+
+//						//推送消息到微信
+//						DecimalFormat df = new DecimalFormat("0.00");
+//						String payMoney = df.format((float) or.getSalesYetAmount() / 100) + "元";
+//						try {
+//							sendMessageUtil.probationPaySuccess(
+//									ResultInfo.PAYSUCCESS,
+//									payMoney,
+//									orderItemList.get(0).getItemProductName() + "...",
+//									ResultInfo.sendRemark1,
+//									order.getSalesOpenid(),
+//									ResultInfo.ORDER_DETAIL + order.getSalesOrderid());
+//						} catch (Exception e) {
+//							System.out.println("推送支付成功消息失败!");
+//						}
+				//System.out.println("===========pay 201  插入返利到百胜完成==============");
+//						try {    //修改用户购买记录为已购买
+//							memberService.updateIsBaughtByOpenid(openId, 2);
+//							//更新用户绑定状态
+//							Member member = memberService.getMemberByUserOpenId(order.getSalesOpenid());
+//							if (member.getUserIsFlag() != null && member.getUserIsFlag() == 1) {
+//								member.setUserIsFlag(2);//终身绑定
+//								homeService.updateMemberIsFlagByOpenid(member);
+//							}
+//							QrcodeResult qr = temporaryQrcodeService.applyTempQrcode(order.getSalesOpenid());//为用户生成二维码
+//							inLongLogger.info("为用户-->" + order.getSalesOpenid() + ",生成二维码:" + qr.getQroceUrl());
+//						} catch (Exception e) {
+//							System.out.println("修改已购买状态和终身绑定失败!");
+//							e.printStackTrace();
+//						}
+			}
+		}
+	}
+
 	/**
 	 * 解析xml片段为Map
 	 * @param xml

二进制
tooth-wechat-web/src/main/webapp/common/images/pro/50-quan.jpg