wangxiaoming hace 6 años
padre
commit
a0cd78e57d

+ 23 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/cart/OrderPayDto.java

@@ -1,9 +1,12 @@
 package com.iamberry.wechat.core.entity.cart;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
+import com.iamberry.wechat.core.entity.coupon.ActivityDate;
 import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
+import com.iamberry.wechat.core.entity.coupon.SalesActivities;
 
 /**
  * @author 何秀刚
@@ -41,6 +44,10 @@ public class OrderPayDto implements java.io.Serializable{
 
 	private String channelName;	//自提地点
 
+	private List<SalesActivities> salesActivitiesList = new ArrayList<>();	//满减
+
+	private ActivityDate activityDate = new ActivityDate();
+
 	public boolean isDisable() {
 		return disable;
 	}
@@ -136,4 +143,20 @@ public class OrderPayDto implements java.io.Serializable{
 	public void setChannelName(String channelName) {
 		this.channelName = channelName;
 	}
+
+	public List<SalesActivities> getSalesActivitiesList() {
+		return salesActivitiesList;
+	}
+
+	public void setSalesActivitiesList(List<SalesActivities> salesActivitiesList) {
+		this.salesActivitiesList = salesActivitiesList;
+	}
+
+	public ActivityDate getActivityDate() {
+		return activityDate;
+	}
+
+	public void setActivityDate(ActivityDate activityDate) {
+		this.activityDate = activityDate;
+	}
 }

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

@@ -0,0 +1,65 @@
+package com.iamberry.wechat.core.entity.coupon;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ActivityDate implements Serializable{
+    private static final long serialVersionUID = -2896156560873603394L;
+    //开始时间
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date beginDate;
+    //结束时间
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date endDate;
+    //类型:  1:双十二
+    private Integer type;
+    //状态:  1:可用   2:停用
+    private boolean status;
+    //说明
+    private String remark;
+
+    public Date getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Date beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public boolean isStatus() {
+        return status;
+    }
+
+    public void setStatus(boolean status) {
+        this.status = status;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+}

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

@@ -0,0 +1,133 @@
+package com.iamberry.wechat.core.entity.coupon;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import  java.util.Date;
+import  java.io.Serializable;
+/**
+ *  活动表类
+ * @author Administrator
+ * @Date 2018-11-30
+ */
+public class SalesActivities  implements  Serializable{
+    private static final long serialVersionUID = -1805627646456909837L;
+    //id
+    private Integer salesActivitiesId;
+    //名称
+    private String salesActivitiesName;
+    //类型 1:双十二
+    private Integer salesActivitiesType;
+    //满足金额
+    private Integer salesActivitiesFull;
+    //减去金额
+    private Integer salesActivitiesReduction;
+    //状态1:使用 2停用
+    private Integer salesActivitiesStatus;
+    //是否为全场 1:全场
+    private Integer salesActivitiesScenes;
+    //活动开始时间
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date salesActivitiesBeginTime;
+    //活动结束时间
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date salesActivitiesEndTime;
+    //创建时间
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date salesActivitiesCreateTime;
+    //修改时间
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    private Date salesActivitiesUpdateTime;
+
+    public Integer getSalesActivitiesId(){
+        return salesActivitiesId;
+    }
+
+    public void setSalesActivitiesId(Integer  salesActivitiesId){
+        this.salesActivitiesId=salesActivitiesId;
+    }
+
+    public String getSalesActivitiesName(){
+        return salesActivitiesName;
+    }
+
+    public void setSalesActivitiesName(String  salesActivitiesName){
+        this.salesActivitiesName=salesActivitiesName;
+    }
+
+    public Integer getSalesActivitiesType(){
+        return salesActivitiesType;
+    }
+
+    public void setSalesActivitiesType(Integer  salesActivitiesType){
+        this.salesActivitiesType=salesActivitiesType;
+    }
+
+    public Integer getSalesActivitiesFull(){
+        return salesActivitiesFull;
+    }
+
+    public void setSalesActivitiesFull(Integer  salesActivitiesFull){
+        this.salesActivitiesFull=salesActivitiesFull;
+    }
+
+    public Integer getSalesActivitiesReduction(){
+        return salesActivitiesReduction;
+    }
+
+    public void setSalesActivitiesReduction(Integer  salesActivitiesReduction){
+        this.salesActivitiesReduction=salesActivitiesReduction;
+    }
+
+    public Integer getSalesActivitiesStatus(){
+        return salesActivitiesStatus;
+    }
+
+    public void setSalesActivitiesStatus(Integer  salesActivitiesStatus){
+        this.salesActivitiesStatus=salesActivitiesStatus;
+    }
+
+    public Integer getSalesActivitiesScenes(){
+        return salesActivitiesScenes;
+    }
+
+    public void setSalesActivitiesScenes(Integer  salesActivitiesScenes){
+        this.salesActivitiesScenes=salesActivitiesScenes;
+    }
+
+    public Date getSalesActivitiesBeginTime(){
+        return salesActivitiesBeginTime;
+    }
+
+    public void setSalesActivitiesBeginTime(Date  salesActivitiesBeginTime){
+        this.salesActivitiesBeginTime=salesActivitiesBeginTime;
+    }
+
+    public Date getSalesActivitiesEndTime(){
+        return salesActivitiesEndTime;
+    }
+
+    public void setSalesActivitiesEndTime(Date  salesActivitiesEndTime){
+        this.salesActivitiesEndTime=salesActivitiesEndTime;
+    }
+
+    public Date getSalesActivitiesCreateTime(){
+        return salesActivitiesCreateTime;
+    }
+
+    public void setSalesActivitiesCreateTime(Date  salesActivitiesCreateTime){
+        this.salesActivitiesCreateTime=salesActivitiesCreateTime;
+    }
+
+    public Date getSalesActivitiesUpdateTime(){
+        return salesActivitiesUpdateTime;
+    }
+
+    public void setSalesActivitiesUpdateTime(Date  salesActivitiesUpdateTime){
+        this.salesActivitiesUpdateTime=salesActivitiesUpdateTime;
+    }
+}

