Commit 147fdcc79af5e286e524fc77902675f48203c6f8
1 parent
5d832b12
物流运算的公共函数
Showing
1 changed file
with
78 additions
and
0 deletions
utils/util.js
@@ -514,6 +514,83 @@ function wx_back() { | @@ -514,6 +514,83 @@ function wx_back() { | ||
514 | } | 514 | } |
515 | } | 515 | } |
516 | 516 | ||
517 | + | ||
518 | +//-------------------计算物流--------------- | ||
519 | +function calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, | ||
520 | + goods_piece, user_addr, back_data,rs) { | ||
521 | + var price = 0; | ||
522 | + price += parseFloat(o_shipping_price); | ||
523 | + if (user_addr == null) { | ||
524 | + return 0; | ||
525 | + } | ||
526 | + //如果是包邮 | ||
527 | + if (back_data && back_data.is_by_all && !back_data.no_free_goods && out_of_weight >= 0) { | ||
528 | + return 0; | ||
529 | + } | ||
530 | + //计算物流的config item; | ||
531 | + var item = null; | ||
532 | + | ||
533 | + //------------循环获取config----------- | ||
534 | + function get_wuliu_config(region_id, code, rs) { | ||
535 | + var item = null, rslist = rs.pageData; | ||
536 | + for (var i = 0; i < rslist.length; i++) { | ||
537 | + if (rslist[i].code == code && rslist[i].region_id == region_id) { | ||
538 | + item = rslist[i]; | ||
539 | + } | ||
540 | + } | ||
541 | + return item; | ||
542 | + } | ||
543 | + //-------循环获取config,code default------- | ||
544 | + function get_wuliu_default(code, rs) { | ||
545 | + var item = null, rslist = rs.pageData; | ||
546 | + for (var i = 0; i < rslist.length; i++) { | ||
547 | + if (rslist[i].shipping_code == code && rslist[i].is_default == 1) { | ||
548 | + item = rslist[i]; | ||
549 | + } | ||
550 | + } | ||
551 | + return item; | ||
552 | + } | ||
553 | + | ||
554 | + //先根据 镇 县 区找计算的config | ||
555 | + item = get_wuliu_config(user_addr.district, code, rs); | ||
556 | + if (item == null) item = get_wuliu_config(user_addr.city, code, rs); | ||
557 | + if (item == null) item = get_wuliu_config(user_addr.province, code, rs); | ||
558 | + if (item == null) item = get_wuliu_default(code, rs); | ||
559 | + if (item == null) return o_shipping_price; | ||
560 | + var fw_price = 0, fp_price = 0; | ||
561 | + item = item.config; | ||
562 | + if (item == null) return o_shipping_price; | ||
563 | + | ||
564 | + //------超出重量---------- | ||
565 | + if (back_data && back_data.is_by_all && out_of_weight<0){ | ||
566 | + goods_weight+=out_of_weight; | ||
567 | + if(goods_weight<=0) goods_weight=-1; | ||
568 | + } | ||
569 | + | ||
570 | + //------按重量---------- | ||
571 | + if (goods_weight >= 0 && item['money']) { | ||
572 | + fw_price = parseFloat(item['money']); | ||
573 | + if (goods_weight > item['first_weight']) { | ||
574 | + var fw = goods_weight - item['first_weight']; | ||
575 | + var n = Math.ceil(fw / item['second_weight']) | ||
576 | + fw_price = fw_price + n * parseFloat(item['add_money']); | ||
577 | + } | ||
578 | + } | ||
579 | + | ||
580 | + //------按件数---------- | ||
581 | + if (goods_piece > 0 && item['piecemoney']) { | ||
582 | + fp_price = parseFloat(item['piecemoney']); | ||
583 | + if (goods_piece > item['first_piece']) { | ||
584 | + var fp = goods_piece - item['first_piece']; | ||
585 | + var m = Math.ceil(fp / item['second_piece']) | ||
586 | + fp_price = fp_price + m * parseFloat(item['add_piecemoney']); | ||
587 | + } | ||
588 | + } | ||
589 | + | ||
590 | + var rspice = parseFloat(price + fw_price + fp_price); | ||
591 | + return rspice; | ||
592 | +} | ||
593 | + | ||
517 | module.exports = { | 594 | module.exports = { |
518 | formatTime: function(e, r) { | 595 | formatTime: function(e, r) { |
519 | var t = e ? new Date(1e3 * e) : new Date(), n = t.getFullYear(), o = t.getMonth() + 1, a = t.getDate(), u = t.getHours(), i = t.getMinutes(), f = t.getSeconds(), s = function(e) { | 596 | var t = e ? new Date(1e3 * e) : new Date(), n = t.getFullYear(), o = t.getMonth() + 1, a = t.getDate(), u = t.getHours(), i = t.getMinutes(), f = t.getSeconds(), s = function(e) { |
@@ -627,4 +704,5 @@ module.exports = { | @@ -627,4 +704,5 @@ module.exports = { | ||
627 | ajax_ok2:ajax_ok2, //将JS数组对象按其某个键值重组成Map对象 | 704 | ajax_ok2:ajax_ok2, //将JS数组对象按其某个键值重组成Map对象 |
628 | wx_back:wx_back, | 705 | wx_back:wx_back, |
629 | _debounce, | 706 | _debounce, |
707 | + calculatewuliu:calculatewuliu, //计算物流的函数进行抽象 | ||
630 | }; | 708 | }; |