예제 #1
0
파일: MyHandler.py 프로젝트: Zhong-ZJ/home
    def post(self):
        real_name = self.get_argument('real_name', '')
        id_card = self.get_argument('id_card', '')

        if not all((real_name, id_card)):
            return self.write(dict(errno=RET.PARAMERR, errmsg='确少数据'))

        user = Tenant.by_mobile(self.current_user.phone_number)
        if user.real_name and id_card:
            return self.write(dict(errno=RET.DATAEXIST, errmsg='数据已存在不能添加'))

        if not re.match(
                r'^([1-9]\d{5}[12]\d{3}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d{3}[0-9xX])$',
                id_card):
            return self.write(dict(errno=RET.ROLEERR, errmsg='用户身份错误'))

        try:
            user = Tenant.by_mobile(self.current_user.phone_number)
            user.real_name = real_name
            user.id_card = id_card
            self.db.add(user)
            self.db.commit()
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg='参数错误'))
        return self.write(dict(errcode=RET.OK, errmsg='OK'))
예제 #2
0
파일: MyHandler.py 프로젝트: Zhong-ZJ/home
 def get(self):
     T = Tenant.by_mobile(self.current_user.phone_number)
     self.render(
         "my.html",
         user_avatar=T.user_avatar,
         name=T.name,
         phone_number=self.current_user.phone_number,
     )
예제 #3
0
 def post(self):
     mobile = Tenant.by_mobile(self.get_argument('mobile', ''))
     password = self.get_argument('password','')
     print mobile,password
     if mobile and mobile.auth_password(password):
         try:
             self.session.set('user',mobile.phone_number)
         except Exception as e:
             logging.error(e)
         self.redirect('/index')
     else:
         return self.write(dict(errcode=RET.DATAERR, errmsg="手机号或密码错误!"))
예제 #4
0
 def post(self):
     name = self.get_argument('name', '')
     if name in (None, ''):
         return self.write(dict(errcode=RET.PARAMERR, errmsq='参数错误'))
     try:
         user = Tenant.by_mobile(self.current_user.phone_number)
         user.name = name
         self.db.add(user)
         self.db.commit()
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR, errmsg='参数错误'))
     return self.write(dict(errcode=RET.OK, errmsg='OK'))
예제 #5
0
    def post(self):
        user = Tenant.by_mobile(self.current_user.phone_number)
        order_id = self.get_argument("order_id", '')
        comment = self.get_argument("comment", '')

        if not all((order_id, comment)):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))

        try:
            # 需要确保只能评论自己下的订单
            order_info = self.db.query(Order_info).filter(
                Order_info.order_id == order_id).first()
            order_info.order_message = comment
            self.db.add(order_info)
            self.db.commit()
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="数据库错误"))
        self.write(dict(errcode=RET.OK, errmsg="OK"))
예제 #6
0
 def post(self):
     try:
         image_data = self.request.files.get('avatar', '')
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.PARAMERR, errmsg="未传图片"))
     try:
         file_name = storage(image_data[0]["body"])
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.THIRDERR, errmsg="上传失败"))
     try:
         user = Tenant.by_mobile(self.current_user.phone_number)
         user.user_avatar = file_name
         self.db.add(user)
         self.db.commit()
     except Exception as e:
         logging.error(e)
         return self.write(dict(errcode=RET.DBERR, errmsg="保存错误"))
     self.write(
         dict(errcode=RET.OK,
              errmsg="保存成功",
              data="%s%s" % (constants.QINIU_URL_PREFIX, file_name)))
예제 #7
0
    def post(self):
        user = self.current_user.phone_number
        house_id = self.get_argument('house_id', '')
        start_date = self.get_argument('start_date', '')
        end_date = self.get_argument('end_date', '')
        amount = self.get_argument('amount', '')
        price = self.get_argument('price', '')

        d1 = datetime.strptime(start_date, '%Y-%m-%d')
        d2 = datetime.strptime(end_date, '%Y-%m-%d')
        days = (d2 - d1).days + 1

        if not all((house_id, start_date, end_date, amount)):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数错误"))

        user = Tenant.by_mobile(user)
        if int(house_id) in [i.hous_id for i in user.hous_info]:
            return self.write(dict(errcode=RET.PARAMERR, errmsg="自己房子不能下单"))

        try:
            order = Order_info()
            order.order_begin_date = start_date
            order.order_end_date = end_date
            order.order_cheak_days = days
            order.order_house_price = price
            order.order_amount = amount
            order.tenant_id = user.id
            order.hous_info_id = house_id
            order.order_utime = datetime.now()
            self.db.add(order)
            self.db.commit()
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR,
                                   errmsg="save data error"))
        self.write(dict(errcode=RET.OK, errmsg="OK"))
