Beispiel #1
0
 def removeKey(self, data):
     """
     移除数据表中的字段
     :param data: {"filter":{},"remKeys":{}}
     :return:
     """
     query = data.get("filter", {})
     remKeys = data.get("remKeys", None)
     if not remKeys:
         return Result.false("未获取到需要移除的字段")
     self.table.update(query, remKeys, False, True)
     return Result.true("移除字段成功")
Beispiel #2
0
 def delete(self, item):
     """
     删除实例数据
     :param item:
     :return:
     """
     sid = item['_id']
     obj1 = self.table.find_one({'_id': sid})
     if obj1 is not None:
         if self.table.remove({'_id': sid}):
             return Result.true(obj1)
         return Result.false("删除数据失败")
     return Result.true(obj1)
Beispiel #3
0
    def update(self, item):
        """
        更新数据
        :param item:
        :return:
        """
        sid = item['_id']
        obj1 = self.table.find_one({'_id': sid})
        if not obj1:
            return Result("数据已经被删除,请刷新", flag=False)

        result = self.dbUtil.update(self.table, item, self._checkUniqu)
        if result.isOk():
            result = Result.true(self.table.find_one({"_id": item["_id"]}))
        return result
Beispiel #4
0
 def nolockCall(self, cb, *args, **kwargs):
     try:
         res = cb(*args, **kwargs)
     except Exception as e:
         Logger.error(e)
         return Result.false("操作失败nolockcall")
     return res
Beispiel #5
0
 def _checkUniqu(self, item):
     """
     检测数据的唯一性
     :param item:
     :return:
     """
     return Result.true("")
Beispiel #6
0
 def get(self, data):
     """
     获取所有数据
     :param data:
     :return:
     """
     return Result.true(
         [cell for cell in self.table.find(data.get("filter", {}))])
Beispiel #7
0
 def saveFile(self, file, dirPath, fileName):
     """
     保存文件
     :param file: 真实文件
     :param dirPath: 保存路径
     :param fileName: 保存后的文件名称
     :return:
     """
     if not os.path.exists(dirPath):
         os.makedirs(dirPath)
     path = os.path.join(dirPath, fileName)
     if os.path.exists(path):
         return Result.false("此文件已经存在")
     f = open(path, 'wb')
     [f.write(chunk) for chunk in file.chunks()]
     f.close()
     return Result.true(path)
Beispiel #8
0
 def lockCall(self, cb, *args, **kwargs):
     self.lock.acquire(10)
     try:
         res = cb(*args, **kwargs)
     except Exception as e:
         Logger.error(e)
         return Result.false("操作失败lockcall")
     finally:
         self.lock.release()
     return res
Beispiel #9
0
    def html(self, request, stype=''):
        data = {}
        str1 = request.GET.get('data', None) or request.POST.get('data', None)
        if str1:
            data = json.loads(str1)

        call = getattr(self, stype)
        if call is None:
            return Result.false(u"请求方法有误" + stype)
        else:
            return self.nolockCall(call, data)
Beispiel #10
0
    def insertBatch(self, datas):
        """
        批量插入数据
        :param datas:
        :return:
        """
        if isinstance(datas, dict):
            datas = datas.values()
        oks = []

        def run(item):
            result = self.insert(item)
            result.isOk() and oks.append(result.data)

        [run(item) for item in datas]
        return Result.true(oks)
Beispiel #11
0
    def getPager(self, data):
        """
        获取分页数据
        :param data: {filter:{},pageNumber:int,pageSize:int,sort}
        :return:
        """
        _filter = data.get("filter", {})
        _pageNumber = data.get("pageNumber", 1)
        _pageSize = data.get("pageSize", 50)
        _sort = []
        if "sort" in data:
            for key, value in data.get('sort').items():
                _sort.append((key, value))

        count = self.table.find(_filter).count()
        if len(_sort) > 0:
            cursor = self.table.find(_filter).limit(_pageSize).skip(
                (_pageNumber - 1) * _pageSize).sort(_sort)
        else:
            cursor = self.table.find(_filter).limit(_pageSize).skip(
                (_pageNumber - 1) * _pageSize)
        data = tuple(cursor)
        return Result.true({"rows": data, "total": count})