Пример #1
0
    def post(self, *args, **kwargs):
        """
        执行修改微博产品
        :param args:
        :param kwargs:
        :return:
        """
        try:
            product_id = self.get_args("product_id", "")
            if is_empty(product_id):
                self.send_fail_json("产品id不能为空")
                return

            # 产品名
            name = self.get_args("name")
            if is_empty(name):
                # 产品名不能为空
                self.send_fail_json("产品名不能为空")
                return

            # 产品类型
            types = self.get_args("types")
            if is_empty(types):
                # 产品名不能为空
                self.send_fail_json("类型不能为空")
                return

            # 产品单价
            price = self.get_args("price")
            if is_empty(price):
                # 产品单价不能为空
                self.send_fail_json("单价不能为空")
                return

            data = dict(
                types=types,
                price=price,
                update_time=datetime.now(),
            )

            # 备注
            comments = self.get_args("comments")
            if comments:
                data["comments"] = comments

            res = Product().update(where={"id": product_id}, data=data)
            if not res:
                self.send_fail_json("修改失败")
                return

            write_log("'{}'修改了一个微博产品(ID为:{})".format(self.user["id"], product_id), LOG_TYPE_OPERATE)
            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name,
                repr(ex)
            ))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #2
0
    def post(self, *args, **kwargs):
        """
        执行添加菜单
        :param args:
        :param kwargs:
        :return:
        """
        try:
            # 权限
            power_id = self.get_args("power_id")
            if is_empty(power_id):
                # 权限不能为空
                self.send_fail_json("权限不能为空")
                return

            # 菜单名
            menu_name = self.get_args("menu_name", "")
            if is_empty(menu_name):
                # 菜单名不能为空
                self.send_fail_json("菜单名不能为空")
                return

            # url
            url = self.get_args("url", default=None, data_type=None)
            # 父级id
            fid = self.get_args("fid", default=0, data_type=int)
            # 排序
            sort = self.get_args("sort", default=0, data_type=int)

            data = dict(
                url=url,
                power_id=power_id,
                name=menu_name,
                create_time=datetime.now(),
                fid=fid,
                sort=sort,
            )

            # 图标
            icon = self.get_args("icon", "")
            if icon:
                data["icon"] = icon

            res = Menu().add(data=data)
            if not res:
                self.send_fail_json("添加失败")
                return

            write_log("'{}'添加了一个菜单(名称为:{})".format(self.user["id"], menu_name),
                      LOG_TYPE_OPERATE)
            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name, repr(ex)))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #3
0
    def post(self, *args, **kwargs):
        """
        执行添加微博产品
        :param args:
        :param kwargs:
        :return:
        """
        try:
            # 产品类型
            types = self.get_args("types")
            if is_empty(types):
                # 产品类型不能为空
                self.send_fail_json("产品类型不能为空")
                return

            # 产品名
            product_name = self.get_args("name")
            if is_empty(product_name):
                # 产品名不能为空
                self.send_fail_json("产品名不能为空")
                return

            # 产品单价
            price = self.get_args("price")
            if is_empty(price):
                # 产品单价不能为空
                self.send_fail_json("单价不能为空")
                return

            data = dict(
                source=PRODUCT_SOURCE["weibo"],
                types=types,
                name=product_name,
                price=price,
                create_time=datetime.now(),
            )

            # 备注
            comments = self.get_args("comments")
            if comments:
                data["comments"] = comments

            res = Product().add(data=data)
            if not res:
                self.send_fail_json("添加失败")
                return

            write_log("'{}'添加了一个微博产品(product_name为:{})".format(self.user["id"], product_name), LOG_TYPE_OPERATE)
            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name,
                repr(ex)
            ))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #4
0
    def post(self, *args, **kwargs):
        """
        执行修改微博账号
        :param args:
        :param kwargs:
        :return:
        """
        try:
            account_id = self.get_args("account_id", "")
            if is_empty(account_id):
                self.send_fail_json("账号id不能为空")
                return

            # 用户名
            username = self.get_args("username")
            if is_empty(username):
                # 用户名不能为空
                self.send_fail_json("用户名不能为空")
                return

            # 登录密码
            pwd = self.get_args("pwd", "")
            if is_empty(pwd):
                # 密码不能为空
                self.send_fail_json("密码不能为空")
                return
            pwd = aes_encrypt(pwd)

            data = dict(
                username=username,
                pwd=pwd,
                update_time=datetime.now(),
            )

            # 备注
            comments = self.get_args("comments")
            if comments:
                data["comments"] = comments

            res = WeiboUser().update(where={"id": account_id}, data=data)
            if not res:
                self.send_fail_json("修改失败")
                return

            write_log("'{}'修改了一个微博账号(ID为:{})".format(self.user["id"], account_id), LOG_TYPE_OPERATE)
            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name,
                repr(ex)
            ))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #5
