醫(yī)生健康報(bào)告

# -*- coding: utf-8 -*-
from __future__ import absolute_import
import time
import datetime
import calendar

from comm.db import db
from bson import ObjectId


def get_time():
    year = datetime.date.today().year
    month = datetime.date.today().month
    firstDayWeekDay, monthRange = calendar.monthrange(year, month)
    start = str(datetime.date(year= year, month=month, day=1))
    end = str(datetime.date(year=year, month=month, day=monthRange))
    return time.mktime(time.strptime(str(start),'%Y-%m-%d')), \
           time.mktime(time.strptime(str(end),'%Y-%m-%d')), start[0:7]


def format_aggregate_result_date(data):
    """
    時(shí)間處理
    """
    num = len(data)
    if num == 4:
        return '%04d-%02d-%02d %02d' % (data['y'], data['m'], data['d'], data['h'])
    elif num == 3:
        return '%04d-%02d-%02d' % (data['y'], data['m'], data['d'])
    elif num == 2:
        return '%04d-%02d' % (data['y'], data['m'])
    else:
        return str(data['y'])


def mktime_to_hms(t):
    """
    將時(shí)間戳取出'HH:MM:SS'
    """
    t = time.strftime('%H:%M', time.localtime(t))
    return t


era = datetime.datetime(1970, 1, 1)


class HeartReport(object):
    def __init__(self, watch_id):
        self.watch_id = watch_id
        self.start, self.end, self.rpt_date=get_time()
        self.heart_rate_data = []

    def get_heart_rate(self):
        query = {'watch_id': self.watch_id, 'maketime': {'$gte': self.start, '$lte':self.end}}
        cursor = db.heart_rate.aggregate([
            {'$match': query},
            {'$group': {
                '_id': '$bpm',
                'count': {'$sum': 1}
            }}
        ])

        for c in cursor:
            c['bpm'] = c['_id']
            del c['_id']
            self.heart_rate_data.append(c)

    def risk_evaluation(self):
        for i in self.heart_rate_data:
            print i
            if i['bpm'] > 90:
                print i['count']


