链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

252 lines
11 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Common\Auth;
  4. use App\Admin\Common\Type;
  5. use App\Admin\Metrics\Examples;
  6. use App\Http\Controllers\Controller;
  7. use App\Models\LanzuMpInfo;
  8. use App\Models\LanzuUserRelationBind;
  9. use App\Models\v3\Market;
  10. use Dcat\Admin\Controllers\Dashboard;
  11. use Dcat\Admin\Layout\Column;
  12. use Dcat\Admin\Layout\Content;
  13. use Dcat\Admin\Layout\Row;
  14. use Dcat\Admin\Admin;
  15. use Illuminate\Support\Facades\DB;
  16. class HomeController extends Controller
  17. {
  18. public function index(Content $content)
  19. {
  20. if (Admin::user()->isRole('lanzu_business')) {
  21. return $this->lanzu_biz($content);
  22. } elseif (Admin::user()->isRole('lanzu_mp')) {
  23. return $this->lanzu_mp($content);
  24. } elseif (Admin::user()->isRole('lanzu_mm')) {
  25. return $this->lanzu_mm($content);
  26. } elseif (Admin::user()->isRole('lanzu_cs')) {
  27. return $this->lanzu_cs($content);
  28. } elseif (Admin::user()->isRole('market_service')) {
  29. return $this->market_service($content);
  30. }
  31. return $this->default($content);
  32. }
  33. protected function default(Content $content)
  34. {
  35. return $content
  36. ->header('Dashboard')
  37. ->description('Description...')
  38. ->body(function (Row $row) {
  39. $row->column(6, function (Column $column) {
  40. $column->row(Dashboard::title());
  41. $column->row(new Examples\Tickets());
  42. });
  43. $row->column(6, function (Column $column) {
  44. $column->row(function (Row $row) {
  45. $row->column(6, new Examples\NewUsers());
  46. $row->column(6, new Examples\NewDevices());
  47. });
  48. $column->row(new Examples\Sessions());
  49. $column->row(new Examples\ProductOrders());
  50. });
  51. });
  52. }
  53. /**
  54. * 服务商
  55. * @param Content $content
  56. * @return Content
  57. */
  58. protected function lanzu_mp(Content $content)
  59. {
  60. $mp = LanzuMpInfo::where('admin_user_id',Admin::user()->id)->first();
  61. $marketIds = Market::where('mp_id',$mp->id)->pluck('id')->toArray();
  62. return $content->header('控制面板')
  63. ->description('欢迎回到链街后台')
  64. ->body(function (Row $row) use ($marketIds) {
  65. $row->column(3, function (Column $column) {
  66. $column->row(new Examples\Community\TotalAmount(Admin::user()->id,Type::BALANCE_USER_TYPE_MP));
  67. });
  68. $row->column(3, function (Column $column)use ($marketIds) {
  69. $column->row(new Examples\ServiceCard\TotalStore($marketIds,'商户数'));
  70. });
  71. $row->column(3, function (Column $column)use ($marketIds) {
  72. $column->row(new Examples\Order\OrderData('订单数',[
  73. 'user_type'=>'lanzu_mp',//谁取数据 user_type 用户类型
  74. 'data_type'=>'number',//取什么数据 data_type 数据类型
  75. 'market_id'=>$marketIds,//取哪个市场数据
  76. 'condition'=>1,//取数据维度 condition
  77. ]));
  78. });
  79. $row->column(3, function (Column $column)use ($marketIds) {
  80. $column->row(new Examples\Order\OrderData('订单金额(元)',[
  81. 'user_type'=>'lanzu_mp',//谁取数据 user_type 用户类型
  82. 'data_type'=>'amount',//取什么数据 data_type 数据类型
  83. 'market_id'=>$marketIds,//取哪个市场数据
  84. 'condition'=>1,//取数据维度 condition
  85. ]));
  86. });
  87. });
  88. }
  89. protected function lanzu_mm(Content $content)
  90. {
  91. return $content->header('控制面板')
  92. ->description('欢迎回到链街后台')
  93. ->body(function (Row $row) {
  94. $row->column(3, function (Column $column) {
  95. $column->row(new Examples\Community\TotalAmount(Admin::user()->id,Type::BALANCE_USER_TYPE_MM));
  96. });
  97. $row->column(3, function (Column $column) {
  98. $column->row(new Examples\ServiceCard\TotalStore());
  99. });
  100. });
  101. }
  102. /**
  103. * 总社区
  104. * @param Content $content
  105. * @return Content
  106. */
  107. protected function lanzu_biz(Content $content)
  108. {
  109. $uid = LanzuUserRelationBind::pluck('user_id')->toArray();
  110. return $content->header('控制面板')
  111. ->description('欢迎回到链街后台')
  112. ->body(function (Row $row)use ($uid) {
  113. $row->column(3, function (Column $column) {
  114. $column->row(new Examples\Community\TotalCommunity());
  115. });
  116. $row->column(3, function (Column $column) {
  117. $column->row(new Examples\Community\TotalUser());
  118. });
  119. $row->column(3, function (Column $column)use ($uid) {
  120. $column->row(new Examples\Order\OrderData('下单人数',[
  121. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  122. 'data_type'=>'count_user',//取什么数据 data_type 数据类型
  123. 'market_id'=>'',//取哪个市场数据
  124. 'condition'=>1,//取数据维度 condition
  125. 'user_ids'=>$uid?$uid:null
  126. ]));
  127. });
  128. $row->column(3, function (Column $column)use ($uid) {
  129. $column->row(new Examples\Order\OrderData('订单数',[
  130. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  131. 'data_type'=>'number',//取什么数据 data_type 数据类型
  132. 'market_id'=>'',//取哪个市场数据
  133. 'condition'=>1,//取数据维度 condition
  134. 'user_ids'=>$uid?$uid:null
  135. ]));
  136. });
  137. $row->column(3, function (Column $column)use ($uid) {
  138. $column->row(new Examples\Order\OrderData('订单金额(元)',[
  139. 'user_type'=>'lanzu_biz',//谁取数据 user_type 用户类型
  140. 'data_type'=>'amount',//取什么数据 data_type 数据类型
  141. 'market_id'=>'',//取哪个市场数据
  142. 'condition'=>1,//取数据维度 condition
  143. 'user_ids'=>$uid?$uid:null
  144. ]));
  145. });
  146. });
  147. }
  148. /**
  149. * 社区服务点
  150. * @param Content $content
  151. * @return Content
  152. */
  153. protected function lanzu_cs(Content $content)
  154. {
  155. //查询用户绑定后下过单的用户id
  156. $uid = LanzuUserRelationBind::where('source_id',Admin::user()->id)
  157. ->leftJoin('lanzu_order_main','lanzu_order_main.user_id','lanzu_user_relation_bind.user_id')
  158. ->whereRaw('lanzu_order_main.created_at > lanzu_user_relation_bind.created_at')
  159. ->groupBy('lanzu_order_main.user_id')
  160. ->pluck('lanzu_order_main.user_id')
  161. ->toArray();//获取绑定社区的所有用户
  162. return $content->header('控制面板')
  163. ->description('欢迎回到链街后台')
  164. ->body(function (Row $row) use ($uid) {
  165. $row->column(3, function (Column $column) {
  166. $column->row(new Examples\Community\TotalAmount(Admin::user()->id,Type::BALANCE_USER_TYPE_CS));
  167. });
  168. $row->column(3, function (Column $column) {
  169. $column->row(new Examples\Community\TotalUser());
  170. });
  171. $row->column(3, function (Column $column) use ($uid) {
  172. $column->row(new Examples\Order\OrderData('下单人数',[
  173. 'user_type'=>'lanzu_cs',//谁取数据 user_type 用户类型
  174. 'data_type'=>'count_user',//取什么数据 data_type 数据类型
  175. 'market_id'=>'',//取哪个市场数据
  176. 'condition'=>1,//取数据维度 condition
  177. 'user_ids'=>$uid?$uid:null
  178. ]));
  179. });
  180. $row->column(3, function (Column $column) use ($uid) {
  181. $column->row(new Examples\Order\OrderData('订单数',[
  182. 'user_type'=>'lanzu_cs',//谁取数据 user_type 用户类型
  183. 'data_type'=>'number',//取什么数据 data_type 数据类型
  184. 'market_id'=>'',//取哪个市场数据
  185. 'condition'=>1,//取数据维度 condition
  186. 'user_ids'=>$uid?$uid:null
  187. ]));
  188. });
  189. $row->column(3, function (Column $column) use ($uid) {
  190. $column->row(new Examples\Order\OrderData('订单金额(元)',[
  191. 'user_type'=>'lanzu_cs',//谁取数据 user_type 用户类型
  192. 'data_type'=>'amount',//取什么数据 data_type 数据类型
  193. 'market_id'=>'',//取哪个市场数据
  194. 'condition'=>1,//取数据维度 condition
  195. 'user_ids'=>$uid?$uid:null
  196. ]));
  197. });
  198. });
  199. }
  200. /**
  201. * 市场服务站
  202. * @param Content $content
  203. * @return Content
  204. */
  205. protected function market_service(Content $content)
  206. {
  207. $marketId = Auth::getMarket();
  208. return $content->header('控制面板')
  209. ->description('欢迎回到链街后台')
  210. ->body(function (Row $row)use ($marketId) {
  211. $row->column(4, function (Column $column)use ($marketId) {
  212. $column->row(new Examples\ServiceCard\TotalStore($marketId,'商户数'));
  213. });
  214. $row->column(4, function (Column $column)use ($marketId) {
  215. $column->row(new Examples\Order\OrderData('订单数',[
  216. 'user_type'=>'market_service',//谁取数据 user_type 用户类型
  217. 'data_type'=>'number',//取什么数据 data_type 数据类型
  218. 'market_id'=>$marketId,//取哪个市场数据
  219. 'condition'=>1,//取数据维度 condition
  220. ]));
  221. });
  222. $row->column(4, function (Column $column)use ($marketId) {
  223. $column->row(new Examples\Order\OrderData('订单金额(元)',[
  224. 'user_type'=>'market_service',//谁取数据 user_type 用户类型
  225. 'data_type'=>'amount',//取什么数据 data_type 数据类型
  226. 'market_id'=>$marketId,//取哪个市场数据
  227. 'condition'=>1,//取数据维度 condition
  228. ]));
  229. });
  230. });
  231. }
  232. }