瀏覽代碼

订单添加库存

wangxiaoming 5 年之前
父節點
當前提交
3f7d20224a

+ 10 - 0
watero-rst-core/src/main/java/com.iamberry.rst.core/address/District.java

@@ -12,6 +12,8 @@ public class District implements Serializable {
 
     private Integer divisionCode;
 
+    private String postcode;
+
     public District(){}
 
     public District(Integer districtId){
@@ -49,4 +51,12 @@ public class District implements Serializable {
     public void setDivisionCode(Integer divisionCode) {
         this.divisionCode = divisionCode;
     }
+
+    public String getPostcode() {
+        return postcode;
+    }
+
+    public void setPostcode(String postcode) {
+        this.postcode = postcode;
+    }
 }

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

@@ -39,7 +39,7 @@ public class SalesOrder implements Serializable {
     private String salesAddressDesc;        //地址详情
     private String salesAddressTel;         //收件人电话
     private String salesAddressName;        //收件人姓名
-    private String salesAddressPostcode;        //收件人姓名
+    private String salesAddressPostcode;        //收件人邮政编码
     private Integer salesAmount;            //订单总金额
     private Integer salesPayMoney;          //已付金额
     private Integer salesPayType;           //付款方式  1:微信支付 2:现金支付3:已支付定金¥99 4:刷卡支付 5:支付宝支付

+ 1 - 1
watero-rst-interface/src/main/java/com/iamberry/rst/faces/address/AddressService.java

@@ -26,7 +26,7 @@ public interface AddressService {
     List<City> listCity(City city);
 
     /**
-     *  获取
+     *  获取
      * @param district
      * @return
      */

+ 1 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/AddressMapper.java

@@ -26,7 +26,7 @@ public interface AddressMapper {
     List<City> listCity(City city);
 
     /**
-     *  获取
+     *  获取
      * @param district
      * @return
      */

+ 5 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/address/mapper/addressMapper.xml

@@ -44,7 +44,8 @@
       district_id,
       city_id,
       district,
-      division_code
+      division_code,
+      postcode
     from tb_rst_address_district
     <where>
       <if test="cityId !=null and cityId !=''">
@@ -56,6 +57,9 @@
       <if test="districtId !=null ">
           AND district_id = #{districtId}
       </if>
+      <if test="postcode !=null and postcode !=''">
+          AND postcode = #{postcode}
+      </if>
     </where>
   </select>
 

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

@@ -32,6 +32,7 @@
     <result column="sales_company_id" property="salesCompanyId" jdbcType="INTEGER" />
     <result column="sales_type" property="salesType" jdbcType="INTEGER" />
     <result column="sales_warehouse_id" property="salesWarehouseId" jdbcType="INTEGER" />
+    <result column="sales_address_postcode" property="salesAddressPostcode" jdbcType="INTEGER" />
   </resultMap>
   <sql id="salesOrderInfo" >
         sales_id,sales_orderId,sales_openId,sales_discount_money,sales_pledge_money,sales_remain_deposit,
@@ -39,7 +40,7 @@
         sales_address_name,sales_amount,sales_pay_money,sales_pay_type,sales_wait_money,sales_last_money,sales_shipping_fee,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_status,sales_shipping_status,sales_pay_status,sales_process_status,sales_is_send,sales_is_locked,sales_is_separate,sales_is_download,sales_main_order_id,
-        sales_batch_id,sales_add_type,sales_admin_id,sales_deliver
+        sales_batch_id,sales_add_type,sales_admin_id,sales_deliver,sales_address_postcode
   </sql>
 
   <!-- 根据id查询订单信息 -->
@@ -656,6 +657,7 @@
                 sales_create_time,
                 sales_admin_id,
                 sales_customer_id,
+                sales_address_postcode,
                 sales_warehouse_id
             )
         values
@@ -702,6 +704,7 @@
                 #{salesCreateTime},
                 #{salesAdminId},
                 #{salesCustomerId},
+                #{salesAddressPostcode},
                 #{salesWarehouseId}
             )
   </insert>
@@ -906,7 +909,10 @@
           sales_customer_id = #{salesCustomerId},
       </if >
       <if test="salesReturnStatus != null ">
-          sales_return_status = #{salesReturnStatus}
+          sales_return_status = #{salesReturnStatus},
+      </if >
+      <if test="salesAddressPostcode != null and salesAddressPostcode != ''">
+          sales_address_postcode = #{salesAddressPostcode}
       </if >
     </set>
     where sales_id = #{salesId}

+ 16 - 1
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/AdminOrderController.java

@@ -1,6 +1,7 @@
 package com.iamberry.rst.controllers.order;
 
 import com.iamberry.rst.controllers.sys.SysController;
+import com.iamberry.rst.core.address.District;
 import com.iamberry.rst.core.cm.SalesOrder;
 import com.iamberry.rst.core.cm.SalesOrderItem;
 import com.iamberry.rst.core.cm.StoreInfo;
@@ -14,6 +15,7 @@ import com.iamberry.rst.core.sys.Admin;
 import com.iamberry.rst.core.sys.OrderCheckStatus;
 import com.iamberry.rst.core.sys.Relu;
 import com.iamberry.rst.core.tools.LogisticsInfo;
+import com.iamberry.rst.faces.address.AddressService;
 import com.iamberry.rst.faces.cm.SalesOrderService;
 import com.iamberry.rst.faces.cm.StoreInfoService;
 import com.iamberry.rst.faces.order.EfastOrderService;
@@ -96,6 +98,8 @@ public class AdminOrderController {
     @Autowired
     private GenerateKeyUtil generateKeyUtil;
 
+    @Autowired
+    private AddressService addressService;
     /**
      * 进入更换滤芯页面
      *
@@ -1165,8 +1169,19 @@ public class AdminOrderController {
                 }catch (Exception e){
                     e.printStackTrace();
                 }
-
                 salesOrder.setSalesAddressInfo(efastOrder.getOrderProvince()+" "+efastOrder.getOrderCity()+" "+efastOrder.getOrderArea()+" "+myaddress);
+                try{
+                    String newArea  = efastOrder.getOrderArea();
+                    newArea = newArea.replaceAll("县|区|镇|乡|市|自治区|地区|州|洲","");
+                    District district = new District();
+                    district.setDistrict(newArea);
+                    List<District> districtList = addressService.listDistrict(district);
+                    if(districtList!=null && districtList.size() > 0){
+                        salesOrder.setSalesAddressPostcode(districtList.get(0).getPostcode());
+                    }
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
 
                 salesOrder.setSalesAddressTel(efastOrder.getOrderAddressTel());
                 salesOrder.setSalesAddressName(efastOrder.getOrderAddressName());

+ 2 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/order/MallOrderController.java

@@ -90,6 +90,7 @@ public class MallOrderController {
             String province_name = (String)requstMap.get("province_name");//省
             String city_name = (String)requstMap.get("city_name");//市
             String district_name = (String)requstMap.get("district_name");//区
+            String postalcode = (String)requstMap.get("postalcode");//邮政编码
             String consignee = (String)requstMap.get("consignee");//收货人
             String email = (String)requstMap.get("email");//email
             Integer goods_amount = (Integer)requstMap.get("goods_amount");//商品总价
@@ -162,6 +163,7 @@ public class MallOrderController {
             salesOrder.setSalesSendType(2);
             salesOrder.setSalesSalesTime(add_time);
             salesOrder.setSalesAddressInfo(province_name+" "+city_name+" "+district_name+" "+address);
+            salesOrder.setSalesAddressPostcode(postalcode);
             salesOrder.setSalesAddressTel(mobile);
             salesOrder.setSalesAddressName(consignee);
             salesOrder.setSalesAmount(total_amount);

+ 8 - 6
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/add_order.ftl

@@ -148,6 +148,9 @@
                 <div class="formControls col-2 col-sm-2">
                     <input type="text" class="input-text" value="" placeholder="填写收件人手机号" id="salesAddressTel" name="salesAddressTel" datatype="*1-20" errormsg="联系人电话格式不正确!">
                 </div>
+                <div class="formControls col-2 col-sm-2">
+                    <input type="text" class="input-text" value="" placeholder="收件人邮政编码" id="salesAddressPostcode" name="salesAddressPostcode" datatype="*1-6" errormsg="收件人邮政编码格式不正确!">
+                </div>
             </div>
 
           <div class="row cl address_info" id="" style="">
@@ -292,8 +295,7 @@
 </script>
 <#--时间控件-->
 <script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
-
-
+<script type="text/javascript" charset="utf-8" src="${path}/common/js/salesOrder/salesOrder.js"></script>
 
 <script type="text/javascript">
     var date = new Date();
@@ -313,14 +315,17 @@
         radioClass: 'iradio-blue',
         increaseArea: '20%'
     });
+
     var ulc = initAddress($(".address_info"));
+    ulc.setUlcAllCallback(setPostcode);
+
     var sc = $(".sales_channel").initSalesChannel();
     
     $(function () {
        if(isEmpty(salesCustomerId)){
            setSelectCustomer(salesCustomerId);
        }
-    })
+    });
 
     $("#store_1").on("input",function(){
         var $options=$("#datalist_1").children();
@@ -337,12 +342,9 @@
 
     /*如果修改信息时匹配地址出现失败,由此标识提醒一次,添加订单不需要次标识*/
     var isNameCorrect = true;
-
 </script>
 
 
-<script type="text/javascript" charset="utf-8" src="${path}/common/js/salesOrder/salesOrder.js"></script>
-
 
 </body>
 </html>

+ 5 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/order/salesOrder/update_order.ftl

@@ -153,6 +153,9 @@
                 <div class="formControls col-2 col-sm-2">
                     <input type="text" class="input-text" value="${order.salesAddressTel!""}" placeholder="填写收件人手机号" id="salesAddressTel" name="salesAddressTel" datatype="*1-11" errormsg="联系人电话格式不正确!">
                 </div>
+                <div class="formControls col-2 col-sm-2">
+                    <input type="text" class="input-text" value="${order.salesAddressPostcode!""}" placeholder="收件人邮政编码" id="salesAddressPostcode" name="salesAddressPostcode" datatype="*1-6" errormsg="收件人邮政编码格式不正确!">
+                </div>
             </div>
 
             <div class="row cl address_info" id="" style="">
@@ -332,6 +335,8 @@
     });
 
     var ulc = initAddress($(".address_info"));
+    ulc.setUlcAllCallback(setPostcode);
+
     var sc = initSalesChannel($(".sales_channel"));
 
     /*如果修改信息时匹配地址出现失败,由此标识提醒一次*/

+ 129 - 1
watero-rst-web/src/main/webapp/common/js/common/UnlimitedLevelContact.js

@@ -443,4 +443,132 @@ function init_ulc(node){
         urlPrefix:null
     });
     return ulc;
-};
+};
+
+
+
+
+/****
+ * 插件api :
+ * 插件依赖Jquery1.6以上
+ * version : 0.1 初始
+ * version : 1.0 建立回调函数
+ * version : 2.0增加一种简单调用方式
+ * version : 2.1优化以名称的判断方式
+ * version : 2.1增加设置值判断标志位,增加getIsNameCorrect()函数,可以查询加载完成之后,值是否设置成功;
+ * version : 2.2优化设置值的方式
+
+ *                   -------初始化-------
+ * 有两种初始化,可自行选择,推荐使用b
+ * a:为某个select通用组件注册,使用js赋值详细参数
+ *   html :
+ <div class="init_ulc">
+ <select class="ulc_level_1" ></select>
+ <select class="ulc_level_2" ></select>
+ </div>
+
+ *   js:
+ var $ulc1 = $(".init_ulc").find(".ulc_level_1");
+ var $ulc2 = $(".init_ulc").find(".ulc_level_2");
+ var ulc = $(".init_ulc").initUlc({
+            urlPrefix: "",          // 根路径
+            judgeNameShield : ["x1","x2"],      //在比对option的text的值时,需要去掉某些值,才能展示出包含的参数,如"省","市","县","乡","镇","市","自治区" -- 可选
+            allCallback: function xx(data){}        //回调函数名称,可选 -- 所有的select点击,都会触发此函数,回调的值为所有的selece选中的data数据 -- 可选
+            ulcLevel :  [           //select的集合
+                {
+                    ulcNode: $ulc1,	    //第一个select的节点 -- 必选
+                    ulcURL: "/getselect1",	//url  -- 必选
+                    ulcId : $ulc1.attr("ulcId"),	//用于默认选中某个选项  该值等于option的value -- 可选
+                    ulcName: $ulc1.attr("ulcName"), //用于默认选中某个选项  该值等于option的text -- 可选
+                    isFristSelect : false,	//是否有首行选择项,如“请选择XXX”  false:无  true:是  -- 可选
+                    fristSelectMsg : "请选择XXX", //当isFristSelect为true的时候,首行默认选中"请选择XXX",默认value为空  -- 当isFristSelect为true,必选
+                    callback:function xx(data){} // 当前select点击,触发该函数,回调的值为当前选中的data数据   -- 可选
+                    repData: function(res){ //res 即为原始返回的数据,json返回数据  -- 必选
+                        return {
+                            "isFlag": 200, //返回数据与code的值返回比较,相等为获取成功,不等为获取失败   -- 可选 ,默认200
+                            "code": res.xxxcode, //解析返回数据返回状态
+                            "msg": res.xxxMsg, //解析提示文本,失败提示文本
+                            "data": res.xxxList.data1List //解析数据列表,成功返回的是集合
+                        };
+                    },
+                    parseData:function(data){ //data为repData中的data数据  -- 必选
+                        return {
+                            "id": data.xxxId, //解析data中id值,为option的value
+                            "val": data.xxxName, //解析data中name值,为option的text
+                            "msg": data.xxxMsg, //附加值,可以绑定某个不需要的值,为option新增msg属性  -- 可选
+                        };
+                    }
+                },
+                {
+                    ulcNode: $ulc2,	    //第一个select的节点  -- 必选
+                    ……
+                },
+            ]
+        });
+ *
+ * b:使用html的属性来携带参数,直接初始化
+ *   html :
+ <div class="init_ulc" code="xxxcode" msg="xxxMsg" data="xxxList">
+ <select  class="select" ulcId=""  ulcName=""
+ ulcURL="/getselect1" ulcList="data1List" ulcValName="xxxName" ulcValId="xxxId"   ulcMsg=""
+ ulcIsFristSelect="true" ulcFristSelectMsg="请选择XXX">
+ </select>
+ <select  class="select" ulcId=""  ulcName=""
+ ulcURL="/getselect2" ulcList="data2List" ulcValName="xxxName" ulcValId="xxxId"  ulcMsg=""
+ ulcIsFristSelect="true" ulcFristSelectMsg="请选择XXX">
+ </select>
+ </div>
+
+ 属性说明:
+ div:
+ code: 解析返回数据返回状态
+ xxxMsg:解析提示文本,失败提示文本
+ xxxList:解析数据列表,成功返回的是集合
+ select:
+ ulcURL: url  -- 必选
+ ulcList: 解析数据列表,成功返回的是集合 data.xxxList.ulcList
+ ulcValName:解析data中name值,为option的text
+ ulcValId:解析data中id值,为option的value
+ ulcMsg:附加值,可以绑定某个不需要的值,为option新增msg属性  -- 可选
+ ulcIsFristSelect:是否有首行选择项,如“请选择XXX”  false:无  true:是  -- 必选
+ ulcFristSelectMsg:"请选择XXX", //当isFristSelect为true的时候,首行默认选中"请选择XXX",默认value为空  -- 当isFristSelect为true,必选
+ ulcId:用于默认选中某个选项  该值等于option的value -- 可选
+ ulcName:用于默认选中某个选项  该值等于option的text -- 可选
+
+ *   js:
+ var ulc = $(".init_ulc").initUlcByHtml({
+            ulcLevel:null
+        });
+ *                   -------初始化END-------
+ *                   -------方法-------
+ * setUlcById(level,id1,id2……);
+ *      level:
+ *          1:可以为第一个select的jq对象,
+ *              ulc.setUlcById($("第一个select元素"),1001,2001); 等价   ulc.setUlcById($("第一个select元素"),1001);  ulc.setUlcById($("第二个select元素"),2001);
+ *
+ *          2:可以level值(ulc初始化之后,会给每个select添加一个附加属性level,第一级select为0,第二级为1)
+ *              ulc.setUlcById(0,1001,2001);  等价   ulc.setUlcById(0,1001); ulc.setUlcById(1,2001);
+ *      id1/id2:
+ *          id的值
+ version : 2.2中优化设置值:ulc.setUlcById(level,array);   第二值为array类型; 同样末尾多于的值无用
+
+ *
+ * setUlcByName(level,name1,name2……); 基本操作同setUlcById一样
+ *      调用此方法,会去比对每一个select中option属性text的值,并不一定十分准确,另外还提供judgeNameShield集合来存储需要去除的文字,方便比对
+ *      具体方法参考 setUlcById()
+ *
+ * setUlcAllCallback(xxFunc);   setUlcAllCallback为设置全回调用方法,点击所有ulc组件的select,都将调用此方法,
+ *      xxFunc为自己的方法名称,如function xxFunc(data){}  data: 每个select中option,都是一个data,ulc将会吧每一级选中的data存储下来形成集合
+ *          data[0] ==》 第一级的select选中的参数的data
+ *          data[1] ==》 第二级的select选中的参数的data
+ *
+ *setUlcCallback(xx1Func,level);  setUlcCallback为单个select的点击事件设置回调方法
+ *      xx1Func:
+ *          为自己的方法名称,如function xxFunc(ulc1Data){}  ulc1Data: 该level的select所选的值
+ *      level
+ *          级别0,1,2,3
+
+ *getIsNameCorrect()();  调用此方法,可返回setUlcByName()和setUlcById()的设置值是否正确;
+ *     return boolean   true为正确,false 有误
+ *                   -------方法END-------
+ */

+ 8 - 0
watero-rst-web/src/main/webapp/common/js/salesOrder/salesOrder.js

@@ -305,4 +305,12 @@ function calculatePrice(){
     $("#salesDiscountMoney").val(salesPayMoneyAll);
 
     $("#salesLastMoney").val(colorDiscountAll);
+}
+
+/**
+ * 设置邮编
+ * @param data
+ */
+function setPostcode(data) {
+    $("#salesAddressPostcode").val(data[2].postcode);
 }