0
    def post(self, *args, **kwargs):
        """
        执行充值
        :param args:
        :param kwargs:
        :return:
        """
        try:
            user_id = self.get_args("user_id", "")
            if is_empty(user_id):
                self.send_fail_json("用户id不能为空")
                return

            # 充值数量
            charge_num = self.get_args("charge_num")
            if is_empty(charge_num):
                # 充值数量不能为空
                self.send_fail_json("充值数量不能为空")
                return
            charge_num = Decimal(charge_num)

            # 查询支付账户余额是否满足此次充值
            payment_account = SysUser().get_one8id(settings.PaymentAccount)
            if payment_account.balance - charge_num < 0:
                # 支付账户余额不足
                self.send_fail_json("支付账户余额不足")
                return

            # 用户充值
            res = db_engine.transaction(dbengine_transaction,
                                        func=user_charge,
                                        user_id=user_id,
                                        charge_num=charge_num)
            if not res:
                self.send_fail_json("充值失败")
                return

            write_log(
                "'{}'给用户(ID为:{})充值了{} {}".format(
                    self.user["id"],
                    user_id,
                    charge_num,
                    settings.COIN_NAME,
                ), LOG_TYPE_OPERATE)
            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name, repr(ex)))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #6
0
    def post(self, *args, **kwargs):
        """
        执行修改角色
        :param args:
        :param kwargs:
        :return:
        """
        try:
            role_id = self.get_args("role_id")
            if is_empty(role_id):
                # role_id不能为空不能为空
                self.send_fail_json("role_id不能为空")
                return

            name = self.get_args("name")
            if is_empty(name):
                # 角色名称不能为空
                self.send_fail_json("角色名称不能为空")
                return

            types = self.get_args("types")
            if is_empty(types):
                # 角色类型不能为空
                self.send_fail_json("角色类型不能为空")
                return

            data = dict(
                name=name,
                types=types,
                update_time=datetime.now(),
            )
            comments = self.get_args("comments")
            if comments:
                data["comments"] = comments

            res = Role().update(where={"id": role_id}, data=data)
            if not res:
                self.send_fail_json("更新失败")
                return

            write_log("'{}'修改了一个角色,角色名称为:{}".format(self.user["id"], name),
                      LOG_TYPE_OPERATE)
            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name, repr(ex)))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #7
0
    def post(self, *args, **kwargs):
        """
        执行权限修改
        :param args:
        :param kwargs:
        :return:
        """
        try:
            power_id = self.get_args("id")
            if is_empty(power_id):
                # power_id不能为空
                self.send_fail_json("id不能为空")
                return

            mark = self.get_args("mark")
            if is_empty(mark):
                # 标识不能为空
                self.send_fail_json("标识不能为空")
                return

            name = self.get_args("name")
            if is_empty(name):
                # 名称不能为空
                self.send_fail_json("名称不能为空")
                return

            data = dict(
                mark=mark.upper(),
                name=name,
                update_time=datetime.now(),
            )
            comments = self.get_args("comments")
            if comments:
                data["comments"] = comments

            res = Power().update(where={"id": power_id}, data=data)
            if not res:
                self.send_fail_json("更新失败")
                return

            write_log("'{}'修改了一个权限(ID为:{})".format(self.user["id"], power_id),
                      LOG_TYPE_OPERATE)
            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name, repr(ex)))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #8
0
    def post(self, *args, **kwargs):
        try:
            role_model = Role()
            power_ids = self.get_args("power_ids")
            role_id = self.get_args("role_id")
            if is_empty(role_id):
                self.send_fail_json(reason="role_id不能为空")
                return

            # 更新角色权限
            up_res = role_model.update(where={"id": role_id},
                                       data={"power_ids": power_ids})
            if not up_res:
                # 更新失败
                self.send_fail_json(reason="更新失败")
                return

            write_log("'{}'修改了角色(ID为:{})权限".format(self.user["id"], role_id),
                      LOG_TYPE_OPERATE)
            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name, repr(ex)))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #9
