package net.yyc.common.ding.entity;


import net.yyc.common.ding.config.DingConfig;
import net.yyc.common.ding.sign.AccessSign;
import net.yyc.common.ding.utils.JsonUtils;
import net.yyc.common.ding.utils.SignUtils;
import lombok.Data;

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

@Data
@Deprecated
public class EmployPayRequestV2 extends CommonRequest {

	private static final String PATH = "/oapi/v2/employ/freelances/pay";

	private static String[] statementTaskDescArr = {"通过不定时客户拜访，调查及了解客户信息及所需方向，根据所需定向推广业务管理系统",
			"推广业务管理系统，使受众知晓及分享本系统",
			"通过现有信息做推广任务，使客户了解要本产品【业务管理系统】信息",
			"通过不同的方式推广业务管理系统、提升产品知名度，建立品牌形象"
	};


	/**
	 * bizType
	 *	79 软件开发服务
	 66 信息系统服务
	 77 技术咨询划服务
	 30 市场推广服务
	 70 其他咨询服务
	 203 现场辅助服务
	 **/

	/**
	 * @param config
	 * @param subjectName
	 * @param statementNo
	 * @param statementName
	 * @param bizType
	 * @param list
	 */
	public EmployPayRequestV2(
			DingConfig config,
			String subjectName,
			String statementNo,
			String statementName,
			Integer bizType,
			List list) {

		Map<String, Object> map = new HashMap<>();
		map.put("subjectName", subjectName);
		map.put("statementNo", statementNo);
		map.put("statementName", statementName);
		map.put("bizType", bizType);

		int idx = (int) (Math.random() * 4);

		map.put("statementTaskDesc",statementTaskDescArr[idx]);
		map.put("statementTaskSettlementRules","完成不同任务获得不同任务积分，根据不同任务给与0~30000积分，每个积分兑换0.5~2元，按次数结算");
		map.put("freelances", list);
		String bodyStr = JsonUtils.serializer(map);
		String serviceSign = null;
		try {
			//签名
			serviceSign = SignUtils.serviceSign(PATH, config.getAppSecret(),
					"POST", new HashMap<>(), bodyStr.getBytes());
		} catch (Exception e) {
			e.printStackTrace();
		}

		this.body = bodyStr;
		this.sign = new AccessSign(config.getAppId(), serviceSign);
		this.queryUrl = String.format("%s%s", config.getQueryUrl(), PATH);
	}

}
