Browse Source

积分商城

wangxiaoming 7 years ago
parent
commit
237d0a3e21
15 changed files with 232 additions and 60 deletions
  1. 12 1
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/coupon/CouponItemDto.java
  2. 10 0
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/coupon/CouponType.java
  3. 2 1
      tooth-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java
  4. 9 0
      tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/integral/IntegralProductGradeService.java
  5. 1 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/apparatus/ApparatusServiceImpl.java
  6. 75 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/integral/IntegralProductGradeServiceImpl.java
  7. 2 1
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/couponItemMapper.xml
  8. 5 5
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/apparatus/ApparatusHandler.java
  9. 30 27
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/integral/IntegralOrderHandler.java
  10. 6 0
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/integral/IntegralProductHandler.java
  11. 39 10
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/integral/UseIntegralHandler.java
  12. 4 0
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/member/MemberHandler.java
  13. 13 0
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java
  14. 23 15
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java
  15. 1 0
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/WechatBackHandler.java

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

@@ -21,7 +21,10 @@ public class CouponItemDto implements java.io.Serializable{
 	private Integer couponType;                 //优惠券类型
 	
 	private Integer couponReduce;				//减免额/减免率
-	private Integer couponConsumeEnough;		//消费总金额要求(满足这个条件才能领券)
+	private Integer couponConsumeEnough;		//消费总金额要求(满足这个条件才能使用券)
+
+	private Integer couponToothbrushEnough;		//牙刷需要满足什么金额才能使用,不设置就为0
+
 	@DateTimeFormat(pattern="yyyy-MM-dd")  
 	@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8") 
 	private Date couponReceiveDate;				//领取优惠券时间
@@ -174,4 +177,12 @@ public class CouponItemDto implements java.io.Serializable{
 	public void setCouponIsPurchase(Integer couponIsPurchase) {
 		this.couponIsPurchase = couponIsPurchase;
 	}
+
+	public Integer getCouponToothbrushEnough() {
+		return couponToothbrushEnough;
+	}
+
+	public void setCouponToothbrushEnough(Integer couponToothbrushEnough) {
+		this.couponToothbrushEnough = couponToothbrushEnough;
+	}
 }

+ 10 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/coupon/CouponType.java

@@ -32,6 +32,8 @@ public class CouponType implements Serializable{
 	private Integer couponIsPurchase;			//是否必须购买		1:是  2:否  3:其他优惠券     是否必须购买牙刷
 	private Integer couponConsumeEnough;		//消费总金额要求(满足这个条件才能领券)
 
+	private Integer couponToothbrushEnough;		//牙刷需要满足什么金额才能使用,不设置就为0
+
 	private Integer couponReduce;				//减免率或者减免额
 	private Integer couponGetDays;				//领取有效天数
 	private Integer couponLimitHours;			//领券后有效时间(小时为单位)
@@ -216,6 +218,14 @@ public class CouponType implements Serializable{
 		this.couponIsNewPeople = couponIsNewPeople;
 	}
 
+	public Integer getCouponToothbrushEnough() {
+		return couponToothbrushEnough;
+	}
+
+	public void setCouponToothbrushEnough(Integer couponToothbrushEnough) {
+		this.couponToothbrushEnough = couponToothbrushEnough;
+	}
+
 	@Override
 	public String toString() {
 		return "CouponType [couponId=" + couponId + ", couponName="

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

@@ -107,7 +107,7 @@ public class ResultInfo {
 	 */
 	public static String ORDER_DETAIL = "https://s.iamberry.com/soodo/wechat/order-details.html?orderId=";
 	/*配置首页*/
-	public static String INDEX_DETAIL = "https://s.iamberry.com/soodo/wechat/index.html";
+	public static String INDEX_DETAIL = "https://s.iamberry.com/soodo/wechat/my-center.html";
 	/**
 	 * <礼品卡>推荐人推送消息 跳转页面
 	 */
@@ -295,6 +295,7 @@ public class ResultInfo {
 	public static String COUPON_CONSUME_NO_ENOUGH="消费额度不足,优惠券无法使用";
 	public static String COUPON_NO_MEMBER="非会员需要购买电动牙刷刷头才能使用该优惠券";
 	public static String COUPON_NO_TOOTH="该现金券需要订单中有电动牙刷才能使用";
+	public static String COUPON_NO_TOOTH_AMOUNT="不满足优惠条件";
 
 	public static String COUPONITEMSTATUS_NORMAL = "normal";
 	public static String COUPONITEMSTATUS_PASSED = "passed";

+ 9 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/integral/IntegralProductGradeService.java

@@ -3,6 +3,7 @@ package com.iamberry.wechat.face.integral;
 import com.iamberry.wechat.core.entity.integral.IntegralProductGrade;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  *  积分商品兑换对应等级接口
@@ -40,4 +41,12 @@ public interface IntegralProductGradeService {
      * @return Integer
      */
     Integer  delete(Integer  id);
+
+    /**
+     *  判断该产品是能满足等级
+     * @param userId
+     * @param integralProductId
+     * @return
+     */
+    Map<String,Object> getIsExchange(Integer userId, Integer integralProductId);
 }

+ 1 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/apparatus/ApparatusServiceImpl.java

@@ -103,6 +103,7 @@ public class ApparatusServiceImpl implements ApparatusService {
         }
         return configList.get(0);
     }
+
     @Override
     public Apparatus getApparatus(Apparatus apparatus) {
         return apparatusMapper.getApparatus(apparatus);

+ 75 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/integral/IntegralProductGradeServiceImpl.java

@@ -1,12 +1,21 @@
 package com.iamberry.wechat.service.integral;
 
+import com.iamberry.wechat.core.entity.integral.IntegralProduct;
+import com.iamberry.wechat.core.entity.integral.IntegralProductConvert;
 import com.iamberry.wechat.core.entity.integral.IntegralProductGrade;
+import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.face.integral.IntegralProductGradeService;
+import com.iamberry.wechat.face.member.MemberService;
+import com.iamberry.wechat.service.mapper.IntegralProductConvertMapper;
 import com.iamberry.wechat.service.mapper.IntegralProductGradeMapper;
+import com.iamberry.wechat.service.mapper.IntegralProductMapper;
+import com.iamberry.wechat.service.mapper.MemberMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  *  积分商品兑换对应等级接口
@@ -17,6 +26,13 @@ import java.util.List;
 public class IntegralProductGradeServiceImpl  implements IntegralProductGradeService {
     @Autowired
     private IntegralProductGradeMapper integralProductGradeMapper;
+    @Autowired
+    private IntegralProductMapper integralProductMapper;
+    @Autowired
+    private IntegralProductConvertMapper integralProductConvertMapper;
+    @Autowired
+    private MemberService memberService;
+
     /**
      * 获取集合
      * @param  integralProductGrade
@@ -62,4 +78,63 @@ public class IntegralProductGradeServiceImpl  implements IntegralProductGradeSer
     public  Integer  delete(Integer  id){
         return  integralProductGradeMapper.delete(id);
     }
+
+    @Override
+    public Map<String,Object> getIsExchange(Integer userId, Integer integralProductId) {
+        Map<String,Object> map = new HashMap<>();
+        map.put("isExchange",false);
+        /*判断状态*/
+        IntegralProduct integralProduct = integralProductMapper.getIntegralProductById(integralProductId);
+        if(integralProduct.getIntegralProductStatus() != 1 ){
+            map.put("noExchangeInfo","查询产品信息失败");
+            return map;
+        }
+
+        if(integralProduct.getIntegralProductStatus() != 1){
+            map.put("noExchangeInfo","产品已下架");
+            return map;
+        }
+
+        /*判断数量*/
+        if(integralProduct.getIntegralProductNum() - integralProduct.getIntegralProductRemainingNum() < 1){
+            map.put("noExchangeInfo","产品已售空");
+            return map;
+        }
+
+        /*判断积分是否足够*/
+        IntegralProductConvert integralProductConvert = integralProductConvertMapper.getIntegralProductConvertByProductId(integralProductId);
+        Member member = memberService.getMemberByUserId(userId);
+        if(member.getUserSurplusIntegral() - integralProductConvert.getConvertDfbi() < 0){
+            map.put("noExchangeInfo","会员可用积分不足");
+            return map;
+        }
+
+        /*获取用户当前等级*/
+        Integer rankRuleId = memberService.getUserGrad(userId);
+        boolean isRank = false;
+        IntegralProductGrade integralProductGrade = new IntegralProductGrade();
+        integralProductGrade.setIntegralProductId(integralProductId);
+        List<IntegralProductGrade> integralProductGradeList = integralProductGradeMapper.getIntegralProductGradeList(integralProductGrade);
+        if(integralProductGradeList != null && integralProductGradeList.size() >0){
+            for (IntegralProductGrade ipg:integralProductGradeList) {
+                if(rankRuleId == ipg.getRankId()){
+                    isRank = true;
+                }
+            }
+        }else{
+            isRank = true;
+        }
+
+        if(!isRank){
+            map.put("noExchangeInfo","会员可用积分不足");
+            return map;
+        }
+
+        map.put("isExchange",true);
+        map.put("noExchangeInfo","");
+        return map;
+    }
+
+
+
 }

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

@@ -21,7 +21,8 @@
 		CT.coupon_type couponType,
  		CT.COUPON_REDUCE couponReduce,
  		CT.COUPON_IS_PURCHASE,
- 		CT.COUPON_CONSUME_ENOUGH couponConsumeEnough
+ 		CT.COUPON_CONSUME_ENOUGH couponConsumeEnough,
+ 		CT.coupon_toothbrush_enough couponToothbrushEnough
 	</sql>
  	<!-- 查询优惠券详情列表 分页 -->
  	<select id="getCouponItemDtoList" resultType="CouponItemDto" parameterType="CouponItemDto">

+ 5 - 5
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/apparatus/ApparatusHandler.java

@@ -112,15 +112,15 @@ public class ApparatusHandler {
         //使用request对象的getSession()获取session,如果session不存在则创建一个
         HttpSession session = request.getSession();
 
-
         String text = MessageFormat.format(ImberryConfig.SEND_VERIFICATION_PHONE, num);
         String result = codeService.informShipping(phone, text);
 
+        //将数据存储到session中
+        session.setAttribute("verification_code",num );
+        session.setAttribute("verification_tel",phone );
+        session.setAttribute("verification_date",new Date());
+
         if ("SUCCESS".equals(result)) {
-            //将数据存储到session中
-            session.setAttribute("verification_code",num );
-            session.setAttribute("verification_tel",phone );
-            session.setAttribute("verification_date",new Date());
             logger.info("短信发送成功,验证码为:" + num);
             msg.setResultCode(ResultInfo.SUCCESSCODE);
             msg.setStatus(true);

+ 30 - 27
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/integral/IntegralOrderHandler.java

@@ -71,6 +71,9 @@ public class IntegralOrderHandler {
                 integralCartList.add(integralCart);
             }
             Map<String,Object> map = integralOrderService.addOrder(m.getUserOpenid(),integralCartList);
+        }catch (RuntimeException e){
+            logger.info(e.getMessage());
+            return new ResultMsg(false,"500","兑换失败,请重试!",null);
         }catch (Exception e){
             e.printStackTrace();
             logger.info(e.getMessage());
@@ -82,7 +85,6 @@ public class IntegralOrderHandler {
         return rm;
     }
 
-
     /**
      *积分兑换(订单)集合
      * @param req
@@ -127,32 +129,33 @@ public class IntegralOrderHandler {
      * @param integralOrderId
      * @return
      */
-    @RequestMapping("/order_desc")
-    @ResponseBody
-    public ResultMsg productDesc(HttpServletRequest req,String integralOrderId) throws  Exception{
-        ResultMsg rm=new ResultMsg();
-        Member m= WechatUtils.getUserBySession(req);
-
-        if(integralOrderId == null || "".equals(integralOrderId)){
-            rm.setStatus(true);
-            rm.setResultCode(ResultInfo.ERRORCODE);
-            rm.setMessage("未获取到积分兑换详情!");
-            return rm;
-        }
-
-        IntegralOrder integralOrder = integralOrderService.getIntegralOrderById(integralOrderId);
-        IntegralItem integralItem = new IntegralItem();
-        integralItem.setIntegralItemOrderId(integralOrderId);
-        List<IntegralItem> integralItemList = integralItemService.getIntegralItemList(integralItem);
-        integralOrder.setIntegralItemList(integralItemList);
-
-        Map<String,Object> map = new HashMap<>();
-        rm.setStatus(true);
-        rm.setResultCode(ResultInfo.SUCCESSCODE);
-        rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
-        rm.setData(map);
-        return rm;
-    }
+//    @RequestMapping("/order_desc")
+//    @ResponseBody
+//    public ResultMsg productDesc(HttpServletRequest req,String integralOrderId) throws  Exception{
+//        ResultMsg rm=new ResultMsg();
+//        Member m= WechatUtils.getUserBySession(req);
+//
+//        if(integralOrderId == null || "".equals(integralOrderId)){
+//            rm.setStatus(true);
+//            rm.setResultCode(ResultInfo.ERRORCODE);
+//            rm.setMessage("未获取到积分兑换详情!");
+//            return rm;
+//        }
+//
+//        IntegralOrder integralOrder = integralOrderService.getIntegralOrderById(integralOrderId);
+//        IntegralItem integralItem = new IntegralItem();
+//        integralItem.setIntegralItemOrderId(integralOrderId);
+//        List<IntegralItem> integralItemList = integralItemService.getIntegralItemList(integralItem);
+//        integralOrder.setIntegralItemList(integralItemList);
+//
+//        Map<String,Object> map = new HashMap<>();
+//
+//        rm.setStatus(true);
+//        rm.setResultCode(ResultInfo.SUCCESSCODE);
+//        rm.setMessage(NameUtils.getConfig("SUCCESSINFO"));
+//        rm.setData(map);
+//        return rm;
+//    }
 
 
 }

+ 6 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/integral/IntegralProductHandler.java

@@ -7,6 +7,7 @@ import com.iamberry.wechat.core.entity.integral.IntegralProductPicture;
 import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.page.PageRequest;
 import com.iamberry.wechat.core.entity.page.PagedResult;
+import com.iamberry.wechat.face.integral.IntegralProductGradeService;
 import com.iamberry.wechat.face.integral.IntegralProductPictureService;
 import com.iamberry.wechat.face.integral.IntegralProductService;
 import com.iamberry.wechat.face.member.MemberService;
@@ -33,6 +34,8 @@ public class IntegralProductHandler {
     private IntegralProductPictureService integralProductPictureService;
     @Autowired
     private MemberService memberService;
+    @Autowired
+    private IntegralProductGradeService integralProductGradeService;
 
     /**
      *积分产品集合
@@ -98,9 +101,12 @@ public class IntegralProductHandler {
         integralProductPicture.setIntegralProductId(integralProductId);
         List<IntegralProductPicture> pictureList =  integralProductPictureService.getIntegralProductPictureList(integralProductPicture);
 
+        Map<String,Object> exchangeInfo = integralProductGradeService.getIsExchange(m.getUserId(),integralProductId);
+
         Map<String,Object> map = new HashMap<>();
         map.put("integralProduct",integralProduct);
         map.put("pictureList",pictureList);
+        map.put("exchangeInfo",exchangeInfo);
 
         rm.setStatus(true);
         rm.setResultCode(ResultInfo.SUCCESSCODE);

+ 39 - 10
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/integral/UseIntegralHandler.java

@@ -323,19 +323,48 @@ public class UseIntegralHandler {
             rm.setData("");
             return rm;
         }
-        List<RankRule> lists=new ArrayList<RankRule>();
-        for(RankRule r:list){
-            if(r.getRankRuleIntegral()>userIntegralCount){
-                lists.add(r);
-            }
-        }
-        if(lists == null || lists.size() == 0){
-            lists.add(list.get(list.size()-1));
-        }
+
         /**************未发货数量*****************/
         Integer notSendCount=adminOrderService.getNotSendCount(openid);
 
-        map.put("listRankRule",lists);
+//        List<RankRule> lists=new ArrayList<RankRule>();
+//        for(RankRule r:list){
+//            if(r.getRankRuleIntegral()>userIntegralCount){
+//                lists.add(r);
+//            }
+//        }
+//        if(lists == null || lists.size() == 0){
+//            lists.add(list.get(list.size()-1));
+//        }
+//        map.put("listRankRule",lists);
+
+        Integer  rr = memberService.getUserGrad(member.getUserId());
+        RankRule rankr  = useIntegralService.getRankRuleById(rr);
+        Integer distanceNextLevelIntegral = -1;
+//        List<RankRule> lists=new ArrayList<RankRule>();
+        RankRule  rankRule = null;
+        for(int i =0 ;i<list.size();i++){
+            RankRule r = list.get(i);
+            if(r.getRankRuleIntegral() > userIntegralCount){      //大于本身总积分的
+                if(rankRule == null){
+                    rankRule = r;
+                }else  if(rankRule != null && rankRule.getRankRuleIntegral()!=null && rankRule.getRankRuleIntegral() > r.getRankRuleIntegral()){
+                    rankRule = r;
+                }
+            }
+        }
+        if(rankRule == null){
+            distanceNextLevelIntegral = -1;
+        }else{
+            distanceNextLevelIntegral = rankRule.getRankRuleIntegral() - userIntegralCount;
+        }
+        /*获取个人能用的优惠券数量*/
+//        CouponItem couponItem = new CouponItem();
+//        couponItem.setCouponItemCurrentUserOpenid(member.getUserOpenid());
+//        couponItem.setCouponUseStatus(1);   //coupon_use_status
+//        Integer availableCoupons = couponItemService.userCouponNum(couponItem);
+        map.put("currentRankRule",rankr); //当前会员等级
+        map.put("distanceNextLevelIntegral",distanceNextLevelIntegral); //距离升级所需要的积分
         map.put("notSendCount",notSendCount);
         map.put("memberInfo",memberInfo);
         rm.setStatus(true);

+ 4 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/member/MemberHandler.java

@@ -385,6 +385,10 @@ public class MemberHandler {
 			return rm;
 		}
 		member.setUserOpenid(memberInfo.getUserOpenid());
+
+		member.setUserTel(null);
+		member.setUserBirthDate(null);
+
 		Integer i=memberService.updateMyMember(member);
 		if(i!=null&&i>0){
             rm.setStatus(true);

+ 13 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -161,6 +161,7 @@ public class OrderHandler {
 
 		// 判断当前提交的购物车ID,有多少产品在售
 		int total = 0; // 支付金额
+		int toothbrushTotal = 0; // 支付金额
 		int sum = 0; // 产品数量
 		boolean disable = false;	//标识,是否可以使用(新人券)优惠券,当购买商品需要有牙刷时才能使用优惠券 - 20180316 以前
 		boolean brushFlag = false;	//标识,是否可以使用(新人券)优惠券,只能购买刷头的时候才能使用 - 20180316 以后
@@ -182,6 +183,7 @@ public class OrderHandler {
 			for(String el : els){
 				if(cartDto.getProductType() == Integer.valueOf(el)){		//订单中没有牙刷的时候,不能使用100元优惠券
 					disable = true;
+					toothbrushTotal += cartDto.getCartNum() * cartDto.getProductPrice();
 				}
 			}
 
@@ -221,6 +223,11 @@ public class OrderHandler {
 						flag = false;
 					}
 				}
+				/*需要购买牙刷到某种金额*/
+				if(toothbrushTotal <  couponItemDto.getCouponToothbrushEnough()){
+					flag = false;
+				}
+
 //				Date couponUseEndDate = couponItemDto.getCouponUseEndDate();
 //				Calendar nowTime = Calendar.getInstance();
 //				nowTime.setTime(couponUseEndDate);
@@ -493,6 +500,12 @@ public class OrderHandler {
 				}
 			}
 
+			/*需要购买牙刷到某种金额*/
+			if(brushelTotal <  couponItemDto.getCouponToothbrushEnough()){
+				msg.setMessage(ResultInfo.COUPON_NO_TOOTH_AMOUNT);  //100元现金券
+				return msg;
+			}
+
 			//优惠券的类型,是直接减免额度 还是折扣价
 			if(couponType.getCouponType()==1){
 				if(couponItemDto.getCouponIsNewPeople() == 1 && couponItemDto.getCouponId() == 20000){  //当券 新人卷    刷头抵扣卷

+ 23 - 15
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java

@@ -217,31 +217,39 @@ public class ResponseWechatPayHandler {
 							}
 						}
 
-						/*----------计算积分-----------
-						*  x * (n1*3 - n1) + y * (n2*3)  - coupon*3 + 400
-						*  x:为牙刷价格
-						*  n1: 牙刷数量
-						*  y:刷头价格
-						*  n2:刷头数量
-						*  coupon:优惠券金额
-						*  400:固定值,没加
-						*/
+						/*-- 计算积分 ----*/
 						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());
+							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);
-								allIntegral += integral;
+								allBrushAmount += integral;
 							}
 						}
-						if (couponAmount > 0) {  //有优惠券减去优惠券的金额
-							allIntegral += -couponAmount * 3;
+						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);

+ 1 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/WechatBackHandler.java

@@ -90,4 +90,5 @@ public class WechatBackHandler {
 		mv.setViewName(callbackURL);
 		return mv;
 	}
+
 }