0
    def post(self, *args, **kwargs):
        try:

            if not self.user:
                # 缓存为空,跳转到登录页
                self.redirect("/login/")
                return

            user = SysUser().get_one8id(self.user["id"])

            # todo 收款成功,则修改用户余额
            # pass

            charge_num = self.get_args("charge_num")
            if is_empty(charge_num):
                self.send_fail_json("充值金额不能为空")
                return
            user_balance = Decimal(user.balance) + Decimal(charge_num)

            with db_engine.connect() as conn:
                tran = conn.begin()
                try:
                    # 更新用户数据表
                    res = SysUser().update({"id": user.id},
                                           {"balance": user_balance})
                    if not res:
                        tran.rollback()
                        self.send_fail_json("充值失败")
                        return

                    # 掺入用户充值记录
                    res = SysUserChargeLog().add({
                        "user_id": user.id,
                        "amount": charge_num,
                        "comments": "用户充值",
                        "create_time": datetime.now(),
                    })
                    if not res:
                        tran.rollback()
                        self.send_fail_json("充值失败")
                        return

                    # 提交事务
                    tran.commit()
                except Exception as ex:
                    tran.rollback()
                    write_log("{}.{} raise exception, ex={}".format(
                        self.__class__.__name__,
                        sys._getframe().f_code.co_name, repr(ex)))
                    self.send_fail_json("充值失败,稍会儿再试")

            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name, repr(ex)))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #10
0
    def get(self, *args, **kwargs):
        """
        加载充值表单页
        :param args:
        :param kwargs:
        :return:
        """
        # 获取用户
        user_id = self.get_args("id", "")
        if is_empty(user_id):
            self.send_fail_json("用户id不能为空")
            return

        self.render("system/user-charge.html",
                    user_id=user_id,
                    coin_name=settings.COIN_NAME)
Пример #11
0
    def get(self, *args, **kwargs):
        """
        加载修改权限修改表单页
        :param args:
        :param kwargs:
        :return:
        """
        power_id = self.get_args("id")
        if is_empty(power_id):
            self.send_fail_html(reason="id不能为空")
            return

        power = Power().get_one(where={"id": power_id})
        if not power:
            self.send_fail_html(reason="加载失败")
            return
        self.render("system/power-add.html", one=power)
Пример #12
0
 def get(self, *args, **kwargs):
     """
     加载修改菜单表单页
     :param args:
     :param kwargs:
     :return:
     """
     menu_id = self.get_args("id", 0)
     if is_empty(menu_id):
         self.send_fail_html("参数错误")
         return
     one = Menu().get_one8id(menu_id)
     powers = Power().get_all()
     fathers = Menu().get_some({"fid": 0})
     self.render("system/menu-add.html",
                 one=one,
                 powers=powers,
                 fathers=fathers)
Пример #13
0
    def get(self, *args, **kwargs):
        """
        加载修改微博产品表单页
        :param args:
        :param kwargs:
        :return:
        """
        # 获取用户
        product_id = self.get_args("id", "")
        if is_empty(product_id):
            self.send_fail_json("用户id不能为空")
            return
        product = Product().get_one8id(product_id)
        if not product:
            self.send_fail_json("查无产品")
            return

        self.render("weibo/product-add.html", one=product, types=PRODUCT_WEIBO_TYPES_LABELS)
Пример #14
0
    def get(self, *args, **kwargs):
        """
        加载修改角色表单页
        :param args:
        :param kwargs:
        :return:
        """
        role_id = self.get_args("id")
        if is_empty(role_id):
            self.send_fail_html(reason="role_id不能为空")
            return

        role = Role().get_one8id(role_id)
        if not role:
            self.send_fail_html(reason="加载失败")
            return
        self.render("system/role-add.html",
                    one=role,
                    role_types=ROLE_TYPE_LABELS)
Пример #15
0
    def get(self, *args, **kwargs):
        role_model = Role()
        power_model = Power()
        role_no_power = list()
        role_power = list()

        role_id = self.get_args("id")
        if is_empty(role_id):
            self.send_fail_html(reason="role_id不能为空")
            return

        # 获取角色所拥有的权限id列表
        role = role_model.get_one8id(role_id)
        if role and role.types == ROLE_TYPE_SP_ADMIN:
            # 是超管,无法为其分配权限
            self.render("system/role-power.html",
                        role_no_power=role_no_power,
                        role_power=role_power,
                        role=role,
                        sp_admin=ROLE_TYPE_SP_ADMIN)
            return
        if not role.power_ids:
            role_power_ids = []
        else:
            role_power_ids = role.power_ids.split(",")

        # 获取所有权限
        powers = power_model.get_all()
        if not powers:
            # 无数据
            self.send_fail_html("无权限")

        for item in powers:
            if str(item.id) in role_power_ids:
                role_power.append(item)
            else:
                role_no_power.append(item)
        self.render("system/role-power.html",
                    role_no_power=role_no_power,
                    role_power=role_power,
                    role=role,
                    sp_admin=ROLE_TYPE_SP_ADMIN)
Пример #16
0
    def get(self, *args, **kwargs):
        """
        加载修改微博账号表单页
        :param args:
        :param kwargs:
        :return:
        """
        # 获取用户
        account_id = self.get_args("id", "")
        if is_empty(account_id):
            self.send_fail_json("用户id不能为空")
            return
        user = WeiboUser().get_one8id(account_id)
        if not user:
            self.send_fail_json("查无用户")
            return
        user = self.tran_rowproxy2variable(user)
        user.pwd = aes_decrypt(user.pwd)

        self.render("weibo/account-add.html", one=user)
