def get(self): user_log.info("QueryFriendInfoHandler GET.") frd_id_list = self.get_arguments("uid") if not frd_id_list: user_log.error("Query friend info list protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return user_id = self.get_current_user() frd_list = dao_friend.queryFriendInfoList(user_id, frd_id_list) if frd_list is None: user_log.error("Query friend info list failed! Friend id list: %s", frd_id_list) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_FRIEND_ID_LIST_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["frdList"] = frd_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def post(self): user_log.info("BindPhoneHandler.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["phone"] optional_args = [] if True != httpJSONArgsCheck(req_json, required_args, optional_args): user_log.error("Bind phone protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return phone = req_json["phone"] acc_id = self.get_current_user() if True != dao.bindPhone(acc_id, phone): user_log.error("Bind phone failed! Account id: %s, Phone: %s", acc_id, phone) rep_json = {} rep_json["err"] = FD_ERR_USER_BIND_PHONE_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryShopNameHandler GET.") shop_id = self.get_argument("sid", None) if shop_id is None: user_log.error("Query shop name protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return shop_name = dao.queryShopName(shop_id) if shop_name is None: user_log.error("Query shop name failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_SHOP_NAME_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["shopName"] = shop_name self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryUserInfoHandler GET.") user_id_list = self.get_arguments("uid") if not user_id_list: user_log.error("Query user info list protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return user_info_list = dao_friend.queryUserInfoList(user_id_list) if user_info_list is None: user_log.error("Query user info list failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_USER_INFO_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["userList"] = user_info_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def delete(self): user_log.info("ConcerShopHandler DELETE.") shop_id = self.get_argument("sid") if shop_id is None: rep_json = {} user_log.error("Unconcern shop protocol data error!") rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return user_id = self.get_current_user() if True != dao.concernShop(user_id, shop_id, FD_UNCONCERN): user_log.error("Unconcer shop failed! User id: %s, shop id: %s", user_id, shop_id) rep_json = {} rep_json["err"] = FD_ERR_USER_UNCONCERN_SHOP_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def post(self): user_log.info("FeedbackHandler POST.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["feedback"] optional_args = [] if True != httpJSONArgsCheck(req_json, required_args, optional_args): req_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(req_json, cls=ExtendedJsonEncoder)) return feedback = req_json["feedback"] user_id = self.get_current_user() if True != dao.feedback(user_id, feedback): user_log.error("Feedback failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_FEEDBACK_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryGoodsDetailHandler GET.") goods_id = self.get_argument("gid", None) bar_code = self.get_argument("barcode", None) if goods_id is None: user_log.error("Query goods detail protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return goods = dao.queryGoodsDetail(goods_id, bar_code) if goods is None: user_log.error("Query goods detail failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_GOODS_DETAIL_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["info"] = goods self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def post(self): user_log.info("ResetPasswordHandler POST.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["phone", "password"] optional_args = [] if True != httpJSONArgsCheck(req_json, required_args, optional_args): user_log.error("Reset password protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return phone = req_json["phone"] password = req_json["password"] if True != dao.resetPassword(phone, password): user_log.error("Reset password failed! Phone: %s", phone) rep_json = {} rep_json["err"] = FD_ERR_USER_RESET_PASSWORD_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryActivitiesHandler GET.") city_id = int(self.get_argument("city")) offset = int(self.get_argument("offset")) count = int(self.get_argument("count")) if city_id is None or offset is None or count is None: user_log.error("Query activities protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return act_list = dao.queryActivities(city_id, offset, count) if act_list is None: user_log.error("Query activities failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_ACTIVITIES_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["actList"] = act_list rep_json["count"] = dao.queryActivityNum(city_id) self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryRecommendHandler GET.") city_id = self.get_argument("city", None) if city_id is None or city_id < 0: user_log.error("Query recommend shop protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return shop_list = dao.queryRecommendShops(city_id) if shop_list is None: user_log.error("Query recommend shop failed! City ID: %s", city_id) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_RECOMMEND_SHOP_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["shopList"] = shop_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryActivityByShopHandler GET.") shop_id = self.get_argument("sid", None) if shop_id is None: user_log.error("Query shop activity protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return act_list = dao.queryActivityByShop(shop_id) if act_list is None: user_log.error("Query shop activity list failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_ACTIVITY_BY_SHOP_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["actList"] = act_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryGoodsByShopHandler GET.") shop_id = self.get_argument("sid", None) offset = self.get_argument("offset", None) count = self.get_argument("count", None) if shop_id is None or offset is None or count is None: user_log.error("Query goods by shop protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return goods_list = dao.queryGoodsByPage(int(shop_id), int(offset), int(count)) if goods_list is None: user_log.error("Query goods by page failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_GOODS_BY_PAGE_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["goodsList"] = goods_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryShopCurrentCustomerHandler GET.") shop_id = self.get_argument("sid", None) if shop_id is None: user_log.error("Query shop current customer count protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return url = CONFIG.FD_CHAT_SERVER + "/chat/shop/" + str(shop_id) + "/userstotalnum" request = HTTPRequest(url, "GET") http = AsyncHTTPClient() response = yield http.fetch(request) rep_json = json.loads(response.body) is_success = rep_json["is_success"] if is_success: customer_count = rep_json["total_num"] rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["count"] = customer_count self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return else: user_log.error("Query shop current customer count failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_SHOP_CUSTOMER_COUNT_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def queryFriendInfoList(self, user_id, frd_id_list): conn = self._pool.connection() cursor = conn.cursor() try: frd_list = [] sql = "select t1.friend_id, t1.friend_name, t2.name, t2.mcode, t2.portrait_url from fd_t_friend t1, fd_t_user t2 \ where t1.user_id = %s and t1.friend_id in %s and t1.friend_id = t2.user_id" paras = (user_id, frd_id_list) row_count = cursor.execute(sql, paras) if row_count <= 0: return frd_list rows = cursor.fetchall() for row in rows: friend = {} friend["frdID"] = row["friend_id"] friend["rmkName"] = row["friend_name"] friend["nickName"] = row["name"] friend["mcode"] = row["mcode"] friend["portrait"] = OSS_URL_PRIFIX + row["portrait_url"] frd_list.append(friend) return frd_list except MySQLdb.Error, e: user_log.error( "Query friend info lsit failed! sql: %s, paras: %s, exception: %s", sql, paras, e) return None
def get(self): user_log.info("QueryCustomerFittingHandler GET.") goods_id = self.get_argument("gid", None) offset = self.get_argument("offset", None) count = self.get_argument("count", None) if goods_id is None or offset is None or count is None: user_log.error("Query goods customer fitting protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return pic_list = dao.queryGoodsFitting(int(goods_id), int(offset), int(count)) if pic_list is None: user_log.error("Query goods fitting picture list failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_GOODS_FITTING_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["picList"] = pic_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def queryUserFFVCount(self, user_id): conn = self._pool.connection() cursor = conn.cursor() try: ffv_count = {} # query user fans shop count sql = "select count(0) as count from fd_t_fans where user_id = %s" paras = (user_id, ) cursor.execute(sql, paras) row = cursor.fetchone() ffv_count["fans"] = row["count"] # query user favorite goods count sql = "select count(0) as count from fd_t_favorite where user_id = %s" paras = (user_id, ) cursor.execute(sql, paras) row = cursor.fetchone() ffv_count["favorite"] = row["count"] # query user fans shop count sql = "select count(0) as count from fd_t_visitedshop where user_id = %s" paras = (user_id, ) cursor.execute(sql, paras) row = cursor.fetchone() ffv_count["visited"] = row["count"] return ffv_count except MySQLdb.Error, e: user_log.error( "Query user ffv count failed! sql: %s, paras: %s, exception: %s", sql, paras, e) return None
def put(self): user_log.info("CustomerFittingHandler PUT.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["goodsID", "picURL"] optional_args = ["description"] if True != httpJSONArgsCheck(req_json, required_args, optional_args): user_log.error("Add customer fitting picture protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return goods_id = req_json["goodsID"] pic_url = req_json["picURL"] description = req_json["description"] acc_id = self.get_current_user() if True != dao.addCustomerFitting(acc_id, goods_id, pic_url, description): user_log.error("Add customer fitting picture failed! Account id: %s", acc_id) rep_json = {} rep_json["err"] = FD_ERR_USER_ADD_CUSTOMER_FITTING_PICTURE_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def bindPhone(self, acc_id, phone): conn = self._pool.connection() cursor = conn.cursor() try: sql = "update fd_t_account set phone_no = %s where acc_id = %s" paras = (phone, acc_id) row_count = cursor.execute(sql, paras) # if row_count <= 0: # LOGGER.error("Bind phone no failed! Update account data failed! Phone no: %s", phone) # conn.rollback() # return False sql = "update fd_t_user set phone_no = %s where user_id = %s" paras = (phone, acc_id) row_count = cursor.execute(sql, paras) # if row_count <= 0: # LOGGER.error("Bind phone failed! No data be updated! Phone no: %s", phone) # conn.rollback() # return False conn.commit() return True except MySQLdb.Error, e: user_log.error( "Bind phone failed! sql: %s, paras: %s, exception: %s", sql, paras, e) conn.rollback() return False
def get(self): user_log.info("QueryVisitedShopsHandler GET.") time = self.get_argument("time", None) direct = self.get_argument("direct", None) count = self.get_argument("count", None) if time is None or count is None: user_log.error("Query goods customer fitting protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return visit_time = datetime.datetime.fromtimestamp(int(time)) user_id = self.get_current_user() shop_list = dao.queryVisitedShops(user_id, visit_time, int(direct), int(count)) if shop_list is None: user_log.error("Query visited shop list failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_VISITED_SHOPS_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["shopList"] = shop_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryFansShopNewsHandler POST.") fans_shop_id_list = self.get_arguments("sid") if not fans_shop_id_list: rep_json = {} user_log.error("Query fans shop news protocol data error!") rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return fans_shop_list = dao.queryFansShopNewsList(fans_shop_id_list) if fans_shop_list is None: user_log.error("Query fans shop news list failed! Shop id list: %s", fans_shop_id_list) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_FANS_SHOP_NEWS_LIST_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["shopList"] = fans_shop_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def queryFeedbackListByPage(self, user_id, offset, count): conn = self._pool.connection() cursor = conn.cursor() try: feed_list = [] sql = "select * from fd_t_feedback where user_id = %s and time <= \ (select time from fd_t_feedback where user_id = %s order by time desc limit %s, 1) order by time desc limit %s " paras = (user_id, user_id, int(offset), int(count)) row_count = cursor.execute(sql, paras) if row_count <= 0: return feed_list rows = cursor.fetchall() for row in rows: feedback = dict() feedback["content"] = row["content"] feedback["time"] = row["time"] feedback["direction"] = row["direction"] feed_list.append(feedback) return feed_list except MySQLdb.Error, e: user_log.error( "Query feedback info failed! sql: %s, paras: %s, exception: %s", sql, paras, e) return False
def post(self): user_log.info("PrivateSettingHandler POST.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["favoriteEnable", "fansEnable", "visitEnable"] optional_args = [] if True != httpJSONArgsCheck(req_json, required_args, optional_args): req_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(req_json, cls=ExtendedJsonEncoder)) return favorite_enable = req_json["favoriteEnable"] fans_enable = req_json["fansEnable"] visit_enable = req_json["visitEnable"] user_id = self.get_current_user() if True != dao.modifyPrivateSetting(user_id, favorite_enable, fans_enable, visit_enable): user_log.error("Modify private setting failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_MODIFY_PRIVATE_SETTING_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def querySupportCityList(self): conn = self._pool.connection() cursor = conn.cursor() try: city_list = [] sql = "select DISTINCT city_id, city_name from fd_t_citycode where is_support = 1" row_count = cursor.execute(sql, None) if row_count <= 0: return city_list rows = cursor.fetchall() for row in rows: city = dict() city["id"] = row["city_id"] city["name"] = row["city_name"] city_list.append(city) return city_list except MySQLdb.Error, e: user_log.error( "Query support city lsit failed! sql: %s, paras: %s, exception: %s", sql, e) return None
def get(self): user_log.info("QueryFriendVisitedShopHandler GET.") frd_id = self.get_argument("uid", None) offset = self.get_argument("offset", None) count = self.get_argument("count", None) if frd_id is None or offset is None or count is None: user_log.error("Query friend fans shop protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return user_id = self.get_current_user() shop_list = dao_shop.queryFriendVisitedShop(int(user_id), int(frd_id), int(offset), int(count)) if shop_list is None: user_log.error("Query friend visited shop failed! User id: %s, friend id: %s", user_id, frd_id) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_FRIEND_VISITED_SHOP_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["shopList"] = shop_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def queryPrivateSetting(self, user_id): conn = self._pool.connection() cursor = conn.cursor() try: sql = "select * from fd_t_privatesetting where user_id = %s" paras = (user_id, ) row_count = cursor.execute(sql, paras) if row_count <= 0: user_log.error("No private setting data! User id: %s", user_id) return None row = cursor.fetchone() setting = {} setting["favoriteEnable"] = row["save_enable"] setting["fansEnable"] = row["fans_enable"] setting["visitEnable"] = row["visit_enable"] return setting except MySQLdb.Error, e: user_log.error( "Query private setting failed! sql: %s, paras: %s, exception: %s", sql, paras, e) user_log.exception(e) return None
def get(self): user_log.info("QueryUserFFVCountHandler GET.") user_id = self.get_argument("uid", None) if user_id is None: user_log.error("Query user ffv count protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return ffv_count = dao_friend.queryUserFFVCount(user_id) if ffv_count is None: user_log.error("Query user ffv count failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_USER_FFV_COUNT_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["ffvCount"] = ffv_count self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def savePhoneCode(self, phone, code, deadline): conn = self._pool.connection() cursor = conn.cursor() try: sql = "select * from fd_t_phoneauth where phone_no = %s" paras = (phone, ) row_count = cursor.execute(sql, paras) if row_count <= 0: sql = "insert into fd_t_phoneauth values(%s, %s, %s)" paras = (phone, code, deadline) else: sql = "update fd_t_phoneauth set auth_code = %s, auth_deadline = %s where phone_no = %s" paras = (code, deadline, phone) row_count = cursor.execute(sql, paras) if row_count <= 0: user_log.error("Save phone verify code failed!") conn.rollback() return False conn.commit() return True except MySQLdb.Error, e: user_log.error( "Save phone code failed! sql: %s, paras: %s, exception: %s", sql, paras, e) conn.rollback() return False
def delete(self): user_log.info("AddressHandler DELETE.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["addrID"] optional_args = [] if True != httpJSONArgsCheck(req_json, required_args, optional_args): user_log.error("Modify address info protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return addr_id = req_json["addrID"] acc_id = self.get_current_user() if True != dao.deleteAddress(acc_id, addr_id): user_log.error("Delete address info failed! Account id: %s", acc_id) rep_json = {} rep_json["err"] = FD_ERR_USER_DELETE_ADDRESS_INFO_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def resetPassword(self, phone, password): conn = self._pool.connection() cursor = conn.cursor() try: sql = "update fd_t_account set password = %s where phone_no = %s" paras = (password, phone) row_count = cursor.execute(sql, paras) if row_count <= 0: user_log.error( "Reset password failed! No data be updated! Phone no: %s", phone) conn.rollback() return False conn.commit() return True except MySQLdb.Error, e: user_log.error( "Reset password failed! sql: %s, paras: %s, exception: %s", sql, paras, e) conn.rollback() return False
def post(self): user_log.info("AddressDefaultSettingHandler.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["addrID"] optional_args = [] if True != httpJSONArgsCheck(req_json, required_args, optional_args): user_log.error("Bind phone protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return addr_id = req_json["addrID"] user_id = self.get_current_user() if True != dao.setDefaultAddress(user_id, addr_id): user_log.error("Bind phone failed! Account id: %s, Phone: %s", acc_id, phone) rep_json = {} rep_json["err"] = FD_ERR_USER_SET_DEFAULT_ADDRESS_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def recordLoginDevice(self, acc_id, cur_login_dev): conn = self._pool.connection() cursor = conn.cursor() sql = "select device from fd_t_userlogindevice where user_id = %s" paras = (acc_id, ) try: last_login_dev = "" row_count = cursor.execute(sql, paras) if row_count > 0: row = cursor.fetchone() last_login_dev = row["device"] sql = "update fd_t_userlogindevice set device = %s, login_time = %s where user_id = %s" paras = (cur_login_dev, datetime.now(), acc_id) else: sql = "insert into fd_t_userlogindevice values(%s, %s, %s)" paras = (acc_id, cur_login_dev, datetime.now()) cursor.execute(sql, paras) conn.commit() return last_login_dev except MySQLdb.Error, e: user_log.error( "Record user login device failed! sql: %s, paras: %s, exception: %s", sql, paras, e) conn.rollback() return None
def queryFriendPrivateSetting(self, user_id, frd_id): conn = self._pool.connection() cursor = conn.cursor() try: sql = "select t1.save_enable, t1.fans_enable, t1.visit_enable from fd_t_privatesetting t1, fd_t_friend t2 \ where t1.user_id = %s and t2.user_id = %s and t2.friend_id = %s" paras = (frd_id, user_id, frd_id) row_count = cursor.execute(sql, paras) if row_count <= 0: setting = {} setting["favoriteEnable"] = 1 setting["fansEnable"] = 1 setting["visitEnable"] = 1 return setting setting = {} row = cursor.fetchone() setting["favoriteEnable"] = row["save_enable"] setting["fansEnable"] = row["fans_enable"] setting["visitEnable"] = row["visit_enable"] return setting except MySQLdb.Error, e: user_log.error( "Query friend private setting failed! sql: %s, paras: %s, exception: %s", sql, paras, e) return None
def queryUserInfo(self, user_id): conn = self._pool.connection() cursor = conn.cursor() try: sql = "select * from fd_t_user where user_id = %s" paras = (user_id, ) row_count = cursor.execute(sql, paras) if row_count <= 0: user_log.error("No personal info. User id: %s", user_id) return None row = cursor.fetchone() info = {} info["name"] = row["name"] info["portrait"] = OSS_URL_PRIFIX + row["portrait_url"] if row[ "portrait_url"] else None info["gender"] = row["gender"] info["city"] = row["city_id"] info["phone"] = row["phone_no"] info["mcode"] = row["mcode"] info["qrcode"] = row["qrcode"] return info except MySQLdb.Error, e: user_log.error( "Query user info failed! sql: %s, paras: %s, exception: %s", sql, paras, e) return None
def savePhoneCode(self, phone, code, deadline): conn = self._pool.connection() cursor = conn.cursor() try: sql = "select * from fd_t_phoneauth where phone_no = %s" paras = (phone,) row_count = cursor.execute(sql, paras) if row_count <= 0: sql = "insert into fd_t_phoneauth values(%s, %s, %s)" paras = (phone, code, deadline) else: sql = "update fd_t_phoneauth set auth_code = %s, auth_deadline = %s where phone_no = %s" paras = (code, deadline, phone) row_count = cursor.execute(sql, paras) if row_count <= 0: user_log.error("Save phone verify code failed!") conn.rollback() return False conn.commit() return True except MySQLdb.Error, e: user_log.error("Save phone code failed! sql: %s, paras: %s, exception: %s", sql, paras, e) conn.rollback() return False
def queryPersonalInfo(self, user_id): conn = self._pool.connection() cursor = conn.cursor() sql = "select * from fd_t_user where user_id = %s" paras = [user_id] try: row_count = cursor.execute(sql, paras) if row_count <= 0: user_log.error("No personal info. User id: %s", user_id) return None row = cursor.fetchone() info = dict() info["name"] = row["name"] if row["portrait_url"]: info["portrait"] = OSS_URL_PRIFIX + row["portrait_url"] else: info["portrait"] = OSS_URL_PRIFIX + CONFIG.PORTRAIT_URL info["gender"] = row["gender"] info["city"] = row["city_id"] # info["province"] = row["province_id"] info["phone"] = row["phone_no"] info["mcode"] = row["mcode"] info["qrcode"] = row["qrcode"] return info except MySQLdb.Error, e: user_log.error( "Query personal info failed! sql: %s, paras: %s, exception: %s", sql, paras, e) return None
def recordLoginDevice(self, acc_id, cur_login_dev): conn = self._pool.connection() cursor = conn.cursor() sql = "select device from fd_t_userlogindevice where user_id = %s" paras = (acc_id,) try: last_login_dev = "" row_count = cursor.execute(sql, paras) if row_count > 0: row = cursor.fetchone() last_login_dev = row["device"] sql = "update fd_t_userlogindevice set device = %s, login_time = %s where user_id = %s" paras = (cur_login_dev, datetime.now(), acc_id) else: sql = "insert into fd_t_userlogindevice values(%s, %s, %s)" paras = (acc_id, cur_login_dev, datetime.now()) cursor.execute(sql, paras) conn.commit() return last_login_dev except MySQLdb.Error, e: user_log.error("Record user login device failed! sql: %s, paras: %s, exception: %s", sql, paras, e) conn.rollback() return None
def modifyPersonalInfo(self, user_id, attr, name, portrait_url, gender, city): conn = self._pool.connection() cursor = conn.cursor() try: if FD_PERSONAL_INFO_NAME == attr: sql = "update fd_t_user set name = %s where user_id = %s" paras = (name, user_id) elif FD_PERSONAL_INFO_PORTRAIT == attr: sql = "update fd_t_user set portrait_url = %s where user_id = %s" paras = (portrait_url, user_id) elif FD_PERSONAL_INFO_GENDER == attr: sql = "update fd_t_user set gender = %s where user_id = %s" paras = (gender, user_id) elif FD_PERSONAL_INFO_CITY == attr: sql = "update fd_t_user set city_id = %s where user_id = %s" paras = (city, user_id) row_count = cursor.execute(sql, paras) conn.commit() return True except MySQLdb.Error, e: user_log.error( "Modify personal info failed! sql: %s, paras: %s, exception: %s", sql, paras, e) conn.rollback() return False
def get(self): user_log.info("QueryGoodsPromotHandler GET.") goods_id_list = self.get_arguments("gid") if not goods_id_list: user_log.error("Query goods promotion list failed! goods id list: %s", goods_id_list) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_GOODS_PROMOTION_LIST_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return goods_list = dao.queryGoodsPromotionList(goods_id_list) if goods_list is None: user_log.error("Query goods promotion list failed! goods id list: %s", goods_id_list) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_GOODS_PROMOTION_LIST_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["goodsList"] = goods_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def post(self): user_log.info("QueryFansShopDifferenceHandler POST.") front_fans_id_list = self.arg.shopIDs user_id = self.get_current_user() end_fans_id_list = dao.queryFansShopIDList(user_id) if end_fans_id_list is None: user_log.error("Query fans shop id list failed! User id: %s", user_id) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_FANS_SHOP_ID_LIST_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return front_fans_id_set = set(front_fans_id_list) end_fans_id_set = set(end_fans_id_list) add_fans_id_set = end_fans_id_set - front_fans_id_set delete_fans_id_set = front_fans_id_set - end_fans_id_set rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["addShopIDs"] = list(add_fans_id_set) rep_json["delShopIDs"] = list(delete_fans_id_set) self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def post(self): user_log.info("ModifyFriendRemarkNameHandler POST.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["frdID", "rmkName"] optional_args = [] if True != httpJSONArgsCheck(req_json, required_args, optional_args): user_log.error("Modify friend remark name protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return frd_id = req_json["frdID"] rmk_name = req_json["rmkName"] user_id = self.get_current_user() if True != dao_friend.modifyFriendName(user_id, frd_id, rmk_name): user_log.error("Modify friend remark name failed! User id: %s, friend id: %s", user_id, frd_id) rep_json = {} rep_json["err"] = FD_ERR_USER_MODIFY_FRIEND_NAME_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("FeedbackHandler GET.") offset = self.get_argument("offset", None) count = self.get_argument("count", None) if offset is None or count is None: user_log.error("Query feedback info protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return user_id = self.get_current_user() feed_list = dao.queryFeedbackListByPage(user_id, offset, count) if feed_list is None: user_log.error("Query feedback info failed! User id: %s", user_id) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_FEEDBACK_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["feedList"] = feed_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryFriendPrivateSettingHandler GET.") frd_id = self.get_argument("uid", None) if frd_id is None: user_log.error("Query friend private setting protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return user_id = self.get_current_user() setting = dao_friend.queryFriendPrivateSetting(user_id, frd_id) if setting is None: user_log.error("Query friend private setting failed! User id: %s, friend id: %s", user_id, frd_id) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_FRIEND_PRIVATE_SETTING_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["setting"] = setting self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryLatestVersionHandler GET.") system = self.get_argument("sys", None) if system is None: user_log.error("Query latest version protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return version = dao.queryLatestVersion(system) if version is None: user_log.error("Query latest version failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_LATEST_VERSION_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["version"] = version self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def get(self): user_log.info("QueryFriendFavoriteGoodsHandler GET.") frd_id = self.get_argument("uid", None) offset = self.get_argument("offset", None) count = self.get_argument("count", None) if frd_id is None or offset is None or count is None: user_log.error("Query friend favorite goods protocol data error!") rep_json = {} rep_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return user_id = self.get_current_user() goods_list = dao_shop.queryFriendFavoriteGoods(int(user_id), int(frd_id), int(offset), int(count)) if goods_list is None: user_log.error("Query friend favorite goods failed! User id: %s, friend id: %s", user_id, frd_id) rep_json = {} rep_json["err"] = FD_ERR_USER_QUERY_FRIEND_FAVORITE_GOODS_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR rep_json["goodsList"] = goods_list self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return
def post(self): user_log.info("MessageSettingHandler POST.") json_msg_str = self.request.body req_json = json.loads(json_msg_str) required_args = ["shopID", "msgEnable"] optional_args = [] if True != httpJSONArgsCheck(req_json, required_args, optional_args): req_json["err"] = FD_ERR_USER_PROTOCOL_DATA_ERROR self.set_header("Content-type", "application/json") self.write(json.dumps(req_json, cls=ExtendedJsonEncoder)) return shop_id = req_json["shopID"] msg_enable = req_json["msgEnable"] user_id = self.get_current_user() if True != dao.modifyMessageSetting(user_id, shop_id, msg_enable): user_log.error("Modify message setting failed!") rep_json = {} rep_json["err"] = FD_ERR_USER_MODIFY_MESSAGE_SETTING_FAILED self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return rep_json = {} rep_json["err"] = FD_USER_NOERR self.set_header("Content-type", "application/json") self.write(json.dumps(rep_json, cls=ExtendedJsonEncoder)) return