Browse Source

结算页面

wangxiaoming 7 years ago
parent
commit
e08f09b38d

+ 11 - 1
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/coupon/CouponItem.java

@@ -37,6 +37,9 @@ public class CouponItem implements Serializable{
 	private Date couponUseDate;					//使用时间
 	private String couponItemRemark;			//优惠券详情备注
 	private PageBean page;						//分页
+
+	private Integer couponIsNewPeople;  //是否为新人券   1:是   2:否
+
 	public String getCouponItemId() {
 		return couponItemId;
 	}
@@ -100,5 +103,12 @@ public class CouponItem implements Serializable{
 	public void setOldCouponUseStatus(Integer oldCouponUseStatus) {
 		this.oldCouponUseStatus = oldCouponUseStatus;
 	}
-	
+
+	public Integer getCouponIsNewPeople() {
+		return couponIsNewPeople;
+	}
+
+	public void setCouponIsNewPeople(Integer couponIsNewPeople) {
+		this.couponIsNewPeople = couponIsNewPeople;
+	}
 }

+ 1 - 0
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -210,6 +210,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_NO_MEMBER="非会员需要购买电动牙刷才能使用该优惠券";
 
 	public static String COUPONITEMSTATUS_NORMAL = "normal";
 	public static String COUPONITEMSTATUS_PASSED = "passed";

+ 5 - 2
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/cartMapper.xml

@@ -11,8 +11,11 @@ PUBLIC
 	<select id="selectCartByOpenId" parameterType="String" resultType="CartDto">
 		SELECT 
 			C.CART_ID cartId, C.CART_PRODUCT_ID cartProductId,C.CART_COLOR_ID cartColorId, C.CART_NUM cartNum,
-			P.PRODUCT_NAME productName, pc.COLOR_DISCOUNT productDiscount, P.PRODUCT_STATUS productStatus, 
-			pc.COLOR_NAME productColor, P.PRODUCT_INTRODUCE_IMG productIntroduceImg, pc.COLOR_69CODE productRemark,
+			P.PRODUCT_NAME productName, pc.COLOR_DISCOUNT productDiscount,
+			pc.color_status productStatus,
+			pc.COLOR_NAME productColor,
+			pc.color_img productIntroduceImg,
+			pc.COLOR_69CODE productRemark,
 			P.PRODUCT_TYPE productType 
 		FROM 
 			TB_IAMBERRY_SHOP_CART C LEFT JOIN TB_IAMBERRY_PRODUCT_INFO P ON C.CART_PRODUCT_ID = P.PRODUCT_ID 

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

@@ -18,6 +18,7 @@
 		CT.coupon_is_new_people couponIsNewPeople,
 		CT.coupon_is_give couponIsGive,
 		CT.COUPON_NAME couponName,
+		CT.coupon_type couponType,
  		CT.COUPON_REDUCE couponReduce,
  		CT.COUPON_CONSUME_ENOUGH couponConsumeEnough
 	</sql>

+ 19 - 113
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/cart/CartHandlers.java

@@ -53,7 +53,8 @@ import com.iamberry.wechat.tools.StaticInfo;
 import static com.iamberry.wechat.service.ImberryConfig.INFORM_SHIPPING;
 
 @Controller
-@RequestMapping("/wechat/cart")
+//@RequestMapping("/wechat/cart")
+@RequestMapping("/cart")
 public class CartHandlers {
 
 	@Autowired
@@ -94,124 +95,26 @@ public class CartHandlers {
 	public ResultMsg selectCartByOpenId(HttpServletRequest request) throws Exception {
 		ResultMsg remsg = new ResultMsg();
 		Member member =  WechatUtils.getUserBySession(request);
-		//member.setUserId(11907);
-		//member.setUserOpenid("o-icas-WiwbEXfwO1wLGDKQ1iWJU");
+
 		List<CartDto> cartList = cartService.selectCartByOpenId(member.getUserOpenid());
-		String userQrcodeType = request.getParameter("userQrcodeType");
-		
-		/*
-		 * 金额统计
-		 */
+
+		/*金额统计*/
 		Integer total = 0;
 		if (null != cartList && cartList.size() > 0) {
-
-
-            /*//如果是有二维码的商户,进入后显示优惠价
-            int num = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
-            if (num > 0) {
-                QrcodeGift gift = new QrcodeGift();
-                List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
-                if (giftList != null && giftList.size() > 0 && cartList != null && cartList.size() > 0) {
-                    for (CartDto cartDto : cartList) {
-                        for (QrcodeGift qrcodeGift : giftList) {
-                            if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()
-                                && qrcodeGift.getQrcodePreDiscount() != null
-                                && qrcodeGift.getQrcodePreDiscount() > 0) {
-                                cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
-                            }
-                        }
-                    }
-                }
-            }*/
-
-			if (userQrcodeType != null) {
-				QrcodeGift gift = new QrcodeGift();
-				gift.setQrcodeStatus(1);
-				List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
-				if (giftList != null && giftList.size() > 0 && cartList != null && cartList.size() > 0) {
-					for (CartDto cartDto : cartList) {
-						for (QrcodeGift qrcodeGift : giftList) {
-							if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
-								if ("1".equals(userQrcodeType) && qrcodeGift.getQrcodePreDiscount() != null
-										&& qrcodeGift.getQrcodePreDiscount() > 0) {
-									cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
-								} else if ("2".equals(userQrcodeType) && qrcodeGift.getQrcodeSalesDiscount() != null
-										&& qrcodeGift.getQrcodeSalesDiscount() > 0) {
-									cartDto.setProductDiscount(qrcodeGift.getQrcodeSalesDiscount());
-								}
-							}
-						}
-					}
-				}
-			}
-
-			//判断是否为金牌会员下线,如果是,则以优惠价显示,如果不是则按原价显示
-			//查询金牌会员模板id
-			int templateId = systemService.selectOneShopRuleById(114).getRuleNum().intValue();
-			//查询用户信息
-			Member user= memberService.getMemberByUserOpenId(member.getUserOpenid());
-			if (user == null) {
-				remsg.setMessage(ResultInfo.loginOutError);
-				remsg.setStatus(false);
-				remsg.setMessage(ResultInfo.loginOutError);
-				return remsg;
-			}
-			//如果模板id等于金牌会模板id,则该用户为金牌会员下线
-			if (user.getUserDealers() != null && user.getTemplateId() != null
-					&& templateId == user.getTemplateId().intValue()  && user.getUserResType().intValue() == 3) {
-				//若果是金牌会员下线,产品的价格就以优惠价显示
-				for (CartDto cartDto : cartList) {
-					UserGiftDto userGiftDto = new UserGiftDto();
-					userGiftDto.setUserLevel(2);
-					userGiftDto.setUserProductId(cartDto.getCartProductId());
-					userGiftDto.setUserColorId(cartDto.getCartColorId());
-					//根据商品id和会员等级查询礼品信息
-					userGiftDto = productInfoService.selectUserGift(userGiftDto);
-					if (userGiftDto != null) {
-						cartDto.setProductDiscount(userGiftDto.getUserDiscount());
-					}
-				}
-			}
-
-			//根据openid查询该用户是否购买过订单
-			ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
-			shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
-			shopSalesOrderDto.setSalesStatus("2");
-			int orderNum = cartService.selectOrderCount(shopSalesOrderDto);
-
 			for (CartDto cartDto : cartList) {
-
-				//如果购买过订单,则滤芯的价格可按折扣价购买
-				if (orderNum > 0) {
-					if (cartDto.getProductType().intValue() == 2) {
-						UserGiftDto userGiftDto = new UserGiftDto();
-						userGiftDto.setUserLevel(3);
-						userGiftDto.setUserProductId(cartDto.getCartProductId());
-						userGiftDto.setUserColorId(cartDto.getCartColorId());
-						//根据商品id和会员等级查询礼品信息
-						userGiftDto = productInfoService.selectUserGift(userGiftDto);
-						if (userGiftDto != null) {
-							cartDto.setProductDiscount(userGiftDto.getUserDiscount());
-						}
-					}
-				}
-
 				if (cartDto.getProductStatus() != null && cartDto.getProductStatus() == 1) { 	// 产品状态:在售
 					total += cartDto.getCartNum() * cartDto.getProductDiscount();
 				}
 			}
 		}
-		
-		/*
-		 * 组装数据
-		 */
+		/*组装数据*/
 		Map<String, Object> map = new HashMap<String, Object>();
 		map.put("cartList", cartList);
 		map.put("total", total);
-		map.put("isShow", ResultInfo.ISSHOW);
-		map.put("cartDesc", ResultInfo.CARTDESC);
-		map.put("cart_url", ResultInfo.CART_URL);
-		map.put("userQrcodeType",userQrcodeType);
+
+//		map.put("isShow", ResultInfo.ISSHOW);
+//		map.put("cartDesc", ResultInfo.CARTDESC);
+//		map.put("cart_url", ResultInfo.CART_URL);
 
 		remsg.setMessage(NameUtils.getConfig("SUCCESSINFO"));
 		remsg.setResultCode(ResultInfo.SUCCESSCODE);
@@ -244,7 +147,7 @@ public class CartHandlers {
 	}
 
 	/**
-	 * 首页添加商品到购物车
+	 * 首页添加商品到购物车post
 	 * @param productId
 	 * @param cartNum
 	 * @param request
@@ -328,7 +231,7 @@ public class CartHandlers {
 	 * @throws Exception
 	 */
 	@ResponseBody
-	@RequestMapping(value = "/addCart",method = RequestMethod.GET)
+	@RequestMapping(value = "/addCart")
 	public ResultMsg  addCart(HttpServletRequest request,@RequestParam("productId") Integer productId,
 							  @RequestParam("colorId") Integer colorId,
 							  @RequestParam(value = "cartNum", required = false, defaultValue = "1") Integer cartNum) throws Exception {
@@ -362,11 +265,12 @@ public class CartHandlers {
 	 * @throws Exception
 	 */
 	@ResponseBody
-	@RequestMapping(value = "/deleteCart",method = RequestMethod.GET)
+	@RequestMapping(value = "/deleteCart")
 	public ResultMsg  deleteCart(HttpServletRequest request,@RequestParam("productId") Integer productId,
 								 @RequestParam("colorId") Integer colorId,
 								 @RequestParam(value = "cartNum", required = false, defaultValue = "1") Integer cartNum) throws Exception {
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
+
 		ResultMsg remsg=new ResultMsg();
 		CartDto cartDto = new CartDto();
 		cartDto.setCartOpenId(openId);
@@ -396,8 +300,9 @@ public class CartHandlers {
 	 * @return ResultMsg
 	 */
 	@ResponseBody
-	@RequestMapping(value = "/deleteCartByProductId",method = RequestMethod.GET)
-	public ResultMsg deleteCartByProductId(HttpServletRequest request,@RequestParam("productId") Integer productId,
+	@RequestMapping(value = "/deleteCartByProductId")
+	public ResultMsg deleteCartByProductId(HttpServletRequest request,
+										   @RequestParam("productId") Integer productId,
 										   @RequestParam("colorId") Integer colorId) throws Exception{
 		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
 		CartDto cartDto = new CartDto();
@@ -435,7 +340,8 @@ public class CartHandlers {
 									  @RequestParam(value = "pageNO", defaultValue = "1") Integer pageNO,
 									  @RequestParam(value = "salesStatus",defaultValue = "")String salesStatus,
 									  @RequestParam(value = "text",defaultValue = "")String text) throws Exception {
-		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
+//		String openId  = WechatUtils.getUserBySession(request).getUserOpenid();
+		String openId  = "oZ9pv02WMRQgyDVRY1a_daYecwHI";
 		String beginDate = request.getParameter("beginDate");
 		PaperBean bean = new PaperBean();
 		ResultMsg remsg=new ResultMsg();

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

@@ -63,7 +63,8 @@ import com.iamberry.wechat.tools.ValidatorUtil;
  * Update Date:2016年4月20日
  */
 @Controller
-@RequestMapping("/wechat/order")
+//@RequestMapping("/wechat/order")
+@RequestMapping("/order")
 public class OrderHandler {
 
 	@Autowired
@@ -104,7 +105,7 @@ public class OrderHandler {
 	 * @throws Exception
 	 */
 	@ResponseBody
-	@RequestMapping(value = "/payBefore", method = RequestMethod.POST)
+	@RequestMapping(value = "/payBefore")
 	public ResultMsg payBefore(HttpServletRequest request) throws Exception {
 
 		ResultMsg msg = new ResultMsg();
@@ -244,7 +245,12 @@ public class OrderHandler {
 
 		SendPayDto dto = new SendPayDto();
 		dto.setSuccess(false);
-		Member member = WechatUtils.getUserBySession(request); // 当前用户
+
+		//Member member = WechatUtils.getUserBySession(request); // 当前用户
+		Member member = new Member();
+		member.setUserId(14708);
+		member.setUserOpenid("oZ9pv02WMRQgyDVRY1a_daYecwHI");
+
 		/** 数据格式校验 */
 		if (member == null || member.getUserOpenid() == null) {// 校验当前用户信息是否丢失
 			msg.setMessage(ResultInfo.loginOutError);
@@ -280,119 +286,18 @@ public class OrderHandler {
 			return msg;
 		}
 
-		//根据openid查询该用户是否购买过订单
-		ShopSalesOrderDto shopSalesOrderDto = new ShopSalesOrderDto();
-		shopSalesOrderDto.setSalesOpenid(member.getUserOpenid());
-		shopSalesOrderDto.setSalesStatus("2");
-		int orderNum = cartService.selectOrderCount(shopSalesOrderDto);
+		/*是否含有电动牙刷*/
+		boolean isContainProduct = false;
 
 		int total = 0; // 需要支付的总额, 单位为分
-
-
-		//查询金牌会员模板id
-		int templateId = systemService.selectOneShopRuleById(114).getRuleNum().intValue();
-		UserGiftDto userGift = null;
-		int giftNum = 0;
-
 		/** 提前准备订单项数据 */
 		/** 准备数据 */
 		Order order = new Order();
 		order.setSalesOrderid(OrderNOUtil.createOrderCode(member.getUserId())); // 订单ID
 		List<OrderItem> list = new ArrayList<OrderItem>();
 		List<Integer> cartIds = new ArrayList<Integer>();
-		String userQrcodeType = request.getParameter("userQrcodeType");
 		int num = productInfoService.getQrCodeByPlaceOpenId(member.getUserOpenid());
 		for (CartDto cartDto : cartDtos) {
-
-            /*//如果是有二维码的商户,进入后显示优惠价
-            if (num > 0) {
-                QrcodeGift gift = new QrcodeGift();
-                List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
-                if (giftList != null && giftList.size() > 0) {
-                    for (QrcodeGift qrcodeGift : giftList) {
-                        if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()
-                            && qrcodeGift.getQrcodePreDiscount() != null
-                            && qrcodeGift.getQrcodePreDiscount() > 0) {
-                            cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
-                            cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
-                        }
-                    }
-                }
-            }*/
-
-			if (userQrcodeType != null && !"".equals(userQrcodeType)) {
-
-				//如果是扫描优惠二维码进来,则显示优惠价并赠送滤芯
-				QrcodeGift gift = new QrcodeGift();
-				gift.setQrcodeStatus(1);
-				List<QrcodeGift> giftList = productInfoService.listQrcodeGift(gift);
-				if (giftList != null && giftList.size() > 0) {
-					for (QrcodeGift qrcodeGift : giftList) {
-						if (cartDto.getCartColorId().intValue() == qrcodeGift.getQrcodeColorId()) {
-							switch (userQrcodeType) {
-								case "1":
-									if (qrcodeGift.getQrcodePreDiscount() != null && qrcodeGift.getQrcodePreDiscount() > 0) {
-										cartDto.setProductDiscount(qrcodeGift.getQrcodePreDiscount());
-										cartDto.setProductPrice(qrcodeGift.getQrcodePreDiscount());
-									}
-									if (qrcodeGift.getQrcodePreGiftColor() != null) {
-										for (int i = 0;i < cartDto.getCartNum();i++) {
-											preGift.append(qrcodeGift.getQrcodePreGiftColor());
-											preGift.append(",");
-										}
-									}
-									break;
-								case "2":
-									if (qrcodeGift.getQrcodeSalesDiscount() != null && qrcodeGift.getQrcodeSalesDiscount() > 0) {
-										cartDto.setProductDiscount(qrcodeGift.getQrcodeSalesDiscount());
-										cartDto.setProductPrice(qrcodeGift.getQrcodeSalesDiscount());
-									}
-									if (qrcodeGift.getQrcodeSalesGiftColor() != null) {
-										for (int i = 0;i < cartDto.getCartNum();i++) {
-											preGift.append(qrcodeGift.getQrcodeSalesGiftColor());
-											preGift.append(",");
-										}
-									}
-									break;
-							}
-						}
-					}
-				}
-			}
-
-			//如果购买过订单,则滤芯的价格可按折扣价购买
-			if (orderNum > 0) {
-				if (cartDto.getProductType().intValue() == 2) {
-					UserGiftDto userGiftDto = new UserGiftDto();
-					userGiftDto.setUserLevel(3);
-					userGiftDto.setUserProductId(cartDto.getCartProductId());
-					userGiftDto.setUserColorId(cartDto.getCartColorId());
-					//根据商品id和会员等级查询礼品信息
-					userGiftDto = productInfoService.selectUserGift(userGiftDto);
-					if (userGiftDto != null) {
-						cartDto.setProductPrice(userGiftDto.getUserDiscount());
-					}
-				}
-			}
-
-			//如果模板id等于金牌会模板id,则该用户为金牌会员下线
-			if (member.getUserDealers() != null && member.getTemplateId() != null
-					&& templateId == member.getTemplateId().intValue() && member.getUserResType().intValue() == 3) {
-				UserGiftDto userGiftDto = new UserGiftDto();
-				userGiftDto.setUserLevel(2);
-				userGiftDto.setUserProductId(cartDto.getCartProductId());
-				userGiftDto.setUserColorId(cartDto.getCartColorId());
-				//根据商品id和会员等级查询礼品信息
-				userGiftDto = productInfoService.selectUserGift(userGiftDto);
-				if (userGiftDto != null) {
-					cartDto.setProductPrice(userGiftDto.getUserDiscount());
-					giftNum += cartDto.getCartNum();
-					if (userGift == null) {
-						userGift = userGiftDto;
-					}
-				}
-			}
-
 			if (cartDto.getProductStatus() != null && cartDto.getProductStatus().intValue() == 1) {
 				cartIds.add(cartDto.getCartId());
 				Integer subTotal = cartDto.getCartNum() * cartDto.getProductPrice(); // 小计
@@ -410,63 +315,8 @@ public class OrderHandler {
 				item.setItemColorId(cartDto.getCartColorId());
 				list.add(item);
 			}
-		}
-
-		//扫描优惠二维码赠送赠品信息
-		if (preGift != null && !"".equals(preGift.toString())) {
-			String[] giftss = preGift.toString().split(",");
-			ProductColor color = new ProductColor();
-			color.setPage(null);
-			List<ProductColor> colorList = productColorService.selectProductColorList(color);
-			for (int i = 0;i < giftss.length;i++) {
-				boolean cartFlag = false;
-				for (OrderItem item : list) {
-					//判断是否已经存在该赠品,如果存在则数量加1
-					if (Integer.parseInt(giftss[i]) == item.getItemColorId() && item.getItemTotal() == 0) {
-						item.setItemNum(item.getItemNum().intValue() + 1);
-						cartFlag = true;
-					}
-				}
-				//如果不存在,则新增订单项
-				if (!cartFlag) {
-					for (ProductColor productColor : colorList) {
-						if (Integer.parseInt(giftss[i]) == productColor.getColorId()) {
-							OrderItem orderItem = new OrderItem();
-							orderItem.setItemNum(1);
-							orderItem.setItemProductDiscount(0);
-							orderItem.setItemProductId(productColor.getColorProductId());
-							orderItem.setItemProductName(productColor.getColorProductName());
-							orderItem.setItemProductPic(productColor.getColorProductPic());
-							orderItem.setItemSalesOrderid(order.getSalesOrderid());
-							orderItem.setItemTotal(0);
-							orderItem.setItemProductType(productColor.getColorProductType());
-							orderItem.setItemProductPrice(0);
-							orderItem.setItemColorId(productColor.getColorId());
-							list.add(orderItem);
-						}
-					}
-				}
-			}
-		}
-
-		//如果模板id等于金牌会模板id,来源是3,则该用户为金牌会员直接下线,直接下线送三年滤芯
-		if (member.getUserDealers() != null && member.getTemplateId() != null &&
-				templateId == member.getTemplateId().intValue() && member.getUserResType().intValue() == 3) {
-			//当userGift不为空时,说明该用户购买的商品有奖励礼品,奖励礼品取第一个产品的,不适用于多个产品有不同奖励礼品的情况
-			if (userGift != null && userGift.getUserGiftId() != null && !"".equals(userGift.getUserGiftId())) {
-				Product product = productInfoService.getProductByProductId(userGift.getUserGiftId(),userGift.getUserGiftColor());
-				OrderItem orderItem = new OrderItem();
-				orderItem.setItemNum(userGift.getUserGiftCount() * giftNum);
-				orderItem.setItemProductDiscount(0);
-				orderItem.setItemProductId(userGift.getUserGiftId());
-				orderItem.setItemProductName(product.getProductName());
-				orderItem.setItemProductPic(product.getProductIntroduceImg());
-				orderItem.setItemSalesOrderid(order.getSalesOrderid());
-				orderItem.setItemTotal(0);
-				orderItem.setItemProductType(product.getProductType().getTypeId());
-				orderItem.setItemProductPrice(0);
-				orderItem.setItemColorId(userGift.getUserColorId());
-				list.add(orderItem);
+			if(cartDto.getProductType() == 100){		//当订单中有电动牙刷时,isContainProduct为true
+				isContainProduct = true;
 			}
 		}
 
@@ -491,6 +341,7 @@ public class OrderHandler {
 			couponItem.setCouponItemUseropenid(couponItemDto.getUseropenid());
 			couponItem.setCouponUseEndDate(couponItemDto.getCouponUseEndDate());
 			couponItem.setCouponUseDate(couponItemDto.getCouponUseDate());
+			couponItem.setCouponIsNewPeople(couponItemDto.getCouponIsNewPeople());
 
 			if(null==couponItemDto || !couponItemDto.getUseropenid().equals(member.getUserOpenid()) || couponItemDto.getCouponUseStatus()!=1){
 				msg.setMessage(ResultInfo.COUPON_INVALID); //优惠券无效
@@ -500,20 +351,25 @@ public class OrderHandler {
 				msg.setMessage(ResultInfo.COUPON_OUTOFDATE); //优惠券过期
 				return msg;
 			}
-
 			//消费达到指定额度
 			CouponType couponType = couponTypeService.getCouponTypeById(couponItemDto.getCouponId());
 			if(couponType.getCouponConsumeEnough()>total){
 				msg.setMessage(ResultInfo.COUPON_CONSUME_NO_ENOUGH); //消费额度不足
 				return msg;
 			}
-			//优惠券的类型,是直接减免额度 还是折扣价 
+			if(member.getUserIdentity() != 1){  //判断该用户是否为会员
+				if(couponItem.getCouponIsNewPeople() == 1 && !isContainProduct){
+					msg.setMessage(ResultInfo.COUPON_NO_MEMBER); //非会员需要购买电动牙刷才能使用该优惠券
+					return msg;
+				}
+			}
+			//优惠券的类型,是直接减免额度 还是折扣价
 			if(couponType.getCouponType()==1){
 				total=total-couponType.getCouponReduce();
 			}else if(couponType.getCouponType()==2){
+				Integer all =  new Integer(total);
 				total=total*couponType.getCouponReduce()/100;
 			}
-
 		}
 		if(total==0 || total<0){
 			total=0;
@@ -522,20 +378,11 @@ public class OrderHandler {
 			mustPay=total;
 		}
 
-		//获取账户余额,判断是否在可用范围内
-		int balancePayAmount=temp.getBalancePayAmount();
-		if(balancePayAmount>0 && member.getUserIncome()>balancePayAmount){
-			mustPay=total-temp.getBalancePayAmount()>0?total-temp.getBalancePayAmount():0;
-		}else if(balancePayAmount>0 && member.getUserIncome()<balancePayAmount){
-			msg.setMessage(ResultInfo.NO_ENOUGH_FOR_PAY);
-			return msg;
-		}
-
 		order.setSalesYetAmount(total);
 		order.setSalesRateAmount(0);
-		order.setSalesIntegralNum(temp.getOrderIntegralNum()); // 订单使用积分
+		order.setSalesIntegralNum(0); // 订单使用积分
 		order.setSalesCreateDate(new Date()); // 创建时间
-		order.setBalancePayAmount(temp.getBalancePayAmount()); //账户余额支付金额
+		order.setBalancePayAmount(0); //账户余额支付金额
 		order.setCouponId(couponId);   //优惠券id
 
 		order.setSalesStatus(1); // 待支付订单
@@ -550,7 +397,7 @@ public class OrderHandler {
 		boolean flag = false;
 		try {
 			flag = cartService.addOrderAndSaveOrderItem(order, list, cartIds);
-//System.out.println("====插入订单列表信息===="+flag);
+		//System.out.println("====插入订单列表信息===="+flag);
 			//修改优惠券状态为临时状态
 			if(hasCoupon){
 				couponItem.setCouponUseStatus(7);
@@ -601,40 +448,7 @@ public class OrderHandler {
 				couponItem.setCouponUseDate(new Date());//添加使用时间
 				int i=couponItemService.updateCouponItemById(couponItem);
 			}
-
-			//更新账户余额
-			if(balancePayAmount>0){
-				member.setUserIncome(-balancePayAmount);
-				memberService.updateUserIncomeByOpenId(member);
-
-				//修改用户购买记录为已购买
-				memberService.updateIsBaughtByOpenid(member.getUserOpenid(), 2);
-				//更新用户绑定状态
-				if (member.getUserIsFlag()!= null && member.getUserIsFlag() == 1) {
-					member.setUserIsFlag(2);//终身绑定
-					homeService.updateMemberIsFlagByOpenid(member);
-				}
-				try {
-					temporaryQrcodeService.applyTempQrcode(member.getUserOpenid());//为用户生成二维码
-				} catch (Exception e) {
-					System.out.println("为用户生成二维码失败!");
-				}
-
-				//现金使用记录
-				CashLog log=new CashLog();
-				log.setCashLogsIntroduction("订单支出");
-				log.setCashLogsNum(balancePayAmount);
-				log.setCashLogsOpenid(member.getUserOpenid());
-				log.setCashLogsType(2);
-				log.setCashLogsResType(3);
-				log.setCashLogsOrderid(order.getSalesOrderid());
-				log.setCashLogsCreateDate(nowDate);
-				cashLogService.addCashLog(log);
-
-			}
-			rebackServices.loadSingleOrderReward(order);
 			productInfoService.updateProductNumList(order.getSalesOrderid());
-
 		}
 		msg.setResultCode(ResultInfo.SUCCESSCODE);
 		msg.setMessage(NameUtils.getConfig("SUCCESSINFO"));

+ 51 - 11
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java

@@ -6,6 +6,7 @@ import com.iamberry.wechat.core.entity.OrderUtil;
 import com.iamberry.wechat.core.entity.admin.ShopSystemRule;
 import com.iamberry.wechat.core.entity.agentInfo.AgentOrder;
 import com.iamberry.wechat.core.entity.coupon.CouponItem;
+import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
 import com.iamberry.wechat.core.entity.giftCard.AgentInfo;
 import com.iamberry.wechat.core.entity.giftCard.AgentMachine;
 import com.iamberry.wechat.core.entity.giftCard.AgentPayLogs;
@@ -15,6 +16,7 @@ import com.iamberry.wechat.core.entity.member.CashLog;
 import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.mq.MQMessage;
 import com.iamberry.wechat.core.entity.order.Order;
+import com.iamberry.wechat.core.entity.order.OrderItem;
 import com.iamberry.wechat.core.entity.order.ProbationOrder;
 import com.iamberry.wechat.core.entity.order.ProbationOrderDto;
 import com.iamberry.wechat.core.entity.probation.ProbationAwardRelu;
@@ -33,6 +35,7 @@ import com.iamberry.wechat.face.lease.LeaseOrderService;
 import com.iamberry.wechat.face.member.CashLogService;
 import com.iamberry.wechat.face.member.MemberService;
 import com.iamberry.wechat.face.mq.EfastOrderService;
+import com.iamberry.wechat.face.order.AdminOrderService;
 import com.iamberry.wechat.face.order.AdminProbationOrderService;
 import com.iamberry.wechat.face.order.CodeService;
 import com.iamberry.wechat.face.order.ProbationShopOrderService;
@@ -118,9 +121,11 @@ public class ResponseWechatPayHandler {
 	private EfastOrderService efastOrderService;
 	@Autowired
 	private AgentPurchaseOrderService agentPurchaseOrderService;
+	@Autowired
+	private AdminOrderService adminOrderService;
 
 	/**
-	 * 销售订单支付回调方法
+	 * 销售订单支付回调方法 -- tooth订单返回
 	 */
 	@RequestMapping("/orderPayBack")
 	public synchronized void orderPayBack(HttpServletRequest request, 
@@ -154,35 +159,70 @@ public class ResponseWechatPayHandler {
 					order.setSalesTransactionId(wpr.getTransactionId()); // 微信支付ID
 					order.setSalesTransactionDate(new Date()); // 微信支付时间
 					order.setSalesOpenid(wpr.getOpenid());
-					
+
+					Order or = adminOrderService.getShopOrderByOrderId(orderIdMD5);
+					if(or.getSalesStatus() != 1){
+						return;
+					}
+
 					// 修改订单状态
 					int count = cartService.updateOrderStatus(order);
 
 					//发送短信给运营部
-					ShopSystemRule rule = cartService.getReluByRid(241);
+					/*ShopSystemRule rule = cartService.getReluByRid(241);
 					try {
 						String text = MessageFormat.format(ImberryConfig.ORDER_UPDATE_STATUS_TEXT, "发货");
 						codeService.informShipping(rule.getRuleDesc(),text);
 					} catch (Exception e) {
 						System.out.println("订单换货发送消息失败!");
-					}
-					
-//System.out.println("===========pay 132 修改订单状态==============");
+					}*/
+
+					/*计算使用优惠券优惠的金额*/
+					Integer couponAmount = 0;
+
 					//修改优惠券状态
 					order=cartService.selectOrderInfoById(order);
-					
-//System.out.println("===========pay 136 修改订单状态=============="+order.getSalesOrderid());
 					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();
+						}else if(couponItemDto.getCouponType() == 2){  ////按照折扣
+							couponAmount = or.getSalesAmount() - or.getSalesAmount()/(couponItemDto.getCouponReduce()/100);
+						}
 					}
+
+					/*----------计算积分-----------
+					*  x * (n1*3 - n1) + y * (n2*3)  - coupon*3 + 400
+					*/
+					List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(orderIdMD5);
+					Integer allIntegral = 0;  //总积分
+					for(int i=0;i<orderItemList.size();i++){
+						OrderItem orderItem = orderItemList.get(i);
+						if(orderItem.getItemProductType()==100){//类型为电动牙刷
+							Integer integral = orderItem.getItemProductDiscount() * (orderItem.getItemNum()*3-orderItem.getItemNum());
+							allIntegral += integral;
+						}else{
+							Integer integral = orderItem.getItemProductDiscount() * (orderItem.getItemNum()*3);
+							allIntegral += integral;
+						}
+
+					}
+					if(couponAmount > 0){  //有优惠券减去优惠券的金额
+						allIntegral += -couponAmount*3;
+					}
+					//allIntegral
+					/*----------计算积分-----------*/
+
+
 					//更新账户余额
-					int balancePayAmount=order.getBalancePayAmount();
+					/*int balancePayAmount=order.getBalancePayAmount();
 					if(balancePayAmount>0){
 						Member member=new Member();
 						member.setUserOpenid(order.getSalesOpenid());
@@ -199,7 +239,7 @@ public class ResponseWechatPayHandler {
 						log.setCashLogsOrderid(order.getSalesOrderid());
 						log.setCashLogsCreateDate(nowDate);
 						count=cashLogService.addCashLog(log);
-					}
+					}*/
 					if (count < 1) {
 						resXml = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[报文有误]]></return_msg></xml>";
 					}