Пример #17
0
    def get(self, *args, **kwargs):
        """
        加载修改用户表单页
        :param args:
        :param kwargs:
        :return:
        """
        # 获取用户
        user_id = self.get_args("id", "")
        if is_empty(user_id):
            self.send_fail_json("用户id不能为空")
            return
        user = SysUser().get_one8id(user_id)

        # 获取角色
        roles = Role().get_all()

        self.render("system/user-add.html",
                    one=user,
                    roles=roles,
                    user_init_pwd=settings.PLATFORM_USER_INITIAL_PWD)
Пример #18
0
    def post(self, *args, **kwargs):
        try:
            # 产品id
            product_id = self.get_args("product_id")
            if is_empty(product_id):
                self.send_fail_json("产品id不能为空")
                return

            product = Product().get_one8id(product_id)

            # 微博地址
            weibo_url = self.get_args("weibo_url")
            res = re.match(r'^https://weibo\.com/\S*', weibo_url)
            if res is None:
                self.send_fail_json("微博地址不正确")
                return

            # 产品数量
            product_numbers = self.get_args("amount")
            res = re.match(r'^\d+$', str(product_numbers))
            if res is None:
                self.send_fail_json("数量必须为整数")
                return
            # 数量处理,乘以精度
            product_numbers = int(product_numbers) * settings.PRODUCT_BUY_PRECISION

            data = dict(
                user_id=self.user["id"],
                product_id=product_id,
                product_name=product.name,
                product_types=self.product_types,
                product_price=product.price,
                product_numbers=product_numbers,
                weibo_url=weibo_url,
            )

            if product.types == PRODUCT_TYPES_WEIBO_COMMENT_LIKE:
                # 如果是微博评论赞,则必须要一个评论id
                comment_id = self.get_args("comment_id", "")
                if not comment_id:
                    self.send_fail_json("评论id不能为空")
                    return
                data.update(comment_id=comment_id)

            # 备注
            comments = self.get_args("comments")
            if not is_empty(comments):
                data.update(comments=comments)

            # 查看用户账户余额是否足够支撑本次订单
            user = SysUser().get_one8id(self.user["id"])
            if (user.balance - product_numbers * product.price) < 0:
                self.send_fail_json("创建订单失败,账户余额不足")
                return

            # 创建订单
            res = db_engine.transaction(
                dbengine_transaction,
                func=create_orders,
                user=user,
                order_data=data)
            if not res:
                self.send_fail_json("创建订单失败")
                return

            write_log("'{}'添加了一个订单(product_id:{},产品名为:{},数量为:{},单价为:{})".format(
                user["id"], product_id, product.name, product_numbers, product.price),
                LOG_TYPE_OPERATE)
            self.send_ok_json("创建订单成功,可去\"个人中心->我的订单\"中查看")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name,
                repr(ex)
            ))
            self.send_fail_json("系统错误,稍会儿再试")
Пример #19
0
    def post(self, *args, **kwargs):
        """
        执行修改用户
        :param args:
        :param kwargs:
        :return:
        """
        try:
            user_id = self.get_args("user_id", "")
            if is_empty(user_id):
                self.send_fail_json("用户id不能为空")
                return

            # 用户角色
            role_id = self.get_args("role_id")
            if is_empty(role_id):
                # 角色不能为空
                self.send_fail_json("角色不能为空")
                return

            # 用户名
            name = self.get_args("name")
            if is_empty(name):
                # 用户名不能为空
                self.send_fail_json("用户名不能为空")
                return

            # 登录密码
            pwd = self.md5_password(
                self.get_args("pwd", "") if self.
                get_args("pwd", "") else settings.PLATFORM_USER_INITIAL_PWD)

            # 是否启用
            enable = self.get_args("enable", "0")

            data = dict(
                role_id=role_id,
                name=name.lower(),
                pwd=pwd,
                enable=enable,
                update_time=datetime.now(),
            )

            # 父级id
            fid = self.get_args("fid", "")
            if fid:
                data["fid"] = fid

            # 备注
            comments = self.get_args("comments")
            if comments:
                data["comments"] = comments

            res = SysUser().update(where={"id": user_id}, data=data)
            if not res:
                self.send_fail_json("更新失败")
                return

            write_log("'{}'修改了一个用户(ID为:{})".format(self.user["id"], user_id),
                      LOG_TYPE_OPERATE)
            self.send_ok_json("")
        except Exception as ex:
            write_log("{}.{} raise exception, ex={}".format(
                self.__class__.__name__,
                sys._getframe().f_code.co_name, repr(ex)))
            self.send_fail_json("系统错误,稍会儿再试")