DriverMdBind.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\models;
  8. use Yii;
  9. use yii\behaviors\TimestampBehavior;
  10. use yii\db\ActiveRecord;
  11. /**
  12. * This is the model class for table "{{%driver_md_bind}}".
  13. *
  14. * @property integer $id
  15. * @property integer $driver_id
  16. * @property integer $md_id
  17. * @property integer $store_id
  18. * @property integer $is_delete
  19. * @property integer $created_at
  20. * @property integer $updated_at
  21. */
  22. class DriverMdBind extends \yii\db\ActiveRecord
  23. {
  24. /**
  25. * @inheritdoc
  26. */
  27. public static function tableName()
  28. {
  29. return '{{%driver_md_bind}}';
  30. }
  31. public function behaviors()
  32. {
  33. return [
  34. [
  35. 'class' => TimestampBehavior::class,
  36. ]
  37. ];
  38. }
  39. /**
  40. * @inheritdoc
  41. */
  42. public function rules()
  43. {
  44. return [
  45. [['id', 'driver_id', 'md_id', 'store_id', 'is_delete', 'created_at', 'updated_at'], 'integer']
  46. ];
  47. }
  48. public function beforeSave($insert)
  49. {
  50. if (parent::beforeSave($insert)) {
  51. //1.判断其他司机是否绑定当前门店
  52. //2.判断司机当前仓库是否绑定当前门店 (需要获取绑定记录-需要获取仓库)
  53. if($this->isNewRecord){
  54. $md = Md::findOne(['id' => $this->md_id, 'is_delete' => 0, 'shop_audit' => 1]);
  55. if (!$md) {
  56. $this->addError('md', '所选门店不存在');
  57. return false;
  58. }
  59. $this->store_id = $md->store_id;
  60. $driver = Driver::findOne(['id' => $this->driver_id, 'is_delete' => 0]);
  61. if (!$driver) {
  62. $this->addError('driver', '所选司机不存在');
  63. return false;
  64. }
  65. $front_agent_admin_id = $driver->admin_id;
  66. $admin = Admin::findOne(['id' => $front_agent_admin_id, 'is_delete' => 0, 'type' => Admin::ADMIN_TYPE_FRONT_AGENT]);
  67. if (!$admin) {
  68. $this->addError('admin', '所选仓库不存在');
  69. return false;
  70. }
  71. //判断司机当前仓库是否绑定当前门店
  72. $agentFrontBind = AgentFrontBind::findOne(['front_agent_admin_id' => $front_agent_admin_id, 'is_delete' => 0, 'status' => 1, 'md_id' => $md->id]);
  73. if (!$agentFrontBind) {
  74. $this->addError('bind', '司机所属仓库未绑定当前门店');
  75. return false;
  76. }
  77. //按照目前设计图来讲 此表记录不会修改只能新增
  78. $bind = DriverMdBind::findOne(['md_id' => $md->id, 'is_delete' => 0]);
  79. if ($bind) {
  80. $this->addError('bind', '当前所选门店已绑定');
  81. return false;
  82. }
  83. }
  84. return true;
  85. }
  86. return false;
  87. }
  88. public function attributeLabels()
  89. {
  90. return [
  91. 'id' => '',
  92. 'driver_id' => '司机ID',
  93. 'md_id' => '门店ID',
  94. 'store_id' => '商城ID',
  95. 'is_delete' => '',
  96. 'created_at' => '',
  97. 'updated_at' => ''
  98. ];
  99. }
  100. public function getMdListQuery($driver_id) {
  101. self::find()->alias('dm')->leftJoin(['m' => Md::tableName()], 'dm.md_id=m.id')
  102. ->where(['dm.is_delete' => 0, 'm.is_delete' => 0]);
  103. }
  104. }