CashierController.php 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <?php
  2. /**
  3. * CashierController.php
  4. * todo 文件描述
  5. * Created on 2024/12/11 下午2:21
  6. * @author: hankaige
  7. */
  8. namespace app\modules\admin\controllers;
  9. use app\models\CashierUserExt;
  10. use app\models\Md;
  11. use app\models\SaasUser;
  12. use app\models\User;
  13. class CashierController extends BaseController
  14. {
  15. public function actionCashierAdminList()
  16. {
  17. $query = User::find()->where(['store_id' => get_store_id(), 'is_delete' => 0, 'is_cashier' => 1])->select(['id','nickname','binding','avatar_url','cashier_status', 'cashier_data_auth'])->orderBy('id DESC');
  18. if(!empty(get_params('keyword'))){
  19. $query->andWhere(['like','nickname',get_params('keyword')]);
  20. }
  21. if (get_md_id() > 0) {
  22. $query->andWhere(['id' => CashierUserExt::find()->where(['md_id' => get_md_id(), 'is_delete' => 0])->select('user_id')]);
  23. } else {
  24. $query->andWhere(['NOT IN', 'id', CashierUserExt::find()->where(['is_delete' => 0])->select('user_id')]);
  25. }
  26. $pagination = pagination_make($query,true);
  27. foreach($pagination['list'] as &$value){
  28. if(!empty($value['binding'])){
  29. $sass_user = SaasUser::findOne(['mobile' => $value['binding']]);
  30. if ($sass_user) {
  31. $value['saas_id'] = $sass_user->id;
  32. $value['nickname'] = $sass_user->name;
  33. $value['avatar_url'] = $sass_user->avatar;
  34. }
  35. }
  36. $value['cashier_data_auth'] = intval($value['cashier_data_auth']);
  37. }
  38. $data = [
  39. 'code' => 0,
  40. 'msg' => 'success',
  41. 'data' => [
  42. 'data' => $pagination['list'],
  43. 'pageNo' => $pagination['pageNo'],
  44. 'totalCount' => $pagination['totalCount'],
  45. ],
  46. ];
  47. return $this->asJson($data);
  48. }
  49. // 门店手机收银台管理员列表
  50. public function actionMdCashierAdminList(){
  51. $query = CashierUserExt::find()
  52. ->alias('cue')
  53. ->leftJoin(['u' => User::tableName()],'cue.user_id=u.id and u.is_delete=0 and u.is_cashier=1')
  54. ->leftJoin(['md' => Md::tableName()],'cue.md_id=md.id')
  55. ->where(['cue.is_delete' => 0])
  56. ->andWhere(['IS NOT','u.id',null]);
  57. if(!empty(get_params('keyword'))){
  58. $query->andWhere(['like','u.nickname',get_params('keyword')]);
  59. }
  60. if(!empty(get_params('mobile'))){
  61. $query->andWhere(['u.binding'=>get_params('mobile')]);
  62. }
  63. if(!empty(get_params('md_name'))){
  64. $query->andWhere(['like','md.name',get_params('md_name')]);
  65. }
  66. $query->select(['u.id','u.nickname','u.binding','u.avatar_url','md.name','cue.balance','cue.integral','cue.id as cueid']);
  67. $pagination = pagination_make($query,true);
  68. foreach($pagination['list'] as &$value){
  69. if(!empty($value['binding'])){
  70. $sass_user = SaasUser::findOne(['mobile' => $value['binding']]);
  71. if ($sass_user) {
  72. $value['saas_id'] = $sass_user->id;
  73. $value['nickname'] = $sass_user->name;
  74. $value['avatar_url'] = $sass_user->avatar;
  75. }
  76. }
  77. $value['cashier_data_auth'] = intval($value['cashier_data_auth']);
  78. $value['balance'] = intval($value['balance']);
  79. $value['integral'] = intval($value['integral']);
  80. }
  81. $data = [
  82. 'code' => 0,
  83. 'msg' => 'success',
  84. 'data' => [
  85. 'data' => $pagination['list'],
  86. 'pageNo' => $pagination['pageNo'],
  87. 'totalCount' => $pagination['totalCount'],
  88. ],
  89. ];
  90. return $this->asJson($data);
  91. }
  92. public function actionChangeMdCashierAdminAuth(){
  93. $id = post_params('id');
  94. $type = post_params('type');
  95. $value = post_params('value');
  96. if(!in_array($value,[1,0])){
  97. return $this->asJson(['code' => 1, 'msg' => '要修改的状态值错误']);
  98. }
  99. $cashierUserExt = CashierUserExt::findOne(['id' => $id, 'is_delete' => 0]);
  100. if(!$cashierUserExt){
  101. return $this->asJson(['code' => 1, 'msg' => '要修改的数据不存在']);
  102. }
  103. if($type == 1){
  104. $cashierUserExt->balance = $value ?? 0;
  105. }elseif($type == 2){
  106. $cashierUserExt->integral = $value ?? 0;
  107. }else{
  108. return $this->asJson(['code' => 1, 'msg' => '要修改的数据类型错误']);
  109. }
  110. if($cashierUserExt->save()){
  111. return $this->asJson(['code' => 0, 'msg' => '修改成功']);
  112. }else{
  113. return $this->asJson(['code' => 1, 'msg' => '修改失败']);
  114. }
  115. }
  116. public function actionCashierAdminAdd(){
  117. // 这里的user_id 是saas_user_id
  118. $userId = post_params('user_id');
  119. $status = post_params('status');
  120. $cashier_data_auth = post_params('cashier_data_auth');
  121. $md_id = get_md_id();
  122. // $saasUser = SaasUser::findOne($userId);
  123. $user = User::findOne(['store_id' => get_store_id(),'id' => $userId]);
  124. if(empty($user)){
  125. return $this->asJson(['code' => 1, 'msg' => '用户不存在']);
  126. }
  127. if($user->is_cashier == 1){
  128. return $this->asJson(['code' => 1, 'msg' => '该用户已是收银台管理员']);
  129. }
  130. $user->is_cashier = 1;
  131. $user->cashier_status = $status;
  132. $user->cashier_data_auth = $cashier_data_auth;
  133. if($user->save()){
  134. if ($md_id > 0) {
  135. $form = new CashierUserExt();
  136. $form->user_id = $user->id;
  137. $form->md_id = $md_id;
  138. $form->save();
  139. }
  140. return $this->asJson(['code' => 0, 'msg' => '设置收银台管理员成功']);
  141. }else{
  142. return $this->asJson(['code' => 1, 'msg' => '设置收银台管理员失败']);
  143. }
  144. }
  145. //设置收银台管理员员工查看数据权限
  146. public function actionSetCashierAdminAuth(){
  147. $userId = post_params('user_id');
  148. $cashier_data_auth = post_params('cashier_data_auth');
  149. $user = User::findOne($userId);
  150. if($user->is_cashier == 0){
  151. return $this->asJson(['code' => 1, 'msg' => '当前用户不是收银台管理员']);
  152. }
  153. $user->cashier_data_auth = $cashier_data_auth;
  154. if($user->save()){
  155. return $this->asJson(['code' => 0, 'msg' => '设置成功']);
  156. }else{
  157. return $this->asJson(['code' => 1, 'msg' => '设置失败']);
  158. }
  159. }
  160. public function actionSetCashierAdminStatus(){
  161. $userId = post_params('user_id');
  162. $cashierStatus = post_params('status');
  163. $user = User::findOne($userId);
  164. if($user->is_cashier == 0){
  165. return $this->asJson(['code' => 1, 'msg' => '当前用户不是收银台管理员']);
  166. }
  167. $user->cashier_status = $cashierStatus;
  168. if($user->save()){
  169. return $this->asJson(['code' => 0, 'msg' => '状态设置成功']);
  170. }else{
  171. return $this->asJson(['code' => 1, 'msg' => '状态设置失败']);
  172. }
  173. }
  174. public function actionCashierAdminDel(){
  175. $userId = get_params('user_id');
  176. $md_id = get_md_id();
  177. $user = User::findOne($userId);
  178. $user->cashier_status = 0;
  179. $user->cashier_data_auth = 0;
  180. $user->is_cashier = 0;
  181. if($user->save()){
  182. if ($md_id > 0) {
  183. CashierUserExt::deleteAll(['user_id' => $userId]);
  184. }
  185. return $this->asJson(['code' => 0, 'msg' => '删除成功']);
  186. }else{
  187. return $this->asJson(['code' => 1, 'msg' => '删除失败']);
  188. }
  189. }
  190. }