| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- namespace app\common\model;
- use app\common\model\TimeModel;
- use think\facade\Db;
- class ExpressDelivery extends TimeModel
- {
- protected $name = "express_delivery";
- protected $deleteTime = false;
- public static function saveExpress ($data)
- {
- $nowTime = date('Y-m-d H:i:s', time());
- if($data['price_method'] == 1){
- $express_delivery = [
- 'name' => $data['name'],
- 'remake' => $data['remake'],
- 'price_method' => $data['price_method'],
- 'default_free_price' => $data['default_free_price'],
- 'default_price' => $data['default_price'],
- 'default_fastandard_price' => $data['default_fastandard_price'],
- 'updated_time' => $nowTime
- ];
- }else{
- $express_delivery = [
- 'name' => $data['name'],
- 'remake' => $data['remake'],
- 'price_method' => $data['price_method'],
- 'default_pieces' => $data['default_pieces'],
- 'default_price' => $data['default_price'],
- 'add_pieces' => $data['add_pieces'],
- 'add_price' => $data['add_price'],
- 'updated_time' => $nowTime
- ];
- }
- Db::startTrans();
- try {
- $express_shipping_method = []; //地区item
- $delivery = isset($data['id']) ? $data['id'] : 0;
- $msg = $delivery ? '保存' : '添加';
- if (!empty($data['id'])) {
- $express_delivery['id'] = $data['id'];
- Db::name('express_delivery')->strict(false)->save($express_delivery);
- Db::name('express_shipping_method')->where(['template_id' => $delivery])->delete();
- } else {
- $delivery = Db::name('express_delivery')->strict(false)->insertGetId($express_delivery);
- }
- if ($data['express_area']) {
- foreach ($data['express_area']['area_ids'] as $k => $v) {
- $express_shipping_method[$k]['fast_address_ids'] = $v;
- $express_shipping_method[$k]['address_items_ids'] = implode(',', Db::name('area')->where(['pid' => $v])->column('id'));
- }
- foreach ($data['express_area']['area_text'] as $k => $v) {
- $express_shipping_method[$k]['fast_address'] = $v;
- }
- if($data['price_method'] == 1){
- foreach ($data['express_area']['free_price'] as $k => $v) {
- $express_shipping_method[$k]['free_price'] = $v;
- }
- foreach ($data['express_area']['price'] as $k => $v) {
- $express_shipping_method[$k]['price'] = $v;
- }
- foreach ($data['express_area']['fastandard_price'] as $k => $v) {
- $express_shipping_method[$k]['fastandard_price'] = $v;
- }
- foreach ($express_shipping_method as $k => &$v) {
- $v['template_id'] = $delivery;
- }
- }else{
- foreach ($data['express_area']['pieces'] as $k => $v) {
- $express_shipping_method[$k]['pieces'] = $v;
- }
- foreach ($data['express_area']['price'] as $k => $v) {
- $express_shipping_method[$k]['price'] = $v;
- }
- foreach ($data['express_area']['add_pieces'] as $k => $v) {
- $express_shipping_method[$k]['add_pieces'] = $v;
- }
- foreach ($data['express_area']['add_price'] as $k => $v) {
- $express_shipping_method[$k]['add_price'] = $v;
- }
- foreach ($express_shipping_method as $k => &$v) {
- $v['template_id'] = $delivery;
- }
- }
- Db::name('express_shipping_method')->insertAll($express_shipping_method);
- }
- Db::commit();
- return json(['code' => 1, 'msg' => $msg . '成功']);
- } catch (\Exception $e) {
- Db::rollback();
- return json(['code' => 0, 'msg' => $msg . '失败' . $e->getMessage()]);
- }
- }
- }
|