using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Microsoft.AspNetCore.Authorization;
using System.Web;
using MySystem.Models.Main;
using LitJson;
using Library;
using System.Data;
using MySystem.Service.Main;

/// <summary>
/// 商户服务费退还
/// </summary>
namespace MySystem.Areas.Api.Controllers.v1
{
    [Area("Api")]
    [Route("/v1/qrcodeplatemain/[controller]/[action]")]
    public class MerchantDepositBackController : BaseController
    {
        public MerchantDepositBackController(IHttpContextAccessor accessor) : base(accessor)
        {
        }

        #region 商户激活—商户服务费退还
        // [Authorize]
        public JsonResult AddMerchantDepositBack(string value)
        {
            value = DesDecrypt(value);
            JsonData data = JsonMapper.ToObject(value);
            AppResultJson result = AddMerchantDepositBackDo(value);
            return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
        }
        private AppResultJson AddMerchantDepositBackDo(string value)
        {
            JsonData data = JsonMapper.ToObject(value);
            int MerchantId = int.Parse(function.CheckInt(data.getItem("MerchantId").ToString())); //商户Id
            int ReturnWay = int.Parse(function.CheckInt(data.getItem("ReturnWay").ToString())); //退还方式
            string MobileCode = data["MobileCode"].ToString(); //短信验证码
            string ReturnNo = data["ReturnNo"].ToString(); //退还账号
            var info = MerchantDepositBackUtil.AddMerchantDepositBackDo(MerchantId, ReturnWay, MobileCode, ReturnNo);
            if (info == "success")
            {
                return new AppResultJson() { Status = "1", Info = info, Data = info };
            }
            else
            {
                return new AppResultJson() { Status = "-1", Info = info, Data = info };
            }
        }
        #endregion


        #region 商户激活-银行选项名称
        // [Authorize]
        public JsonResult Options(string value)
        {
            value = DesDecrypt(value);
            JsonData data = JsonMapper.ToObject(value);
            List<Dictionary<string, object>> dataList = OptionsDo(value);
            return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
        }
        private List<Dictionary<string, object>> OptionsDo(string value)
        {
            JsonData data = JsonMapper.ToObject(value);
            int PageSize = int.Parse(function.CheckInt(data["page_size"].ToString()));
            int PageNum = int.Parse(function.CheckInt(data["page_num"].ToString()));
            List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
            var query = GetBanks();
            foreach (string key in query.Keys)
            {
                Dictionary<string, object> curData = new Dictionary<string, object>();
                curData.Add("text", query[key]); //文本
                curData.Add("value", key); //值
                dataList.Add(curData);
            }
            return dataList;
        }
        #endregion

        private Dictionary<string, string> GetBanks()
        {
            Dictionary<string, string> dic = new Dictionary<string, string>();
            dic.Add("工商银行", "工商银行");
            dic.Add("农业银行", "农业银行");
            dic.Add("邮储银行", "邮储银行");
            dic.Add("建设银行", "建设银行");
            dic.Add("招商银行", "招商银行");
            dic.Add("中国银行", "中国银行");
            dic.Add("交通银行", "交通银行");
            dic.Add("浦发银行", "浦发银行");
            dic.Add("广发银行", "广发银行");
            dic.Add("民生银行", "民生银行");
            dic.Add("平安银行", "平安银行");
            dic.Add("光大银行", "光大银行");
            dic.Add("兴业银行", "兴业银行");
            dic.Add("中信银行", "中信银行");
            dic.Add("上海银行", "上海银行");
            dic.Add("其他银行", "其他银行");
            return dic;
        }

    }
}
