示例#1
0
 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)
示例#2
0
文件: ng_mine.py 项目: isoundy000/vr
 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)
示例#3
0
文件: ng_user.py 项目: isoundy000/vr
 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)
示例#4
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)
示例#5
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})
示例#6
0
 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)
示例#7
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
     })
示例#8
0
 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)
示例#9
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)
示例#10
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
     })
示例#11
0
文件: ng_mine.py 项目: isoundy000/vr
 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)
示例#12
0
 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)
示例#13
0
 def end_ex(self, res, param=None):
     res = ng_tool.make_result(res, param)
     print(res)
     self.write(res)
     self.finish()
示例#14
0
 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])
示例#15
0
 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)
示例#16
0
文件: ng_user.py 项目: isoundy000/vr
 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)
示例#17
0
文件: ng_user.py 项目: isoundy000/vr
 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)
示例#18
0
文件: ng_user.py 项目: isoundy000/vr
 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)
示例#19
0
 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])