Bläddra i källkod

修改客户信息

liujiankang 6 år sedan
förälder
incheckning
c520f353ec

+ 15 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/cm/SalesOrder.java

@@ -23,7 +23,11 @@ public class SalesOrder implements Serializable {
     private Integer salesRemainDeposit;     //待提取金额
     private Integer salesStatus;            //确认状态
     private Integer salesSendType;          //送货方式
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date salesSendTime;             //发货时间
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date salesSalesTime;            //订购时间
     private String salesPostNum;            //快递单号
     private String salesPostFirm;           //快递公司
@@ -57,6 +61,7 @@ public class SalesOrder implements Serializable {
     private Integer salesIsLocked;          //是否锁定
     private Integer salesIsSeparate;        //是否缺货
     private Integer salesIsDownload;        //是否下载过
+    private Integer salesMainOrderId;//主订单id(拆单用)
 
     private String companyName;             //销售公司名称
     private String storeName;               //店铺名称
@@ -72,6 +77,8 @@ public class SalesOrder implements Serializable {
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
     private Date endDate;                   //结束时间
 
+
+
     private List<SalesOrderItem> salesOrderItemList = new ArrayList<SalesOrderItem>();
 
     //添加订单项属性,用于导出订单
@@ -490,4 +497,12 @@ public class SalesOrder implements Serializable {
     public void setSalesIsDownload(Integer salesIsDownload) {
         this.salesIsDownload = salesIsDownload;
     }
+
+    public Integer getSalesMainOrderId() {
+        return salesMainOrderId;
+    }
+
+    public void setSalesMainOrderId(Integer salesMainOrderId) {
+        this.salesMainOrderId = salesMainOrderId;
+    }
 }

+ 66 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/DownsingleRuleInfo.java

@@ -0,0 +1,66 @@
+package com.iamberry.rst.core.order;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by Administrator on 2018/6/6.
+ */
+public class DownsingleRuleInfo implements Serializable {
+    private static final long serialVersionUID = 6907202311574752054L;
+    private Integer downsingleId;
+    private Integer downsingleStatus;//规则排序
+    private Integer downsingleSorting;//规则状态
+    private String downsingleDesc;//规则备注
+    private Date downsingleCreateTime;//创建时间
+    private List<DownsingleRuleItemInfo> downsingleRuleItemList;
+
+    public Integer getDownsingleId() {
+        return downsingleId;
+    }
+
+    public void setDownsingleId(Integer downsingleId) {
+        this.downsingleId = downsingleId;
+    }
+
+    public Integer getDownsingleStatus() {
+        return downsingleStatus;
+    }
+
+    public void setDownsingleStatus(Integer downsingleStatus) {
+        this.downsingleStatus = downsingleStatus;
+    }
+
+    public Integer getDownsingleSorting() {
+        return downsingleSorting;
+    }
+
+    public void setDownsingleSorting(Integer downsingleSorting) {
+        this.downsingleSorting = downsingleSorting;
+    }
+
+    public String getDownsingleDesc() {
+        return downsingleDesc;
+    }
+
+    public void setDownsingleDesc(String downsingleDesc) {
+        this.downsingleDesc = downsingleDesc;
+    }
+
+    public Date getDownsingleCreateTime() {
+        return downsingleCreateTime;
+    }
+
+    public void setDownsingleCreateTime(Date downsingleCreateTime) {
+        this.downsingleCreateTime = downsingleCreateTime;
+    }
+
+    public List<DownsingleRuleItemInfo> getDownsingleRuleItemList() {
+        return downsingleRuleItemList;
+    }
+
+    public void setDownsingleRuleItemList(List<DownsingleRuleItemInfo> downsingleRuleItemList) {
+        this.downsingleRuleItemList = downsingleRuleItemList;
+    }
+}

+ 55 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/order/DownsingleRuleItemInfo.java

@@ -0,0 +1,55 @@
+package com.iamberry.rst.core.order;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Created by Administrator on 2018/6/6.
+ */
+public class DownsingleRuleItemInfo implements Serializable {
+    private Integer downsingleItemId;
+    private Integer downsingleId; //规则id
+    private String downsingleItemBar;//产品sku(69码)
+    private Integer downsingleItemNum;//产品数量
+    private Date downsingleItemCreateTime;//创建时间
+
+    public Integer getDownsingleItemId() {
+        return downsingleItemId;
+    }
+
+    public void setDownsingleItemId(Integer downsingleItemId) {
+        this.downsingleItemId = downsingleItemId;
+    }
+
+    public Integer getDownsingleId() {
+        return downsingleId;
+    }
+
+    public void setDownsingleId(Integer downsingleId) {
+        this.downsingleId = downsingleId;
+    }
+
+    public String getDownsingleItemBar() {
+        return downsingleItemBar;
+    }
+
+    public void setDownsingleItemBar(String downsingleItemBar) {
+        this.downsingleItemBar = downsingleItemBar;
+    }
+
+    public Integer getDownsingleItemNum() {
+        return downsingleItemNum;
+    }
+
+    public void setDownsingleItemNum(Integer downsingleItemNum) {
+        this.downsingleItemNum = downsingleItemNum;
+    }
+
+    public Date getDownsingleItemCreateTime() {
+        return downsingleItemCreateTime;
+    }
+
+    public void setDownsingleItemCreateTime(Date downsingleItemCreateTime) {
+        this.downsingleItemCreateTime = downsingleItemCreateTime;
+    }
+}

+ 12 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/cm/SalesOrderService.java

@@ -2,6 +2,7 @@ package com.iamberry.rst.faces.cm;
 
 import com.iamberry.rst.core.cm.SalesOrder;
 import com.iamberry.rst.core.cm.SalesOrderItem;
+import com.iamberry.rst.core.order.DownsingleRuleInfo;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.tools.LogisticsInfo;
 import net.sf.json.JSONArray;
@@ -30,7 +31,7 @@ public interface SalesOrderService {
 
     SalesOrder addOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) ;
 
-    boolean addRstOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) ;
+    boolean addRstOrderAndIteminfo(SalesOrder salesOrder) ;
 
     /**
      * 修改订单信息
@@ -151,4 +152,14 @@ public interface SalesOrderService {
      * 查询物流公司信息
      * **/
     List<LogisticsInfo> getLogisticsInfo(LogisticsInfo logisticsInfo);
+
+    /**
+     * 查询所有拆单规则
+     */
+    List<DownsingleRuleInfo> listDownsingleRule();
+
+    /**
+     * 根据颜色sku/查询产品是否是水机
+     */
+    Integer getIsMachine(String colorBar);
 }

+ 227 - 19
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -5,6 +5,8 @@ import com.iamberry.rst.core.cm.FittingsInfo;
 import com.iamberry.rst.core.cm.SalesOrder;
 import com.iamberry.rst.core.cm.SalesOrderItem;
 import com.iamberry.rst.core.cm.StoreInfo;
+import com.iamberry.rst.core.order.DownsingleRuleInfo;
+import com.iamberry.rst.core.order.DownsingleRuleItemInfo;
 import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.sys.SysConfig;
@@ -24,15 +26,16 @@ import net.sf.json.JSONObject;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.xml.crypto.Data;
 import java.beans.Transient;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+
+import static sun.misc.MessageUtils.where;
 
 /**
  * Created by liuzhiwei on 2017/10/31.
@@ -94,7 +97,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     @Transient
     public boolean addOrderAndItem(SalesOrder salesOrder, List<SalesOrderItem> list) throws Exception {
         if (list == null || list.size() == 0) {
-            throw  new RuntimeException("获取订单信息出错!");
+            throw new RuntimeException("获取订单信息出错!");
         }
         SalesOrder verifyOrder = new SalesOrder();
         verifyOrder.setSalesOrderId(salesOrder.getSalesOrderId());
@@ -107,9 +110,9 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         try {
             int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
             if (orderNum <= 0) {
-                throw  new RuntimeException("获取订单信息出错!");
+                throw new RuntimeException("获取订单信息出错!");
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             return true;
         }
 
@@ -119,7 +122,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         //批量添加订单项数据
         int itemNum = salesOrderMapper.addOrderItemList(list);
         if (itemNum <= 0) {
-            throw  new RuntimeException("获取订单信息出错!");
+            throw new RuntimeException("获取订单信息出错!");
         }
         return true;
     }
@@ -143,22 +146,217 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         return salesOrder;
     }
 
+    /*private List<SalesOrder> breakOrder(SalesOrder salesOrder) {
+        List<SalesOrder> listSalesOrder = new ArrayList<>();
+        List<SalesOrderItem> list = salesOrder.getSalesOrderItemList();
+        //查询所有拆单规则
+        List<DownsingleRuleInfo> listDownsingleRuleInfo = salesOrderService.listDownsingleRule();
+        if (listDownsingleRuleInfo.size() < 1) {
+            return listSalesOrder;
+        }
+        for (DownsingleRuleInfo downsingleRuleInfo : listDownsingleRuleInfo) {
+            SalesOrder order = null;
+            //保存原始订单集合,防止订单被篡改后无法还原
+            List<SalesOrderItem> originalList = list;
+            List<SalesOrderItem> itemList = new ArrayList<>();
+            for (DownsingleRuleItemInfo downsingleRuleItemInfo : downsingleRuleInfo.getDownsingleRuleItemList()) {
+
+                for (int i = 0; i < list.size(); i++) {
+                    if (list.get(i).getItemColorBar().equals(downsingleRuleItemInfo.getDownsingleItemBar())
+                            && downsingleRuleItemInfo.getDownsingleItemNum() <= list.get(i).getItemNum()) {
+                        if (downsingleRuleItemInfo.getDownsingleItemNum() < list.get(i).getItemNum()) {
+                            //如果规则数量小于订单项数量这需要将订单项拆分
+                            list.get(i).setItemNum(list.get(i).getItemNum() - downsingleRuleItemInfo.getDownsingleItemNum());
+                            SalesOrderItem orderItem = list.get(i);
+                            orderItem.setItemNum(downsingleRuleItemInfo.getDownsingleItemNum());
+                            itemList.add(list.get(i));
+                        } else {
+                            itemList.add(list.get(i));
+                            list.remove(i);
+                            break;
+                        }
+                    } else {
+                        itemList.clear();
+                        list = originalList;
+                        break;
+                    }
+                }
+
+            }
+            if (itemList.size() > 0) {
+                order = salesOrder;
+                order.setSalesOrderItemList(itemList);
+            }
+            if (order != null) {
+                listSalesOrder.add(order);
+            }
+        }
+        if (list.size() > 0) {
+            SalesOrder remainingOrder = new SalesOrder();
+            remainingOrder = salesOrder;
+            remainingOrder.setSalesOrderItemList(list);
+            listSalesOrder.add(remainingOrder);
+        }
+    }*/
+
+    public void parseOrder(SalesOrder oginerOrder, List<SalesOrder> listOrder) {
+        // 订单项拆分完成,直接返回
+        if (oginerOrder.getSalesOrderItemList().size() <= 0) {
+            return;
+        }
+
+        List<DownsingleRuleInfo> listDownsingleRuleInfo = salesOrderService.listDownsingleRule();
+        if(listDownsingleRuleInfo.size() < 1){
+            listOrder.add(oginerOrder);
+            return;
+        }
+
+        // 拆单,比较的是数量和产品
+        Map<String, SalesOrderItem> itemMap = new HashMap<>(oginerOrder.getSalesOrderItemList().size());
+        for (SalesOrderItem item : oginerOrder.getSalesOrderItemList()) {
+            itemMap.put(item.getItemColorBar(), item);
+        }
+
+        // 遍历拆单规则
+        int ruleCount = 0;
+        for (DownsingleRuleInfo rule : listDownsingleRuleInfo) {
+            // 一个拆单规则
+            int count = 0;
+            for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
+                if (itemMap.get(item.getDownsingleItemBar()) != null) {
+                    if (item.getDownsingleItemNum() <= itemMap.get(item.getDownsingleItemBar()).getItemNum()) {
+                        count ++;
+                    }
+                }
+            }
+            if (count == rule.getDownsingleRuleItemList().size()) {
+                // 满足拆单条件
+                SalesOrder newOrder = new SalesOrder();
+                BeanUtils.copyProperties(oginerOrder, newOrder);
+                newOrder.setSalesOrderItemList(new ArrayList<SalesOrderItem>(count));
+                for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
+                    SalesOrderItem temp = itemMap.get(item.getDownsingleItemBar());
+                    temp.setItemNum(item.getDownsingleItemNum());
+                    newOrder.getSalesOrderItemList().add(temp);
+                }
+                listOrder.add(newOrder);
+
+                // 继续递归
+                for (DownsingleRuleItemInfo item : rule.getDownsingleRuleItemList()) {
+                    if (item.getDownsingleItemNum() == itemMap.get(item.getDownsingleItemBar()).getItemNum()) {
+                        // 数量和拆单规则相同,则删除原订单的订单项
+                        oginerOrder.getSalesOrderItemList().remove(itemMap.get(item.getDownsingleItemBar()));
+                    } else {
+                        SalesOrderItem orderItem = itemMap.get(item.getDownsingleItemBar());
+                        int oldCount = orderItem.getItemNum();
+                        orderItem.setItemNum(oldCount - item.getDownsingleItemNum());
+                    }
+                }
+                parseOrder(oginerOrder, listOrder);
+                break;
+            } else {
+                // 不满足, 继续下一个规则
+                // 如果是最后一个拆单规则,则不拆单
+                if ((ruleCount + 1) == listDownsingleRuleInfo.size()) {
+                    if (oginerOrder.getSalesOrderItemList().size() > 0) {
+                        listOrder.add(oginerOrder);
+                    }
+                }
+            }
+            ruleCount++;
+        }
+
+    }
+
+
     @Override
     @Transactional
