Template.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349
  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. if(empty($param['label'])){
  160. return json_encode(['status'=>'fail','code'=>'3013','msg'=>'请输入模板名称']);
  161. }
  162. $sessionid = $_REQUEST['sessionid'];
  163. $doctor = Cache::get($sessionid);
  164. $info = array();
  165. $info['id'] = UUIDs::uuid16();
  166. $info['title'] = $param['label'];
  167. $info['createdAt'] = date('Y-m-d H:i:s',time());
  168. $info['is_public'] = 2;
  169. $info['create_user'] = $doctor['id'];
  170. if(isset($param['id']) && !empty($param['id'])){
  171. $t = DB::table('templates')->where('title',$param['label'])->where('is_public',2)->where('parent_id',$param['id'])->find();
  172. if($t){
  173. return json_encode(['status'=>'fail','code'=>'1013','msg'=>'已存在相同的模板标题,请重新填写']);
  174. }
  175. //存在id值 则为添加二级类
  176. $exam = DB::table('templates')->where('id',$param['id'])->field('exam_class_id')->find();
  177. $info['exam_class_id'] = $exam['exam_class_id'];
  178. $info['parent_id'] = $param['id'];
  179. $info['impression'] = $param['impression'];
  180. $info['description'] = $param['description'];
  181. }else{
  182. $t = DB::table('templates')->where('title',$param['label'])->where('exam_class_id',$param['exam_class_id'])->where('is_public',2)->where('parent_id',0)->find();
  183. if($t){
  184. return json_encode(['status'=>'fail','code'=>'1013','msg'=>'已存在相同的模板标题,请重新填写']);
  185. }
  186. //添加一级类
  187. $info['exam_class_id'] = $param['exam_class_id'];
  188. $info['parent_id'] = 0;
  189. }
  190. DB::table('templates')->insert($info);
  191. return json_encode(['status'=>'ok','code'=>'0000','info'=>$info['id'],'msg'=>'新增成功']);
  192. }
  193. /**
  194. * 修改模板内容
  195. *
  196. * @ApiTitle (修改模板内容)
  197. * @ApiSummary (修改模板内容)
  198. * @ApiSector (远程诊断)
  199. * @ApiMethod (POST)
  200. * @ApiRoute (/inter/template/update_template)
  201. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  202. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  203. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  204. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  205. * @ApiParams (name="param", type="string", required=true, description="参数json字符串")
  206. * @ApiParams (name="param[id]", type="string", sample="", description="模板id<必填>")
  207. * @ApiParams (name="param[label]", type="string", sample="", description="模板标题<必填>")
  208. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  209. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  210. * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功", description="返回消息")
  211. * @ApiReturn (data="
  212. {
  213. 'status': ok,
  214. 'code': '0000',
  215. 'msg': '修改成功',
  216. 'info' : ''
  217. }
  218. *")
  219. **/
  220. public function update_template(){
  221. $param = $_REQUEST['param'];
  222. $param['title'] = $param['label'];
  223. unset($param['label']);
  224. $a = DB::table('templates')->where('id',$param['id'])->update($param);
  225. if($a){
  226. return json_encode(['status'=>'ok','code'=>'0000','msg'=>'修改成功']);
  227. }
  228. }
  229. /**
  230. * 修改详情页信息
  231. *
  232. * @ApiTitle (修改详情页信息)
  233. * @ApiSummary (修改详情页信息)
  234. * @ApiSector (远程诊断)
  235. * @ApiMethod (POST)
  236. * @ApiRoute (/inter/template/save_info)
  237. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  238. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  239. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  240. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  241. * @ApiParams (name="id", type="string", sample="", description="模板id<必填>")
  242. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  243. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  244. * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
  245. * @ApiReturn (data="
  246. {
  247. 'status': ok,
  248. 'code': '0000',
  249. 'info' : ''
  250. }
  251. *")
  252. **/
  253. public function save_info(){
  254. $id = $_REQUEST['id'];
  255. $info = DB::table('templates')->where('id',$id)->field('title as label,impression,description,exam_class_id,parent_id')->find();
  256. if($info['parent_id'] != 0){
  257. $p = DB::table('templates')->where('id',$info['parent_id'])->field('title')->find();
  258. $info['title'] = $p['title'];
  259. }
  260. unset($info['parent_id']);
  261. return json_encode(['status'=>'ok','code'=>'0000','info'=>$info]);
  262. }
  263. /**
  264. * 一级菜单下拉 私有模板
  265. *
  266. * @ApiTitle (一级菜单下拉 私有模板)
  267. * @ApiSummary (一级菜单下拉 私有模板)
  268. * @ApiSector (远程诊断)
  269. * @ApiMethod (POST)
  270. * @ApiRoute (/inter/template/private_menu)
  271. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  272. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  273. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  274. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  275. * @ApiParams (name="exam_class", type="string", sample="", description="检查类id<必填>")
  276. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  277. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  278. * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
  279. * @ApiReturn (data="
  280. {
  281. 'status': ok,
  282. 'code': '0000',
  283. 'info' : ''
  284. }
  285. *")
  286. **/
  287. public function private_menu(){
  288. $sessionid = $_REQUEST['sessionid'];
  289. $doctor = Cache::get($sessionid);
  290. // $exam = $_REQUEST['exam_class'];
  291. $exam = DB::table('constant')->where('id',$_REQUEST['exam_class'])->field('constant as name')->find();
  292. $template = DB::table('templates')->where('exam_class_id',$exam['name'])->where('create_user',$doctor['id'])->where('is_public',2)->where('parent_id',0)->select();
  293. return json_encode(['status'=>'ok','code'=>'0000','info'=>$template]);
  294. }
  295. /**
  296. * 模板内检查类下拉列表
  297. *
  298. * @ApiTitle (模板内检查类下拉列表)
  299. * @ApiSummary (模板内检查类下拉列表)
  300. * @ApiSector (远程诊断)
  301. * @ApiMethod (POST)
  302. * @ApiRoute (/inter/template/exam)
  303. * @ApiHeaders (name="sign", type="string", required=true, description="请求头-校验key")
  304. * @ApiHeaders (name="nonce", type="string", required=true, description="请求头-随机数")
  305. * @ApiHeaders (name="timestamp", type=string, required=true, description="请求头-时间戳s")
  306. * @ApiParams (name="sessionid", type="string", required=true, description="参数json字符串")
  307. * @ApiReturnParams (name="status", type="integer", required=true, sample="0", description="返回码 fail 失败 ok成功"))
  308. * @ApiReturnParams (name="code", type="integer", required=true, sample="0", description="返回状态码")
  309. * @ApiReturnParams (name="info", type="string", required=true, sample="返回成功", description="返回信息")
  310. * @ApiReturn (data="
  311. {
  312. 'status': ok,
  313. 'code': '0000',
  314. 'info' : ''
  315. }
  316. *")
  317. **/
  318. public function exam(){
  319. // $sessionid = $_REQUEST['sessionid'];
  320. // $doctor = Cache::get($sessionid);
  321. $exam = DB::table('constant')->where('parent_id','exam_class')->field(['id','constant_value as name'])->select();
  322. return json_encode(['status'=>'ok','code'=>'0000','info'=>$exam]);
  323. }
  324. }