//
//  QuestionDescribeCell.m
//  redstar
//
//  Created by admin on 15/11/3.
//  Copyright © 2015年 ZWF. All rights reserved.
//

#import "QuestionDescribeCell.h"
#import <UIImageView+WebCache.h>

@interface QuestionDescribeCell ()
@property (nonatomic, strong) NSLayoutConstraint *picConstraint;
@end

@implementation QuestionDescribeCell
#pragma mark - System Methods
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        [self setup];
    }
    return self;
}

#pragma mark - Private Methods
- (void)setup
{
    self.titleLabel.textColor = kDetailCellDescribeTextColor;
    _titleLabel.text = @"问题与建议描述";
    
    self.pictureLabel.textColor = kDetailCellDescribeTextColor;
    _pictureLabel.text = @"照片";
    
    self.pictureView.backgroundColor = [UIColor whiteColor];
    
    self.feedbackLabel.textColor = kDetailCellDescribeTextColor;
    self.feedbackBackView.backgroundColor = kQuestionFeedBackColor;

}

- (void)setQuestionDetail:(QuestionDetailModel *)questionDetail
{
    _questionDetail = questionDetail;
    
    // 问题与描述
    NSString *describeStr = [NSString stringWithFormat:@"%@", questionDetail.content];
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:describeStr];
    NSMutableParagraphStyle *paragraphStyle1 = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle1.alignment = NSTextAlignmentLeft;
    paragraphStyle1.lineSpacing = 6;  //行自定义行高度
    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle1 range:NSMakeRange(0, [describeStr length])];
    self.describeLabel.attributedText = attributedString;
    
    self.pictureView.backgroundColor = [UIColor whiteColor];
    
    CGFloat imageMaginX = 20;
    CGFloat imageMaginY = 10;
    CGFloat imageW = (kScreenWidth - imageMaginX * 3) / 2;
    CGFloat imageH = 110;
    
    int count = (int)questionDetail.attachments.count;
    int k ;
    if (count % 2 == 0) {
        k = count / 2;
    } else {
        k = (count + 1) / 2;
    }

    self.picConstraint.constant = imageMaginY + (imageMaginY + imageH) * k;
    [self.pictureView setNeedsUpdateConstraints];
    
    for (int i = 0; i < count; i++) {
        UIImageView *imageView = [[UIImageView alloc] init];
        imageView.userInteractionEnabled = YES;
        imageView.tag = 1115 + i;
        imageView.translatesAutoresizingMaskIntoConstraints = NO;
        NSDictionary *imageDict = questionDetail.attachments[i];
        NSURL *imageURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", kRedStarURL, imageDict[@"fileUrl"]]];
        [imageView sd_setImageWithURL:imageURL placeholderImage:[UIImage imageNamed:@"default_pic"]];
        
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(bigImageCilck:)];
        [imageView addGestureRecognizer:tap];
        
        [self.pictureView addSubview:imageView];
        
        int j = 0;
        if ((i + 1) % 2 == 0) {
            j = count / 2;
        } else {
            j = (count + 1) / 2;
        }
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.pictureView attribute:NSLayoutAttributeTop multiplier:1.0 constant:imageMaginY + (j - 1) * (imageH + imageMaginY)];
        [self.pictureView addConstraint:titleTop];
        
        if ((i + 1) % 2 == 0) {
            // 左边
            NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.pictureView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:imageMaginX + imageW + imageMaginX];
            [self.pictureView addConstraint:titleLeft];
        } else {
            // 左边
            NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.pictureView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:imageMaginX];
            [self.pictureView addConstraint:titleLeft];
        }
       
        
        // 右边
        NSLayoutConstraint *titleWidth = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:imageW];
        [self.pictureView addConstraint:titleWidth];
        
        // 高度
        NSLayoutConstraint *titleHeight = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:imageH];
        [self.pictureView addConstraint:titleHeight];
    }
    
    // 反馈
    
    if (questionDetail.feedback == nil || questionDetail.feedback == NULL || [questionDetail.feedback isEqual:[NSNull null]]) {
        self.answerLabel.text = @"";
    } else {
        NSString *answerStr = [NSString stringWithFormat:@"%@", questionDetail.feedback];
        NSMutableAttributedString *answerAttrStr = [[NSMutableAttributedString alloc] initWithString:answerStr];
        NSMutableParagraphStyle *paragraphStyle2 = [[NSMutableParagraphStyle alloc] init];
        paragraphStyle2.alignment = NSTextAlignmentLeft;
        paragraphStyle2.lineSpacing = 6;  //行自定义行高度
        [answerAttrStr addAttribute:NSParagraphStyleAttributeName value:paragraphStyle2 range:NSMakeRange(0, answerStr.length)];
        self.answerLabel.attributedText = answerAttrStr;
    }
    
    // 解决人
    if (questionDetail.resolveUser_name == nil || questionDetail.resolveUser_name == NULL || [questionDetail.resolveUser_name isEqual:[NSNull null]]) {
        self.peopleLabel.text = [NSString stringWithFormat:@"问题解决负责人："];
    } else {
        self.peopleLabel.text = [NSString stringWithFormat:@"问题解决负责人：%@", questionDetail.resolveUser_name];
    }
    
    
    if (questionDetail.resolveTime == nil || questionDetail.resolveTime == NULL || [questionDetail.resolveTime isEqual:[NSNull null]]) {
        self.dateLabel.text = [NSString stringWithFormat:@"反馈时间："];
    } else {
        self.dateLabel.text = [NSString stringWithFormat:@"反馈时间：%@", questionDetail.resolveTime];
    }
}

