work.py 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. demeter web
  5. name:work.py 农事相关
  6. author:rabin
  7. """
  8. from __load__ import *
  9. class index_path(Load):
  10. """
  11. @api {get} /work 获取农事记录列表
  12. @apiVersion 1.0.0
  13. @apiName getWorkList
  14. @apiGroup Farm
  15. @apiParam {String} page 页数
  16. @apiSuccess {Object[]} setting 基本信息
  17. @apiSuccess {String} setting.name 站点名
  18. @apiSuccess {Number} setting.farm 当前的农场ID
  19. @apiSuccess {Object[]} list 农事列表信息
  20. @apiSuccess {String} list.name 名称
  21. @apiSuccess {String} list.id ID
  22. @apiSuccess {Object[]} page 分页信息
  23. @apiSuccess {String} page.current 当前页
  24. @apiSuccess {String} page.total 总页数
  25. @apiSuccess {String} page.num 每页数据条数
  26. @apiSuccess {String} page.totalNum 总数据条数
  27. @apiErrorExample 操作成功
  28. {"status": 1, "msg": "yes", "code": 0, "data": {"setting": {"farm": 1, "user": 0, "name": "\u519c\u5c0f\u76d2", "copyright": "2017 nongxiaohe.com v1.0.0", "site": "http://www.nongxiaohe.com/"}, "list": [{"pic": "http://192.168.15.10:8087/upload/2017/08/30/455f9d6c26b5c989b32eda1809e58d5f.jpg", "method_id": null, "land_id": "249be20d-5759-5af0-9859-b770d9f44e2a", "farm_id": 1, "state": true, "amount": "100ml", "workdate": 1504105397, "category_id": "9365ea66-be55-56f7-a511-059fc85a9478", "cdate": 1504076614, "id": "19e05f00-ae55-5605-be12-86dcd2866df9"}], "page": {"current": 1, "ajax": false, "total": 1.0, "num": 15, "totalNum": 1}}}
  29. @apiErrorExample 操作失败
  30. {"status": 2, "msg": "\u64cd\u4f5c\u5931\u8d25", "code": 0, "data": {}}
  31. """
  32. @auth
  33. @Web.setting
  34. def get(self):
  35. self.data['list'] = self.service('common').list('farm_work', state=True, page=True)
  36. if self.data['list']:
  37. for key, value in enumerate(self.data['list']):
  38. self.data['list'][key]['workdates'] = Demeter.date(value['workdate'], '%Y-%m-%d')
  39. category = self.service('common').one('farm_work_category', id=value['category_id'])
  40. self.data['list'][key]['category'] = category['name']
  41. land = self.service('common').one('farm_work_land', id=value['land_id'])
  42. self.data['list'][key]['land'] = land['name']
  43. self.data['list'][key]['name'] = self.data['list'][key]['workdates'] + ' - ' + land['name'] + '/' + category['name']
  44. self.out('yes', self.data)
  45. """
  46. @api {post} /work 更新农事记录
  47. @apiVersion 1.0.0
  48. @apiName updateWork
  49. @apiGroup Farm
  50. @apiParam {String} id 农事ID,为空则插入新记录
  51. @apiParam {String} update_pic 图片,多个逗号隔开
  52. @apiParam {String} update_category 农事方式ID
  53. @apiParam {String} update_land 地块ID
  54. @apiParam {String} update_workdate 农事时间:2017-10-10
  55. @apiParam {String} update_content 劳作内容
  56. @apiParam {String} update_amount 劳作数量
  57. @apiSuccess {Bool} status 状态
  58. @apiSuccess {String} msg 描述
  59. @apiSuccess {Number} code 状态码
  60. @apiErrorExample 操作成功
  61. {"status": 1, "msg": "操作成功", "code": 0, "data": {}}
  62. @apiErrorExample 操作失败
  63. {"status": 2, "msg": "\u64cd\u4f5c\u5931\u8d25", "code": 0, "data": {}}
  64. """
  65. @auth
  66. @Web.setting
  67. def post(self):
  68. id = self.input('id', None)
  69. if not id:
  70. self.out('no')
  71. return
  72. update = {}
  73. update['pic'] = self.input('update_pic')
  74. update['category'] = self.input('update_category')
  75. update['land'] = self.input('update_land')
  76. update['workdate'] = self.input('update_workdate')
  77. update['content'] = self.input('update_content')
  78. update['amount'] = self.input('update_amount')
  79. if not update['category']:
  80. self.out(u'请选择农事方式')
  81. return
  82. if not update['land']:
  83. self.out(u'请选择地块')
  84. return
  85. if not update['workdate']:
  86. self.out(u'请输入农事时间')
  87. return
  88. if not update['content']:
  89. self.out(u'请输入劳作内容')
  90. return
  91. if not update['amount']:
  92. self.out(u'请输入劳作数量')
  93. return
  94. update['workdate'] = Demeter.mktime(update['workdate'], '%Y-%m-%d')
  95. state = self.service('common').update('farm_work', id, update)
  96. self.out('yes', {'id':state})
  97. class info_path(Load):
  98. """
  99. @api {get} /work/info 获取农事信息
  100. @apiVersion 1.0.0
  101. @apiName getWork
  102. @apiGroup Farm
  103. @apiSuccess {Object[]} setting 基本信息
  104. @apiSuccess {String} setting.name 站点名
  105. @apiSuccess {Number} setting.farm 当前的农场ID
  106. @apiSuccess {Object[]} info 农事信息
  107. @apiSuccess {String} info.name 名称
  108. @apiSuccess {String} info.id ID
  109. @apiErrorExample 操作成功
  110. {"status": 1, "msg": "yes", "code": 0, "data": {"setting": {"farm": 1, "user": 0, "name": "\u519c\u5c0f\u76d2", "copyright": "2017 nongxiaohe.com v1.0.0", "site": "http://www.nongxiaohe.com/"}, "list": [{"pic": "http://192.168.15.10:8087/upload/2017/08/30/455f9d6c26b5c989b32eda1809e58d5f.jpg", "method_id": null, "land_id": "249be20d-5759-5af0-9859-b770d9f44e2a", "farm_id": 1, "state": true, "amount": "100ml", "workdate": 1504105397, "category_id": "9365ea66-be55-56f7-a511-059fc85a9478", "cdate": 1504076614, "id": "19e05f00-ae55-5605-be12-86dcd2866df9"}], "page": {"current": 1, "ajax": false, "total": 1.0, "num": 15, "totalNum": 1}}}
  111. @apiErrorExample 操作失败
  112. {"status": 2, "msg": "\u64cd\u4f5c\u5931\u8d25", "code": 0, "data": {}}
  113. """
  114. @auth
  115. @Web.setting
  116. def get(self):
  117. id = self.input('id', None)
  118. if id:
  119. self.data['info'] = self.service('common').one('farm_work', {id:id})
  120. if self.data['info']:
  121. self.data['info']['workdates'] = Demeter.date(self.data['info']['workdate'], '%Y-%m-%d')
  122. self.out('yes', self.data)
  123. else:
  124. self.out('no')
  125. class land_path(Load):
  126. """
  127. @api {get} /work/land 获取农事地块列表
  128. @apiVersion 1.0.0
  129. @apiName getWorkLandList
  130. @apiGroup Farm
  131. @apiSuccess {Object[]} setting 基本信息
  132. @apiSuccess {String} setting.name 站点名
  133. @apiSuccess {Number} setting.farm 当前的农场ID
  134. @apiSuccess {Object[]} list 地块列表信息
  135. @apiSuccess {String} list.name 名称
  136. @apiSuccess {String} list.id ID
  137. @apiErrorExample 操作成功
  138. {"status": 1, "msg": "yes", "code": 0, "data": {"setting": {"farm": 1, "user": 0, "name": "\u519c\u5c0f\u76d2", "copyright": "2017 nongxiaohe.com v1.0.0", "site": "http://www.nongxiaohe.com/"}, "list": [{"state": true, "farm_id": 1, "cdate": 1504074548, "id": "249be20d-5759-5af0-9859-b770d9f44e2a", "name": "test"}]}}
  139. @apiErrorExample 操作失败
  140. {"status": 2, "msg": "\u64cd\u4f5c\u5931\u8d25", "code": 0, "data": {}}
  141. """
  142. @auth
  143. @Web.setting
  144. def get(self):
  145. self.data['list'] = self.service('common').list('farm_work_land', state=True)
  146. self.out('yes', self.data)
  147. """
  148. @api {post} /work/land 更新地块
  149. @apiVersion 1.0.0
  150. @apiName updateWorkLand
  151. @apiGroup Farm
  152. @apiParam {String} id 地块ID,为空则插入新记录
  153. @apiParam {String} update_name 地块名称
  154. @apiSuccess {Bool} status 状态
  155. @apiSuccess {String} msg 描述
  156. @apiSuccess {Number} code 状态码
  157. @apiErrorExample 操作成功
  158. {"status": 1, "msg": "操作成功", "code": 0, "data": {}}
  159. @apiErrorExample 操作失败
  160. {"status": 2, "msg": "\u64cd\u4f5c\u5931\u8d25", "code": 0, "data": {}}
  161. """
  162. @auth
  163. @Web.setting
  164. def post(self):
  165. id = self.input('id', None)
  166. update = {}
  167. update['name'] = self.input('update_name')
  168. if not update['name']:
  169. self.out(u'请输入地块名称')
  170. return
  171. state = self.service('common').update('farm_work_land', id, update)
  172. self.out('yes', {'id':state})
  173. class category_path(Load):
  174. """
  175. @api {get} /work/category 获取农事分类列表
  176. @apiVersion 1.0.0
  177. @apiName getWorkCateList
  178. @apiGroup Farm
  179. @apiSuccess {Object[]} setting 基本信息
  180. @apiSuccess {String} setting.name 站点名
  181. @apiSuccess {Number} setting.farm 当前的农场ID
  182. @apiSuccess {Object[]} list 分类列表信息
  183. @apiSuccess {String} list.name 名称
  184. @apiSuccess {String} list.id ID
  185. @apiErrorExample 操作成功
  186. {"status": 1, "msg": "yes", "code": 0, "data": {"setting": {"farm": 1, "user": 0, "name": "\u519c\u5c0f\u76d2", "copyright": "2017 nongxiaohe.com v1.0.0", "site": "http://www.nongxiaohe.com/"}, "list": [{"state": true, "farm_id": 1, "cdate": 1504074837, "id": "9365ea66-be55-56f7-a511-059fc85a9478", "name": "\u65bd\u80a5"}]}}
  187. @apiErrorExample 操作失败
  188. {"status": 2, "msg": "\u64cd\u4f5c\u5931\u8d25", "code": 0, "data": {}}
  189. """
  190. @auth
  191. @Web.setting
  192. def get(self):
  193. self.data['list'] = self.service('common').list('farm_work_category', state=True)
  194. self.out('yes', self.data)