/// <summary> /// 通过裁决信息获取标准点 /// </summary> /// <param name="item"></param> /// <returns></returns> public List <Point> GetStandardPoints(M_Involve item) { if (item == null) { /* 异常:未找到该裁决 */ return(null); } /* 异常:该裁决方式为单点赋值,则不应有裁决曲线 */ List <Point> list = new List <Point>() { new Point { x = item.MostSatisfied, y = 10, }, new Point { x = item.MostSatisfied * 2, y = item.DoublePay, }, new Point { x = 0, y = item.NonSatisfied, }, }; return(list); }
/// <summary> /// 通过裁决信息获取曲线点集合 /// </summary> /// <param name="item"></param> /// <returns></returns> public string GetSinglePoint(M_Involve item) { WebClient wb = new WebClient(); NameValueCollection postValues = new NameValueCollection(); /*获取裁决信息的点*/ var list = GetStandardPoints(item); /*通过集合点获取曲线信息*/ postValues.Add("points", list.ToListString()); //postValues.Add("points", "[[0,5],[100,10],[200,8]]"); postValues.Add("curve_cnt", "21"); postValues.Add("apikey", GlobalConfig.RequireApiKEY); byte[] byRemoteInfo = wb.UploadValues("http://api.gping.cn/assignment/", "POST", postValues); string sRemouteInfo = Encoding.Default.GetString(byRemoteInfo); return(sRemouteInfo); }
protected WxInvolveViewModel _transModel(M_Involve item) { return(new WxInvolveViewModel() { id = item.ID, assignmentExplain = item.AssignmentExplain, doublePay = item.DoublePay, ParticipateDate = item.ParticipateDate.ToShortDateString(), modepay = item.ModeOfPay, mostSatisfied = item.MostSatisfied, nonSatisfied = item.NonSatisfied, user = UserInfo.Current.GetBasicUserById(item.UserID), modedot = item.ModeOfDot, other1 = item.OtherNum1, other2 = item.OtherNum2, other3 = item.OtherNum3, }); }
/// <summary> /// 用户参与裁决 /// </summary> /// <returns></returns> public int AddVerdict(string username, Verdict model) { InvolveService dbinvolve = new InvolveService(); UserInfo dbuser = new UserInfo(); string userId = dbuser.GetUseByName(username).Id; GetPoint dbpoint = new GetPoint(); //查找数据库中是否已经存在裁决 var VerdictList = dbinvolve.LoadEntities(t => t.CaseId == model.caseid && t.UserID == userId); //必须赔偿 if (model.styleOfpay == "1") { if (VerdictList.Count() > 0) { //存在的话进行更新 var UserVerdict = VerdictList.FirstOrDefault(); UserVerdict.UserID = userId; UserVerdict.CaseId = model.caseid; UserVerdict.AssignmentExplain = model.reason; UserVerdict.DoublePay = Convert.ToDouble(model.doublepay); UserVerdict.ModeOfPay = int.Parse(model.styleOfpay); UserVerdict.MostSatisfied = Convert.ToDouble(model.moneySure); UserVerdict.NonSatisfied = Convert.ToDouble(model.nopay); UserVerdict.OtherNum1 = Convert.ToDouble(model.OtherNum1); UserVerdict.OtherNum2 = Convert.ToDouble(model.OtherNum2); UserVerdict.OtherNum3 = Convert.ToDouble(model.OtherNum3); //添加曲线点列表 string pointlist = dbpoint.GetSinglePoint(UserVerdict); UserVerdict.PointList = pointlist; var result = dbinvolve.UpdateEntity(UserVerdict); UserVerdict.ModifiedDate = DateTime.Now; if (result) { //添加裁决成功后判断案件的裁决,决定是不是将案件的状态修改为已完成 int count = dbinvolve.LoadEntities(t => t.CaseId == model.caseid).Count(); CaseInfo dbcase = new CaseInfo(); if (count >= WholeSituation.GlobalConfig.InvolveCount) { int resultTemp = dbcase.UpdateCaseState(model.caseid, WholeSituation.CaseState.FINISH); } return(1); } return(-1); } else { //不存在裁决的话 直接添加裁决 //赔偿金额 no满意度 double满意度 reason M_Involve temp = new M_Involve { UserID = userId, CaseId = model.caseid, AssignmentExplain = model.reason, DoublePay = Convert.ToDouble(model.doublepay), ModeOfPay = int.Parse(model.styleOfpay), MostSatisfied = Convert.ToDouble(model.moneySure), NonSatisfied = Convert.ToDouble(model.nopay), ParticipateDate = DateTime.Now, OtherNum1 = Convert.ToDouble(model.OtherNum1), OtherNum2 = Convert.ToDouble(model.OtherNum2), OtherNum3 = Convert.ToDouble(model.OtherNum3), }; //添加曲线点列表 string pointlist = dbpoint.GetSinglePoint(temp); temp.PointList = pointlist; var result = dbinvolve.AddEntity(temp); if (result.ID != 0) { //添加裁决成功后判断案件的裁决,决定是不是将案件的状态修改为已完成 int count = dbinvolve.LoadEntities(t => t.CaseId == model.caseid).Count(); CaseInfo dbcase = new CaseInfo(); if (count >= WholeSituation.GlobalConfig.InvolveCount) { int resultTemp = dbcase.UpdateCaseState(model.caseid, WholeSituation.CaseState.FINISH); } return(1); } else { return(0); } } } //互不赔偿 else if (model.styleOfpay == "2") { if (VerdictList.Count() > 0) { //存在的话进行更新 var UserVerdict = VerdictList.FirstOrDefault(); UserVerdict.UserID = userId; UserVerdict.CaseId = model.caseid; UserVerdict.AssignmentExplain = model.reason; UserVerdict.DoublePay = Convert.ToDouble(model.doublepay); UserVerdict.ModeOfPay = int.Parse(model.styleOfpay); UserVerdict.MostSatisfied = 0; UserVerdict.NonSatisfied = 10; UserVerdict.ModifiedDate = DateTime.Now; UserVerdict.OtherNum1 = Convert.ToDouble(model.OtherNum1); UserVerdict.OtherNum2 = Convert.ToDouble(model.OtherNum2); UserVerdict.OtherNum3 = Convert.ToDouble(model.OtherNum3); //添加曲线点列表 string pointlist = dbpoint.GetSinglePoint(UserVerdict); UserVerdict.PointList = pointlist; var result2 = dbinvolve.UpdateEntity(UserVerdict); if (result2) { //添加裁决成功后判断案件的裁决,决定是不是将案件的状态修改为已完成 int count = dbinvolve.LoadEntities(t => t.CaseId == model.caseid).Count(); CaseInfo dbcase = new CaseInfo(); if (count >= WholeSituation.GlobalConfig.InvolveCount) { int resultTemp = dbcase.UpdateCaseState(model.caseid, WholeSituation.CaseState.FINISH); } return(1); } return(-1); } else { //赔偿金额0 no满意度10 double满意度 reason M_Involve temp = new M_Involve { UserID = userId, CaseId = model.caseid, AssignmentExplain = model.reason, DoublePay = Convert.ToDouble(model.doublepay), ModeOfPay = int.Parse(model.styleOfpay), MostSatisfied = 0, NonSatisfied = 10, ParticipateDate = DateTime.Now, OtherNum1 = Convert.ToDouble(model.OtherNum1), OtherNum2 = Convert.ToDouble(model.OtherNum2), OtherNum3 = Convert.ToDouble(model.OtherNum3), }; // 添加曲线点列表 string pointlist = dbpoint.GetSinglePoint(temp); temp.PointList = pointlist; var result = dbinvolve.AddEntity(temp); if (result.ID != 0) { //添加裁决成功后判断案件的裁决,决定是不是将案件的状态修改为已完成 int count = dbinvolve.LoadEntities(t => t.CaseId == model.caseid).Count(); CaseInfo dbcase = new CaseInfo(); if (count >= WholeSituation.GlobalConfig.InvolveCount) { int resultTemp = dbcase.UpdateCaseState(model.caseid, WholeSituation.CaseState.FINISH); } return(1); } else { return(0); } } } else { return(-1); } }