- (void)bigImageCilck:(UITapGestureRecognizer *)sender
{
    if (_delegate && [_delegate respondsToSelector:@selector(showPicture:)]) {
        [_delegate showPicture:sender];
    }
}

#pragma mark - lazy loading
- (UILabel *)titleLabel
{
    if (!_titleLabel) {
        _titleLabel = [[UILabel alloc] init];
        _titleLabel.font = [UIFont systemFontOfSize:15.0];
        _titleLabel.translatesAutoresizingMaskIntoConstraints = NO;
        [self.contentView addSubview:_titleLabel];
        
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:_titleLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:10];
        [self.contentView addConstraint:titleTop];
        
        // 左边
        NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:_titleLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20];
        [self.contentView addConstraint:titleLeft];
        
        // 右边
        NSLayoutConstraint *titleRight = [NSLayoutConstraint constraintWithItem:_titleLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20];
        [self.contentView addConstraint:titleRight];
        
        // 高度
        NSLayoutConstraint *titleHeight = [NSLayoutConstraint constraintWithItem:_titleLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:25];
        [self.contentView addConstraint:titleHeight];
    }
    return _titleLabel;
}

- (UILabel *)describeLabel
{
    if (!_describeLabel) {
        _describeLabel = [[UILabel alloc] init];
        _describeLabel.textColor = kdetailCellTitleColor;
        _describeLabel.font = [UIFont systemFontOfSize:15.0];
        _describeLabel.translatesAutoresizingMaskIntoConstraints = NO;
        _describeLabel.numberOfLines = 0;
        [_describeLabel sizeToFit];
        [self.contentView addSubview:_describeLabel];
        
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:_describeLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.titleLabel attribute:NSLayoutAttributeBottom multiplier:1.0 constant:5];
        [self.contentView addConstraint:titleTop];
        
        // 左边
        NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:_describeLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20];
        [self.contentView addConstraint:titleLeft];
        
        // 右边
        NSLayoutConstraint *titleRight = [NSLayoutConstraint constraintWithItem:_describeLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20];
        [self.contentView addConstraint:titleRight];
        
    }
    return _describeLabel;
}

