ExpressDelivery.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace app\common\model;
  3. use app\common\model\TimeModel;
  4. use think\facade\Db;
  5. class ExpressDelivery extends TimeModel
  6. {
  7. protected $name = "express_delivery";
  8. protected $deleteTime = false;
  9. public static function saveExpress ($data)
  10. {
  11. $nowTime = date('Y-m-d H:i:s', time());
  12. if($data['price_method'] == 1){
  13. $express_delivery = [
  14. 'name' => $data['name'],
  15. 'remake' => $data['remake'],
  16. 'price_method' => $data['price_method'],
  17. 'default_free_price' => $data['default_free_price'],
  18. 'default_price' => $data['default_price'],
  19. 'default_fastandard_price' => $data['default_fastandard_price'],
  20. 'updated_time' => $nowTime
  21. ];
  22. }else{
  23. $express_delivery = [
  24. 'name' => $data['name'],
  25. 'remake' => $data['remake'],
  26. 'price_method' => $data['price_method'],
  27. 'default_pieces' => $data['default_pieces'],
  28. 'default_price' => $data['default_price'],
  29. 'add_pieces' => $data['add_pieces'],
  30. 'add_price' => $data['add_price'],
  31. 'updated_time' => $nowTime
  32. ];
  33. }
  34. Db::startTrans();
  35. try {
  36. $express_shipping_method = []; //地区item
  37. $delivery = isset($data['id']) ? $data['id'] : 0;
  38. $msg = $delivery ? '保存' : '添加';
  39. if (!empty($data['id'])) {
  40. $express_delivery['id'] = $data['id'];
  41. Db::name('express_delivery')->strict(false)->save($express_delivery);
  42. Db::name('express_shipping_method')->where(['template_id' => $delivery])->delete();
  43. } else {
  44. $delivery = Db::name('express_delivery')->strict(false)->insertGetId($express_delivery);
  45. }
  46. if ($data['express_area']) {
  47. foreach ($data['express_area']['area_ids'] as $k => $v) {
  48. $express_shipping_method[$k]['fast_address_ids'] = $v;
  49. $express_shipping_method[$k]['address_items_ids'] = implode(',', Db::name('area')->where(['pid' => $v])->column('id'));
  50. }
  51. foreach ($data['express_area']['area_text'] as $k => $v) {
  52. $express_shipping_method[$k]['fast_address'] = $v;
  53. }
  54. if($data['price_method'] == 1){
  55. foreach ($data['express_area']['free_price'] as $k => $v) {
  56. $express_shipping_method[$k]['free_price'] = $v;
  57. }
  58. foreach ($data['express_area']['price'] as $k => $v) {
  59. $express_shipping_method[$k]['price'] = $v;
  60. }
  61. foreach ($data['express_area']['fastandard_price'] as $k => $v) {
  62. $express_shipping_method[$k]['fastandard_price'] = $v;
  63. }
  64. foreach ($express_shipping_method as $k => &$v) {
  65. $v['template_id'] = $delivery;
  66. }
  67. }else{
  68. foreach ($data['express_area']['pieces'] as $k => $v) {
  69. $express_shipping_method[$k]['pieces'] = $v;
  70. }
  71. foreach ($data['express_area']['price'] as $k => $v) {
  72. $express_shipping_method[$k]['price'] = $v;
  73. }
  74. foreach ($data['express_area']['add_pieces'] as $k => $v) {
  75. $express_shipping_method[$k]['add_pieces'] = $v;
  76. }
  77. foreach ($data['express_area']['add_price'] as $k => $v) {
  78. $express_shipping_method[$k]['add_price'] = $v;
  79. }
  80. foreach ($express_shipping_method as $k => &$v) {
  81. $v['template_id'] = $delivery;
  82. }
  83. }
  84. Db::name('express_shipping_method')->insertAll($express_shipping_method);
  85. }
  86. Db::commit();
  87. return json(['code' => 1, 'msg' => $msg . '成功']);
  88. } catch (\Exception $e) {
  89. Db::rollback();
  90. return json(['code' => 0, 'msg' => $msg . '失败' . $e->getMessage()]);
  91. }
  92. }
  93. }