-    public boolean addRstOrderAndIteminfo(SalesOrder salesOrder, List<SalesOrderItem> list) {
-        //添加订单数据
-        int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
-        if (orderNum <= 0) {
-            return false;
-        }
-        for (SalesOrderItem item : list) {
-            item.setItemOrderId(salesOrder.getSalesId());
+    public boolean addRstOrderAndIteminfo(SalesOrder salesOrder){
+        //合并订单项-------------statr
+        List<SalesOrderItem> listItem = salesOrder.getSalesOrderItemList();
+        salesOrder.setSalesOrderItemList(null);
+        List<SalesOrderItem> list = new ArrayList<>();
+        for (int i = 0;i<listItem.size();i++){
+            if(i < listItem.size() - 1 ){
+                for(int j = 0;j<listItem.size();j++){
+                    if (i != j){
+                        if(listItem.get(i).getItemColorBar().equals(listItem.get(j).getItemColorBar())){
+                            listItem.get(i).setItemNum(listItem.get(i).getItemNum()+listItem.get(j).getItemNum());
+                        }
+                    }
+                }
+            }
+            boolean bl = true;
+            for (SalesOrderItem salesOrderItem : list){
+                if(salesOrderItem.getItemColorBar().equals(listItem.get(i).getItemColorBar())){
+                    bl = false;
+                }
+            }
+            if(bl){
+                list.add(listItem.get(i));
+            }
         }
-        //批量添加订单项数据
-        int itemNum = salesOrderMapper.addOrderItemList(list);
-        if (itemNum <= 0) {
-            return false;
+        //合并订单项----------------------end
+        //匹配拆单规则 分割订单-------------state
+        List<SalesOrder> listSalesOrder = new ArrayList<>();
+        salesOrder.setSalesOrderItemList(list);
+        parseOrder(salesOrder, listSalesOrder);
+        //匹配拆单规则 分割订单-------------end
+        boolean msg = false;
+        //判断主从订单--------------------state
+        if (listSalesOrder.size() > 0){
+            SalesOrder mainOrder = null;
+            for (int s = 0;s < listSalesOrder.size();s++){
+                if(mainOrder == null){
+                    for(int i = 0;i<listSalesOrder.get(s).getSalesOrderItemList().size();i++){
+                        int isMachine = salesOrderService.getIsMachine(listSalesOrder.get(s).getSalesOrderItemList().get(i).getItemColorBar());
+                        if( isMachine == 1){//1:水机 2:其它产品 0:未查到
+                            mainOrder = listSalesOrder.get(s);
+                            listSalesOrder.remove(s);
+                            break;
+                        }
+                    }
+                }
+            }
+            if(mainOrder == null){//如果不存有水机的订单则默认第一个订单为主订单
+                mainOrder = listSalesOrder.get(0);
+            }
+
+            //判断主从订单--------------------end
+
+            try {
+                msg = addRstOrderinfo(mainOrder);
+                if (msg){
+                    if(listSalesOrder.size() > 0){
+                        for (int i = 0;i<listSalesOrder.size();i++){
+                            listSalesOrder.get(i).setSalesDealCode(listSalesOrder.get(i).getSalesDealCode()+"-"+(i+1));
+                            listSalesOrder.get(i).setSalesMainOrderId(mainOrder.getSalesId());
+                            listSalesOrder.get(i).setSalesId(null);
+                            msg = addRstOrderinfo(listSalesOrder.get(i));
+                        }
+                    }
+                }
+            }catch (Exception e){
+                throw  new RuntimeException("添加订单出错--------!");
+            }
         }
+        return msg;
+    }
+    @Transactional
+    private boolean addRstOrderinfo(SalesOrder salesOrder) {
+            //添加订单数据
+            int orderNum = salesOrderMapper.addSalesOrder(salesOrder);
+            if (orderNum <= 0) {
+                return false;
+            }
+            for (SalesOrderItem item : salesOrder.getSalesOrderItemList()) {
+                item.setItemOrderId(salesOrder.getSalesId());
+            }
+            //批量添加订单项数据
+            int itemNum = salesOrderMapper.addOrderItemList(salesOrder.getSalesOrderItemList());
+            if (itemNum <= 0) {
+                return false;
+            }
         return true;
     }
 
@@ -553,4 +751,14 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     public List<LogisticsInfo> getLogisticsInfo(LogisticsInfo logisticsInfo) {
         return salesOrderMapper.getLogisticsInfo(logisticsInfo);
     }
+
+    @Override
+    public List<DownsingleRuleInfo> listDownsingleRule() {
+        return salesOrderMapper.listDownsingleRule();
+    }
+
+    @Override
+    public Integer getIsMachine(String colorBar) {
+        return salesOrderMapper.getIsMachine(colorBar);
+    }
 }

+ 11 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java

@@ -2,6 +2,7 @@ package com.iamberry.rst.service.cm.mapper;
 
 import com.iamberry.rst.core.cm.SalesOrder;
 import com.iamberry.rst.core.cm.SalesOrderItem;
+import com.iamberry.rst.core.order.DownsingleRuleInfo;
 import com.iamberry.rst.core.tools.LogisticsInfo;
 
 import java.util.List;
@@ -108,4 +109,14 @@ public interface SalesOrderMapper {
      * 查询物流公司信息
      * **/
     List<LogisticsInfo> getLogisticsInfo(LogisticsInfo logisticsInfo);
+
+    /**
+     * 查询所有拆单规则
+     */
+    List<DownsingleRuleInfo> listDownsingleRule();
+
+    /**
+     * 根据颜色sku/查询产品是否是水机
+     */
+    Integer getIsMachine(String colorBar);
 }

+ 37 - 2
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml

@@ -181,7 +181,7 @@
       sales_pay_time, sales_create_time, sales_admin_remark, 
       sales_user_remark, sales_pay_number, sales_store_id, 
       sales_company_id, sales_type,sales_deal_code,sales_order_status,sales_shipping_status,
-      sales_pay_status,sales_process_status,sales_is_send,sales_is_locked,sales_is_separate,sales_is_download)
+      sales_pay_status,sales_process_status,sales_is_send,sales_is_locked,sales_is_separate,sales_is_download,sales_main_order_id)
     values (#{salesId,jdbcType=INTEGER}, #{salesOrderId,jdbcType=VARCHAR}, #{salesOpenId,jdbcType=VARCHAR},
       #{salesDiscountMoney,jdbcType=INTEGER}, #{salesPledgeMoney,jdbcType=INTEGER}, #{salesRemainDeposit,jdbcType=INTEGER}, 
       #{salesStatus,jdbcType=INTEGER}, #{salesSendType,jdbcType=INTEGER}, #{salesSendTime,jdbcType=TIMESTAMP}, 
@@ -193,7 +193,7 @@
       #{salesUserRemark,jdbcType=VARCHAR}, #{salesPayNumber,jdbcType=VARCHAR}, #{salesStoreId,jdbcType=INTEGER}, 
       #{salesCompanyId,jdbcType=INTEGER}, #{salesType,jdbcType=INTEGER},#{salesDealCode},#{salesOrderStatus},
       #{salesShippingStatus},#{salesPayStatus},#{salesProcessStatus},#{salesIsSend},#{salesIsLocked},
-      #{salesIsSeparate},#{salesIsDownload})
+      #{salesIsSeparate},#{salesIsDownload},#{salesMainOrderId})
   </insert>
 
   <!-- 批量添加订单项数据 -->
@@ -491,4 +491,39 @@
       </if>
     </where>
   </select>
+
+  <resultMap id="downsingleRuleMap" type="DownsingleRuleInfo">
+    <id column="downsingle_id" property="downsingleId"/>
+    <result column="downsingle_sorting" property="downsingleSorting"/>
+    <result column="downsingle_status" property="downsingleStatus"/>
+    <result column="downsingle_desc" property="downsingleDesc"/>
+    <result column="downsingle_create_time" property="downsingleCreateTime"/>
+    <collection property="downsingleRuleItemList" column="downsingle_id" ofType="DownsingleRuleItemInfo" select="listDownsingleRuleItem"/>
+  </resultMap>
+  <select id="listDownsingleRule" resultMap="downsingleRuleMap">
+          SELECT
+          downsingle_id,
+          downsingle_sorting,
+          downsingle_status,
+          downsingle_desc,
+          downsingle_create_time
+          FROM tb_rst_downsingle_rule
+          WHERE downsingle_status = 1
+          order BY downsingle_sorting
+  </select>
+  <select id="listDownsingleRuleItem" parameterType="Integer" resultType="DownsingleRuleItemInfo">
+     SELECT
+       downsingle_item_id as downsingleItemId,
+       downsingle_id as downsingleId,
+       downsingle_item_bar as downsingleItemBar,
+       downsingle_item_num as downsingleItemNum,
+       downsingle_item_create_time as downsingleItemCreateTime
+     FROM tb_rst_downsingle_rule_item
+    WHERE downsingle_id = #{downsingleId}
+  </select>
+<!-- 根据sku/查询产品是否是水机 -->
+  <select id="getIsMachine" parameterType="String" resultType="Integer">
+        SELECT  IFNULL(MAX(color_is_machine),0) from tb_rst_product_color where color_bar = #{colorBar}
+  </select>
+
 </mapper>

+ 6 - 22
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/MallOrderController.java

@@ -138,27 +138,11 @@ public class MallOrderController {
                     salesOrderItem.setItemProductDiscount(productColor.getColorDiscount());
                     salesOrderItem.setItemIsSource(1);
                     salesAmount += productColor.getColorDiscount();
-                } else if (listColor.size() == 0) {
-                     FittingsInfo fittingsInfo = new FittingsInfo();
-                     fittingsInfo.setFittingsBar(outer_sku);
-                     fittingsInfo =  productService.getFittingsBySku(fittingsInfo);
-                     if(fittingsInfo == null){
-                         map.put("msg","parameter error");
-                         map.put("oder_sn",new Date().getTime());
-                         return map;
-                     }
-                    Product product = productService.getProductByFittingsId(fittingsInfo.getProductId());
-                    salesOrderItem.setItemProductType(product.getProductType());
-                    salesOrderItem.setItemColorId(fittingsInfo.getFittingsId());
-                    salesOrderItem.setItemProductId(product.getProductId());
-                    /*salesOrderItem.setItemProductName(product.getProductName());*/
-                    salesOrderItem.setItemProductColor(fittingsInfo.getFittingsName());
-                    salesOrderItem.setItemColorBar(fittingsInfo.getFittingsBar());
-                    salesOrderItem.setItemProductPrice(fittingsInfo.getFittingsPrice());
-                    salesOrderItem.setItemProductDiscount(fittingsInfo.getFittingsDiscount());
-                    salesOrderItem.setItemIsSource(2);
-                    salesAmount += fittingsInfo.getFittingsDiscount();
-                }
+                }else{
+                     map.put("msg","not product");
+                     map.put("oder_sn",new Date().getTime());
+                     return map;
+                 }
                 list.add(salesOrderItem);
             }
             salesOrder.setSalesOpenId("0");