- (UILabel *)pictureLabel
{
    if (!_pictureLabel) {
        _pictureLabel = [[UILabel alloc] init];
        _pictureLabel.font = [UIFont systemFontOfSize:15.0];
        _pictureLabel.translatesAutoresizingMaskIntoConstraints = NO;
        [self.contentView addSubview:_pictureLabel];
        
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:_pictureLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.describeLabel attribute:NSLayoutAttributeBottom multiplier:1.0 constant:5];
        [self.contentView addConstraint:titleTop];
        
        // 左边
        NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:_pictureLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20];
        [self.contentView addConstraint:titleLeft];
        
        // 右边
        NSLayoutConstraint *titleRight = [NSLayoutConstraint constraintWithItem:_pictureLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20];
        [self.contentView addConstraint:titleRight];
        
        // 高度
        NSLayoutConstraint *titleHeight = [NSLayoutConstraint constraintWithItem:_pictureLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:30];
        [self.contentView addConstraint:titleHeight];
        
    }
    return _pictureLabel;

}

- (UIView *)pictureView
{
    if (!_pictureView) {
        _pictureView = [[UIView alloc] init];
        _pictureView.translatesAutoresizingMaskIntoConstraints = NO;
        [self.contentView addSubview:_pictureView];
        
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:_pictureView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.pictureLabel attribute:NSLayoutAttributeBottom multiplier:1.0 constant:5];
        [self.contentView addConstraint:titleTop];
        
        // 左边
        NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:_pictureView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0];
        [self.contentView addConstraint:titleLeft];
        
        // 右边
        NSLayoutConstraint *titleRight = [NSLayoutConstraint constraintWithItem:_pictureView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:0];
        [self.contentView addConstraint:titleRight];
        
        // 高度
        self.picConstraint = [NSLayoutConstraint constraintWithItem:_pictureView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:130];
        [self.contentView addConstraint:_picConstraint];
        
    }
    return _pictureView;
}

- (UILabel *)feedbackLabel
{
    if (!_feedbackLabel) {
        _feedbackLabel = [[UILabel alloc] init];
        _feedbackLabel.font = [UIFont systemFontOfSize:15.0];
        _feedbackLabel.translatesAutoresizingMaskIntoConstraints = NO;
        _feedbackLabel.text = @"问题反馈";

        [self.contentView addSubview:_feedbackLabel];
        
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:_feedbackLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.pictureView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:5];
        [self.contentView addConstraint:titleTop];
        
        // 左边
        NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:_feedbackLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20];
        [self.contentView addConstraint:titleLeft];
        
        // 右边
        NSLayoutConstraint *titleRight = [NSLayoutConstraint constraintWithItem:_feedbackLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20];
        [self.contentView addConstraint:titleRight];
        
        // 高度
        NSLayoutConstraint *titleHeight = [NSLayoutConstraint constraintWithItem:_feedbackLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:30];
        [self.contentView addConstraint:titleHeight];
        
    }
    return _feedbackLabel;
}

- (UIView *)feedbackBackView
{
    if (!_feedbackBackView) {
        _feedbackBackView = [[UIView alloc] init];
        _feedbackBackView.translatesAutoresizingMaskIntoConstraints = NO;
        _feedbackBackView.layer.cornerRadius = 5;
        _feedbackBackView.layer.borderWidth = 1;
        _feedbackBackView.layer.borderColor = kQuestionFeedBackTitleCGColor;
        [self.contentView addSubview:_feedbackBackView];
        
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:_feedbackBackView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.feedbackLabel attribute:NSLayoutAttributeBottom multiplier:1.0 constant:5];
        [self.contentView addConstraint:titleTop];
        
        // 左边
        NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:_feedbackBackView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20];
        [self.contentView addConstraint:titleLeft];
        
        // 右边
        NSLayoutConstraint *titleRight = [NSLayoutConstraint constraintWithItem:_feedbackBackView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-20];
        [self.contentView addConstraint:titleRight];
        
        // 高度
        NSLayoutConstraint *titleBootom = [NSLayoutConstraint constraintWithItem:_feedbackBackView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-15];
        [self.contentView addConstraint:titleBootom];

    }
    return _feedbackBackView;
}

