LocalDeliveryCourierComment.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <?php
  2. /**
  3. * 厦门云联储网络科技有限公司
  4. * https://www.baokuaiyun.com
  5. * Copyright (c) 2023 爆块云 All rights reserved.
  6. */
  7. namespace app\models;
  8. use Yii;
  9. use yii\helpers\Json;
  10. use yii\db\ActiveRecord;
  11. use yii\behaviors\TimestampBehavior;
  12. /**
  13. * This is the model class for table "{{%local_delivery_courier_comment}}".
  14. *
  15. * @property integer $id
  16. * @property integer $store_id
  17. * @property integer $rider_id
  18. * @property integer $d_order_id
  19. * @property integer $order_type
  20. * @property integer $star
  21. * @property string $desc
  22. * @property integer $is_show
  23. * @property integer $created_at
  24. * @property integer $updated_at
  25. */
  26. class LocalDeliveryCourierComment extends \yii\db\ActiveRecord
  27. {
  28. const IS_DELETE_YES = 1;//已删除
  29. const IS_DELETE_NO = 0;//未删除
  30. const IS_SHOW_YES = 1;//显示
  31. const IS_SHOW_NO = 0;//隐藏
  32. /**
  33. * 充值订单
  34. */
  35. const TYPE_RECHARGE_ORDER = 0;
  36. /**
  37. * 商城订单
  38. */
  39. const TYPE_PLATFORM_ORDER = 1;
  40. /**
  41. * 秒杀订单
  42. */
  43. const TYPE_MS_ORDER = 2;
  44. /**
  45. * 拼团订单
  46. */
  47. const TYPE_PT_ORDER = 3;
  48. /**
  49. * 预约订单
  50. */
  51. const TYPE_YY_ORDER = 8;
  52. /**
  53. * 预约订单
  54. */
  55. const TYPE_SCRATCH_ORDER = 9;
  56. /**
  57. * 供货商订单
  58. */
  59. const TYPE_SUPPLIER_ORDER = 11;
  60. /**
  61. * 会员购买订单
  62. */
  63. const TYPE_LEVEL_ORDER = 12;
  64. /**
  65. * 当面付
  66. */
  67. const TYPE_SCAN_CODE_PAY = 13;
  68. /**
  69. * @inheritdoc
  70. */
  71. public static function tableName()
  72. {
  73. return '{{%local_delivery_courier_comment}}';
  74. }
  75. public function behaviors()
  76. {
  77. return [
  78. [
  79. 'class' => TimestampBehavior::class
  80. ]
  81. ];
  82. }
  83. /**
  84. * @inheritdoc
  85. */
  86. public function rules()
  87. {
  88. return [
  89. [['id', 'store_id', 'rider_id', 'd_order_id', 'order_type', 'star', 'is_show', 'created_at', 'updated_at'], 'integer'],
  90. [['desc'], 'string', 'max' => 255],
  91. ];
  92. }
  93. /**
  94. * @inheritdoc
  95. */
  96. public function attributeLabels()
  97. {
  98. return [
  99. 'id' => '',
  100. 'store_id' => '商城id',
  101. 'rider_id' => '骑手id',
  102. 'd_order_id' => '订单id',
  103. 'order_type' => '订单类型',
  104. 'star' => '评分',
  105. 'desc' => '评价详情',
  106. 'is_show' => '是否显示',
  107. 'created_at' => '创建时间',
  108. 'updated_at' => '修改时间',
  109. ];
  110. }
  111. public function beforeSave($insert)
  112. {
  113. if (parent::beforeSave($insert)) {
  114. //满意度
  115. $rider_comment = self::find()
  116. ->where(['rider_id' => $this->rider_id, 'is_show' => self::IS_SHOW_YES])
  117. ->select('star')->column();
  118. array_push($rider_comment, $this->star);
  119. //debug_log($rider_comment, 'courier.log');
  120. if (!empty($rider_comment)) {
  121. $rider_star = array_sum($rider_comment);
  122. $total_star = count($rider_comment) * 5;
  123. //debug_log([
  124. 'rider_star' => $rider_star,
  125. 'total_star' => $total_star
  126. ], 'courier.log');
  127. $courier = LocalDeliveryCourier::findOne($this->rider_id);
  128. if (empty($courier)) {
  129. $this->addError('rider', '骑手查询失败');
  130. return false;
  131. }
  132. $courier->star = sprintf('%.2f', $rider_star / $total_star);
  133. if (!$courier->save()) {
  134. $this->addError('rider_save', '保存失败');
  135. return false;
  136. }
  137. return true;
  138. }
  139. }
  140. }
  141. }