|  | @@ -1,83 +1,160 @@
 | 
	
		
			
				|  |  |  #!/usr/bin/env python
 | 
	
		
			
				|  |  |  # -*- coding: utf-8 -*-
 | 
	
		
			
				|  |  |  from demeter.core import *
 | 
	
		
			
				|  |  | -model = Demeter.model('manage_admin')
 | 
	
		
			
				|  |  | -model.id = 1
 | 
	
		
			
				|  |  | -info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | -if not info:
 | 
	
		
			
				|  |  | -	model.role_id = 1
 | 
	
		
			
				|  |  | -	model.username = 'admin'
 | 
	
		
			
				|  |  | -	model.mobile = '15810090845'
 | 
	
		
			
				|  |  | -	model.password = '123456'
 | 
	
		
			
				|  |  | -	model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -model = Demeter.model('manage_role')
 | 
	
		
			
				|  |  | -model.id = 1
 | 
	
		
			
				|  |  | -info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | -if not info:
 | 
	
		
			
				|  |  | -	model.name = '管理员'
 | 
	
		
			
				|  |  | -	model.insert()
 | 
	
		
			
				|  |  | +def manage():
 | 
	
		
			
				|  |  | +	model = Demeter.model('manage_admin')
 | 
	
		
			
				|  |  | +	model.id = 1
 | 
	
		
			
				|  |  | +	info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | +	if not info:
 | 
	
		
			
				|  |  | +		model.role_id = 1
 | 
	
		
			
				|  |  | +		model.username = 'admin'
 | 
	
		
			
				|  |  | +		model.mobile = '15810090845'
 | 
	
		
			
				|  |  | +		model.password = '123456'
 | 
	
		
			
				|  |  | +		model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -model = Demeter.model('content')
 | 
	
		
			
				|  |  | -model.id = 1
 | 
	
		
			
				|  |  | -info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | -if not info:
 | 
	
		
			
				|  |  | -	model.name = '农小盒'
 | 
	
		
			
				|  |  | -	model.subname = '农作物生长监测与产品溯源'
 | 
	
		
			
				|  |  | -	model.insert()
 | 
	
		
			
				|  |  | +	model = Demeter.model('manage_role')
 | 
	
		
			
				|  |  | +	model.id = 1
 | 
	
		
			
				|  |  | +	info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | +	if not info:
 | 
	
		
			
				|  |  | +		model.name = '管理员'
 | 
	
		
			
				|  |  | +		model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +def web():
 | 
	
		
			
				|  |  | +	model = Demeter.model('web_set')
 | 
	
		
			
				|  |  | +	model.id = 1
 | 
	
		
			
				|  |  | +	info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | +	if not info:
 | 
	
		
			
				|  |  | +		model.name = '农小盒'
 | 
	
		
			
				|  |  | +		model.subname = '农作物生长监测与产品溯源'
 | 
	
		
			
				|  |  | +		model.keywords = '农小盒,智慧云平台,智能硬件,大数据,农业,农业互联网'
 | 
	
		
			
				|  |  | +		model.description = '农小盒'
 | 
	
		
			
				|  |  | +		model.icp = '京ICP备12045252号-2'
 | 
	
		
			
				|  |  | +		model.tel = '18701029660'
 | 
	
		
			
				|  |  | +		model.passtel = '18701029660'
 | 
	
		
			
				|  |  | +		model.mobile = ''
 | 
	
		
			
				|  |  | +		model.buy = ''
 | 
	
		
			
				|  |  | +		model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -model = Demeter.model('farm')
 | 
	
		
			
				|  |  | -model.id = 1
 | 
	
		
			
				|  |  | -info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | -if not info:
 | 
	
		
			
				|  |  | -	model.name = '默认园区'
 | 
	
		
			
				|  |  | -	model.insert()
 | 
	
		
			
				|  |  | +	model = Demeter.model('web_article_category')
 | 
	
		
			
				|  |  | +	data = ('站点介绍', '焦点图', '系统优势')
 | 
	
		
			
				|  |  | +	for value in data:
 | 
	
		
			
				|  |  | +		model.name = value
 | 
	
		
			
				|  |  | +		info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | +		if not info:
 | 
	
		
			
				|  |  | +			model.name = value
 | 
	
		
			
				|  |  | +			model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -# 初始化网关,测试用
 | 
	
		
			
				|  |  | -model = Demeter.model('device_gateway')
 | 
	
		
			
				|  |  | -model.hardware_id = 10086
 | 
	
		
			
				|  |  | -info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | -if not info:
 | 
	
		
			
				|  |  | -	model.farm_id = 1
 | 
	
		
			
				|  |  | -	model.hardware_id = 10086
 | 
	
		
			
				|  |  | -	model.name = '默认网关'
 | 
	
		
			
				|  |  | -	model.insert()
 | 
	
		
			
				|  |  | +	model = Demeter.model('web_article')
 | 
	
		
			
				|  |  | +	data = ('合作伙伴', '免责声明', '联系我们', '帮助文档', '团队介绍')
 | 
	
		
			
				|  |  | +	for value in data:
 | 
	
		
			
				|  |  | +		model.name = value
 | 
	
		
			
				|  |  | +		info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | +		if not info:
 | 
	
		
			
				|  |  | +			model.category_id = 1
 | 
	
		
			
				|  |  | +			model.name = value
 | 
	
		
			
				|  |  | +			if model.name == '帮助文档':
 | 
	
		
			
				|  |  | +				model.link = '/help'
 | 
	
		
			
				|  |  | +			model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -# 初始化设备类型
 | 
	
		
			
				|  |  | -device_type = ({'name':'温度', 'key':'temprature', 'unit':'℃'},{'name':'湿度', 'key':'humidity','unit':'%RH'})
 | 
	
		
			
				|  |  | -model = Demeter.model('device_type')
 | 
	
		
			
				|  |  | -for value in device_type:
 | 
	
		
			
				|  |  | -	model.key = value['key']
 | 
	
		
			
				|  |  | +	model = Demeter.model('web_menu')
 | 
	
		
			
				|  |  | +	data = (
 | 
	
		
			
				|  |  | +		{'name':'新农宝盒首页','link':'/main'}
 | 
	
		
			
				|  |  | +		,{'name':'灌溉商城','link':'http://www.guangaishangcheng.com/'}
 | 
	
		
			
				|  |  | +		,{'name':'帮助中心','link':'/help'}
 | 
	
		
			
				|  |  | +		)
 | 
	
		
			
				|  |  | +	for value in data:
 | 
	
		
			
				|  |  | +		model.link = value['link']
 | 
	
		
			
				|  |  | +		info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | +		if not info:
 | 
	
		
			
				|  |  | +			model.name = value['name']
 | 
	
		
			
				|  |  | +			model.link = value['link']
 | 
	
		
			
				|  |  | +			model.insert()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def farm():
 | 
	
		
			
				|  |  | +	farm_id = 1
 | 
	
		
			
				|  |  | +	model = Demeter.model('farm')
 | 
	
		
			
				|  |  | +	model.id = farm_id
 | 
	
		
			
				|  |  |  	info = model.select(type='fetchone')
 | 
	
		
			
				|  |  |  	if not info:
 | 
	
		
			
				|  |  | -		model.key = value['key']
 | 
	
		
			
				|  |  | -		model.name = value['name']
 | 
	
		
			
				|  |  | -		model.exp = '{n}'
 | 
	
		
			
				|  |  | -		model.unit = value['unit']
 | 
	
		
			
				|  |  | +		model.name = '默认园区'
 | 
	
		
			
				|  |  |  		model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -# 初始化硬件类型
 | 
	
		
			
				|  |  | -hardware_type = ({'name':'网关','key':'gateway'},{'name':'传感器', 'key':'sensor'},{'name':'控制器', 'key':'control'},{'name':'电源', 'key':'power'},{'name':'摄像机', 'key':'pic'},{'name':'状态器', 'key':'status'})
 | 
	
		
			
				|  |  | -model = Demeter.model('hardware_type')
 | 
	
		
			
				|  |  | -for value in hardware_type:
 | 
	
		
			
				|  |  | -	model.key = value['key']
 | 
	
		
			
				|  |  | +	# 初始化网关,测试用
 | 
	
		
			
				|  |  | +	hardware_id = 10086
 | 
	
		
			
				|  |  | +	model = Demeter.model('device_gateway')
 | 
	
		
			
				|  |  | +	model.hardware_id = hardware_id
 | 
	
		
			
				|  |  |  	info = model.select(type='fetchone')
 | 
	
		
			
				|  |  |  	if not info:
 | 
	
		
			
				|  |  | +		model.farm_id = farm_id
 | 
	
		
			
				|  |  | +		model.hardware_id = hardware_id
 | 
	
		
			
				|  |  | +		model.name = '默认网关'
 | 
	
		
			
				|  |  | +		id = model.insert()
 | 
	
		
			
				|  |  | +		Demeter.service('device').upGatewayStatus(farm_id, id, hardware_id)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def device():
 | 
	
		
			
				|  |  | +	# 以下类型只能新增,不能随意更改或删除
 | 
	
		
			
				|  |  | +	# 初始化设备类型
 | 
	
		
			
				|  |  | +	device_type = (
 | 
	
		
			
				|  |  | +		{'name':'温度', 'key':'temprature', 'unit':'℃'}
 | 
	
		
			
				|  |  | +		,{'name':'湿度', 'key':'humidity','unit':'%RH'}
 | 
	
		
			
				|  |  | +		,{'name':'光照', 'key':'light','unit':'LUX'}
 | 
	
		
			
				|  |  | +		,{'name':'二氧化碳', 'key':'co2','unit':'PPM'}
 | 
	
		
			
				|  |  | +		,{'name':'风速', 'key':'speed','unit':'km/h'}
 | 
	
		
			
				|  |  | +		,{'name':'风向', 'key':'direction','unit':''}
 | 
	
		
			
				|  |  | +		,{'name':'PM2.5', 'key':'pm2.5','unit':'μg/m3'}
 | 
	
		
			
				|  |  | +		,{'name':'电源', 'key':'power','unit':'V'}
 | 
	
		
			
				|  |  | +		,{'name':'阀门', 'key':'valve','unit':''}
 | 
	
		
			
				|  |  | +		,{'name':'放风机', 'key':'blower','unit':''}
 | 
	
		
			
				|  |  | +		)
 | 
	
		
			
				|  |  | +	model = Demeter.model('device_type')
 | 
	
		
			
				|  |  | +	for value in device_type:
 | 
	
		
			
				|  |  |  		model.key = value['key']
 | 
	
		
			
				|  |  | -		model.name = value['name']
 | 
	
		
			
				|  |  | -		model.insert()
 | 
	
		
			
				|  |  | +		info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | +		if not info:
 | 
	
		
			
				|  |  | +			model.key = value['key']
 | 
	
		
			
				|  |  | +			model.name = value['name']
 | 
	
		
			
				|  |  | +			#model.exp = '{n}'
 | 
	
		
			
				|  |  | +			model.unit = value['unit']
 | 
	
		
			
				|  |  | +			model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -# 初始化消息类型
 | 
	
		
			
				|  |  | -msg_type = ({'name':'系统消息', 'key':'system'},{'name':'警告提醒', 'key':'notice'},{'name':'操作提示', 'key':'oper'},{'name':'新闻', 'key':'news'})
 | 
	
		
			
				|  |  | -model = Demeter.model('msg_type')
 | 
	
		
			
				|  |  | -for value in msg_type:
 | 
	
		
			
				|  |  | -	model.key = value['key']
 | 
	
		
			
				|  |  | -	info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | -	if not info:
 | 
	
		
			
				|  |  | +	# 初始化硬件类型 1/1/2/3/4/5/6
 | 
	
		
			
				|  |  | +	hardware_type = (
 | 
	
		
			
				|  |  | +		{'name':'网关', 'key':'gateway'}
 | 
	
		
			
				|  |  | +		,{'name':'传感器', 'key':'sensor'}
 | 
	
		
			
				|  |  | +		,{'name':'控制器', 'key':'control'}
 | 
	
		
			
				|  |  | +		,{'name':'电源', 'key':'power'}
 | 
	
		
			
				|  |  | +		,{'name':'状态', 'key':'status'}
 | 
	
		
			
				|  |  | +		,{'name':'摄像头', 'key':'pic'}
 | 
	
		
			
				|  |  | +		,{'name':'摄像机', 'key':'camera'}
 | 
	
		
			
				|  |  | +		)
 | 
	
		
			
				|  |  | +	model = Demeter.model('hardware_type')
 | 
	
		
			
				|  |  | +	for value in hardware_type:
 | 
	
		
			
				|  |  |  		model.key = value['key']
 | 
	
		
			
				|  |  | -		model.name = value['name']
 | 
	
		
			
				|  |  | -		model.insert()
 | 
	
		
			
				|  |  | +		info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | +		if not info:
 | 
	
		
			
				|  |  | +			model.key = value['key']
 | 
	
		
			
				|  |  | +			model.name = value['name']
 | 
	
		
			
				|  |  | +			model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	# 初始化消息类型
 | 
	
		
			
				|  |  | +	msg_type = (
 | 
	
		
			
				|  |  | +		{'name':'系统消息', 'key':'system'}
 | 
	
		
			
				|  |  | +		,{'name':'警告提醒', 'key':'notice'}
 | 
	
		
			
				|  |  | +		,{'name':'操作提示', 'key':'oper'}
 | 
	
		
			
				|  |  | +		,{'name':'新闻', 'key':'news'}
 | 
	
		
			
				|  |  | +		)
 | 
	
		
			
				|  |  | +	model = Demeter.model('msg_type')
 | 
	
		
			
				|  |  | +	for value in msg_type:
 | 
	
		
			
				|  |  | +		model.key = value['key']
 | 
	
		
			
				|  |  | +		info = model.select(type='fetchone')
 | 
	
		
			
				|  |  | +		if not info:
 | 
	
		
			
				|  |  | +			model.key = value['key']
 | 
	
		
			
				|  |  | +			model.name = value['name']
 | 
	
		
			
				|  |  | +			model.insert()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +manage()
 | 
	
		
			
				|  |  | +web()
 | 
	
		
			
				|  |  | +farm()
 | 
	
		
			
				|  |  | +device()
 | 
	
		
			
				|  |  |  print 'install success!'
 |