@@ -206,7 +190,7 @@ public class MallOrderController {
         //添加订单数据
         boolean bl = false;
         /*try {*/
-            bl = salesOrderService.addRstOrderAndIteminfo(salesOrder,salesOrder.getSalesOrderItemList());
+            bl = salesOrderService.addRstOrderAndIteminfo(salesOrder);
         /*}catch (Exception e){
                 map.put("msg","add error");
             map.put("oder_sn",new Date().getTime());

+ 2 - 0
watero-rst-web/src/main/resources/watero-rst-orm.xml

@@ -102,6 +102,8 @@
 		<typeAlias type="com.iamberry.rst.core.customer.LowestPriceInfo" alias="LowestPriceInfo"/>
 		<typeAlias type="com.iamberry.rst.core.cm.CustomerStatisticalInfo" alias="CustomerStatisticalInfo"/>
 		<typeAlias type="com.iamberry.rst.core.tools.LogisticsInfo" alias="LogisticsInfo"/>
+		<typeAlias type="com.iamberry.rst.core.order.DownsingleRuleInfo" alias="DownsingleRuleInfo"/>
+		<typeAlias type="com.iamberry.rst.core.order.DownsingleRuleItemInfo" alias="DownsingleRuleItemInfo"/>
 	</typeAliases>
 	<!-- PageHelper -->
 	<plugins>