UserForm.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. /*
  8. * @Author: your name
  9. * @Date: 2021-05-08 17:38:35
  10. * @LastEditTime: 2021-05-18 18:31:26
  11. * @LastEditors: Please set LastEditors
  12. * @Description: In User Settings Edit
  13. * @FilePath: \admin_php\modules\client\models\v1\admin\UserForm.php
  14. */
  15. namespace app\modules\client\models\v1\admin;
  16. use app\models\Clerk;
  17. use app\models\Order;
  18. use app\models\Shop;
  19. use app\models\User;
  20. use Yii;
  21. use yii\base\Model;
  22. class UserForm extends Model
  23. {
  24. public $store_id;
  25. public $name;
  26. public $status;
  27. /**
  28. * @return array the validation rules.
  29. */
  30. public function rules()
  31. {
  32. return [
  33. [['name'], 'trim'],
  34. [['status'], 'integer'],
  35. ];
  36. }
  37. public function getUserList()
  38. {
  39. $query = User::find()->alias('u')->where([
  40. 'u.type' => User::USER_TYPE_NORMAL,
  41. 'u.store_id' => $this->store_id,
  42. 'u.is_delete' => User::USER_NOT_DELETE,
  43. ]);
  44. // 名称或者昵称
  45. if ($this->name) {
  46. $query->andWhere(['or', ['like', 'u.nickname', $this->name], ['like', 'u.username', $this->name]]);
  47. }
  48. if ($this->status == 1) {
  49. $query->andWhere([
  50. 'u.is_clerk' => 1
  51. ]);
  52. }
  53. $orderQuery = Order::find()->where(['store_id' => $this->store_id, 'is_delete' => 0,
  54. 'mch_id' => 0])->andWhere('user_id = u.id')->andWhere(['<>', 'trade_status', Order::ORDER_FLOW_CANCEL])->select('count(1)');
  55. $query->select(['u.nickname', 'u.avatar_url', 'u.id', 'u.integral', 'u.money', 'u.is_clerk', 'u.shop_id' ,'order_num' => $orderQuery])->orderBy('u.created_at DESC');
  56. $pagination = pagination_make($query);
  57. $list = $pagination['list'];
  58. foreach ($list as $key => $value) {
  59. $list[$key]['shop'] = [];
  60. if ($value['is_clerk']) {
  61. $list[$key]['shop'] = Shop::find()->select('name, id')->one();
  62. $list[$key]['clerk_id'] = Clerk::findOne(['user_id' => $value['id'], 'is_delete' => 0])->id;
  63. }
  64. }
  65. return [
  66. 'code' => 0,
  67. 'msg' => 'success',
  68. 'data' => [
  69. 'data' => $list,
  70. 'pageNo' => $pagination['pageNo'],
  71. 'totalCount' => $pagination['totalCount'],
  72. ],
  73. ];
  74. }
  75. public function delClerk($id, $user_id)
  76. {
  77. $t = \Yii::$app->db->beginTransaction();
  78. $model = Clerk::findOne(['id' => $id]);
  79. if ($model) {
  80. $model->is_delete = Clerk::IS_DELETE_YES;
  81. if (!$model || !$model->save()) {
  82. $t->rollBack();
  83. return [
  84. 'code' => 1,
  85. 'msg' => $model->getErrorSummary(false)[0]
  86. ];
  87. }
  88. }
  89. // 核銷園同步到user表
  90. if ($user_id > 0) {
  91. $user = User::findOne(['id' => $user_id]);
  92. $user->is_clerk = 0;
  93. $user->shop_id = 0;
  94. $user->save();
  95. }
  96. $t->commit();
  97. return [
  98. 'code' => 0,
  99. 'msg' => '删除成功'
  100. ];
  101. }
  102. }