예제 #8
0
    def post(self):
        user = self.get_argument('mobile', '')          # 手机号
        phonecode = self.get_argument('phonecode', '')  # 手机验证码
        password2 = self.get_argument('password', '')   # 密码
        print user,phonecode,password2
        # 检查参数
        if not all([user, phonecode, password2]):
            return self.write(dict(errcode=RET.PARAMERR, errmsg="参数不完整"))
        # 判断手机号格式
        if not re.match(r"^1\d{10}$",user):
            return self.write(dict(errcode=RET.DATAERR, errmsg="手机号格式错误"))
        # 检查验证码获取是否成功
        try:
            real_sms_code = self.redis.get(user)
        except Exception as e:
            logging.error(e)
            return self.write(dict(errcode=RET.DBERR, errmsg="查询验证码出错"))
        # 检查验证码是否过期
        if not real_sms_code:
            return self.write(dict(errcode=RET.NODATA, errmsg="验证码过期"))
        # 检查验证码是否错误
        if real_sms_code != phonecode:
            return self.write(dict(errcode=RET.DATAERR, errmsg="验证码错误"))

        # 检查手机是否被注册
        if Tenant.by_mobile(user):
            return self.write(dict(errcode=RET.DATAEXIST, errmsg="已注册"))

        T = Tenant()
        T.phone_number = self.get_argument('mobile', '')
        T.password = self.get_argument('password', '')
        T.createtime = datetime.now()
        T.updatetime = datetime.now()
        self.db.add(T)
        self.db.commit()
        self.write(dict(errcode=RET.OK, errmsg="注册成功"))
예제 #9
0
    def post(self):
        #'''In[基本信息]'''
        house_title = self.get_argument('house_title', '')  #房屋标题
        one_night_price = int(self.get_argument('one_night_price', ''))  #每晚价格
        area_id = int(self.get_argument('area_id', ''))  #所在城区
        address = self.get_argument('address', '')  #详细地址

        #'''In[详细信息]'''
        room_count = int(self.get_argument('room_count', ''))  #出租房间数目
        aacreage = int(self.get_argument('acreage', ''))  #房屋面积
        unit = self.get_argument('unit', '')  #户型描述
        capacity = int(self.get_argument('capacity', ''))  #宜住人数
        beds = self.get_argument('beds', '')  #卧床配置
        deposit = int(self.get_argument('deposit', ''))  #押金数额
        min_days = int(self.get_argument('min_days', ''))  #最少入住天数
        max_days = int(self.get_argument('max_days', ''))  #最多入住天数
        facility = self.get_body_arguments('facility[]', '')  #配套设施
        himage = self.request.files.get('house_image', '')  #获取图片

        if not all(
            (house_title, one_night_price, area_id, address, room_count,
             aacreage, unit, capacity, beds, deposit, min_days, himage)):
            return self.write(dict(errcode=RET.DATAERR, errmsg="缺少参数"))

        if max_days == 0 and min_days < 0:
            return self.write(
                dict(errcode=RET.DATAERR, errmsg="最多入住天数等于0时,入住最少天数不应比0小"))

        if max_days > 0 and min_days > max_days:
            return self.write(
                dict(errcode=RET.DATAERR, errmsg="最多入住天数应大于最少入住天数"))

        # '''In[保存图片]'''
        try:
            T = Tenant.by_mobile(self.current_user.phone_number)
            hous_info = Hous_info()
            hous_info.tenant_id = T.id  #保存房东ID(外键)
            hous_info.name = house_title  #保存房屋名称
            hous_info.price = one_night_price  #保存每晚价格
            hous_info.hous_areaid = area_id  #保存区域ID(外键)
            hous_info.site = address  #保存地址
            hous_info.room_count = room_count  #保存房间数量
            hous_info.acreage = aacreage  #保存房屋面积
            hous_info.type = unit  #保存房屋
            hous_info.capacity = capacity  #保存户型描述
            hous_info.bed = beds  #保存床配置
            hous_info.deposit = deposit  #保存押金
            hous_info.min_days = min_days  #保存最小天数
            hous_info.max_days = max_days  #保存最大天数
            hous_info.ctime = datetime.now()  #保存创建时间

            # 房屋与配套设施中间表
            try:
                for i in facility:
                    facilitys = Facility.by_id(i)
                    hous_info.info_facility.append(facilitys)
            except Exception as e:
                logging.error(e)
                return self.write(dict(errcode=RET.PARAMERR,
                                       errmsg='配套设施参数错误'))

            try:
                file_name = storage(himage[0]['body'])
                hous_info.image_url = (constants.QINIU_URL_PREFIX + file_name
                                       )  #图片路径
            except Exception as e:
                logging.error(e)
                return self.write(dict(errcode=RET.PARAMERR, errmsg='图片保存错误'))

            self.db.add(hous_info)
            self.db.commit()
        except Exception as e:
            logging.error(e)
            return self.write(
                dict(errcode=RET.PARAMERR, errmsg='hous_info参数错误'))
        self.write(dict(errno=RET.OK, errmsg='OK'))
예제 #10
0
 def get(self):
     user = self.current_user.phone_number
     T = Tenant.by_mobile(user)
     self.render('myhouse.html', T=T)
예제 #11
0
 def get_current_user(self):
     if self.session.get('user'):
         return Tenant.by_mobile(self.session.get('user'))
     else:
         return None
예제 #12
0
 def get(self):
     user = Tenant.by_mobile(self.current_user.phone_number)
     lorders = self.db.query(Order_info).filter(
         Order_info.hous_info_id.in_([i.hous_id
                                      for i in user.hous_info])).all()
     self.render("lorders.html", lorders=lorders)
예제 #13
0
 def get(self):
     user = Tenant.by_mobile(self.current_user.phone_number)
     oders = self.db.query(Order_info).filter(
         Order_info.tenant_id == user.id).all()
     self.render("orders.html", oders=oders)