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)
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)
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