GoodsDispatch.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. /**
  3. * 配送模板数据操作
  4. * Created by PhpStorm.
  5. * Author: 芸众商城 www.yunzshop.com
  6. * Date: 2017/2/24
  7. * Time: 下午2:31
  8. */
  9. namespace app\backend\modules\goods\models;
  10. use app\backend\modules\dispatch\models\DispatchType;
  11. use app\common\traits\MessageTrait;
  12. class GoodsDispatch extends \app\common\models\goods\GoodsDispatch
  13. {
  14. static protected $needLog = true;
  15. use MessageTrait;
  16. //public $timestamps = false;
  17. public $attributes = [
  18. 'dispatch_id' => 0,
  19. 'dispatch_price' => 0,
  20. 'dispatch_type' => 1,
  21. 'is_cod' => 1,
  22. 'dispatch_type_ids' => 1,
  23. ];
  24. /**
  25. * 获取商品配送信息关联数据
  26. * @param int $goodsId
  27. * @return array
  28. */
  29. public static function getInfo($goodsId)
  30. {
  31. return self::getDispatchInfo($goodsId);
  32. }
  33. public static function relationSave($goodsId, $data, $operate)
  34. {
  35. if(!$goodsId){
  36. return false;
  37. }
  38. if (!$data) {
  39. return false;
  40. }
  41. $dispatchModel = self::getModel($goodsId, $operate);
  42. //判断deleted
  43. if ($operate == 'deleted') {
  44. return $dispatchModel->delete();
  45. }
  46. $data['goods_id'] = $goodsId;
  47. $dispatch_type_ids = implode(',',$data['dispatch_type_ids']);
  48. if ($dispatch_type_ids) {
  49. $data['dispatch_type_ids'] = $dispatch_type_ids;
  50. } else {
  51. $data['dispatch_type_ids'] = DispatchType::EXPRESS;
  52. }
  53. $dispatchModel->setRawAttributes($data);
  54. return $dispatchModel->save();
  55. }
  56. public static function relationValidator($goodsId, $data, $operate)
  57. {
  58. $flag = false;
  59. $model = new static;
  60. $validator = $model->validator($data);
  61. if($validator->fails()){
  62. $model->error($validator->messages());
  63. }else{
  64. $flag = true;
  65. }
  66. return $flag;
  67. }
  68. public static function getModel($goodsId,$operate)
  69. {
  70. $model = false;
  71. if($operate != 'created') {
  72. $model = static::where(['goods_id' => $goodsId])->first();
  73. }
  74. !$model && $model = new static;
  75. return $model;
  76. }
  77. /**
  78. * 商品配送信息关联数据添加
  79. * @param array $DispatchInfo
  80. * @return bool
  81. */
  82. public static function createdDispatch($DispatchInfo)
  83. {
  84. return self::insert($DispatchInfo);
  85. }
  86. /**
  87. * 商品配送信息关联数据更新
  88. * @param array $DispatchInfo
  89. * @return mixed
  90. */
  91. public static function updatedDispatch($dispatchId, $DispatchInfo)
  92. {
  93. return self::where('id', $dispatchId)->update($DispatchInfo);
  94. }
  95. /**
  96. * 商品配送信息关联数据删除
  97. * @param int $goodsId
  98. * @return mixed
  99. */
  100. public static function deletedDispatch($dispatchId)
  101. {
  102. return self::where('id', $dispatchId)->delete();
  103. }
  104. public static function deletedGoodsID($dispatchId)
  105. {
  106. return self::where('goods_id', $dispatchId)->delete();
  107. }
  108. public static function freightSave($goodsId, $data, $operate = '')
  109. {
  110. if (!$goodsId) {
  111. return false;
  112. }
  113. if (!$data) {
  114. return false;
  115. }
  116. self::deletedGoodsID($goodsId);
  117. $datas=[
  118. 'goods_id'=>$goodsId,
  119. 'dispatch_type'=>$data['freight_type'],
  120. 'is_cod'=>$data['is_cod'],
  121. ];
  122. if ($data['freight_type']==1) {
  123. $datas['dispatch_price']=$data['freight_value'];
  124. }else{
  125. $datas['dispatch_id']=$data['template_id'];
  126. }
  127. return self::relationSave($goodsId,$datas,"created");
  128. }
  129. }