Beispiel #1
0
    async def post(self, *args, **kwargs):

        reqData = json.loads(self.request.body.decode('utf8'))

        # 获取redis验证信息
        rds = RedisGroup(self)
        rdsInfo = await rds.set(reqData)
        if rdsInfo:
            return self.finish(rdsInfo)

        try:
            oneRecord = await self.application.objects.get(
                Records, id=reqData["id"], onlyid=reqData["onlyid"])
            validata = oneRecord.uuidnum
        except Exception as e:
            rds.delete()
            return self.finish(rf().code(404))

        # 判断初始状态是否为确定
        if oneRecord.is_confirm:
            rds.delete()
            return self.finish(rf().set(404, "失败记录已确定"))

        # 判断初始状态是否为确定
        if oneRecord.is_freeze:
            return self.finish(rf().set(404, "其它用户已锁定"))

        # 更改锁定状态
        if reqData["is_lock"]:
            async with self.application.objects.atomic():
                result = await self.application.objects.execute(
                    Records.update(is_lock=reqData["is_lock"],
                                   uuidnum=uuid.uuid1(),
                                   lock_user=self.current_user).where(
                                       (Records.id == reqData["id"])
                                       & (Records.uuidnum == validata)
                                       & (Records.is_confirm == False)))
                if result == 0:
                    rds.delete()
                    return self.finish(rf().code(404))
            return self.finish(rf().set(202, "操作成功"))
        else:
            async with self.application.objects.atomic():
                result = await self.application.objects.execute(
                    Records.update(is_lock=reqData["is_lock"],
                                   uuidnum=uuid.uuid1(),
                                   lock_user=self.current_user).where(
                                       (Records.id == reqData["id"])
                                       & (Records.uuidnum == validata)
                                       & (Records.is_confirm == False)))
                if result == 0:
                    return self.finish(rf().code(404))
            rds.delete()
            return self.finish(rf().set(202, "操作成功"))
Beispiel #2
0
    async def post(self, *args, **kwargs):
        reqData = json.loads(self.request.body.decode('utf8'))

        # 获取redis验证信息
        rds = RedisGroup(self)
        rdsInfo = await rds.get(reqData)
        if rdsInfo:
            return self.finish(rdsInfo)

        # 先判断请求用户数据是否存在
        try:
            oneRecord = await self.application.objects.get(
                Records, id=reqData["id"], onlyid=reqData["onlyid"])
            validata = oneRecord.uuidnum
        except Exception as e:
            return self.finish(rf().code(404))

        # 判断初始状态是否为冻结,如果不是,取消操作
        if not oneRecord.is_lock:
            return self.finish(rf().code(404))

        async with self.application.objects.atomic():
            result = await self.application.objects.execute(
                Records.update(uuidnum=uuid.uuid1(),
                               lock_user=None,
                               is_confirm=True,
                               operator=self.current_user).where(
                                   (Records.id == reqData["id"])
                                   & (Records.uuidnum == validata)))
            if result == 0:
                return self.finish(rf().code(404))
        rds.delete()
        return self.finish(rf().set(202, "操作成功"))
Beispiel #3
0
    async def put(self, *args, **kwargs):
        reqData = json.loads(self.request.body.decode('utf8'))

        # 获取redis验证信息
        rds = RedisGroup(self)
        rdsInfo = await rds.get(reqData)
        if rdsInfo:
            return self.finish(rdsInfo)

        # 修改记录
        recordData = {
            m: [n] if isinstance(n, str) else [str(n)]
            for m, n in reqData.items()
        }
        valiData = RecordsForm(recordData)
        if valiData.validate():
            getRecord = await self.application.objects.get(
                Records, id=reqData["id"], onlyid=reqData["onlyid"])
            valiUuid = getRecord.uuidnum
            val = valiData.data
            _dict1 = {
                "cardclass": val["cardclass"],
                "name": val["name"],
                "account": val["account"],
                "amount": int(val["amount"]),
                "cardnum": val["cardnum"],
                "remark": reqData["remark"],
                "last_time": datetime.datetime.now()
            }
            resSql = await self.application.objects.execute(
                Records.update(**_dict1, uuidnum=uuid.uuid1()).where(
                    (Records.id == reqData["id"])
                    & (Records.onlyid == reqData["onlyid"])
                    & (Records.uuidnum == valiUuid)))
            if resSql == 0:
                return self.finish(rf().code(404))
            return self.finish(rf().code(202))
        else:
            resData = rf().set(404, "更新失败")
            resData["msg"] = valiData.errors