def auction_buy(self, user_id, auction_id): if not auction_id in self._auction_info: return ng_tool.make_result(-1) auction = self._auction_info[auction_id] user = ng_db.instance().user_get(user_id) if user == None: return ng_tool.make_result(-2) seller_user_id = auction["user_id"] if user_id == seller_user_id: return ng_tool.make_result(-3) cp = self.calc_price(auction["bp"], auction["ep"], auction["duration"], auction["selltime"]) fee = int(cp * 50 / 1000) if cp < fee: cp = fee if user["fish"] < cp: return ng_tool.make_result(-4) ng_dress.instance().dress_transfer_app(auction["dress_id"], user_id) ng_db.instance().user_add_fish(user_id, -cp) sell_price = cp - fee ng_db.instance().user_add_fish(seller_user_id, sell_price) self.cache_auction_del(auction_id) ng_db.instance().auction_delete(auction_id) ng_db.instance().follow_delete_all(auction_id) return ng_tool.make_result(0)
def mine(self, user_id, code): if not user_id in self._captcha: return ng_tool.make_result(-1) if code.lower() != self._captcha[user_id].lower(): del self._captcha[user_id] return ng_tool.make_result(-2) if not user_id in self._mine_list: self._mine_list[user_id] = {"num" : 0, "start_time" : int(time.time())} return self.mine_view(user_id)
def use_fish(self, user_id, num): num = int(num) if num <= 0: return ng_tool.make_result(-1) user = ng_db.instance().user_get(user_id) if user == None: return ng_tool.make_result(-1) if user["fish"] < num: return ng_tool.make_result(-2) ng_db.instance().user_add_fish(user_id, -num) return ng_tool.make_result(0)
def auction_cancel(self, user_id, auction_id): if not auction_id in self._auction_info: return ng_tool.make_result(-1) auction = self._auction_info[auction_id] if user_id != auction["user_id"]: return ng_tool.make_result(-2) dress_id = auction["dress_id"] self.cache_auction_del(auction_id) ng_db.instance().auction_delete(auction_id) ng_db.instance().follow_delete_all(auction_id) ng_dress.instance().dress_transfer_app(dress_id, user_id) return ng_tool.make_result(0)
def dress_user_view(self, user_id, page): page = int(page) dresses = [] if not user_id in self._user_dress: return ng_tool.make_result(0, {"page_num" : 0, "dresses" : dresses}) total_num = len(self._user_dress[user_id]) page_num = int((total_num + config.page_size - 1) / config.page_size) for i in range((page - 1) * config.page_size, page * config.page_size): if i >= 0 and i < total_num: dress_id = self._user_dress[user_id][i] dresses.append(self._dress_info[dress_id]) return ng_tool.make_result(0, {"page_num" : page_num, "dresses" : dresses})
def dress_transfer(self, user_id, dress_id, address): if not dress_id in self._dress_info: return ng_tool.make_result(-1) new_user = ng_db.instance().user_get_by_address(address) if new_user == None: return ng_tool.make_result(-2) new_user_id = new_user["user_id"] if user_id == new_user_id: return ng_tool.make_result(-3) dress = self._dress_info[dress_id] if dress["user_id"] != user_id: return ng_tool.make_result(-4) self.cache_dress_transfer(dress_id, new_user_id) ng_db.instance().dress_modify(dress_id, {"user_id" : new_user_id}) return ng_tool.make_result(0)
def auction_user_view(self, user_id, page): page = int(page) auctions = [] if not user_id in self._user_auction: return ng_tool.make_result(0, { "page_num": 0, "auctions": auctions }) total_num = len(self._user_auction[user_id]) page_num = int((total_num + config.page_size - 1) / config.page_size) for i in range((page - 1) * config.page_size, page * config.page_size): if i >= 0 and i < total_num: auction_id = self._user_auction[user_id][i] auctions.append(self._auction_info[auction_id]) return ng_tool.make_result(0, { "page_num": page_num, "auctions": auctions })
def auction_follow(self, user_id, auction_id, follow): if not auction_id in self._auction_info: return ng_tool.make_result(-1) auction = self._auction_info[auction_id] user = ng_db.instance().user_get(user_id) if user == None: return ng_tool.make_result(-2) has_followed = self.cache_follow_has(user_id, auction_id) if not has_followed and follow == "1": auction["follow"] = auction["follow"] + 1 ng_db.instance().acution_modify(auction_id, {"follow": auction["follow"]}) self.cache_follow_add(user_id, auction_id) ng_db.instance().follow_create(user_id, auction_id) elif has_followed and follow == "0": auction["follow"] = auction["follow"] - 1 ng_db.instance().acution_modify(auction_id, {"follow": auction["follow"]}) self.cache_follow_del(user_id, auction_id) ng_db.instance().follow_delete(user_id, auction_id) return ng_tool.make_result(0)
def auction_start(self, user_id, dress_id, bp, ep, duration): bp = int(bp) ep = int(ep) duration = int(duration) dress = ng_dress.instance().cache_dress_get(dress_id) if dress == None or dress["user_id"] != user_id: return ng_tool.make_result(-1) user = ng_db.instance().user_get(user_id) if user == None: return ng_tool.make_result(-2) if bp < 0 or ep < 0 or bp < ep: return ng_tool.make_result(-3) if ep < self.TX_MIN_FEE: return ng_tool.make_result(-3) auction = ng_db.instance().auction_create(dress_id, dress["dress_type"], user_id, user["name"], bp, ep, duration) self.cache_auction_add(user_id, auction) ng_dress.instance().dress_transfer_app(dress_id, "admin") return ng_tool.make_result(0)
def auction_list(self, user_id, page, sort): page = int(page) sort = int(sort) if sort < 0 or sort >= 4: return ng_tool.make_result(-1) auctions = [] ast = self._auction_sorts[sort] total_num = len(ast) page_num = int((total_num + config.page_size - 1) / config.page_size) for i in range((page - 1) * config.page_size, page * config.page_size): if i >= 0 and i < total_num: auction_id = ast[i][1] if auction_id in self._auction_info: auctions.append(self._auction_info[auction_id]) if self.cache_follow_has(user_id, auction_id): auctions[len(auctions) - 1]["is_follow"] = 1 else: auctions[len(auctions) - 1]["is_follow"] = 0 return ng_tool.make_result(0, { "page_num": page_num, "total_num": total_num, "auctions": auctions })
def mine_view(self, user_id): data = {} data["mine_player_num"] = len(self._mine_list) if not user_id in self._mine_list: data["is_mine"] = 0 data["num"] = 0 data["start_time"] = 0 else: data["is_mine"] = 1 data["num"] = self._mine_list[user_id]['num'] data["start_time"] = self._mine_list[user_id]['start_time'] num = 0 if user_id in self._last_list: num = self._last_list[user_id] data["last_num"] = num return ng_tool.make_result(0, data)
def dress_create(self, user_id, dress_type): dress = ng_db.instance().dress_create(user_id, dress_type) self.cache_dress_add(user_id, dress) return ng_tool.make_result(0, dress)
def end_ex(self, res, param=None): res = ng_tool.make_result(res, param) print(res) self.write(res) self.finish()
def dress_view(self, dress_id): if not dress_id in self._dress_info: return ng_tool.make_result(-1) return ng_tool.make_result(0, self._dress_info[dress_id])
def dress_modify(self, dress_id, dress_type): if not dress_id in self._dress_info: return ng_tool.make_result(-1) self._dress_info[dress_id]["dress_type"] = dress_type ng_db.instance().dress_modify(dress_id, {"dress_type" : dress_type}) return ng_tool.make_result(0)
def modify_data(self, user_id, param): param = json.loads(param) ng_db.instance().user_modify_data(user_id, param) return ng_tool.make_result(0)
def view_data(self, user_id): user_data = ng_db.instance().user_get_data(user_id) if user_data == None: return ng_tool.make_result(-1) return ng_tool.make_result(0, user_data)
def view(self, user_id): user = ng_db.instance().user_get(user_id) if user == None: return ng_tool.make_result(-1) return ng_tool.make_result(0, user)
def auction_view(self, auction_id): if not auction_id in self._auction_info: return ng_tool.make_result(-1) return ng_tool.make_result(0, self._auction_info[auction_id])