class SportReport(object):
    def __init__(self, watch_id):
        self.start, self.end, self.rpt_date = get_time()
        self.data = {}
        self.watch_id = watch_id
        self.sport_total = 0
        self.sport_advise = ''

    def create_report(self):
        self.get_total_data()
        self.get_step_data()
        self.get_sport_type_data()
        self.risk_evaluation()
        self.run_advise()
        self.save_to_mongo()

    def get_total_data(self):
        """
        獲取step和 calorie總數(shù)
        """
        query = {'watch_id': self.watch_id,
                 'maketime': {'$gte': self.start, '$lte': self.end}}
        total = db.step.find(query)
        step_total = 0
        calorie_total = 0
        for c in total:
            step_total += c.get('step', 0)
            calorie_total += c.get('calorie', 0)
        self.data = {'step': step_total, 'calorie': calorie_total}

    def get_step_data(self):
        """
        獲取step圖表數(shù)據(jù)(日期:步數(shù))
        """
        query = {'watch_id': self.watch_id,
                 'maketime': {'$gte': self.start, '$lte': self.end}}
        # date_mode = '%Y-%m-%d'
        date_group_mode = {'y': {'$year': '$time'}, 'm': {'$month': '$time'}, 'd': {'$dayOfMonth': '$time'}}
        cursor = db.step.aggregate([
            {'$match': query},
            {'$project': {
                'time': {'$add': [{'$multiply': [1000, {'$add': ['$maketime', 28800]}]}, era]},
                'n': '$step',
            }},
            {'$group': {
                '_id': date_group_mode,
                'n': {'$sum': '$n'},
            }}
        ])
        result_step = []
        for data in cursor:
            result_step.append({
                'date': format_aggregate_result_date(data['_id']),
                'step': data['n'],
            })
        self.data['step_data'] = result_step

    def get_sport_type_data(self):
        """
        獲取各種運(yùn)動(dòng)類型運(yùn)動(dòng) 次數(shù)/時(shí)長/卡路里消耗
        """
        start = time.strftime('%Y-%m',time.localtime(self.start))
        end = time.strftime('%Y-%m',time.localtime(self.end))
        query = {'watch_id': self.watch_id, 'date': {'$gte': start, '$lte': end}}
        cursor = db.exercise_log.find(query)
        sport_num_dic = {}
        result = []
        for i in cursor:
            if sport_num_dic.has_key(i['type']):
                sport_num_dic[i['type']][0] += 1
                sport_num_dic[i['type']][1] += int(i.get('long', 0))
                sport_num_dic[i['type']][2] += int(i.get('calorie', 0))
                continue
            sport_num_dic.setdefault(i['type'], [1, int(i.get('long', 0)), int(i.get('calorie', 0))])
        sport_calorie = 0
        for k, v in sport_num_dic.items():
            r = {}
            i = v
            r['sport_num'] = i.pop(0)
            r['sport_time_long'] = i.pop(0)
            r['calorie'] = i.pop(0)
            r['sport_type'] = k
            sport_calorie += r['calorie']
            result.append(r)
            self.sport_total += 1
        self.data['sport_type_data'] = result
        self.data['sport_type_calorie'] = sport_calorie

    def risk_evaluation(self):
        if self.data['step'] - 280000 > 20000:
            sport_status = '運(yùn)動(dòng)過量'
        elif 260000 < self.data['step'] <= 299999:
            sport_status = '運(yùn)動(dòng)量適中'
        else:
            sport_status = '運(yùn)動(dòng)量較少'
        self.sport_advise = sport_status
        self.data['sport_analysis'] = {
            'sport_status': sport_status,
            'month_step': self.data['step'],
            'sport_num': self.sport_total,
            'month_calorie': self.data['sport_type_calorie']
        }

    def run_advise(self):
        if self.sport_advise == '運(yùn)動(dòng)過量':
            advise = '您本月運(yùn)動(dòng)過量逻杖,過度鍛煉會(huì)對身體造成損傷,特別是每天的運(yùn)動(dòng)時(shí)間超過90分鐘将塑,會(huì)傷害肌腱书聚、韌帶佩迟、骨頭酬诀、 \
                     關(guān)節(jié)和肌肉磺芭,而且受傷之后痊愈的幾率很小有梆。建議您每周堅(jiān)持運(yùn)動(dòng)3~5次是尖,每次運(yùn)動(dòng)30分鐘為最佳'
        elif self.sport_advise == '運(yùn)動(dòng)量適中':
            advise = '您本月運(yùn)動(dòng)量適中,適當(dāng)?shù)腻憻捒梢詮?qiáng)身健體泥耀。'
        else:
            advise = '您本月運(yùn)動(dòng)量較少饺汹,請加油鍛煉。'
        self.data['run_advise'] = advise

    def save_to_mongo(self):
        db.doctor_rpt_sport.insert({
            'date': self.rpt_date,
            'step_info': self.data['step_data'],
            'step_total': self.data['step'],
            'step_calorie_total': self.data['calorie'],
            'sport_type_info': self.data['sport_type_data'],
            'sport_calorie_total': self.data['sport_type_calorie'],
            'sport_analysis': self.data['sport_analysis'],
            'run_advise': self.data['run_advise']
        })


