/// login
//pub fn login(item: web::Json<UuidSigninUser>,
// pool: web::Data<SqlitePool>,
// session: Session) -> impl Future<Item=HttpResponse, Error=Error> {
// if log_enabled!(Level::Debug) {
// info!("Params = {:?}", &item)
// }
//
// let opt_user_info: Option<UserInfo> = session.get("user_info").unwrap_or_default();
// if !opt_user_info.is_none() {
// return ok(HttpResponse::Ok().json(ApiResponse { data: opt_user_info.unwrap().uuid, ..Default::default() }));
// }
//
// if item.union_id.is_empty() || item.session_key.is_empty() {
// return ok(HttpResponse::Ok().json(ApiResponse { message: "union_id or session_key is empty.".to_owned(),data:"", ..Default::default() }));
// }
//
// let conn = pool.get().unwrap();
//
// let mut uuid = conn.query_row("select uuid from user where union_id = $1 limit 1", &[&item.union_id], |row| {
// row.get::<_, String>(0)
// }).unwrap();
//
// if !uuid.is_empty() {
// return ok(HttpResponse::Ok().json(ApiResponse { data: uuid, ..Default::default() }));
// }
//
// let now = Local::now().format(common::DATE_FORMAT_1).to_string();
// let mut rng = rand::thread_rng();
// uuid = format!("{}", rng.next_u64());
//
// conn.execute(
// "insert or replace into user (uuid,nick_name,union_id,gmt_create,gmt_modified,source,is_delete) \
// values ($1,$2,$3,$4,$5,$6,0)",
// &[&uuid, &item.nick_name, &item.union_id, &now, &now, common::SOURCE_WECHAT],
// ).expect("user insert or replace failed.");
//
// let user_info = UserInfo { is_login: true, uuid:uuid.to_owned(), nick_name: item.nick_name.to_owned(), ..Default::default() };
// session.set::<UserInfo>("user_info", user_info).expect("Failed setting user_info into session");
//
// return ok(HttpResponse::Ok().json(ApiResponse { data: uuid, ..Default::default() }));
//}