InitSettingCommand.php 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. <?php
  2. namespace App\Console\Commands\Base;
  3. use App\Repositories\Models\Base\Admin;
  4. use App\Repositories\Models\Base\Dict;
  5. use App\Repositories\Models\Base\DictDetail;
  6. use App\Repositories\Models\Base\Role;
  7. use App\Repositories\Models\Base\Setting;
  8. use Illuminate\Console\Command;
  9. use Illuminate\Support\Arr;
  10. use Illuminate\Support\Facades\DB;
  11. use Illuminate\Support\Facades\Hash;
  12. /**
  13. * Class PresenterCommand
  14. * @package Prettus\Repository\Generators\Commands
  15. * @author Anderson Andrade <contato@andersonandra.de>
  16. */
  17. class InitSettingCommand extends Command
  18. {
  19. /**
  20. * The name of command.
  21. *
  22. * @var string
  23. */
  24. protected $signature = 'init:setting';
  25. /**
  26. * The description of command.
  27. *
  28. * @var string
  29. */
  30. protected $description = 'init setting';
  31. /**
  32. * The type of class being generated.
  33. *
  34. * @var string
  35. */
  36. protected $type = 'setting';
  37. /**
  38. * Execute the command.
  39. *
  40. * @return void
  41. * @see fire()
  42. */
  43. public function handle()
  44. {
  45. // $this->initSetting();
  46. // $this->initDict();
  47. $this->initRole();
  48. // $this->initUser();
  49. $this->line('配置初始化成功');
  50. }
  51. public function initRole()
  52. {
  53. $roles[] = [
  54. 'name' => 'admin',
  55. 'nickname' => '管理员',
  56. 'guard_name' => 'admins',
  57. 'is_system' => 1,
  58. ];
  59. $roles[] = [
  60. 'name' => 'shop_admin',
  61. 'nickname' => '门店管理员',
  62. 'guard_name' => 'admins',
  63. 'is_system' => 1,
  64. ];
  65. $roles[] = [
  66. 'name' => 'coach-vr',
  67. 'nickname' => 'VR教练',
  68. 'guard_name' => 'admins',
  69. 'is_system' => 1,
  70. ];
  71. $roles[] = [
  72. 'name' => 'coach-car',
  73. 'nickname' => '实车教练',
  74. 'guard_name' => 'admins',
  75. 'is_system' => 1,
  76. ];
  77. $roles[] = [
  78. 'name' => 'business',
  79. 'nickname' => '招生老师(全职)',
  80. 'guard_name' => 'admins',
  81. 'is_system' => 1,
  82. ];
  83. $roles[] = [
  84. 'name' => 'business-temp',
  85. 'nickname' => '招生老师(兼职)',
  86. 'guard_name' => 'admins',
  87. 'is_system' => 1,
  88. ];
  89. //
  90. // $roles[] = [
  91. // 'name' => 'yewu',
  92. // 'nickname' => '业务员',
  93. // 'guard_name' => 'admins',
  94. // 'is_system' => 1,
  95. // ];
  96. DB::statement('SET FOREIGN_KEY_CHECKS = 0'); // 禁用外键约束
  97. DB::table('base_roles')->truncate();
  98. DB::statement('SET FOREIGN_KEY_CHECKS = 1'); // 启用外键约束
  99. DB::transaction(function () use ($roles) {
  100. foreach ($roles as $role) {
  101. Role::query()->updateOrCreate(['name' => $role['name']], $role);
  102. }
  103. });
  104. }
  105. public function initUser()
  106. {
  107. $admin = Admin::query()->create([
  108. 'username' => 'superadmin',
  109. 'name' => '超级管理员',
  110. 'mobile' => '15225006562',
  111. 'type' => '1',
  112. 'email' => '751066209@qq.com',
  113. 'password' => Hash::make('Q1w2e3r4!'),
  114. ]);
  115. $admin->syncRoles('admin');
  116. }
  117. /**
  118. * 初始化字典
  119. * @return void
  120. */
  121. public function initDict()
  122. {
  123. $dicts[] = [
  124. 'name' => '准驾车型',
  125. 'code' => 'CAR_TYPE',
  126. 'is_system' => 1,
  127. 'options' => [
  128. [
  129. 'name' => 'C1',
  130. 'value' => 1,
  131. ],
  132. [
  133. 'name' => 'C2',
  134. 'value' => 2,
  135. ],
  136. ]
  137. ];
  138. // $dicts[] = [
  139. // 'name' => '缴费方式',
  140. // 'code' => 'CAR_PAY_MONEY_TYPE',
  141. // 'is_system' => 1,
  142. // 'options' => [
  143. // [
  144. // 'name' => '全款',
  145. // 'value' => 1,
  146. // ],
  147. // [
  148. // 'name' => '先学后付',
  149. // 'value' => 2,
  150. // ],
  151. // ]
  152. // ];
  153. DB::transaction(function () use ($dicts) {
  154. foreach ($dicts as $data) {
  155. $dict = Dict::query()->updateOrCreate(['code' => $data['code']], Arr::only($data, ['name', 'code', 'is_system']));
  156. foreach ($data['options'] as $option) {
  157. DictDetail::query()->updateOrCreate(['dict_id' => $dict['id'], 'name' => $option['name']], ['dict_id' => $dict['id'], 'name' => $option['name'], 'value' => $option['value']]);
  158. }
  159. }
  160. });
  161. }
  162. /**
  163. * 初始化配置
  164. * @return void
  165. */
  166. public function initSetting()
  167. {
  168. $settings[] = [
  169. 'name' => '系统上传图片允许格式',
  170. 'code' => 'system_upload_img_type',
  171. 'value' => 'png,jpg,gif,jpeg',
  172. 'is_system' => 1,
  173. ];
  174. $settings[] = [
  175. 'name' => '系统上传文件允许格式',
  176. 'code' => 'system_upload_file_type',
  177. 'value' => arr2str(["doc", 'docx', "xls", "pdf", 'xlsx', 'mp4', 'webvtt', 'vtt', "png", "jpg", "gif", 'jpeg'], ','),
  178. 'is_system' => 1,
  179. ];
  180. $settings[] = [
  181. 'name' => '锁屏时间',
  182. 'code' => 'system_auto_lock_minutes',
  183. 'value' => 30,
  184. 'is_system' => 1,
  185. ];
  186. $settings[] = [
  187. 'name' => '关于我们',
  188. 'code' => 'system_article_about_me',
  189. 'value' => '关于我们',
  190. 'is_system' => 1,
  191. ];
  192. // $settings[] = [
  193. // 'name' => '用户隐私协议',
  194. // 'code' => 'system_article_user_hidden',
  195. // 'value' => '用户隐私协议',
  196. // 'is_system' => 1,
  197. // ];
  198. //
  199. // $settings[] = [
  200. // 'name' => '用户协议',
  201. // 'code' => 'system_article_user',
  202. // 'value' => '用户协议',
  203. // 'is_system' => 1,
  204. // ];
  205. $settings[] = [
  206. 'name' => '科目二-实车教练-提成金额',
  207. 'code' => 'coach_car_2_bonus',
  208. 'value' => arr2str0([100, 50, 50, 0, 0], ','),
  209. 'is_system' => 1,
  210. 'tips' => '格式为:[第一次提成金额],[第二次提成金额],[第三次提成金额],[第四次提成金额],[第五次提成金额]',
  211. ];
  212. $settings[] = [
  213. 'name' => '科目三-实车教练-提成金额',
  214. 'code' => 'coach_car_3_bonus',
  215. 'value' => arr2str0([100, 50, 50, 0, 0], ','),
  216. 'is_system' => 1,
  217. 'tips' => '格式为:[第一次提成金额],[第二次提成金额],[第三次提成金额],[第四次提成金额],[第五次提成金额]',
  218. ];
  219. $settings[] = [
  220. 'name' => '店长-提成',
  221. 'code' => 'shop_manage_bonus',
  222. 'value' => 50,
  223. 'is_system' => 1,
  224. ];
  225. $settings[] = [
  226. 'name' => '招生老师【全职】-全款学员-提成',
  227. 'code' => 'salesman_all_bonus',
  228. 'value' => 100,
  229. 'is_system' => 1,
  230. ];
  231. $settings[] = [
  232. 'name' => '招生老师【兼职】-全款学员-提成',
  233. 'code' => 'time_salesman_all_bonus',
  234. 'value' => 100,
  235. 'is_system' => 1,
  236. ];
  237. $settings[] = [
  238. 'name' => '招生老师【全职】-先学后付学员-提成',
  239. 'code' => 'salesman_0_bonus',
  240. 'value' => '100,200',
  241. 'is_system' => 1,
  242. 'tips' => '格式为:[报名直接提成金额],[冻结提成金额];总提成为:两者金额之和;冻结金额解冻条件为:学费交完',
  243. ];
  244. $settings[] = [
  245. 'name' => '招生老师【兼职】-先学后付学员-提成',
  246. 'code' => 'time_salesman_0_bonus',
  247. 'value' => '100,200',
  248. 'is_system' => 1,
  249. 'tips' => '格式为:[报名直接提成金额],[冻结提成金额];总提成为:两者金额之和;冻结金额解冻条件为:学费交完',
  250. ];
  251. $settings[] = [
  252. 'name' => '学车费用-初考费',
  253. 'code' => 'car_init_money',
  254. 'value' => 410,
  255. 'is_system' => 1,
  256. ];
  257. $settings[] = [
  258. 'name' => '学车费用-科一补考',
  259. 'code' => 'car_lesson_1_re_money',
  260. 'value' => 25,
  261. 'is_system' => 1,
  262. ];
  263. $settings[] = [
  264. 'name' => '学车费用-科二补考',
  265. 'code' => 'car_lesson_2_re_money',
  266. 'value' => 100,
  267. 'is_system' => 1,
  268. ];
  269. $settings[] = [
  270. 'name' => '学车费用-科三补考',
  271. 'code' => 'car_lesson_3_re_money',
  272. 'value' => 75,
  273. 'is_system' => 1,
  274. ];
  275. $settings[] = [
  276. 'name' => '学车费用-科二模拟',
  277. 'code' => 'car_lesson_2_simulate_money',
  278. 'value' => 300,
  279. 'is_system' => 1,
  280. ];
  281. $settings[] = [
  282. 'name' => '学车费用-科三模拟',
  283. 'code' => 'car_lesson_3_simulate_money',
  284. 'value' => 300,
  285. 'is_system' => 1,
  286. ];
  287. $settings[] = [
  288. 'name' => '学车费用-科三场地费',
  289. 'code' => 'car_lesson_3_site',
  290. 'value' => 200,
  291. 'is_system' => 1,
  292. ];
  293. DB::transaction(function () use ($settings) {
  294. foreach ($settings as $setting) {
  295. Setting::query()->updateOrCreate(['code' => $setting['code']], $setting);
  296. }
  297. });
  298. }
  299. }