using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text;
using LJLib.DAL.SQL;
using JLHHJSvr.Com.Model;
namespace JLHHJSvr.DBA.DBModle
{
///
/// 1-系统收款二维码
/// 2-默认违停收款金额
/// 3-每月备案次数上限
/// 4-即将过期判断天数
///
[PK(new[] { "optionid" })]
public sealed class st_option
{
///
/// ID
///
public int? optionid { get; set; }
///
/// 参数名
///
public string optionname { get; set; }
///
/// 参数值
///
public string optionvalue { get; set; }
///
/// 参数说明
///
public string optiondscrp { get; set; }
///
/// 修改人
///
public string modemp { get; set; }
///
/// 修改时间
///
public DateTime? moddate { get; set; }
///
/// key:optionid
/// value:默认值
///
///
public Dictionary GetDefaultOptions()
{
return new Dictionary
{
{
1, new st_option
{
optionid = 1,
optionname = "系统收款二维码",
optionvalue = string.Empty,
optiondscrp = "系统收款二维码"
}
},
{
2, new st_option
{
optionid = 2,
optionname = "默认违停收款金额(元/天)",
optionvalue = "50",
optiondscrp = "用于自动计算违停处理金额"
}
},
{
3, new st_option
{
optionid = 3,
optionname = "每月备案次数上限",
optionvalue = "4",
optiondscrp = "每月备案超过指定次数的会提示车主"
}
},
{
4, new st_option
{
optionid = 4,
optionname = "即将过期判断天数",
optionvalue = "30",
optiondscrp = "有效期结束前指定天数之后视为即将过期"
}
},
{
5, new st_option
{
optionid = 5,
optionname = "备案截止时间",
optionvalue = "08:00",
optiondscrp = "自助备案时,允许停放到次日的时间,格式hh:mm"
}
},
{
6, new st_option
{
optionid = 6,
optionname = "图片上传压缩后的宽度",
optionvalue = "800",
optiondscrp = "违停图片上传压缩后的宽度(数值越小图片占用空间越小)"
}
},
{
7, new st_option
{
optionid = 7,
optionname = "报备开放时间",
optionvalue = "08:00",
optiondscrp = "每天开始接受报备申请的时间点"
}
},
{
8, new st_option
{
optionid = 8,
optionname = "报备网页顶部通知",
optionvalue = "",
optiondscrp = "报备网页顶部显示的通知信息"
}
},
{
9, new st_option
{
optionid = 9,
optionname = "报备成功通知",
optionvalue = "",
optiondscrp = "报备网页成功后的弹框通知信息"
}
},
{
10, new st_option
{
optionid = 10,
optionname = "报备不在时间段的通知",
optionvalue = "当前时间段未开放报备",
optiondscrp = "当报备时间不在开放时间段时,报备页面显示的信息"
}
},
};
}
public void SetValue(DbCommand cmd, int optionid, string value, string modemp)
{
if (optionid == 0)
{
throw new Exception("optionid can't be 0");
}
if (value == null)
{
throw new Exception("value can't be null");
}
switch (optionid)
{
case 2:
case 3:
case 4:
case 6:
try
{
var parsedValue = int.Parse(value);
}
catch (Exception)
{
throw new Exception("非法的系统参数值:只能为数字");
}
break;
case 5:
try
{
if (value.Length != 5 || !value.Contains(':'))
{
throw new Exception();
}
var parsedValue = DateTime.Parse(value);
}
catch (Exception)
{
throw new Exception("非法的系统参数值:格式只能为hh:mm");
}
break;
}
var defOption = GetDefaultOption(optionid);
this.optionid = optionid;
this.optionname = defOption.optionname;
this.optionvalue = value;
this.optiondscrp = defOption.optiondscrp;
this.modemp = modemp;
this.moddate = DateTime.Now;
DbSqlHelper.InsertOrUpdate(cmd, this, "optionname, optionvalue,optiondscrp, modemp, moddate");
}
public String GetValue(DbCommand cmd)
{
return GetValue(cmd, optionid);
}
public String GetValue(DbCommand cmd, int? optionid)
{
if (optionid == null || optionid == 0)
{
throw new Exception("未定义的选项ID");
}
cmd.CommandText = "SELECT optionvalue FROM st_option WHERE optionid = " + optionid;
cmd.Parameters.Clear();
var rslt = cmd.ExecuteScalar();
if (rslt != null && rslt != DBNull.Value)
{
return rslt.ToString();
}
//返回默认值
var defaultOption = GetDefaultOption(optionid.Value);
if (defaultOption == null)
{
return null;
}
else
{
return defaultOption.optionvalue;
}
}
public st_option GetDefaultOption(int optionid)
{
if (optionid == 0)
{
throw new Exception("Unknown Exception: optionid[0]");
}
var defaultDic = GetDefaultOptions();
if (defaultDic.ContainsKey(optionid))
{
return defaultDic[optionid];
}
return null;
}
}
}