/// <summary> /// 校验票据(数据库数据匹配) /// </summary> /// <param name="encryptToken">令牌</param> /// <returns></returns> private bool ValidateTicket(string encryptToken) { bool flag = false; try { //解密Token string strtoken = SunGolden.Encryption.DEncrypt.Decrypt(encryptToken); // var index = strtoken.IndexOf(","); var indexend = strtoken.LastIndexOf(","); string str_mobile = strtoken.Substring(0, index); string str_role = strtoken.Substring(index + 1, 1); DateTime vaild_time = Convert.ToDateTime(strtoken.Substring(indexend + 1)); //获取数据库用户信息 PostgreSQL.OpenCon();//打开数据库 string str_select = "select * from tb_user where mobile = @mobile;"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@mobile", str_mobile); var qUser = PostgreSQL.ExecuteTQuery <User>(str_select, null, para); PostgreSQL.CloseCon(); //关闭数据库 if (qUser != null) //存在 { flag = (DateTime.Now <= vaild_time)? true : false; } } catch (Exception ex) { flag = false; } return(flag); }
public object Register(User user) { string token = ""; ResultMsg <User> resultmsg = new ResultMsg <User>(); HttpResponseMessage response = new HttpResponseMessage(); if (user.mobile.Length != 11 || !Regex.IsMatch(user.mobile, @"^[0-9]*[0-9][0-9]*$")) { resultmsg.status = false; resultmsg.msg = "手机号必须是11位有效数字!"; resultmsg.data = null; token = null; } else { PostgreSQL.OpenCon();//打开数据库 DateTime time = DateTime.Now.Date.AddDays(30); //插入数据 var trans = PostgreSQL.BeginTransaction(); string str_insert = "insert into tb_user(name,mobile,im_pwd,\"role\") values(@name,@mobile,@im_pwd,@role);"; try { var para1 = new DbParameter[4]; para1[0] = PostgreSQL.NewParameter("@name", user.mobile); para1[1] = PostgreSQL.NewParameter("@mobile", user.mobile); para1[2] = PostgreSQL.NewParameter("@im_pwd", SunGolden.Encryption.DEncrypt.Encrypt(user.mobile)); para1[3] = PostgreSQL.NewParameter("@role", user.role); var num = PostgreSQL.ExecuteNoneQuery(str_insert, trans, para1); PostgreSQL.CommitTransaction(trans); //重新查询 string str_select = "select * from tb_user where mobile = @mobile;"; var para2 = new DbParameter[1]; para2[0] = PostgreSQL.NewParameter("@mobile", user.mobile); var qUser = PostgreSQL.ExecuteTQuery <User>(str_select, null, para2); //返回信息 resultmsg.status = true; resultmsg.msg = "登录成功!"; resultmsg.data = qUser; token = SunGolden.Encryption.DEncrypt.Encrypt(user.mobile + "," + user.role + "," + time); } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = null; } PostgreSQL.CloseCon();//关闭数据库 } //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object CreateFeedback(FeedBack feed) { string token = null; //获取请求 var request = HttpContext.Current.Request; //声明响应 ResultMsg <User> resultmsg = new ResultMsg <User>(); HttpResponseMessage response = new HttpResponseMessage(); if (feed == null)//判断输入的数据格式是否正确 { resultmsg.status = false; resultmsg.msg = "输入的数据格式不正确,请检查后重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; } else { PostgreSQL.OpenCon(); var tans = PostgreSQL.BeginTransaction(); try { string str = "insert into tb_feedback (userid ,suggestion ,url)values(@userid,@suggestion,@url) ; "; var para = new DbParameter[3]; para[0] = PostgreSQL.NewParameter("@suggestion", feed.suggestion); para[1] = PostgreSQL.NewParameter("@url", feed.url); para[2] = PostgreSQL.NewParameter("@userid", feed.userid); int num = PostgreSQL.ExecuteNoneQuery(str, tans, para); PostgreSQL.CommitTransaction(tans); //返回信息 resultmsg.status = true; resultmsg.msg = "意见反馈成功!"; resultmsg.data = null; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(tans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } PostgreSQL.CloseCon(); } //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object GetFarm_phen(int farmid) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <object> resultmsg = new ResultMsg <object>(); HttpResponseMessage response = new HttpResponseMessage(); PostgreSQL.OpenCon();//打开数据库 //查询数据库 //根据农场id ,按作物排序,获取同类作物的面积和 string str_select = "select currentcrop,sum(area)area from tb_field where farm=@farm GROUP BY currentcrop order by area"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@farm", farmid); var qField = PostgreSQL.ExecuteTableQuery(str_select, null, para); int croptype = Convert.ToInt32(qField.Rows[qField.Rows.Count - 1][0]); string str = "SELECT phenophase FROM tb_field WHERE farm = @farm and currentcrop=@currentcrop ORDER BY area DESC"; var para1 = new DbParameter[2]; para1[0] = PostgreSQL.NewParameter("@farm", farmid); para1[1] = PostgreSQL.NewParameter("@currentcrop", croptype); var qphen = PostgreSQL.ExecuteScalarQuery(str, null, para1); PostgreSQL.CloseCon(); if (qphen == null) { //返回信息 resultmsg.status = false; resultmsg.msg = "未获取此农场主要作物的物候期!"; resultmsg.data = qphen; } else { //返回信息 resultmsg.status = true; resultmsg.msg = "成功获取此农场主要作物的物候期!"; resultmsg.data = qphen; } //返回token信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object IsExist(string mobile) { string token = ""; ResultMsg <User> resultmsg = new ResultMsg <User>(); HttpResponseMessage response = new HttpResponseMessage(); PostgreSQL.OpenCon();//打开数据库 DateTime time = DateTime.Now.Date.AddDays(30); if (mobile.Length != 11 || !Regex.IsMatch(mobile, @"^[0-9]*[0-9][0-9]*$")) { resultmsg.status = false; resultmsg.msg = "手机号必须是11位有效数字!"; resultmsg.data = null; token = null; } else { string str_select = "select * from tb_user where mobile = @mobile;"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@mobile", mobile); var qUser = PostgreSQL.ExecuteTQuery <User>(str_select, null, para); if (qUser != null)//判断用户是否存在 { resultmsg.status = true; resultmsg.msg = "用户已经存在,登录成功!"; resultmsg.data = qUser; token = SunGolden.Encryption.DEncrypt.Encrypt(mobile + "," + qUser.role + "," + time); } else { //返回信息 resultmsg.status = false; resultmsg.msg = "用户不存在,请编辑用户资料!"; resultmsg.data = null; token = null; } } PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object GetFarms(string address) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <List <Farm> > resultmsg = new ResultMsg <List <Farm> >(); HttpResponseMessage response = new HttpResponseMessage(); PostgreSQL.OpenCon();//打开数据库 //查询数据库 string str = "select * from tb_farm where address =@address"; //string str = string.Format("select * from tb_farm where address ->>'prov' like \'{0}\'and address ->> 'city' like \'{1}\' and address ->> 'coun' like \'{2}\'", // s["prov"].ToString(), s["city"].ToString(), s["coun"].ToString()); var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@address", address); var qfarm = PostgreSQL.ExecuteTListQuery <Farm>(str, null, para); PostgreSQL.CloseCon(); //关闭数据库 if (qfarm.Count <= 0) //判断是否含有农场列表 { //返回信息 resultmsg.status = false; resultmsg.msg = "未获取此区域的农场列表!"; resultmsg.data = null; } else { resultmsg.status = true; resultmsg.msg = "成功获取农场列表!"; resultmsg.data = qfarm; } //返回信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object GetFields(int farmid) { string token = null; //获取请求 var request = HttpContext.Current.Request; //声明响应 ResultMsg <List <Field> > resultmsg = new ResultMsg <List <Field> >(); HttpResponseMessage response = new HttpResponseMessage(); //查询数据库 string str = "select id,farm,name, st_astext(geom) geom,area,createdate,currentcrop,sowdate,phenophase,thumb from tb_field where farm = @farm"; PostgreSQL.OpenCon();//打开数据库 DbParameter[] para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@farm", farmid); //var qField1 = PostgreSQL.ExecuteTableQuery(str, null, para); //var qField2 = PostgreSQL.ExecuteObjectListQuery(str,typeof(Field) ,null, para); var qField = PostgreSQL.ExecuteTListQuery <Field>(str, null, para); PostgreSQL.CloseCon();//关闭数据库 if (qField.Count <= 0) { //返回信息 resultmsg.status = false; resultmsg.msg = "未获取地块列表!"; resultmsg.data = null; } else { //返回信息 resultmsg.status = true; resultmsg.msg = "成功获取地块列表"; resultmsg.data = qField; } //返回token信息 token = request.Headers["Token"]; //添加响应内容 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object GetFieldPhenophase(int crop_type, int phen_type) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <Phenophase> resultmsg = new ResultMsg <Phenophase>(); HttpResponseMessage response = new HttpResponseMessage(); //查询数据库 string str = "select * from tb_phenophase where crop_type = @crop_type and id=@id"; PostgreSQL.OpenCon();//打开数据库 var para = new DbParameter[2]; para[0] = PostgreSQL.NewParameter("@crop_type", crop_type); para[1] = PostgreSQL.NewParameter("@id", phen_type); var qphen = PostgreSQL.ExecuteTQuery <Phenophase>(str, null, para); PostgreSQL.CloseCon();//关闭数据库 if (qphen == null) { //返回信息 resultmsg.status = false; resultmsg.msg = "此物候的物候详情信息,不存在!"; resultmsg.data = null; } else { resultmsg.status = true; resultmsg.msg = "成功获取此物候的物候详情信息!"; resultmsg.data = qphen; } //返回信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object GetAgricultureinfo(int farm, int type) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <List <Field_rsi> > resultmsg = new ResultMsg <List <Field_rsi> >(); HttpResponseMessage response = new HttpResponseMessage(); PostgreSQL.OpenCon();//打开数据库 //查询数据库 string str = "select * from tb_field_rsi where farm=@farm and \"type\"=@type"; var para = new DbParameter[2]; para[0] = PostgreSQL.NewParameter("@farm", farm); para[1] = PostgreSQL.NewParameter("@type", type); var qfarm = PostgreSQL.ExecuteTListQuery <Field_rsi>(str, null, para); PostgreSQL.CloseCon();//关闭数据库 if (qfarm.Count <= 0) { //返回信息 resultmsg.status = false; resultmsg.msg = "没有此产品类型的农情产品信息!"; resultmsg.data = null; } else { resultmsg.status = true; resultmsg.msg = "成功获取指定农情产品信息表!"; resultmsg.data = qfarm; } //返回信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
///// <summary> ///// 获取所有作物的物候信息列表 ///// </summary> ///// <returns></returns> //[HttpGet] //public object GetPhenophases() //{ // string token = null; // //获取请求 // var request = HttpContext.Current.Request; // //声明响应 // ResultMsg<List<Phenophase>> resultmsg = new ResultMsg<List<Phenophase>>(); // HttpResponseMessage response = new HttpResponseMessage(); // //查询数据库 // string str_select = "select * from tb_phenophase"; // PostgreSQL.OpenCon(); //打开数据库 // var para = new DbParameter[0]; // var q_select = PostgreSQL.ExecuteTListQuery<Phenophase>(str_select, null, para); // PostgreSQL.CloseCon();//关闭数据库 // if (q_select.Count <= 0) // { // //返回信息 // resultmsg.status = false; // resultmsg.msg = "未获取所有作物的物候信息列表!"; // resultmsg.data = null; // } // else // { // //返回信息 // resultmsg.status = true; // resultmsg.msg = "成功获取所有作物的物候信息列表!"; // resultmsg.data = q_select; // } // //返回token信息 // token = request.Headers["Token"]; // //添加响应头 // var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); // response.Headers.Add("Token", token); // response.Content = new StringContent(resultObj); // return response; //} /// <summary> /// 获取指定作物的生长周期 /// </summary> /// <param name="croptype"></param> /// <returns></returns> public object GetCropGrowthDay(int croptype) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <Crop_growthday> resultmsg = new ResultMsg <Crop_growthday>(); HttpResponseMessage response = new HttpResponseMessage(); //查询数据库 string str = "select * from tb_crop_growthday where crop_type = @crop_type "; PostgreSQL.OpenCon();//打开数据库 var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@crop_type", croptype); var qgrowth = PostgreSQL.ExecuteTQuery <Crop_growthday>(str, null, para); PostgreSQL.CloseCon();//关闭数据库 if (qgrowth == null) { //返回信息 resultmsg.status = false; resultmsg.msg = "未获取此作物的生长周期信息!"; resultmsg.data = null; } else { resultmsg.status = true; resultmsg.msg = "成功获取此作物的生长周期信息!"; resultmsg.data = qgrowth; } //返回信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object GetUsers(int farmid) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <List <User> > resultmsg = new ResultMsg <List <User> >(); HttpResponseMessage response = new HttpResponseMessage(); PostgreSQL.OpenCon();//打开数据库 //查询数据库 string str_select = "select * from tb_user where farm= @farm;"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@farm", farmid); var qlist = PostgreSQL.ExecuteTListQuery <User>(str_select, null, para); PostgreSQL.CloseCon();//关闭数据库 if (qlist.Count <= 0) { //返回信息 resultmsg.status = false; resultmsg.msg = "未获取所有用户!"; resultmsg.data = null; } else { //返回信息 resultmsg.status = true; resultmsg.msg = "成功获取所有用户!"; resultmsg.data = qlist; } //返回信息token token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object QueryFarm(string name) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <List <Farm> > resultmsg = new ResultMsg <List <Farm> >(); HttpResponseMessage response = new HttpResponseMessage(); PostgreSQL.OpenCon();//打开数据库 //查询数据库 string str = string.Format("select * from tb_farm where name like \'%{0}%\'", name); //string str = "select * from tb_farm where name like \'%@name%\'"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@name", name); var qfarm = PostgreSQL.ExecuteTListQuery <Farm>(str, null, para); PostgreSQL.CloseCon(); //关闭数据库 if (qfarm.Count <= 0) //判断此农场是否存在 { //返回信息 resultmsg.status = false; resultmsg.msg = "此农场不存在!"; resultmsg.data = null; } else { resultmsg.status = true; resultmsg.msg = "成功获取此农场信息!"; resultmsg.data = qfarm; } //返回token信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
/// <summary> /// 获取指定类型的新闻资讯信息 /// </summary> /// <param name="newstype">资讯类型</param> /// <returns></returns> public object GetNewsType(int newstype) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <List <News> > resultmsg = new ResultMsg <List <News> >(); HttpResponseMessage response = new HttpResponseMessage(); //查询数据库 string str = "select * from tb_news where news_type = @news_type"; PostgreSQL.OpenCon();//打开数据库 var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@news_type", newstype); var qnews = PostgreSQL.ExecuteTListQuery <News>(str, null, para); PostgreSQL.CloseCon();//关闭数据库 if (qnews.Count <= 0) { //返回信息 resultmsg.status = false; resultmsg.msg = "未获取新闻资讯信息!"; resultmsg.data = null; } else { resultmsg.status = true; resultmsg.msg = "成功获取新闻资讯信息!"; resultmsg.data = qnews; } //返回信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object GetFieldLive(int field) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <List <Field_live> > resultmsg = new ResultMsg <List <Field_live> >(); HttpResponseMessage response = new HttpResponseMessage(); PostgreSQL.OpenCon();//打开数据库 //查询数据库 string str_select = "select id,field,growth,moisture,disease,pest,collector,collect_date, st_astext(gps) gps,picture from tb_field_live where field = @field"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@field", field); var qlive = PostgreSQL.ExecuteTListQuery <Field_live>(str_select, null, para); PostgreSQL.CloseCon();//关闭数据库 if (qlive.Count <= 0) { //返回信息 resultmsg.status = false; resultmsg.msg = "此地块不存在,未获取此地块实况信息!"; resultmsg.data = null; } else { resultmsg.status = true; resultmsg.msg = "成功获取地块实况信息"; resultmsg.data = qlive; } //返回信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object GetFarm(int id) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <Farm> resultmsg = new ResultMsg <Farm>(); HttpResponseMessage response = new HttpResponseMessage(); PostgreSQL.OpenCon();//打开数据库 //查询数据库 string str = "select * from tb_farm where id = @id"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@id", id); var qfarm = PostgreSQL.ExecuteTQuery <Farm>(str, null, para); PostgreSQL.CloseCon();//关闭数据库 if (qfarm == null) { //返回信息 resultmsg.status = false; resultmsg.msg = "此农场不存在!"; resultmsg.data = null; } else { resultmsg.status = true; resultmsg.msg = "成功获取此农场信息!"; resultmsg.data = qfarm; } //返回信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
/// <summary> /// 获取作物病害列表 /// </summary> /// <returns>作物病害列表</returns> public object GetDiseaseType() { string token = null; //获取请求 var request = HttpContext.Current.Request; //声明响应 ResultMsg <List <DiseaseTypes> > resultmsg = new ResultMsg <List <DiseaseTypes> >(); HttpResponseMessage response = new HttpResponseMessage(); //查询数据库 string str_select = "select * from dic_disease_type"; PostgreSQL.OpenCon(); //打开数据库 var para = new DbParameter[0]; var q_select = PostgreSQL.ExecuteTListQuery <DiseaseTypes>(str_select, null, para); PostgreSQL.CloseCon();//关闭数据库 if (q_select.Count <= 0) { //返回信息 resultmsg.status = false; resultmsg.msg = "未获取作物病害列表!"; resultmsg.data = null; } else { //返回信息 resultmsg.status = true; resultmsg.msg = "成功获取作物病害列表!"; resultmsg.data = q_select; } //返回token信息 token = request.Headers["Token"]; //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object CreateTask(UserTask task) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <UserTask> resultmsg = new ResultMsg <UserTask>(); HttpResponseMessage response = new HttpResponseMessage(); if (task == null || task.description == null)//判断输入的数据格式是否正确 { resultmsg.status = false; resultmsg.msg = "输入的数据格式不正确,请检查后重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } PostgreSQL.OpenCon(); //打开数据库 //判断用户 string strtoken = SunGolden.Encryption.DEncrypt.Decrypt(request.Headers["Token"]); //解密Token string str_mobile = strtoken.Substring(0, strtoken.IndexOf(",")); //查询数据库 string str1 = string.Format("select * from tb_user where \"mobile\" =\'{0}\'", str_mobile); var para3 = new DbParameter[1]; para3[0] = PostgreSQL.NewParameter("@moblie", str_mobile); var quser = PostgreSQL.ExecuteTQuery <User>(str1, null, para3); if (quser.id == task.creator)//判断申请加入农场的用户与输入的用户是否是一样 { //查询数据库,查看任务是否存在 string str_select = "select * from tb_user_task where farm= @farm and creator= @creator and \"type\"=@type;"; var para = new DbParameter[3]; para[0] = PostgreSQL.NewParameter("@creator", task.creator); para[1] = PostgreSQL.NewParameter("@farm", task.farm); para[2] = PostgreSQL.NewParameter("@type", task.type); var qselcet = PostgreSQL.ExecuteTQuery <UserTask>(str_select, null, para); if (qselcet != null)//判断任务是否存在 { resultmsg.status = false; resultmsg.msg = "任务类型已经存在!"; resultmsg.data = null; token = request.Headers["Token"]; } else { //查询获取farm的农场主 string str = "select * from tb_user where farm= @farm and role= 0;"; var para1 = new DbParameter[1]; para1[0] = PostgreSQL.NewParameter("@farm", task.farm); var qfarmer = PostgreSQL.ExecuteTQuery <User>(str, null, para1); if (qfarmer == null)//判断农场是否存在 { //返回信息 resultmsg.status = true; resultmsg.msg = "申请加入的农场id,不存在!"; resultmsg.data = null; token = request.Headers["Token"]; } else { //查询数据库 string str_insert = "insert into tb_user_task(creator,\"type\",description,farm,createdate,examiner) values(@creator,@type,@description,@farm,@createdate,@examiner);"; var trans = PostgreSQL.BeginTransaction(); try { var para2 = new DbParameter[6]; para2[0] = PostgreSQL.NewParameter("@creator", task.creator); para2[1] = PostgreSQL.NewParameter("@type", task.type); para2[2] = PostgreSQL.NewParameter("@description", task.description); para2[3] = PostgreSQL.NewParameter("@farm", task.farm); para2[4] = PostgreSQL.NewParameter("@createdate", DateTime.Now.Date); para2[5] = PostgreSQL.NewParameter("@examiner", qfarmer.id); var num = PostgreSQL.ExecuteNoneQuery(str_insert, trans, para2); PostgreSQL.CommitTransaction(trans); //返回信息 resultmsg.status = true; resultmsg.msg = task.description; resultmsg.data = null; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } } } } else { //返回信息 resultmsg.status = true; resultmsg.msg = "输入的用户id,非申请加入农场用户id"; resultmsg.data = null; token = request.Headers["Token"]; } PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object BatchField(Field field) { string token = null; //获取请求 var request = HttpContext.Current.Request; //声明响应 ResultMsg <Field> resultmsg = new ResultMsg <Field>(); HttpResponseMessage response = new HttpResponseMessage(); if (field == null || field.currentcrop < -1 || field.sowdate > DateTime.Now.Date) //判断输入的数据格式是否正确 { resultmsg.status = false; resultmsg.msg = "输入的数据格式不正确,请检查后重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } PostgreSQL.OpenCon(); //打开数据库 //查询数据库tb_field string str_select = "select * from tb_field where id = @id;"; //name = @name and farm = @farm;"; var para1 = new DbParameter[1]; para1[0] = PostgreSQL.NewParameter("@id", field.id); var qField = PostgreSQL.ExecuteTQuery <Field>(str_select, null, para1); if (qField == null) //判断地块是否存在 { resultmsg.status = false; resultmsg.msg = "地块不存在!"; resultmsg.data = null; token = request.Headers["Token"]; } else { //查询用户所在农场编号 string strtoken = SunGolden.Encryption.DEncrypt.Decrypt(request.Headers["Token"]); //解密Token string str_mobile = strtoken.Substring(0, strtoken.IndexOf(",")); //查询数据库tb_user string str = string.Format("select * from tb_user where \"mobile\" =\'{0}\'", str_mobile); //string str ="select farm from tb_user where \"mobile\" = \'@mobile\'}"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@moblie", str_mobile); var quser = PostgreSQL.ExecuteTQuery <User>(str, null, para); if (quser.farm != qField.farm) { resultmsg.status = false; resultmsg.msg = "此地块不属于这个农场,无法修改!"; resultmsg.data = null; token = request.Headers["Token"]; } else { //数据检查 DataAuth auth = new DataAuth(); if (field.currentcrop == -1) { //field.phenophase = -1;//获取当前物候期 field.sowdate = Convert.ToDateTime("0001/1/1 0:00:00"); #region //查询数据库 string str_update = "update tb_field set currentcrop = @currentcrop ,phenophase = @phenophase,sowdate=@sowdate,createdate= @createdate where id=@id;"; //currentcrop = @currentcrop and farm = @farm"; var trans = PostgreSQL.BeginTransaction(); try { var para2 = new DbParameter[5]; para2[0] = PostgreSQL.NewParameter("@currentcrop", field.currentcrop); para2[1] = PostgreSQL.NewParameter("@id", field.id); para2[2] = PostgreSQL.NewParameter("@sowdate", field.sowdate); para2[3] = PostgreSQL.NewParameter("@phenophase", -1); para2[4] = PostgreSQL.NewParameter("@createdate", DateTime.Now.Date); var num = PostgreSQL.ExecuteNoneQuery(str_update, trans, para2); PostgreSQL.CommitTransaction(trans); //返回信息 resultmsg.status = true; resultmsg.msg = "成功批量修改地块信息!"; resultmsg.data = null; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } #endregion } else if (field.currentcrop != -1 && auth.crop(field.currentcrop)) { if (field.sowdate.ToString() != "0001/1/1 0:00:00") { field.phenophase = auth.phentype(field.sowdate, field.currentcrop); //获取当前物候期 #region //查询数据库 string str_update = "update tb_field set sowdate = @sowdate ,currentcrop = @currentcrop ,phenophase = @phenophase,createdate= @createdate where id=@id;"; //currentcrop = @currentcrop and farm = @farm"; var trans = PostgreSQL.BeginTransaction(); try { var para2 = new DbParameter[5]; para2[0] = PostgreSQL.NewParameter("@currentcrop", field.currentcrop); para2[1] = PostgreSQL.NewParameter("@id", field.id); para2[2] = PostgreSQL.NewParameter("@sowdate", field.sowdate); para2[3] = PostgreSQL.NewParameter("phenophase", field.phenophase); para2[4] = PostgreSQL.NewParameter("@createdate", DateTime.Now.Date); var num = PostgreSQL.ExecuteNoneQuery(str_update, trans, para2); PostgreSQL.CommitTransaction(trans); //返回信息 resultmsg.status = true; resultmsg.msg = "成功批量修改地块信息!"; resultmsg.data = null; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } #endregion } else { //返回信息 resultmsg.status = false; resultmsg.msg = "输入的种植日期不符合要求,请重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; } } else { //返回信息 resultmsg.status = false; resultmsg.msg = "输入的当前作物id不存在!"; resultmsg.data = null; token = request.Headers["Token"]; } } } PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object ProcessTask(UserTask task) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <UserTask> resultmsg = new ResultMsg <UserTask>(); HttpResponseMessage response = new HttpResponseMessage(); if (task == null)//判断输入的数据格式是否正确 { resultmsg.status = false; resultmsg.msg = "输入的数据格式不正确,请检查后重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } PostgreSQL.OpenCon();//打开数据库 //查询数据库 string str_select = "select * from tb_user_task where creator= @creator and \"type\"=@type ;"; var para = new DbParameter[2]; para[0] = PostgreSQL.NewParameter("@creator", task.creator); para[1] = PostgreSQL.NewParameter("@type", task.type); var qselect = PostgreSQL.ExecuteTableQuery(str_select, null, para); if (qselect != null && qselect.Rows.Count == 1) //判断任务是否存在,并且只有一个 { if (Convert.ToInt16(qselect.Rows[0]["state"]) == 0) //判断处理状态 { var trans = PostgreSQL.BeginTransaction(); string str_update = "update tb_user_task set state=1,agree=@agree ,processdate=@processdate where farm= @farm and creator= @creator;"; try { var para1 = new DbParameter[4]; para1[0] = PostgreSQL.NewParameter("@creator", task.creator); //para1[1] = PostgreSQL.NewParameter("@state", 1); para1[1] = PostgreSQL.NewParameter("@agree", task.agree); para1[2] = PostgreSQL.NewParameter("@farm", task.farm); para1[3] = PostgreSQL.NewParameter("@processdate", DateTime.Now.Date); var num = PostgreSQL.ExecuteNoneQuery(str_update, trans, para1); PostgreSQL.CommitTransaction(trans); if (task.agree == true)//同意加入农场 { var trans1 = PostgreSQL.BeginTransaction(); string str_user = "******"; var para2 = new DbParameter[2]; para2[0] = PostgreSQL.NewParameter("@farm", task.farm); para2[1] = PostgreSQL.NewParameter("@id", task.creator); var num1 = PostgreSQL.ExecuteNoneQuery(str_user, trans1, para2); PostgreSQL.CommitTransaction(trans1); //返回信息 resultmsg.status = true; resultmsg.msg = "任务已处理,同意加入农场!"; resultmsg.data = null; token = request.Headers["Token"]; } else//不同意加入农场 { //返回信息 resultmsg.status = false; resultmsg.msg = "任务已处理,不同意加入农场!"; resultmsg.data = null; token = request.Headers["Token"]; } #region //查询 ////再次查询 //var para2 = new DbParameter[3]; //para2[0] = PostgreSQL.NewParameter("@creator", task.creator); //para2[1] = PostgreSQL.NewParameter("@farm", task.farm); //para2[2] = PostgreSQL.NewParameter("@type", task.type); //var qlist = PostgreSQL.ExecuteTQuery<UserTask>(str_select, null, para2); //返回信息 //resultmsg.status = true; //resultmsg.msg = task.description; //resultmsg.data = qlist; //token = request.Headers["Token"]; #endregion } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } } else { resultmsg.status = false; resultmsg.msg = "任务类型已处理!"; resultmsg.data = null; token = request.Headers["Token"]; } } else { resultmsg.status = false; resultmsg.msg = "任务类型不存在!"; resultmsg.data = null; token = request.Headers["Token"]; } PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object CreatFarm(Farm farm) { string token = null; //获取请求 var request = HttpContext.Current.Request; token = request.Headers["Token"]; DataAuth auth = new DataAuth(); var role = auth.RoleType(token); //响应 ResultMsg <Farm> resultmsg = new ResultMsg <Farm>(); HttpResponseMessage response = new HttpResponseMessage(); if (farm == null || farm.name == null || farm.address == null)//判断输入的数据格式是否正确 { resultmsg.status = false; resultmsg.msg = "输入的数据格式不正确,请检查后重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } PostgreSQL.OpenCon(); //打开数据库 if (role == "0") //"农场主"判断是否是农场主,如果用户是农场主,则创建农场 { var para = new DbParameter[2]; //string str_select = string.Format("select * from tb_farm where name=@name and address ->>'prov' like \'{0}\'and address ->> 'city' like \'{1}\' and address ->> 'coun' like \'{2}\'", // farm.address["prov"].ToString(), farm.address["city"].ToString(), farm.address["coun"].ToString()); //string str_select = string.Format("select * from tb_farm where name=@name and address ::TEXT = (\'{0}\' ::json)::TEXT", farm.address.ToString()); string str_select = "select * from tb_farm where name=@name and address =@address"; para[0] = PostgreSQL.NewParameter("@name", farm.name); para[1] = PostgreSQL.NewParameter("@address", farm.address); var qfarm = PostgreSQL.ExecuteTQuery <Farm>(str_select, null, para); if (qfarm != null)//判断此地址的农场名是否存在 { resultmsg.status = false; resultmsg.msg = "农场名已经存在,请重新命名!"; resultmsg.data = qfarm; token = request.Headers["Token"]; } else { var trans = PostgreSQL.BeginTransaction(); try { string str_insert = "insert into tb_farm(\"name\",address) values(@name,@address);"; var para1 = new DbParameter[2]; para1[0] = PostgreSQL.NewParameter("@name", farm.name); para1[1] = PostgreSQL.NewParameter("@address", farm.address); //para1[2] = PostgreSQL.NewParameter("@thumb", farm.thumb); var num = PostgreSQL.ExecuteNoneQuery(str_insert, trans, para1); PostgreSQL.CommitTransaction(trans); //查询 var para2 = new DbParameter[2]; para2[0] = PostgreSQL.NewParameter("@name", farm.name); para2[1] = PostgreSQL.NewParameter("@address", farm.address); var qfarm1 = PostgreSQL.ExecuteTQuery <Farm>(str_select, null, para2); //返回信息 resultmsg.status = true; resultmsg.msg = "成功创建农场!"; resultmsg.data = qfarm1; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } } } else { resultmsg.status = false; resultmsg.msg = "不是农场主无法创建农场!"; resultmsg.data = null; token = request.Headers["Token"]; } PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object UpdateFarm(Farm farm) { string token = null; //获取请求 var request = HttpContext.Current.Request; //声明响应 ResultMsg <Farm> resultmsg = new ResultMsg <Farm>(); HttpResponseMessage response = new HttpResponseMessage(); if (farm == null || farm.name == null || farm.address == null)//判断输入的数据格式是否正确 { resultmsg.status = false; resultmsg.msg = "输入的数据格式不正确,请检查后重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } PostgreSQL.OpenCon(); //打开数据库 //查询数据库 string str_select = "select * from tb_farm where id = @id;"; //name = @name "; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@id", farm.id); var qFarm = PostgreSQL.ExecuteTQuery <Farm>(str_select, null, para); if (qFarm == null)//判断此id的农场是否存在 { resultmsg.status = false; resultmsg.msg = "农场不存在!"; resultmsg.data = null; token = request.Headers["Token"]; } else { string str_update = "update tb_farm set \"name\" = @name,address =@address"; var trans = PostgreSQL.BeginTransaction(); try { var para1 = new DbParameter[3]; para1[0] = PostgreSQL.NewParameter("@id", farm.id); para1[1] = PostgreSQL.NewParameter("@name", farm.name); para1[2] = PostgreSQL.NewParameter("@address", farm.address); var num = PostgreSQL.ExecuteNoneQuery(str_update, trans, para1); PostgreSQL.CommitTransaction(trans); //返回信息 resultmsg.status = true; resultmsg.msg = "成功更新农场信息!"; resultmsg.data = null; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } } PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object DeleteField(int id) //Field field) { string token = null; //获取请求 var request = HttpContext.Current.Request; //声明响应 ResultMsg <Field> resultmsg = new ResultMsg <Field>(); HttpResponseMessage response = new HttpResponseMessage(); PostgreSQL.OpenCon(); //打开数据库 //查询用户所在农场编号 string strtoken = SunGolden.Encryption.DEncrypt.Decrypt(request.Headers["Token"]); //解密Token string str_mobile = strtoken.Substring(0, strtoken.IndexOf(",")); //查询tb_user数据库 string str = string.Format("select * from tb_user where \"mobile\" =\'{0}\'", str_mobile); //string str ="select farm from tb_user where \"mobile\" = \'@mobile\'}"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@moblie", str_mobile); var quser = PostgreSQL.ExecuteTQuery <User>(str, null, para); //查询tb_field数据库 string str_select = "select * from tb_field where id = @id;"; var para1 = new DbParameter[1]; para1[0] = PostgreSQL.NewParameter("@id", id); var qField = PostgreSQL.ExecuteTQuery <Field>(str_select, null, para1); if (qField == null)//判断地块是否存在 { resultmsg.status = false; resultmsg.msg = "地块不存在!"; resultmsg.data = null; token = request.Headers["Token"]; } else { if (quser.farm != qField.farm)//判断地块是否属于农场 { resultmsg.status = false; resultmsg.msg = "此地块不属于这个农场,无法删除!"; resultmsg.data = null; token = request.Headers["Token"]; } else { var trans = PostgreSQL.BeginTransaction(); try { //查询数据库 string str_delete = "delete from tb_field where id = @id;";//name = @name and farm = @farm;"; var para3 = new DbParameter[1]; para3[0] = PostgreSQL.NewParameter("@id", id); var num = PostgreSQL.ExecuteNoneQuery(str_delete, trans, para3); PostgreSQL.CommitTransaction(trans); //返回信息 resultmsg.status = true; resultmsg.msg = "成功删除地块信息!"; resultmsg.data = null; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } } } PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object UpdateUser(User user) { string token = null; //获取请求 var request = HttpContext.Current.Request; //声明响应 ResultMsg <User> resultmsg = new ResultMsg <User>(); HttpResponseMessage response = new HttpResponseMessage(); if (user == null && user.name == null)//判断输入的数据格式是否正确 { resultmsg.status = false; resultmsg.msg = "输入的数据格式不正确,请检查后重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } if (user.mobile.Length != 11 || !Regex.IsMatch(user.mobile, @"^[0-9]*[0-9][0-9]*$"))//判断更换的手机号是否是纯数字 { resultmsg.status = false; resultmsg.msg = "手机号必须是11位有效数字!"; resultmsg.data = null; token = null; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } PostgreSQL.OpenCon(); //打开数据库 //判断用户 string strtoken = SunGolden.Encryption.DEncrypt.Decrypt(request.Headers["Token"]); //解密Token string str_mobile = strtoken.Substring(0, strtoken.IndexOf(",")); //查询数据库 string str1 = string.Format("select * from tb_user where \"mobile\" =\'{0}\'", str_mobile); //string str ="select farm from tb_user where \"mobile\" = \'@mobile\'}"; var para2 = new DbParameter[1]; para2[0] = PostgreSQL.NewParameter("@moblie", str_mobile); var quser = PostgreSQL.ExecuteTQuery <User>(str1, null, para2); if (quser.id == user.id)//判断输入id是否是登陆用户的id { var trans = PostgreSQL.BeginTransaction(); string str_update = ""; try { var num = 0; if (quser.role == 0)//判断用户角色是否是农场主,若是农场主获取农场id,否则farm=-1 { str_update = "update tb_user set \"name\"= @name,mobile= @mobile,\"role\"= @role ,farm=@farm where id=@id;"; var para = new DbParameter[5]; para[0] = PostgreSQL.NewParameter("@name", user.name); para[1] = PostgreSQL.NewParameter("@mobile", user.mobile); para[2] = PostgreSQL.NewParameter("@role", user.role); para[3] = PostgreSQL.NewParameter("@id", user.id); para[4] = PostgreSQL.NewParameter("@farm", user.farm); num = PostgreSQL.ExecuteNoneQuery(str_update, trans, para); } else { str_update = "update tb_user set \"name\"= @name,mobile= @mobile,\"role\"= @role,farm=@farm where id=@id;"; var para = new DbParameter[4]; para[0] = PostgreSQL.NewParameter("@name", user.name); para[1] = PostgreSQL.NewParameter("@mobile", user.mobile); para[2] = PostgreSQL.NewParameter("@role", user.role); para[3] = PostgreSQL.NewParameter("@id", user.id); para[4] = PostgreSQL.NewParameter("@farm", -1); num = PostgreSQL.ExecuteNoneQuery(str_update, trans, para); } PostgreSQL.CommitTransaction(trans); //查询数据库 string str_select = "select * from tb_user where mobile = @mobile;"; var para1 = new DbParameter[1]; para1[0] = PostgreSQL.NewParameter("@mobile", user.mobile); var qUser = PostgreSQL.ExecuteTQuery <User>(str_select, null, para1); //返回信息 resultmsg.status = true; resultmsg.msg = "成功更新用户资料!"; resultmsg.data = qUser; token = request.Headers["Token"];; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } } else { //返回信息 resultmsg.status = true; resultmsg.msg = "输入的id,不是登录用户,无法更新用户资料!"; resultmsg.data = null; token = request.Headers["Token"]; } PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object AddField(Field field) { string token = null; //获取请求 var request = HttpContext.Current.Request; //声明响应 ResultMsg <Field> resultmsg = new ResultMsg <Field>(); HttpResponseMessage response = new HttpResponseMessage(); if (field == null || field.name == null || field.area <= 0 || field.currentcrop < -1 || field.sowdate > DateTime.Now.Date)//判断输入的数据格式是否正确 { resultmsg.status = false; resultmsg.msg = "输入的数据格式不正确,请检查后重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } PostgreSQL.OpenCon(); //打开数据库 //查询用户所在农场编号 string strtoken = SunGolden.Encryption.DEncrypt.Decrypt(request.Headers["Token"]); //解密Token string str_mobile = strtoken.Substring(0, strtoken.IndexOf(",")); //查询数据库tb_user string str = string.Format("select * from tb_user where \"mobile\" =\'{0}\'", str_mobile); //string str ="select farm from tb_user where \"mobile\" = \'@mobile\'}"; var para = new DbParameter[1]; para[0] = PostgreSQL.NewParameter("@moblie", str_mobile); var qfarm = PostgreSQL.ExecuteTQuery <User>(str, null, para); if (qfarm.farm != field.farm)//判断添加地块的农场是否是登录用户所在的农场 { resultmsg.status = false; resultmsg.msg = "此地块不属于这个农场,无法添加!"; resultmsg.data = null; token = request.Headers["Token"]; } else { ////查询数据库 //string str_select = "select * from tb_field where \"name\" = @name and farm=@farm"; //var para1 = new DbParameter[2]; //para1[0] = PostgreSQL.NewParameter("@name", field.name); //para1[1] = PostgreSQL.NewParameter("@farm", field.farm); ////var qField = PostgreSQL.ExecuteTableQuery(str_select, null, para1); //var qField = PostgreSQL.ExecuteTQuery<Field>(str_select, null, para1); ////判断地块名是否存在 //if (qField != null) //{ // resultmsg.status = false; // resultmsg.msg = "地块名已经存在,请重新命名!"; // resultmsg.data = null; // token = request.Headers["Token"]; //} //else //{ //数据检查 DataAuth auth = new DataAuth(); if (field.currentcrop == -1) { field.phenophase = -1; field.sowdate = Convert.ToDateTime("0001/1/1 0:00:00"); #region//查询数据库 string str_insert = string.Format("insert into tb_field(farm,\"name\",geom,area,createdate,currentcrop,sowdate,phenophase,thumb) values(@farm,@name,st_geomfromtext(\'{0}\'),@area,@createdate,@currentcrop,@sowdate,@phenophase,@thumb);", field.geom); //string str_insert = "insert into tb_field(farm,\"name\",geom,area,createdate,currentcrop,sowdate,phenophase,thumb) values(@farm,@name,@geom,@area,@createdate,@currentcrop,@sowdate,@phenophase,@thumb);"; var trans = PostgreSQL.BeginTransaction(); try { var para2 = new DbParameter[9]; para2[0] = PostgreSQL.NewParameter("@farm", field.farm); para2[1] = PostgreSQL.NewParameter("@name", field.name); para2[2] = PostgreSQL.NewParameter("@geom", field.geom); para2[3] = PostgreSQL.NewParameter("@area", field.area); para2[4] = PostgreSQL.NewParameter("@createdate", DateTime.Now.Date); para2[5] = PostgreSQL.NewParameter("@currentcrop", field.currentcrop); para2[6] = PostgreSQL.NewParameter("@sowdate", field.sowdate); para2[7] = PostgreSQL.NewParameter("@phenophase", field.phenophase); para2[8] = PostgreSQL.NewParameter("thumb", field.thumb); var num = PostgreSQL.ExecuteNoneQuery(str_insert, trans, para2); PostgreSQL.CommitTransaction(trans); //返回信息 resultmsg.status = true; resultmsg.msg = "添加地块成功!"; resultmsg.data = null; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } #endregion } else if (field.currentcrop != -1 && auth.crop(field.currentcrop)) { if (field.sowdate.ToString() != "0001/1/1 0:00:00") { field.phenophase = auth.phentype(field.sowdate, field.currentcrop); //获取当前物候期 #region //查询数据库 string str_insert = string.Format("insert into tb_field(farm,\"name\",geom,area,createdate,currentcrop,sowdate,phenophase,thumb) values(@farm,@name,st_geomfromtext(\'{0}\'),@area,@createdate,@currentcrop,@sowdate,@phenophase,@thumb);", field.geom); //string str_insert = "insert into tb_field(farm,\"name\",geom,area,createdate,currentcrop,sowdate,phenophase,thumb) values(@farm,@name,@geom,@area,@createdate,@currentcrop,@sowdate,@phenophase,@thumb);"; var trans = PostgreSQL.BeginTransaction(); try { var para2 = new DbParameter[9]; para2[0] = PostgreSQL.NewParameter("@farm", field.farm); para2[1] = PostgreSQL.NewParameter("@name", field.name); para2[2] = PostgreSQL.NewParameter("@geom", field.geom); para2[3] = PostgreSQL.NewParameter("@area", field.area); para2[4] = PostgreSQL.NewParameter("@createdate", DateTime.Now.Date); para2[5] = PostgreSQL.NewParameter("@currentcrop", field.currentcrop); para2[6] = PostgreSQL.NewParameter("@sowdate", field.sowdate); para2[7] = PostgreSQL.NewParameter("@phenophase", field.phenophase); para2[8] = PostgreSQL.NewParameter("thumb", field.thumb); var num = PostgreSQL.ExecuteNoneQuery(str_insert, trans, para2); PostgreSQL.CommitTransaction(trans); //返回信息 resultmsg.status = true; resultmsg.msg = "添加地块成功!"; resultmsg.data = null; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } #endregion } else { //返回信息 resultmsg.status = false; resultmsg.msg = "输入的种植日期不符合要求,请重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; } } else { //返回信息 resultmsg.status = false; resultmsg.msg = "输入的作物id不存在!"; resultmsg.data = null; token = request.Headers["Token"]; } } //} PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }
public object AddFieldLive(Field_live live) { string token = null; //获取请求 var request = HttpContext.Current.Request; //响应 ResultMsg <Field_live> resultmsg = new ResultMsg <Field_live>(); HttpResponseMessage response = new HttpResponseMessage(); if (live == null || live.gps == null || live.picture == null)//判断输入的数据格式是否正确 { resultmsg.status = false; resultmsg.msg = "输入的数据格式不正确,请检查后重新输入!"; resultmsg.data = null; token = request.Headers["Token"]; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } PostgreSQL.OpenCon(); //打开数据库 //判断用户 string strtoken = SunGolden.Encryption.DEncrypt.Decrypt(request.Headers["Token"]); //解密Token string str_mobile = strtoken.Substring(0, strtoken.IndexOf(",")); //查询数据库 string str1 = string.Format("select * from tb_user where \"mobile\" =\'{0}\'", str_mobile); var para1 = new DbParameter[1]; para1[0] = PostgreSQL.NewParameter("@moblie", str_mobile); var quser = PostgreSQL.ExecuteTQuery <User>(str1, null, para1); if (live.collector != quser.id) { //返回信息 resultmsg.status = false; resultmsg.msg = "输入的采集人不是登陆用户!"; resultmsg.data = null; token = request.Headers["Token"]; //添加响应头 var resultObj1 = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj1); return(response); } ////查询数据库,判断地块是否存在 //string str_select = "select * from tb_field_live where field = @field"; //var para = new DbParameter[1]; //para[0] = PostgreSQL.NewParameter("@field", live.field); //var qLive = PostgreSQL.ExecuteTQuery<Field_live>(str_select, null, para); //if (qLive != null) //{ // //返回信息 // resultmsg.status = false; // resultmsg.msg = "地块实况已经存在,是否要重新添加!"; // resultmsg.data = null; // token = request.Headers["Token"]; //} //else //{ //数据检查是否超出界限 DataAuth auth = new DataAuth(); if (auth.field(live.field) && auth.growthtype(live.growth) && auth.moisturetype(live.moisture) && auth.pesttype(live.pest) && auth.diseasetype(live.disease)) { //string str_insert =string.Format("insert into tb_field_live(field,growth,moisture,disease,pest,collector,collect_date,gps,picture) values(@field,@growth,@moisture,@disease,@pest,@collector,@collect_date,st_geomfromtext(\'{0}\'),@picture) ", live.gps); string str_insert = "insert into tb_field_live(field,growth,moisture,disease,pest,collector,collect_date,gps,picture) values(@field,@growth,@moisture,@disease,@pest,@collector,@collect_date,@gps,@picture;"; var trans = PostgreSQL.BeginTransaction(); try { var para2 = new DbParameter[9]; para2[0] = PostgreSQL.NewParameter("@field", live.field); para2[1] = PostgreSQL.NewParameter("@growth", live.growth); para2[2] = PostgreSQL.NewParameter("@moisture", live.moisture); para2[3] = PostgreSQL.NewParameter("@disease", live.disease); para2[4] = PostgreSQL.NewParameter("@pest", live.pest); para2[5] = PostgreSQL.NewParameter("@collector", live.collector); para2[6] = PostgreSQL.NewParameter("@collect_date", DateTime.Now.Date); para2[7] = PostgreSQL.NewParameter("@gps", live.gps); para2[8] = PostgreSQL.NewParameter("@picture", live.picture); var list = PostgreSQL.ExecuteNoneQuery(str_insert, trans, para2); PostgreSQL.CommitTransaction(trans); //返回信息 resultmsg.status = true; resultmsg.msg = "添加指定地块的实况信息成功!"; resultmsg.data = null; token = request.Headers["Token"]; } catch (Exception ex) { PostgreSQL.RollbackTransaction(trans); //返回信息 resultmsg.status = false; resultmsg.msg = "[ERROR] 数据库操作出现异常:" + ex.Message; resultmsg.data = null; token = request.Headers["Token"]; } } else { //返回信息 resultmsg.status = false; resultmsg.msg = "输入的长势类型/土壤湿度类型/病害类型/虫害类型数据,其中有超出界限的数据,请检查!"; resultmsg.data = null; token = request.Headers["Token"]; } //} PostgreSQL.CloseCon();//关闭数据库 //添加响应头 var resultObj = JsonConvert.SerializeObject(resultmsg, Formatting.Indented); response.Headers.Add("Token", token); response.Content = new StringContent(resultObj); return(response); }