+ 72 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/product/Product.java

@@ -62,6 +62,14 @@ public class Product implements java.io.Serializable{
 
 	private String productShowPrice;	//页面展示价格
 
+	private Integer productTypeId;	//类型id
+	private String colorImg;	//颜色图片
+	private String colorName;	//颜色名称
+	private Integer colorAllNum;	//产品总数量
+	private Integer colorSoldNum;	//产品售出数量
+	private String colorPresent;	//颜色介绍
+	private Integer colorDiscount;	//优惠价
+	private Integer colorPrice;	//原价
 
 	public Integer getColorId() {
 		return colorId;
@@ -295,6 +303,70 @@ public class Product implements java.io.Serializable{
 		this.productShowPrice = productShowPrice;
 	}
 
+	public Integer getProductTypeId() {
+		return productTypeId;
+	}
+
+	public void setProductTypeId(Integer productTypeId) {
+		this.productTypeId = productTypeId;
+	}
+
+	public String getColorImg() {
+		return colorImg;
+	}
+
+	public void setColorImg(String colorImg) {
+		this.colorImg = colorImg;
+	}
+
+	public String getColorName() {
+		return colorName;
+	}
+
+	public void setColorName(String colorName) {
+		this.colorName = colorName;
+	}
+
+	public Integer getColorAllNum() {
+		return colorAllNum;
+	}
+
+	public void setColorAllNum(Integer colorAllNum) {
+		this.colorAllNum = colorAllNum;
+	}
+
+	public Integer getColorSoldNum() {
+		return colorSoldNum;
+	}
+
+	public void setColorSoldNum(Integer colorSoldNum) {
+		this.colorSoldNum = colorSoldNum;
+	}
+
+	public String getColorPresent() {
+		return colorPresent;
+	}
+
+	public void setColorPresent(String colorPresent) {
+		this.colorPresent = colorPresent;
+	}
+
+	public Integer getColorDiscount() {
+		return colorDiscount;
+	}
+
+	public void setColorDiscount(Integer colorDiscount) {
+		this.colorDiscount = colorDiscount;
+	}
+
+	public Integer getColorPrice() {
+		return colorPrice;
+	}
+
+	public void setColorPrice(Integer colorPrice) {
+		this.colorPrice = colorPrice;
+	}
+
 	@Override
 	public String toString() {
 		return "Product [productId=" + productId + ", productName="

+ 43 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/coupon/SalesActivitiesService.java

@@ -0,0 +1,43 @@
+package com.iamberry.wechat.face.coupon;
+
+import com.iamberry.wechat.core.entity.coupon.SalesActivities;
+
+import java.util.List;
+
+/**
+ *  活动表接口
+ * @author Administrator
+ * @Date 2018-11-30
+ */
+public interface SalesActivitiesService {
+    /**
+     * 获取集合
+     * @param  salesActivities
+     * @return List
+     */
+    List<SalesActivities> getSalesActivitiesList(SalesActivities  salesActivities);
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  salesActivities
+     */
+    SalesActivities  getSalesActivitiesById(Integer  id);
+    /**
+     * 增加数据
+     * @param  salesActivities
+     * @return Integer
+     */
+    Integer  save(SalesActivities  salesActivities);
+    /**
+     * 修改数据
+     * @param  salesActivities
+     * @return Integer
+     */
+    Integer  update(SalesActivities  salesActivities);
+    /**
+     * 删除数据
+     * @param  id
+     * @return Integer
+     */
+    Integer  delete(Integer  id);
+}

+ 65 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/coupon/SalesActivitiesServiceImpl.java

@@ -0,0 +1,65 @@
+package com.iamberry.wechat.service.coupon;
+
+import com.iamberry.wechat.core.entity.coupon.SalesActivities;
+import com.iamberry.wechat.face.coupon.SalesActivitiesService;
+import com.iamberry.wechat.service.mapper.SalesActivitiesMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ *  活动表接口
+ * @author Administrator
+ * @Date 2018-11-30
+ */
+@Service
+public class SalesActivitiesServiceImpl  implements SalesActivitiesService {
+    @Autowired
+    private SalesActivitiesMapper salesActivitiesMapper;
+    /**
+     * 获取集合
+     * @param  salesActivities
+     * @return List
+     */
+    @Override
+    public List<SalesActivities> getSalesActivitiesList(SalesActivities  salesActivities){
+        return  salesActivitiesMapper.getSalesActivitiesList(salesActivities);
+    }
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  salesActivities
+     */
+    @Override
+    public  SalesActivities  getSalesActivitiesById(Integer  id){
+        return  salesActivitiesMapper.getSalesActivitiesById(id);
+    }
+    /**
+     * 增加数据
+     * @param  salesActivities
+     * @return Integer
+     */
+    @Override
+    public  Integer  save(SalesActivities  salesActivities){
+        return  salesActivitiesMapper.save(salesActivities);
+    }
+    /**
+     * 修改数据
+     * @param  salesActivities
+     * @return Integer
+     */
+    @Override
+    public  Integer  update(SalesActivities  salesActivities){
+        return  salesActivitiesMapper.update(salesActivities);
+    }
+    /**
+     * 删除数据
+     * @param  id
+     * @return Integer
+     */
+    @Override
+    public  Integer  delete(Integer  id){
+        return  salesActivitiesMapper.delete(id);
+    }
+}

+ 43 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/SalesActivitiesMapper.java

@@ -0,0 +1,43 @@
+package com.iamberry.wechat.service.mapper;
+
+import com.iamberry.wechat.core.entity.coupon.SalesActivities;
+
+import java.util.List;
+
+/**
+ *  活动表接口
+ * @author Administrator
+ * @Date 2018-11-30
+ */
+public interface SalesActivitiesMapper {
+    /**
+     * 获取集合
+     * @param  salesActivities
+     * @return List
+     */
+    List<SalesActivities> getSalesActivitiesList(SalesActivities  salesActivities);
+    /**
+     * 查询单条数据
+     * @param  id
+     * @return  salesActivities
+     */
+    SalesActivities  getSalesActivitiesById(Integer  id);
+    /**
+     * 增加数据
+     * @param  salesActivities
+     * @return Integer
+     */
+    Integer  save(SalesActivities  salesActivities);
+    /**
+     * 修改数据
+     * @param  salesActivities
+     * @return Integer
+     */
+    Integer  update(SalesActivities  salesActivities);
+    /**
+     * 删除数据
+     * @param  id
+     * @return Integer
+     */
+    Integer  delete(Integer  id);
+}

+ 20 - 2
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/productInfoMapper.xml

@@ -89,9 +89,27 @@
     <!--根据产品颜色id查询产品信息-->
     <select id="selectProductByColorId"  resultType="Product">
         SELECT
-        <include refid="product"></include>,
+        PRODUCT_ID productId,
+        PRODUCT_NAME productName,
+        PRODUCT_ABBREVIATION productAbbreviation,
+		PRODUCT_SALESNUM productSalesnum,
+		PRODUCT_ACCESSNUM productAccessnum,
+		PRODUCT_STATUS productStatus,
+		PRODUCT_INTRODUCE_IMG productIntroduceImg,
+		PRODUCT_PARAMETER_IMG productParameterImg,
+		PRODUCT_CREATE_DATE productCreateDate,
+		PRODUCT_SORT_NUM productSortNum,
+		PRODUCT_COLOR_DES productColorDes,
+		PRODUCT_REMARK productRemark,
+		PRODUCT_TYPE productTypeId,
+		PRODUCT_RENT_TYPE productRentType,
         PC.COLOR_NAME,
-		PC.COLOR_PRESENT
+		PC.COLOR_PRESENT,
+		PC.color_img,
+		PC.color_all_num,
+		PC.color_sold_num,
+		PC.color_discount,
+		PC.color_price
         FROM tb_iamberry_product_info PI
         LEFT JOIN tb_iamberry_product_color PC ON PC.color_product_id=PI.PRODUCT_ID
         WHERE PC.color_id=#{colorId} AND color_status=1

+ 129 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/salesActivitiesMapper.xml

@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.iamberry.wechat.service.mapper.SalesActivitiesMapper">
+    <resultMap  id="BaseResultMap" type="SalesActivities" >
+        <result    column="sales_activities_id"    property="salesActivitiesId" />
+        <result    column="sales_activities_name"    property="salesActivitiesName" />
+        <result    column="sales_activities_type"    property="salesActivitiesType" />
+        <result    column="sales_activities_full"    property="salesActivitiesFull" />
+        <result    column="sales_activities_reduction"    property="salesActivitiesReduction" />
+        <result    column="sales_activities_status"    property="salesActivitiesStatus" />
+        <result    column="sales_activities_scenes"    property="salesActivitiesScenes" />
+        <result    column="sales_activities_begin_time"    property="salesActivitiesBeginTime" />
+        <result    column="sales_activities_end_time"    property="salesActivitiesEndTime" />
+        <result    column="sales_activities_create_time"    property="salesActivitiesCreateTime" />
+        <result    column="sales_activities_update_time"    property="salesActivitiesUpdateTime" />
+    </resultMap>
+    <sql    id="Base_List" >
+        t.sales_activities_id,
+        t.sales_activities_name,
+        t.sales_activities_type,
+        t.sales_activities_full,
+        t.sales_activities_reduction,
+        t.sales_activities_status,
+        t.sales_activities_scenes,
+        t.sales_activities_begin_time,
+        t.sales_activities_end_time,
+        t.sales_activities_create_time,
+        t.sales_activities_update_time
+    </sql>
+
+    <select id="getSalesActivitiesList" resultMap="BaseResultMap" parameterType="SalesActivities" >
+        select
+        <include refid="Base_List" />
+        from tb_iamberry_sales_activities t
+        <where>
+            <if test="salesActivitiesId != null ">
+                AND t.sales_activities_id = #{salesActivitiesId}
+            </if >
+            <if test="salesActivitiesName != null and salesActivitiesName != ''">
+                AND t.sales_activities_name  like  CONCAT ('%',#{salesActivitiesName},'%')
+            </if >
+            <if test="salesActivitiesType != null ">
+                AND t.sales_activities_type = #{salesActivitiesType}
+            </if >
+            <if test="salesActivitiesFull != null ">
+                AND t.sales_activities_full = #{salesActivitiesFull}
+            </if >
+            <if test="salesActivitiesReduction != null ">
+                AND t.sales_activities_reduction = #{salesActivitiesReduction}
+            </if >
+            <if test="salesActivitiesStatus != null ">
+                AND t.sales_activities_status = #{salesActivitiesStatus}
+            </if >
+            <if test="salesActivitiesScenes != null ">
+                AND t.sales_activities_scenes = #{salesActivitiesScenes}
+            </if >
+        </where>
+        ORDER BY  t.sales_activities_full DESC
+    </select>
+
+    <select id="getSalesActivitiesById" resultMap="BaseResultMap" parameterType="Integer" >
+        select
+        <include refid="Base_List" />
+        from tb_iamberry_sales_activities t
+        where t.sales_activities_id= #{salesActivitiesId}
+    </select>
+
+    <insert id="save" parameterType="SalesActivities" >
+        insert into
+        tb_iamberry_sales_activities
+        (
+        sales_activities_name,
+        sales_activities_type,
+        sales_activities_full,
+        sales_activities_reduction,
+        sales_activities_status,
+        sales_activities_scenes,
+        sales_activities_begin_time,
+        sales_activities_end_time
+        )
+        values
+        (
+        #{salesActivitiesName},
+        #{salesActivitiesType},
+        #{salesActivitiesFull},
+        #{salesActivitiesReduction},
+        #{salesActivitiesStatus},
+        #{salesActivitiesScenes},
+        #{salesActivitiesBeginTime},
+        #{salesActivitiesEndTime}
+        )
+    </insert>
+    <update id="update" parameterType="SalesActivities" >
+        update
+        tb_iamberry_sales_activities
+        <set >
+            <if test="salesActivitiesName != null and salesActivitiesName != ''">
+                sales_activities_name = #{salesActivitiesName},
+            </if >
+            <if test="salesActivitiesType != null ">
+                sales_activities_type = #{salesActivitiesType},
+            </if >
+            <if test="salesActivitiesFull != null ">
+                sales_activities_full = #{salesActivitiesFull},
+            </if >
+            <if test="salesActivitiesReduction != null ">
+                sales_activities_reduction = #{salesActivitiesReduction},
+            </if >
+            <if test="salesActivitiesStatus != null ">
+                sales_activities_status = #{salesActivitiesStatus},
+            </if >
+            <if test="salesActivitiesScenes != null ">
+                sales_activities_scenes = #{salesActivitiesScenes},
+            </if >
+            <if test="salesActivitiesBeginTime != null and salesActivitiesBeginTime != ''">
+                sales_activities_begin_time = #{salesActivitiesBeginTime},
+            </if >
+            <if test="salesActivitiesEndTime != null and salesActivitiesEndTime != ''">
+                sales_activities_end_time = #{salesActivitiesEndTime},
+            </if >
+        </set >
+        where sales_activities_id= #{salesActivitiesId}
+    </update>
+    <delete id="delete" parameterType="Integer" >
+        delete FROM
+        tb_iamberry_sales_activities
+        where sales_activities_id=#{salesActivitiesId}
+    </delete>
+</mapper>

+ 95 - 4
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -11,15 +11,14 @@ import com.iamberry.wechat.core.entity.channel.ChannelPrice;
 import com.iamberry.wechat.core.entity.channel.ChannelRebate;
 import com.iamberry.wechat.core.entity.channel.ChildChannel;
 import com.iamberry.wechat.core.entity.channel.MainChannel;
-import com.iamberry.wechat.core.entity.coupon.CouponItem;
-import com.iamberry.wechat.core.entity.coupon.CouponItemDto;
-import com.iamberry.wechat.core.entity.coupon.CouponType;
+import com.iamberry.wechat.core.entity.coupon.*;
 import com.iamberry.wechat.core.entity.customized.CustomizedTooth;
 import com.iamberry.wechat.core.entity.integral.StayIntegral;
 import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.OrderItem;
 import com.iamberry.wechat.core.entity.pay.PayResult;
+import com.iamberry.wechat.core.entity.product.Product;
 import com.iamberry.wechat.core.entity.product.ProductColor;
 import com.iamberry.wechat.face.admin.SystemService;
 import com.iamberry.wechat.face.cart.CartService;
@@ -30,6 +29,7 @@ import com.iamberry.wechat.face.channel.ChildChannelService;
 import com.iamberry.wechat.face.channel.MainChannelService;
 import com.iamberry.wechat.face.coupon.CouponItemService;
 import com.iamberry.wechat.face.coupon.CouponTypeService;
+import com.iamberry.wechat.face.coupon.SalesActivitiesService;
 import com.iamberry.wechat.face.customized.CustomizedToothService;
 import com.iamberry.wechat.face.home.HomeService;
 import com.iamberry.wechat.face.integral.UseIntegralService;
@@ -46,6 +46,7 @@ import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.OrderNOUtil;
 import com.iamberry.wechat.tools.ResultInfo;
 import com.iamberry.wechat.tools.ValidatorUtil;
+import com.iamberry.wechat.utils.ActivityUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -121,6 +122,10 @@ public class OrderHandler {
 	private MainChannelService mainChannelService;
 	@Autowired
 	private ChildChannelService childChannelService;
+	@Autowired
+	private ActivityUtil activityUtil;
+	@Autowired
+	private SalesActivitiesService salesActivitiesService;
 
 	/**
 	 * 支付前,调用方法
@@ -194,6 +199,8 @@ public class OrderHandler {
 				return msg;
 			}
 
+			Integer toothbrush = 0;	//牙刷个数
+
 			/*上朵分销,查看是否为分销*/
 			for (CartDto cd : cartDtos) {
 				cd.setIsSelfLifting(2);	//不能自提
@@ -201,12 +208,56 @@ public class OrderHandler {
 				if(channelType > 0 && channelId > 0){
 					ChannelPrice channelPrice = channelPriceService.getChannelPriceByChannel(channelId,channelType,cd.getCartColorId());
 					if(channelPrice != null){
-						cd.setProductPrice( channelPrice.getChannelPriceOffer());	//因结算页面都是price,所以都赋值优惠价
+						cd.setProductPrice( channelPrice.getChannelPriceOffer());	//因结算页面都是price,所以都赋值优惠价
 						cd.setProductDiscount( channelPrice.getChannelPriceOffer());
 						cd.setIsSelfLifting(1);
 					}
 				}
+				if(cd.getProductType() == 100){		//当订单中有电动牙刷时,+1
+					toothbrush += cd.getCartNum();
+				}
+			}
+
+			ActivityDate activityDate = activityUtil.doubleTwelve();
+			if(channelType < 0 && channelId < 0){
+				activityDate.setStatus(false);
+			}else{
+				//非分销渠道,才能有促销
+				if(activityDate.isStatus()){
+					if(toothbrush > 3){	//三支以上
+						CartDto cd1 = getGiftCartDtos(316);		//保温杯
+						if(cd1 != null){
+							cartDtos.add(cd1);
+						}
+						CartDto cd2 = getGiftCartDtos(315);//漱口水
+						if(cd2 != null){
+							cartDtos.add(cd2);
+						}
+					}else if(toothbrush > 2){	//三支牙刷
+						CartDto cd1 = getGiftCartDtos(316);		//保温杯
+						if(cd1 != null){
+							cartDtos.add(cd1);
+						}
+					}else if(toothbrush > 1){
+						CartDto cd2 = getGiftCartDtos(315);//漱口水
+						if(cd2 != null){
+							cartDtos.add(cd2);
+						}
+					}else if(toothbrush > 0){
+						CartDto cd3 = getGiftCartDtos(314);//牙膏
+						if(cd3 != null){
+							cartDtos.add(cd3);
+						}
+					}
+				}
+				SalesActivities salesActivities = new SalesActivities();
+				salesActivities.setSalesActivitiesStatus(1);
+				salesActivities.setSalesActivitiesType(1);
+				salesActivities.setSalesActivitiesScenes(1);
+				List<SalesActivities> salesActivitiesList = salesActivitiesService.getSalesActivitiesList(salesActivities);
+				dto.setSalesActivitiesList(salesActivitiesList);
 			}
+			dto.setActivityDate(activityDate);
 		}else if("2".equals(isCustomize)){
 			Integer id = Integer.valueOf(cartIds);
 			CustomizedTooth customizedTooth = customizedToothService.getCustomizedToothById(id);
@@ -333,6 +384,7 @@ public class OrderHandler {
 
 		//回显用户支付过的地址信息
 		Order order=cartService.getOrderRecentAddress(member.getUserOpenid());
+
 		if(order!=null){
 			HashMap<String,String> map = new HashMap<String,String>();
 			//map.put("orderId", order.getSalesOrderid());
@@ -688,6 +740,16 @@ public class OrderHandler {
 		}else{
 			mustPay=total;
 		}
+
+		//双十二期间,全场满328元减50元,全场满499元减100元,全场满满699元减150元
+		if(mustPay > 69900){
+			mustPay = mustPay - 15000;
+		}else if(mustPay > 49900){
+			mustPay = mustPay - 10000;
+		}else if(mustPay > 32800){
+			mustPay = mustPay - 5000;
+		}
+
 		Integer salesPostage = 0;
 		//当总金额小于30 的时候,不包邮,需要10块钱邮费
 		if(mustPay < 3000){
@@ -963,6 +1025,35 @@ public class OrderHandler {
 		return cartIntList;
 	}
 
+	/**
+	 * 获取赠品信息
+	 * @param colorId
+	 * @return
+	 */
+	private CartDto getGiftCartDtos(Integer colorId){
+		CartDto cartDto = new CartDto();
+		Product product = productInfoService.selectProductByColorId(colorId);
+		if((product.getColorSoldNum()+1) > product.getColorAllNum()){
+			return null;
+		}
+		cartDto.setCartProductId(product.getProductId());
+		cartDto.setCartColorId(colorId);
+		cartDto.setCartNum(1);
+		cartDto.setProductName(product.getProductName());
+		cartDto.setProductType(product.getProductTypeId());
+		cartDto.setProductPrice(product.getColorDiscount());
+		cartDto.setProductStatus(1);
+		cartDto.setProductIntroduceImg(product.getColorImg());
+		cartDto.setTotal(0);
+		cartDto.setProductDiscount(product.getColorDiscount());
+		cartDto.setProductRemark(product.getColorPresent());
+		cartDto.setProductColor(product.getColorName());
+		cartDto.setColorAllNum(product.getColorAllNum());
+		cartDto.setColorSoldNum(product.getColorSoldNum());
+		cartDto.setIsSelfLifting(2);
+		return cartDto;
+	}
+
 //
 //	public static void main(String[] args) {
 //		String tel = "13265476840";

+ 73 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/utils/ActivityUtil.java

@@ -0,0 +1,73 @@
+package com.iamberry.wechat.utils;
+
+
+import com.iamberry.wechat.core.entity.coupon.ActivityDate;
+import com.iamberry.wechat.face.admin.SystemService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 上朵活动类
+ */
+@Component
+public class ActivityUtil {
+
+    @Autowired
+    private SystemService systemService;
+
+    private SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    /**
+     * 获取日期
+     * @param type
+     * @return
+     */
+    private ActivityDate initDate(Integer type){
+        ActivityDate activityDate  = new ActivityDate();
+        try {
+            switch (type){
+                case 1:
+                    String begin = systemService.selectOneShopRuleById(260).getRuleDesc();
+                    activityDate.setBeginDate(sd.parse(begin)); ;
+                    String end = systemService.selectOneShopRuleById(261).getRuleDesc();
+                    activityDate.setEndDate(sd.parse(end));
+                    break;
+                default:
+                    activityDate = null;
+                    break;
+            }
+        }catch (Exception e){
+            activityDate = null;
+            e.printStackTrace();
+        }
+
+        return activityDate;
+    }
+
+
+    /**
+     * 双十二期限
+     * @return 期限内true;
+     */
+    public ActivityDate doubleTwelve(){
+        ActivityDate activityDate = initDate(1);
+
+        activityDate.setRemark("双十二促销时间");
+
+        if(activityDate == null){
+            activityDate.setStatus(false);
+        }
+        Date date = new Date();
+
+        if (activityDate.getBeginDate().before(date) && date.before(activityDate.getEndDate())){  //beginDate 比 date 早? true :false
+            activityDate.setStatus(true);
+            return activityDate;
+        }
+        activityDate.setStatus(false);
+        return activityDate;
+    }
+
+}

+ 16 - 10
tooth-wechat-web/src/main/java/com/iamberry/wechat/utils/StitchAttrUtil.java

@@ -18,14 +18,15 @@ public class StitchAttrUtil {
 
     private StitchAttrUtil(){
         propertySet = new HashSet<String>(Arrays.asList(noProperty));
-        timeDateSet = new HashSet<String>(Arrays.asList(timeDate));
     };
 
     /**
      * 组装参数时,会过滤以下参数
-     * 推荐使用:addNoPro(),添加过滤
+     * 推荐使用:addDatePro(),添加过滤
      */
-    private final  String timeDate[] = {};
+    // TODO: 2018/8/28  time 的转换调整,支持一个类中有有多种time的格式,因此注释掉初始化的time的Set,只能使用addDatePro()
+//    private final  String timeDate[] = {};
+
     /**
      * 控制时间参数格式
      * 推荐使用:addDatePro(),添加过滤
@@ -35,9 +36,9 @@ public class StitchAttrUtil {
             "page"
     };
 
-    private SimpleDateFormat sdf = null;
+
     private Set<String> propertySet;
-    private Set<String> timeDateSet;
+    private Map<String,SimpleDateFormat> timeMap = new HashMap<String,SimpleDateFormat>();
 
     /**
      * 组装ModelAndView
@@ -113,8 +114,12 @@ public class StitchAttrUtil {
             }catch (IllegalAccessException e){
             }
             if (value != null && !propertySet.contains(fieldName)) {
-                if(timeDateSet.contains(fieldName))
-                    value = sdf.format(value);
+                /* 遍历map,将时间格式进行转换 */
+                for (Map.Entry<String, SimpleDateFormat> entry : timeMap.entrySet()) {
+                    if(entry.getKey().equals(fieldName)){
+                        value = entry.getValue().format(value);
+                    }
+                }
                 sb.append("&"+fieldName+ "=" + value.toString());
             }
         }
@@ -152,10 +157,11 @@ public class StitchAttrUtil {
      * @param pros
      */
     public StitchAttrUtil addDatePro(String fom,String...pros){
-        sdf = new SimpleDateFormat(fom);
+        SimpleDateFormat sdf = new SimpleDateFormat(fom);
         for(String pro : pros){
-            if(pro != null && !"".equals(pro))
-                timeDateSet.add(pro);
+            if(pro != null && !"".equals(pro)){
+                timeMap.put(pro,sdf);
+            }
         }
         return this;
     }

+ 6 - 0
tooth-wechat-web/src/main/resources/iamberry-wechat-service-mybatis.xml

@@ -282,6 +282,9 @@
 		<typeAlias type="com.iamberry.wechat.core.entity.channel.ChannelAdmin" alias="ChannelAdmin"/>
 		<typeAlias type="com.iamberry.wechat.core.entity.channel.AttenStatistics" alias="AttenStatistics"/>
 
+		<!--活动表-->
+		<typeAlias type="com.iamberry.wechat.core.entity.coupon.SalesActivities" alias="SalesActivities"/>
+
 		<package name="com.iamberry.wechat.core.entity.rent"/>
 	</typeAliases>
 	<!-- PageHelper -->
@@ -416,5 +419,8 @@
 		<mapper resource="com/iamberry/wechat/service/mapper/channelAdminMapper.xml"/>
 		<mapper resource="com/iamberry/wechat/service/mapper/attenStatisticsMapper.xml"/>
 
+		<!--活动-->
+		<mapper resource="com/iamberry/wechat/service/mapper/salesActivitiesMapper.xml"/>
+
 	</mappers>
 </configuration>

+ 1 - 1
tooth-wechat-web/src/main/resources/iamberry-wechat-web-springmvc.xml

@@ -5,7 +5,7 @@
 	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
 		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
-    
+
 	<!-- 配置自定扫描的包,仅handler和Advice -->
 	<context:component-scan base-package="com.iamberry" use-default-filters="false">
 		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />