Template.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. <?php
  2. namespace app\inter\controller;
  3. use think\Controller;
  4. use think\Db;
  5. use think\Session;
  6. use app\inter\model\TemplateModel;
  7. use app\common\library\ResultTools;
  8. use think\Request;
  9. use app\common\library\CheckTools;
  10. use app\common\library\ErrorConstant;
  11. use app\common\library\UUIDs;
  12. use think\Cache;
  13. class Template extends Base
  14. {
  15. /*//获取全部模版
  16. public function getAll(){
  17. try{
  18. $sessionid = $_REQUEST['sessionid'];
  19. $info = Cache::get($sessionid);
  20. if (!$info){
  21. $info = ['id'=>'test'];
  22. }
  23. $publicTemplates = TemplateModel::all(function($query){
  24. $query->where('is_public', 1);
  25. });
  26. $privateTemplates = TemplateModel::all(function($query) use($info) {
  27. $query->where('is_public', 2)
  28. ->where('create_user', $info['id']);
  29. });
  30. return ResultTools::success(['publicTemplates'=>$publicTemplates, 'privateTemplates'=>$privateTemplates],$sessionid);
  31. }catch(\Exception $e){
  32. return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
  33. }
  34. }
  35. // 保存模版
  36. public function save(){
  37. try{
  38. $sessionid = $_REQUEST['sessionid'];
  39. $doctor = Cache::get($sessionid);
  40. $param = Request::instance()->param();
  41. if (!$doctor){
  42. $doctor = ['id'=>'test'];
  43. }
  44. if (!CheckTools::checkParamsNotNull($param, ['title', 'is_public', 'checkid', 'impression', 'description'])){
  45. //参数错误
  46. return ResultTools::faile(ErrorConstant::$PARAM_ERROR['code'], ErrorConstant::$PARAM_ERROR['msg'],$sessionid);
  47. }
  48. $template = new TemplateModel([
  49. 'id'=>UUIDs::uuid16(),
  50. 'title'=>$param['title'],
  51. 'is_public'=>$param['is_public'],
  52. 'create_user'=>$doctor['id'],
  53. 'checkid'=>$param['checkid'],
  54. 'impression'=>$param['impression'],
  55. 'description'=>$param['description'],
  56. 'createdAt'=>date("Y-m-d H:i:s",time())
  57. ]);
  58. $template->save();
  59. return ResultTools::success($template,$sessionid);
  60. }catch(\Exception $e){
  61. return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
  62. }
  63. }
  64. //更新模版
  65. public function update(){
  66. try{
  67. $sessionid = $_REQUEST['sessionid'];
  68. $doctor = Cache::get($sessionid);
  69. $param = Request::instance()->param();
  70. if (!CheckTools::checkParamsNotNull($param, ['id','title', 'is_public', 'checkid', 'impression', 'description'])){
  71. //参数错误
  72. return ResultTools::faile(ErrorConstant::$PARAM_ERROR['code'], ErrorConstant::$PARAM_ERROR['msg'],$sessionid);
  73. }
  74. $template = TemplateModel::get($param['id']);
  75. if (!$template){
  76. return ResultTools::faile(ErrorConstant::$PARAM_ERROR['code'], ErrorConstant::$PARAM_ERROR['msg'],$sessionid);
  77. }
  78. $template->title = $param['title'];
  79. $template->is_public = $param['is_public'];
  80. $template->checkid = $param['checkid'];
  81. $template->impression = $param['impression'];
  82. $template->description = $param['description'];
  83. $template->save();
  84. return ResultTools::success('OK',$sessionid);
  85. }catch(\Exception $e){
  86. return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
  87. }
  88. }*/
  89. /**
  90. * 删除私有模板
  91. *
  92. * @ApiTitle (删除私有模板)
  93. * @ApiSummary (删除私有模板)
  94. * @ApiSector (远程诊断)
  95. * @ApiMethod (POST)
  96. * @ApiRoute (/inter/template/delete_template)
  97. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  98. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  99. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  100. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  101. * @ApiParams (name="param", type="string", required=true, description="参数json字符串")
  102. * @ApiParams (name="param[id]", type="string", sample="", description="模板id<必填>")
  103. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  104. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  105. * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
  106. * @ApiReturnParams (name="sessionid", type="object", sample="{}", description="缓存的数据key")
  107. * @ApiReturn (data="
  108. {
  109. 'status': ok,
  110. 'code': '0000',
  111. 'sessionid': 'a17z7a7a8f9g9rh9d89jio',
  112. 'info' : ''
  113. }
  114. *")
  115. **/
  116. public function delete_template(){
  117. try{
  118. $sessionid = $_REQUEST['sessionid'];
  119. $id = Request::instance()->param('id');
  120. DB::table('templates')->where('id',$id)->delete();
  121. return ResultTools::success('OK',$sessionid);
  122. }catch(\Exception $e){
  123. return json_encode(['status'=>'fail','code'=>'2000','msg'=>$e->getMessage()]);
  124. }
  125. }
  126. /**
  127. * 新增私有模板
  128. *
  129. * @ApiTitle (新增私有模板)
  130. * @ApiSummary (新增私有模板)
  131. * @ApiSector (远程诊断)
  132. * @ApiMethod (POST)
  133. * @ApiRoute (/inter/template/add_template)
  134. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  135. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  136. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  137. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  138. * @ApiParams (name="param", type="string", required=true, description="参数json字符串")
  139. * @ApiParams (name="param[label]", type="string", sample="", description="模板标题<必填>")
  140. * @ApiParams (name="param[id]", type="string", sample="", description="模板id<二级模板必填>")
  141. * @ApiParams (name="param[impression]", type="string", sample="", description="影响所见<二级模板必填>")
  142. * @ApiParams (name="param[description]", type="string", sample="", description="意见建议<二级模板必填>")
  143. * @ApiParams (name="param[exam_class_id]", type="string", sample="", description="模板归属检查类id<必填>")
  144. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  145. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  146. * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
  147. * @ApiReturnParams (name="sessionid", type="object", sample="{}", description="缓存的数据key")
  148. * @ApiReturn (data="
  149. {
  150. 'status': ok,
  151. 'code': '0000',
  152. 'sessionid': 'a17z7a7a8f9g9rh9d89jio',
  153. 'info' : ''
  154. }
  155. *")
  156. **/
  157. public function add_template(){
  158. $param = $_REQUEST['param'];
  159. $sessionid = $_REQUEST['sessionid'];
  160. $doctor = Cache::get($sessionid);
  161. $info = array();
  162. $info['id'] = UUIDs::uuid16();
  163. $info['title'] = $param['label'];
  164. $info['createdAt'] = date('Y-m-d H:i:s',time());
  165. $info['is_public'] = 2;
  166. $info['create_user'] = $doctor['id'];
  167. if(isset($param['id']) && !empty($param['id'])){
  168. $t = DB::table('templates')->where('title',$param['label'])->where('is_public',2)->where('parent_id',$param['id'])->find();
  169. if($t){
  170. return json_encode(['status'=>'fail','code'=>'1013','msg'=>'已存在相同的模板标题,请重新填写']);
  171. }
  172. //存在id值 则为添加二级类
  173. $exam = DB::table('templates')->where('id',$param['id'])->field('exam_class_id')->find();
  174. $info['exam_class_id'] = $exam['exam_class_id'];
  175. $info['parent_id'] = $param['id'];
  176. $info['impression'] = $param['impression'];
  177. $info['description'] = $param['description'];
  178. }else{
  179. $t = DB::table('templates')->where('title',$param['label'])->where('is_public',2)->where('parent_id',0)->find();
  180. if($t){
  181. return json_encode(['status'=>'fail','code'=>'1013','msg'=>'已存在相同的模板标题,请重新填写']);
  182. }
  183. //添加一级类
  184. $info['exam_class_id'] = $param['exam_class_id'];
  185. $info['parent_id'] = 0;
  186. }
  187. DB::table('templates')->insert($info);
  188. return json_encode(['status'=>'ok','code'=>'0000','info'=>$info['id'],'msg'=>'新增成功']);
  189. }
  190. /**
  191. * 修改模板内容
  192. *
  193. * @ApiTitle (修改模板内容)
  194. * @ApiSummary (修改模板内容)
  195. * @ApiSector (远程诊断)
  196. * @ApiMethod (POST)
  197. * @ApiRoute (/inter/template/update_template)
  198. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  199. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  200. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  201. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  202. * @ApiParams (name="param", type="string", required=true, description="参数json字符串")
  203. * @ApiParams (name="param[id]", type="string", sample="", description="模板id<必填>")
  204. * @ApiParams (name="param[label]", type="string", sample="", description="模板标题<必填>")
  205. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  206. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  207. * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功", description="返回消息")
  208. * @ApiReturn (data="
  209. {
  210. 'status': ok,
  211. 'code': '0000',
  212. 'msg': '修改成功',
  213. 'info' : ''
  214. }
  215. *")
  216. **/
  217. public function update_template(){
  218. $param = $_REQUEST['param'];
  219. $param['title'] = $param['label'];
  220. unset($param['label']);
  221. $a = DB::table('templates')->where('id',$param['id'])->update($param);
  222. if($a){
  223. return json_encode(['status'=>'ok','code'=>'0000','msg'=>'修改成功']);
  224. }
  225. }
  226. /**
  227. * 修改详情页信息
  228. *
  229. * @ApiTitle (修改详情页信息)
  230. * @ApiSummary (修改详情页信息)
  231. * @ApiSector (远程诊断)
  232. * @ApiMethod (POST)
  233. * @ApiRoute (/inter/template/save_info)
  234. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  235. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  236. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  237. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  238. * @ApiParams (name="id", type="string", sample="", description="模板id<必填>")
  239. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  240. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  241. * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
  242. * @ApiReturn (data="
  243. {
  244. 'status': ok,
  245. 'code': '0000',
  246. 'info' : ''
  247. }
  248. *")
  249. **/
  250. public function save_info(){
  251. $id = $_REQUEST['id'];
  252. $info = DB::table('templates')->where('id',$id)->field('title as label,impression,description,exam_class_id,parent_id')->find();
  253. if($info['parent_id'] != 0){
  254. $p = DB::table('templates')->where('id',$info['parent_id'])->field('title')->find();
  255. $info['title'] = $p['title'];
  256. }
  257. unset($info['parent_id']);
  258. return json_encode(['status'=>'ok','code'=>'0000','info'=>$info]);
  259. }
  260. /**
  261. * 一级菜单下拉 私有模板
  262. *
  263. * @ApiTitle (一级菜单下拉 私有模板)
  264. * @ApiSummary (一级菜单下拉 私有模板)
  265. * @ApiSector (远程诊断)
  266. * @ApiMethod (POST)
  267. * @ApiRoute (/inter/template/private_menu)
  268. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  269. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  270. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  271. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  272. * @ApiParams (name="exam_class", type="string", sample="", description="检查类id<必填>")
  273. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  274. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  275. * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
  276. * @ApiReturn (data="
  277. {
  278. 'status': ok,
  279. 'code': '0000',
  280. 'info' : ''
  281. }
  282. *")
  283. **/
  284. public function private_menu(){
  285. $sessionid = $_REQUEST['sessionid'];
  286. $doctor = Cache::get($sessionid);
  287. // $exam = $_REQUEST['exam_class'];
  288. $exam = DB::table('constant')->where('id',$_REQUEST['exam_class'])->field('constant as name')->find();
  289. $template = DB::table('templates')->where('exam_class_id',$exam['name'])->where('create_user',$doctor['id'])->where('is_public',2)->where('parent_id',0)->select();
  290. return json_encode(['status'=>'ok','code'=>'0000','info'=>$template]);
  291. }
  292. /**
  293. * 模板内检查类下拉列表
  294. *
  295. * @ApiTitle (模板内检查类下拉列表)
  296. * @ApiSummary (模板内检查类下拉列表)
  297. * @ApiSector (远程诊断)
  298. * @ApiMethod (POST)
  299. * @ApiRoute (/inter/template/exam)
  300. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  301. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  302. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  303. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  304. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  305. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  306. * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
  307. * @ApiReturn (data="
  308. {
  309. 'status': ok,
  310. 'code': '0000',
  311. 'info' : ''
  312. }
  313. *")
  314. **/
  315. public function exam(){
  316. // $sessionid = $_REQUEST['sessionid'];
  317. // $doctor = Cache::get($sessionid);
  318. $exam = DB::table('constant')->where('parent_id','exam_class')->field(['id','constant_value as name'])->select();
  319. return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam]);
  320. }
  321. }