class SleepReport(object):
    def __init__(self, watch_id):
        self.start, self.end, self.rpt_date = get_time()
        self.watch_id = watch_id
        self.data = {}

    def create_sleep_rpt(self):
        self.get_sleep_month_info()
        self.get_sleep_daily_info()
        self.sleep_advise()
        self.sleep_status()
        self.sleep_analysis()
        self.save_to_mongo()

    def get_sleep_month_info(self):
        """
        獲取睡眠月視圖,以及每晚平均睡眠時(shí)間
        """
        query = {'watch_id': self.watch_id, 'maketime': {'$gte': self.start, '$lte': self.end}}
        date_group_mode = {'y': {'$year': '$time'}, 'm': {'$month': '$time'}, 'd': {'$dayOfMonth': '$time'}}
        cursor = db.sleep.aggregate([
            {'$match': query},
            {'$project': {
                'time': {'$add': [{'$multiply': [1000, {'$add': ['$maketime', 28800]}]}, era]},
                'n': '$duration',
            }},
            {'$group': {
                '_id': date_group_mode,
                'n': {'$sum': '$n'},
            }}
        ])
        result = []
        avg_sleep_time = 0
        day = 0
        for data in cursor:
            avg_sleep_time +=data['n']
            result.append({
                'date': format_aggregate_result_date(data['_id']),
                'curation': data['n'],
            })
            day += 1
        self.data['sleep_analysis']['avg_sleep_time'] = float(avg_sleep_time) /day
        self.data['month_info'] = result

    def get_sleep_daily_info(self):
        """
        睡眠日視圖
        """
        query = {'watch_id': self.watch_id, 'maketime': {'$gte': self.start, '$lte': self.end}}
        cursor = db.sleep.find(query)
        result = []
        for data in cursor:
            result.append({
                'date': data['maketime'],
                'quiet_percent': int(data['duration'] * float((data['quiet_percent']))//100),
                'heart_percent': int(data['duration'] * float((data['heart_percent']))//100),
                'start_time': data['start_time'],
                'end_time': data['end_time']
            })
        self.data['daily_info'] = result

    def sleep_analysis(self):
        """
        睡眠分析: 一般入睡時(shí)間,一般起床時(shí)間,每晚實(shí)際睡眠時(shí)間由get_sleep_month_info獲取平均值
                上床到入睡時(shí)間暫時(shí)固定.20分鐘
        """
        query = {'watch_id': self.watch_id, 'maketime': {'$gte': self.start, '$lte': self.end}}
        st = db.sleep.aggregate([
            {'$match': query},
            {'$project': {
                'start': '$start_time',
                'end': '$end_time'
            }},
            {'$group': {
                '_id': '$start',
                'count': {'$sum': 1},
            }}
        ])
        et = db.sleep.aggregate([
            {'$match': query},
            {'$project': {
                'start': '$start_time',
                'end': '$end_time'
            }},
            {'$group': {
                '_id': '$end',
                'count': {'$sum': 1},
            }}
        ])
        st_dic = {}
        et_dic = {}
        for i in st:
            st_dic[i['_id']] = i['count']
        for k, v in st_dic.items():
            if v == max(st_dic.values()):
                self.data['sleep_analysis']['start_sleep_time'] = mktime_to_hms(k)
        for e in et:
            et_dic[e['_id']] = e['count']
        for k, v in et_dic.items():
            if v == max(et_dic.values()):
                self.data['sleep_analysis']['end_sleep_time'] = mktime_to_hms(k)
        self.data['sleep_analysis']['to_sleep_time'] = 20

    def sleep_advise(self):
        """
        暫時(shí)不做判斷建議
        """
        pass

    def sleep_status(self):
        """
        后期根據(jù)手表功能決定是否做睡眠狀態(tài)數(shù)據(jù)
        """
        pass

    def save_to_mongo(self):
        db.doctor_rpt_sleep.insert({
            'date': self.rpt_date,
            'sleep_month_info': self.data['month_info'],
            'sleep_daily_info': self.data['daily_info'],
            'sleep_analysis': self.data['sleep_analysis'],
            'sleep_status': '',
            'sleep_advise': ''
        })


class HabitReport(object):
    def __init__(self, watch_id):
        self.watch_id = watch_id
        self.start, self.end, self.rpt_date = get_time()
        self.data = {}
        self.score_count = 0

    def create_habit_rpt(self):
        self.get_diet_info()
        self.get_habit_info()
        self.get_diet_month_info()
        self.get_score_main()
        self.get_life_advise()

    def get_diet_info(self):
        """
        獲取膳食記錄
        """
        query = {'maketime': {'$gte': self.start, '$lte': self.end},
                 'watch_id': self.watch_id}
        date_group_mode = {'m': {'$month': '$time'}, 'd': {'$dayOfMonth': '$time'}, 'name': '$name'}
        cursor = db.diet.aggregate([
            {'$match': query},
            {'$project': {
                'time': {'$add': [{'$multiply': [1000, {'$add': ['$maketime', 28800]}]}, era]},
                'name': '$food_name',
                'n': '$food_value',
                'c': '$calorie'
            }},
            {'$group': {
                '_id': date_group_mode,
                'n': {'$sum': '$n'},
                'c': {'$sum': '$c'}
            }}
        ])
        calorie = 0
        self.data.setdefault('diet_info', [])
        for i in cursor:
            day = str(i['_id']['m']) + '-' + str(i['_id']['d'])
            calorie += i['c']
            self.data['diet_info'].append({'date':day, 'name':i['_id']['name'], 'value':i['n'] })
        self.data['calorie']= calorie

    def get_diet_month_info(self):
        query = {'maketime': {'$gte': self.start, '$lte': self.end},
                 'watch_id': self.watch_id}
        date_group_mode = {'m': {'$month': '$time'}, 'name': '$name'}
        cursor = db.diet.aggregate([
            {'$match': query},
            {'$project': {
                'time': {'$add': [{'$multiply': [1000, {'$add': ['$maketime', 28800]}]}, era]},
                'name': '$food_name',
                'n': '$food_value',
                'c': '$calorie'
            }},
            {'$group': {
                '_id': date_group_mode,
                'n': {'$sum': '$n'},
                'c': {'$sum': '$c'}
            }}
        ])
        self.data.setdefault('diet_month_info', [])
        for i in cursor:
            day = str(i['_id']['m'])
            self.data['diet_month_info'].append({'month':day, 'name':i['_id']['name'], 'value':i['n'] })

    def get_habit_info(self):
        """
        獲取生活習(xí)慣記錄
        """
        self.data.setdefault('habit', {'cigarette':0, 'alcoholic': []})
        results = db.habit.find({'maketime': {'$gte': self.start, '$lte': self.end}, 'watch_id': self.watch_id}).sort([('maketime', -1)])
        for result in results:
            habit = {'cigarette': 0, 'alcoholic': {}}
            if 'wine' in result['alcoholic'].keys() and result['alcoholic']['wine']:
                result['alcoholic']['wine'] = float(result['alcoholic']['wine'])
            if 'wine' in result['alcoholic'].keys() and not result['alcoholic']['wine']:
                result['alcoholic']['wine'] = 0.0
            if 'red' in result['alcoholic'].keys() and result['alcoholic']['red']:
                result['alcoholic']['red'] = float(result['alcoholic']['red'])
            if 'red' in result['alcoholic'].keys() and not result['alcoholic']['red']:
                result['alcoholic']['red'] = 0.0
            if 'beer' in result['alcoholic'].keys() and result['alcoholic']['beer']:
                result['alcoholic']['beer'] = float(result['alcoholic']['beer'])
            if 'beer' in result['alcoholic'].keys() and not result['alcoholic']['beer']:
                result['alcoholic']['beer'] = 0.0

            self.data['habit']['alcoholic'].append(result['alcoholic'])
            self.data['habit']['cigarette'] += int(result['cigarette'])

    def get_score_main(self):
        """
        評分
        food_dic{
            高膳食纖維
            谷類食物
            食物搭配合理
            能量攝入
            肉類
            蔬菜類
            食物種類豐富
            吸煙
            喝酒
        }
        """
        food_dic = {
            'high_fiber': [u'米', u'豆', u'麥'],
            'cereal': [u'米', u'麥'],
            'food_collocation': [u'米', u'肉', u'菜', u'面', u'豆', u'奶'],
            'energy_intake': 2000.0,
            'meat': 0.35,
            'vegetable': 0.65,
            'food_types': 6,
            'smoke': 5,
            'drink': 200,
        }
        score = {}
        for k, v in food_dic.items():
            if type(v) is not list:
                continue
            else:
                score = self.get_score(k, v, score, 10)

        score.setdefault('energy', {})
        if self.data['calorie'] <1000:
            score['energy']['state'],score['energy']['advise'] = [u'較少', u'立即改善']
            score['energy']['score'] = round(self.data['calorie'] / food_dic['energy_intake']*20, 0)
        else:
            score['energy']['state'],score['energy']['advise'] = [u'適量', u'繼續(xù)保持']
            score['energy']['score'] = round(self.data['calorie'] / food_dic['energy_intake']*20, 0)
        meat = 0
        for i in self.data['diet_info']:
            if u'肉' in i['name'] or u'蛋' in i['name']:
                meat += 1
        try:
            meat_b = float(meat) / len(self.data['diet_info'])
        except ZeroDivisionError:
            meat_b = 1.21
        score.setdefault('m_and_v', {})
        if meat_b < food_dic['meat']:
            score['m_and_v']['state'],score['m_and_v']['advise'] = [u'否', u'立即改善']
        else:
            score['m_and_v']['state'],score['m_and_v']['advise'] = [u'是', u'繼續(xù)保持']
        score['m_and_v']['score'] = round((1 - abs(food_dic['meat'] - meat_b)) *10, 0)
        food_types_count = len(self.data['diet_month_info'])

        score.setdefault('food_type', {})
        if food_types_count < 5:
            score['food_type']['state'], score['food_type']['advise'] = [u'不豐富', u'努力改善']
        else:
            score['food_type']['state'], score['food_type']['advise'] = [u'豐富', u'繼續(xù)保持']
        score['food_type']['score'] = 10.0 if food_types_count >= 10.0 else float(food_types_count)

        score.setdefault('smoke', {})
        if 0 <= self.data['habit']['cigarette'] <= 10:
            score['smoke']['score'] = float(10-self.data['habit']['cigarette'])
            score['smoke']['state'], score['smoke']['advise'] = [u'適量', u'繼續(xù)保持']
        else:
            score['smoke']['score'],score['smoke']['state'],score['smoke']['advise'] = [1, u'過量', u'立即改善']

        score.setdefault('drink', {})
        drink = 0
        try:
            for a, v in self.data['habit']['alcoholic']:
                drink += v
            if drink == 0:
                raise KeyError
            if drink - food_dic['drink'] < -50:
                score['drink']['score'] = 20 - round(drink/food_dic['drink']*20, 0)
                score['drink']['state'], score['drink']['advise']= [ u'適量', u'繼續(xù)保持']
            elif drink - food_dic['drink'] >= 0:
                score['drink']['score'] = 20 - round(food_dic['drink']/drink*20, 0)
                score['drink']['state'], score['drink']['advise']= [ u'過量', u'立即改善']
        except KeyError:
            score['drink']['score'], score['drink']['state'], score['drink']['advise']= [20, u'適量', u'繼續(xù)保持']

        self.data.setdefault('score_count', 0)
        for k, v in score.items():
            self.data['score_count'] += v['score']
        self.data['score'] = score
        print self.data

    def get_score(self, score_type, types_dic, score_dic, standard_socre):
        """
        計(jì)算單項(xiàng)得分
        socre_type: 計(jì)分項(xiàng)名稱(high_fiber...)
        types_dic: 計(jì)分項(xiàng)內(nèi)容 [u'米', u'豆'...]
        scoer_dic: 返回值的總項(xiàng)
        standard_socre: 標(biāo)準(zhǔn)分?jǐn)?shù)
        """
        score_dic.setdefault(score_type, {'score': 0})
        for i in self.data['diet_info']:
            for h in types_dic:
                if h in i['name']:
                    score_dic[score_type]['score'] += 1
        if self.data['diet_info']!=0 and score_dic[score_type]['score'] != 0:
            if round(float(score_dic[score_type]['score']) / len(self.data['diet_info'])*20, 0) > 10:
                score_dic[score_type]['score'] = 10.0
            else:
                score_dic[score_type]['score'] = round(float(score_dic[score_type]['score']) / len(self.data['diet_info'])*20, 0)
            score_dic[score_type]['state'], score_dic[score_type]['advise'] = self.get_state_advise(score_dic[score_type]['score'], standard_socre)
        else:
            pass
        return score_dic

    def get_state_advise(self, s, d):
        """
        根據(jù)分?jǐn)?shù)判斷狀態(tài)以及建議
        """
        if d == 10:
            if s < 5 :
                return [u'否', u'努力提升']
            else:
                return [u'是', u'繼續(xù)保持']
        else:
            if s < 10:
                return [u'否', u'努力提升']
            else:
                return [u'是', u'繼續(xù)保持']

    def get_life_advise(self):
        """
        生活習(xí)慣建議
        """
        self.data['life_advise'] = ''

    def save_to_mongo(self):
        db.doctor_rpt_habit.insert({
            'date': self.rpt_date,
            'diet_month_info': self.data['diet_month_info'],
            'diet_info': self.data['date_info'],
            'calorie': self.data['calorie'],
            'smoke': self.data['haibt']['cigarette'],
            'drink': self.data['habit']['alcoholic'],
            'health_score_info': self.data['score'],
            'score': self.data['score_count'],
            'life_advise': self.data['life_advise']
        })


if __name__ == '__main__':
    # watch_id = ObjectId('589545425f1d6569e76622af')
    cursor = db.watch.find()
    for i in cursor:
        HR = HabitReport(i['_id'])
        HR.create_habit_rpt()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痰催,一起剝皮案震驚了整個(gè)濱河市首繁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌陨囊,老刑警劉巖弦疮,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蜘醋,居然都是意外死亡胁塞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門压语,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啸罢,“玉大人,你說我怎么就攤上這事胎食∪挪牛” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵厕怜,是天一觀的道長衩匣。 經(jīng)常有香客問我,道長粥航,這世上最難降的妖魔是什么琅捏? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮递雀,結(jié)果婚禮上柄延,老公的妹妹穿的比我還像新娘。我一直安慰自己缀程,他們只是感情好搜吧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布市俊。 她就那樣靜靜地躺著,像睡著了一般滤奈。 火紅的嫁衣襯著肌膚如雪秕衙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天僵刮,我揣著相機(jī)與錄音据忘,去河邊找鬼。 笑死搞糕,一個(gè)胖子當(dāng)著我的面吹牛勇吊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窍仰,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼汉规,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了驹吮?” 一聲冷哼從身側(cè)響起针史,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碟狞,沒想到半個(gè)月后啄枕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡族沃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年频祝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脆淹。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡常空,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盖溺,到底是詐尸還是另有隱情漓糙,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布烘嘱,位于F島的核電站昆禽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拙友。R本人自食惡果不足惜为狸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望遗契。 院中可真熱鬧,春花似錦病曾、人聲如沸牍蜂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲫竞。三九已至辐怕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間从绘,已是汗流浹背寄疏。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留僵井,地道東北人陕截。 一個(gè)月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像批什,于是被迫代替她去往敵國和親农曲。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容