Пример #1
0
 def post(self):
     try:
         data = json.loads(self.request.body)
         if not data:
             em = "ValueError: no data found"
             self.write({"code": 1, "message": em})
         # add user
         data["user_id"] = data.get("user_id")
         users_api.add_user(data)
         ret = orders_api.add_order(data)
         if ret.get("code") != 0:
             self.set_status(500)
             self.write(ret)
         else:
             self.write(ret)
     except Exception as e:
         self.set_status(500)
         self.write({"code": 1, "message": "添加订单失败. {0}".format(e)})
 def post(self):
     try:
         data = json.loads(self.request.body)
         if not data:
             em = "ValueError: no data found"
             self.write({"code": 1, "message": em})
             return
         # add user
         data["user_id"] = data.get("user_id")
         users_api.add_user(data)
         ret = TencentOrders.add_order(data=data)
         if ret.get("code") != 0:
             self.set_status(500)
             self.write(ret)
         else:
             self.write(ret)
     except ValueError:
         self.set_status(500)
Пример #3
0
    def get(self):
        out_trade_no = AliPayPlugins.generate_out_trade_no()
        user_name = self.context.get("user").get("user").get("name")
        user_id = self.context.get("user_id")
        project_id = self.context.get("tenant_id")
        subject = self.get_argument("subject", '')
        body = self.get_argument("body", '')
        total_fee = self.get_argument("total_fee", '')

        data = {
            "user_id": user_id,
            "_context_user_name": user_name,
            "tenant_id": project_id
        }
        # add user
        users_api.add_user(data)
        # total_fee can not `None`
        if not total_fee or float(total_fee) <= 0:
            em = "`total_fee` can not None or le 0"
            self.write({"error": [{"code": 400, "msg": "{0}".format(em)}]})
        # recorde recharge
        ret = users_api.add_user_recharge(user_id,
                                          user_name,
                                          total_fee,
                                          out_trade_no,
                                          trade_status="failed",
                                          recharge_way="Alipay")
        if ret == 0:
            self.json_response(0, result=ret)
        elif ret.get("error"):
            self.json_response(0, result=ret)
        else:
            ret = AliPayPlugins.create_direct_pay_by_user(
                out_trade_no, subject, body, total_fee)
            status = "sucess"
            if not ret:
                status = "failed"
            LOG.debug(
                "user: <{0}> request alipay url. out_trade_no: <{1}>  url: <{2}>. status: <{3}>"
                .format(user_id, out_trade_no, ret, status))
            self.json_response(0, result=ret)
Пример #4
0
 def use_discount(id, user_context):
     try:
         now_time = int(time.time())
         # check discount id is it exsit
         discount = Discount.query.filter(
             Discount.discount_id == id).first()
         if not discount:
             em = "can not found discount id. id: <0>".format(id)
             LOG.exception(em)
             return False, 410
         # check discount id is is exceed
         if discount.valid_date or discount.is_used:
             if discount.valid_date <= now_time or discount.is_used:
                 em = "discount id is not valid. id: <{0}>".format(
                     discount.discount_id)
                 LOG.exception(em)
                 return False, 400
         user_id = user_context.get("user").get("user").get("id")
         # update user's money
         user = User.query.filter(User.user_id == user_id).first()
         if not user:
             em = "can not found user. user id: <{0}>".format(user_id)
             LOG.exception(em)
             # try to add user
             data = {
                 "tenant_id":
                 user_context.get("tenant_id"),
                 "_context_project_name":
                 user_context.get("user").get("project").get("name"),
                 "user_id":
                 user_context.get("user").get("user").get("id"),
                 "_context_user_name":
                 user_context.get("user").get("user").get("id")
             }
             ret = UserOperate.add_user(data)
             if not ret.get("success"):
                 return False, 500
             user = ret.get("success")[0].get("data")
         user.money += discount.money
         # update discount tables's status
         # Discount.query.filter(Discount.discount_id == id).update({Discount.is_used: True})
         # add Recharge Log
         recharge = RechargeLog(
             uid=str(uuid.uuid1()),
             user_id=user_id,
             user_name=user_context.get("user").get("user").get("name"),
             money=discount.money,
             log_time=int(time.time()),
             out_trade_no=discount.discount_id,
             trade_status="success",
             recharge_way="discount_id")
         db_session.add(recharge)
         db_session.flush()
         # update discount id
         Discount.query.filter(Discount.discount_id == id).update({
             Discount.is_used:
             True,
             Discount.used_time:
             now_time
         })
         db_session.commit()
         LOG.debug("discount id used by user id: <{0}>")
         # update user's exceed time
         ExprOrders.sync_user_exceed_time(user_id=user_id)
         return True, 200
     except Exception as e:
         db_session.rollback()
         em = "use discount id error. id: <{0}> user id<{1}>".format(
             id, user_id)
         LOG.exception(em)
         return False, 500