SystemGroup.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php
  2. namespace app\adminapi\controller\v1\setting;
  3. use app\adminapi\controller\AuthController;
  4. use think\Request;
  5. use crmeb\services\UtilService as Util;
  6. use app\models\system\SystemGroup as GroupModel;
  7. use app\models\system\SystemGroupData as GroupDataModel;
  8. use app\models\system\SystemGroupDataMerchant as GroupDataMerchantModel;
  9. /**
  10. * 组合数据
  11. * Class SystemGroup
  12. * @package app\adminapi\controller\v1\setting
  13. */
  14. class SystemGroup extends AuthController
  15. {
  16. /**
  17. * 显示资源列表
  18. *
  19. * @return \think\Response
  20. */
  21. public function index()
  22. {
  23. $where=Util::getMore([
  24. ['page',1],
  25. ['limit',15],
  26. ['keyword','']
  27. ]);
  28. $list = GroupModel::list($where);
  29. return $this->success($list);
  30. }
  31. /**
  32. * 显示创建资源表单页.
  33. *
  34. * @return \think\Response
  35. */
  36. public function create()
  37. {
  38. //
  39. }
  40. /**
  41. * 保存新建的资源
  42. *
  43. * @param \think\Request $request
  44. * @return \think\Response
  45. */
  46. public function save(Request $request)
  47. {
  48. $params = Util::postMore([
  49. ['name', ''],
  50. ['config_name', ''],
  51. ['info', ''],
  52. ['typelist', []],
  53. ], $this->request);
  54. //数据组名称判断
  55. if (!$params['name']) return $this->fail('请输入数据组名称!');
  56. if (!$params['config_name']) return $this->fail('请输入配置名称!');
  57. $data["name"] = $params['name'];
  58. $data["config_name"] = $params['config_name'];
  59. $data["info"] = $params['info'];
  60. //字段信息判断
  61. if (!count($params['typelist']))
  62. return $this->fail('字段至少存在一个!');
  63. else {
  64. $validate = ["name", "type", "title", "description"];
  65. foreach ($params["typelist"] as $key => $value) {
  66. foreach ($value as $name => $field) {
  67. if (empty($field["value"]) && in_array($name, $validate))
  68. return $this->fail("字段" . ($key + 1) . ":" . $field["placeholder"] . "不能为空!");
  69. else
  70. $data["fields"][$key][$name] = $field["value"];
  71. }
  72. }
  73. }
  74. $data["fields"] = json_encode($data["fields"]);
  75. GroupModel::create($data);
  76. \crmeb\services\CacheService::clear();
  77. return $this->success('添加数据组成功!');
  78. }
  79. /**
  80. * 显示指定的资源
  81. *
  82. * @param int $id
  83. * @return \think\Response
  84. */
  85. public function read($id)
  86. {
  87. $info = GroupModel::get($id);
  88. $fields = json_decode($info['fields'], true);
  89. $type_list = [];
  90. foreach ($fields as $key => $v) {
  91. $type_list[$key]['name']['value'] = $v['name'];
  92. $type_list[$key]['title']['value'] = $v['title'];
  93. $type_list[$key]['type']['value'] = $v['type'];
  94. $type_list[$key]['param']['value'] = $v['param'];
  95. }
  96. $info['typelist'] = $type_list;
  97. unset($info['fields']);
  98. return $this->success(compact('info'));
  99. }
  100. /**
  101. * 显示编辑资源表单页.
  102. *
  103. * @param int $id
  104. * @return \think\Response
  105. */
  106. public function edit($id)
  107. {
  108. //
  109. }
  110. /**
  111. * 保存更新的资源
  112. *
  113. * @param \think\Request $request
  114. * @param int $id
  115. * @return \think\Response
  116. */
  117. public function update(Request $request, $id)
  118. {
  119. $params = Util::postMore([
  120. ['name', ''],
  121. ['config_name', ''],
  122. ['info', ''],
  123. ['typelist', []],
  124. ], $this->request);
  125. //数据组名称判断
  126. if (!$params['name']) return $this->fail('请输入数据组名称!');
  127. if (!$params['config_name']) return $this->fail('请输入配置名称!');
  128. //判断ID是否存在,存在就是编辑,不存在就是添加
  129. if (!$id) {
  130. if (GroupModel::be($params['config_name'], 'config_name')) return $this->fail('数据关键字已存在!');
  131. }
  132. $data["name"] = $params['name'];
  133. $data["config_name"] = $params['config_name'];
  134. $data["info"] = $params['info'];
  135. //字段信息判断
  136. if (!count($params['typelist']))
  137. return $this->fail('字段至少存在一个!');
  138. else {
  139. $validate = ["name", "type", "title", "description"];
  140. foreach ($params["typelist"] as $key => $value) {
  141. foreach ($value as $name => $field) {
  142. if (empty($field["value"]) && in_array($name, $validate))
  143. return $this->fail("字段" . ($key + 1) . ":" . $field["placeholder"] . "不能为空!");
  144. else
  145. $data["fields"][$key][$name] = $field["value"];
  146. }
  147. }
  148. }
  149. $data["fields"] = json_encode($data["fields"]);
  150. GroupModel::edit($data, $id);
  151. \crmeb\services\CacheService::clear();
  152. return $this->success('编辑数据组成功!');
  153. }
  154. /**
  155. * 删除指定资源
  156. *
  157. * @param int $id
  158. * @return \think\Response
  159. */
  160. public function delete($id)
  161. {
  162. if (!GroupModel::del($id))
  163. return $this->fail(GroupModel::getErrorInfo('删除失败,请稍候再试!'));
  164. else {
  165. GroupDataMerchantModel::del(["gid" => $id]);
  166. return $this->success('删除成功!');
  167. }
  168. }
  169. }