UserAppIcon.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <?php
  2. namespace app\common\model;
  3. use app\hander\HelpHander;
  4. use think\Db;
  5. use think\Model;
  6. class UserAppIcon extends Model
  7. {
  8. public function queryAppIconList($userId,$orgId){
  9. // 获取用户权限
  10. $roles = Db::name('user_roles')
  11. ->alias('ur')
  12. ->join('roles r','r.id = ur.roles_id')
  13. ->where('ur.user_id',$userId)
  14. ->where('r.org_id',$orgId)
  15. ->where('r.del',0)
  16. ->where('r.enable',1)
  17. ->column('r.appicons');
  18. $rolesapps = [];
  19. if($roles){
  20. foreach ($roles as $v){
  21. if($v){
  22. $rolesapps = array_merge($rolesapps,explode(',',$v));
  23. }
  24. }
  25. }
  26. $rolesapps = array_unique($rolesapps);
  27. $appicons = $this->getUserIcons($userId,$orgId);
  28. $appiconsjj = array_intersect($rolesapps,$appicons);
  29. $lists = [];
  30. if($appiconsjj){
  31. $lists = Db::name('app_icon')
  32. ->where('id','in',$appiconsjj)
  33. ->where('del',0)
  34. ->where('enable',1)
  35. ->select();
  36. }
  37. $banner = Db::name('banner')
  38. ->where('type',1)
  39. ->where('enable',1)
  40. ->where('del',0)
  41. ->order('sort asc,id asc')
  42. ->select();
  43. //$notice = model('Notice')->queryUserLastNotice($userId,$orgId);
  44. $notice = Db::name('leader_ship')
  45. ->where('del',0)
  46. ->where('enable',1)
  47. ->field('content')
  48. ->order('id desc')
  49. ->find();
  50. $iconList = Db::name('app_icon_cate')
  51. ->where('del',0)
  52. ->where('enable',1)
  53. ->field('id,name')
  54. ->select();
  55. $iconList[] = [
  56. 'id' => 0,
  57. 'name' => '综合总览'
  58. ];
  59. foreach ($iconList as $k=>$v){
  60. $appicon = [];
  61. if($rolesapps){
  62. $appicon = Db::name('app_icon')
  63. ->where('cate_id',$v['id'])
  64. ->where('id','in',$rolesapps)
  65. ->where('del',0)
  66. ->where('enable',1)
  67. ->select();
  68. }
  69. $iconList[$k]['appIconList'] = $appicon?$appicon:[];
  70. }
  71. $data = [
  72. 'commonIcon' => $lists?$lists:[],
  73. 'bannerList' => $banner?$banner:[],
  74. 'iconList' => $iconList,
  75. 'latestNotice' => $notice
  76. ];
  77. return $data;
  78. }
  79. public function queryAppIconListNew($userId,$orgId){
  80. // 获取用户权限
  81. $roles = Db::name('user_roles')
  82. ->alias('ur')
  83. ->join('roles r','r.id = ur.roles_id')
  84. ->where('ur.user_id',$userId)
  85. ->where('r.org_id',$orgId)
  86. ->where('r.del',0)
  87. ->where('r.enable',1)
  88. ->column('r.appicons');
  89. $rolesapps = [];
  90. if($roles){
  91. foreach ($roles as $v){
  92. if($v){
  93. $rolesapps = array_merge($rolesapps,explode(',',$v));
  94. }
  95. }
  96. }
  97. // $rolesapps = array_unique($rolesapps);
  98. // $appicons = $this->getUserIcons($userId,$orgId);
  99. $appiconsjj = array_unique($rolesapps);
  100. $lists = [];
  101. if($appiconsjj){
  102. $lists = Db::name('app_icon')
  103. ->where('id','in',$appiconsjj)
  104. ->where('del',0)
  105. ->where('enable',1)
  106. ->select();
  107. }
  108. $banner = Db::name('banner')
  109. ->where('type',1)
  110. ->where('enable',1)
  111. ->where('del',0)
  112. ->order('sort asc,id asc')
  113. ->select();
  114. // $notice = model('Notice')->queryUserLastNotice($userId,$orgId);
  115. $notice = Db::name('leader_ship')
  116. ->where('del',0)
  117. ->where('enable',1)
  118. ->field('content')
  119. ->order('id desc')
  120. ->find();
  121. $approval = model('Approval')->queryApprovalCateList($userId,$orgId);
  122. $lists = $lists?$lists:[];
  123. $modes = [12,13];
  124. $fcarr = $zharr = [];
  125. $token = input('token');
  126. // dump($lists);
  127. foreach ($lists as $k=>$v){
  128. if($v['url']){
  129. if(strstr($v['url'],'?') === false){
  130. $v['url'] = $v['url'].'?token='.$token.'&userId='.$userId;
  131. }else{
  132. $v['url'] = $v['url'].'&token='.$token.'&userId='.$userId;
  133. }
  134. }
  135. if(in_array($v['mode'],$modes)){
  136. $fcarr[] = $v;
  137. }else{
  138. $zharr[] = $v;
  139. }
  140. }
  141. // halt($zharr);
  142. $cateIcon = [
  143. // [
  144. // 'name' => '房产管理',
  145. // 'child' => $fcarr
  146. // ],
  147. [
  148. 'name' => '综合总览',
  149. 'child' => $zharr
  150. ],
  151. ];
  152. $data = [
  153. 'commonIcon' => $lists?$lists:[],
  154. 'bannerList' => $banner?$banner:[],
  155. 'approval' => $approval,
  156. 'latestNotice' => $notice,
  157. 'cateIcon' => $cateIcon
  158. ];
  159. return $data;
  160. }
  161. public function getUserIcons($userId,$orgId){
  162. $appicons = Db::name('user_app_icon')->where('user_id',$userId)->where('org_id',$orgId)->value('appicons');
  163. return $appicons?explode(',',$appicons):[];
  164. }
  165. public function updateAppIcon($iconId,$operation,$userId,$orgId){
  166. $info = Db::name('user_app_icon')
  167. ->where('user_id',$userId)
  168. ->where('org_id',$orgId)
  169. ->find();
  170. if($operation == 0){ // 添加
  171. if($info){
  172. $appicons = $info['appicons']?explode(',',$info['appicons']):[];
  173. if(in_array($iconId,$appicons)){
  174. HelpHander::error('已添加过,无需重新添加');
  175. }
  176. $appicons[] = $iconId;
  177. $ret = Db::name('user_app_icon')->where('id',$info['id'])->setField('appicons',implode(',',$appicons));
  178. }else{
  179. $ret = Db::name('user_app_icon')->insert(['user_id'=>$userId,'appicons'=>$iconId,'org_id'=>$orgId]);
  180. }
  181. if(!$ret){
  182. HelpHander::error('操作失败');
  183. }
  184. }else{ // 删除
  185. if($info){
  186. $appicons = $info['appicons']?explode(',',$info['appicons']):[];
  187. if(!$appicons){
  188. HelpHander::error('已删除');
  189. }
  190. $appicons = array_diff($appicons,[$iconId]);
  191. $ret = Db::name('user_app_icon')->where('id',$info['id'])->setField('appicons',implode(',',$appicons));
  192. if(!$ret){
  193. HelpHander::error('操作失败');
  194. }
  195. }else{
  196. HelpHander::error('已删除');
  197. }
  198. }
  199. return true;
  200. }
  201. }