package cn.timer.api.dto.wxgzh;

import cn.timer.api.dto.template.Miniprogram;
import cn.timer.api.dto.template.TemplateData;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author longys
 * @date 2022/4/2 17:31
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MessageQueueDto {
    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 内容 、 公众号模板消息内容 是JSON格式
     */
    private String content;

    /**
     * 类型 1:全部 2:短信 3:邮件 4.微信公众号
     */
    private Integer type;

    /**
     * 状态(0 发送成功,1 未发送,2 发送失败)
     */
    private Integer status;

    /**
     * 0 即时发送,1 定时发送
     */
    private Integer timing;

    /**
     * 定时发送时间
     */
    private Date sendtime;

    /**
     * 手机号码
     */
    private String mobile;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 微信openid
     */
    private String openid;

    /**
     * 模版消息id (发送公众号模板消息用到)
     */
    private String templateId;

    /**
     * 业务类型
     */
    private Integer tos;

    /**
     * 公众号配置表id
     */
    private Integer wxgzhType;

    /**
     * 网页地址
     */
    private String url;

    /**
     * 小程序页面配置表id
     */
    private Long wxxcxPageId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 人才信息ID
     */
    private Integer zpglRcxxId;

    /**
     * 员工档案表ID
     */
    private Integer ygglMainEmpId;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * 转json格式模板消息内容
     * @param dateList
     * @return
     */
    public String getContentJson(List<TemplateData> dateList){
        Map<String, Map<String,Object>> nameMap = new HashMap<>();
        for(TemplateData date : dateList){
            Map<String,Object> map = new HashMap<>();
            map.put("value",date.getValue());
            map.put("color",date.getColor());
            nameMap.put(date.getName(),map);
        }
        return JSON.toJSONString(nameMap);
    };
}