- (UILabel *)answerLabel
{
    if (!_answerLabel) {
        _answerLabel = [[UILabel alloc] init];
        [_answerLabel sizeToFit];
        _answerLabel.font = [UIFont systemFontOfSize:15.0];
        _answerLabel.translatesAutoresizingMaskIntoConstraints = NO;
        _answerLabel.textColor = kQuestionFeedBackTitleColor;
        _answerLabel.numberOfLines = 0;
        [self.feedbackBackView addSubview:_answerLabel];
        
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:_answerLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.feedbackBackView attribute:NSLayoutAttributeTop multiplier:1.0 constant:12];
        [self.feedbackBackView addConstraint:titleTop];
        
        // 左边
        NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:_answerLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.feedbackBackView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:10];
        [self.feedbackBackView addConstraint:titleLeft];
        
        // 右边
        NSLayoutConstraint *titleRight = [NSLayoutConstraint constraintWithItem:_answerLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.feedbackBackView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10];
        [self.feedbackBackView addConstraint:titleRight];
        
    }
    return _answerLabel;
}

- (UILabel *)peopleLabel
{
    if (!_peopleLabel) {
        _peopleLabel = [[UILabel alloc] init];
        _peopleLabel.font = [UIFont systemFontOfSize:15.0];
        _peopleLabel.translatesAutoresizingMaskIntoConstraints = NO;
        _peopleLabel.textColor = kDetailCellDescribeTextColor;
        _peopleLabel.numberOfLines = 0;
        [self.feedbackBackView addSubview:_peopleLabel];
        
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:_peopleLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.answerLabel attribute:NSLayoutAttributeBottom multiplier:1.0 constant:5];
        [self.feedbackBackView addConstraint:titleTop];
        
        // 左边
        NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:_peopleLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.feedbackBackView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:10];
        [self.feedbackBackView addConstraint:titleLeft];
        
        // 右边
        NSLayoutConstraint *titleRight = [NSLayoutConstraint constraintWithItem:_peopleLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.feedbackBackView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10];
        [self.feedbackBackView addConstraint:titleRight];
        
        // 右边
        NSLayoutConstraint *titleHeight = [NSLayoutConstraint constraintWithItem:_peopleLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:20];
        [self.feedbackBackView addConstraint:titleHeight];
        
    }
    return _peopleLabel;
}

- (UILabel *)dateLabel
{
    if (!_dateLabel) {
        _dateLabel = [[UILabel alloc] init];
        _dateLabel.font = [UIFont systemFontOfSize:15.0];
        _dateLabel.translatesAutoresizingMaskIntoConstraints = NO;
        _dateLabel.textColor = kDetailCellDescribeTextColor;
        _dateLabel.numberOfLines = 0;
        [self.feedbackBackView addSubview:_dateLabel];
        
        // 顶端
        NSLayoutConstraint *titleTop = [NSLayoutConstraint constraintWithItem:_dateLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.peopleLabel attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0];
        [self.feedbackBackView addConstraint:titleTop];
        
        // 左边
        NSLayoutConstraint *titleLeft = [NSLayoutConstraint constraintWithItem:_dateLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.feedbackBackView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:10];
        [self.feedbackBackView addConstraint:titleLeft];
        
        // 右边
        NSLayoutConstraint *titleRight = [NSLayoutConstraint constraintWithItem:_dateLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.feedbackBackView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-10];
        [self.feedbackBackView addConstraint:titleRight];
        
        // 右边
        NSLayoutConstraint *titleHeight = [NSLayoutConstraint constraintWithItem:_dateLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:20];
        [self.feedbackBackView addConstraint:titleHeight];
        
        NSLayoutConstraint *titleBottom = [NSLayoutConstraint constraintWithItem:_dateLabel attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.feedbackBackView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-10];
        [self.feedbackBackView addConstraint:titleBottom];
        
    }
    return _dateLabel;
}

@end
