2020-10-12 14:39:23 +09:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Web;
|
|
|
|
|
|
using System.Web.Mvc;
|
|
|
|
|
|
|
|
|
|
|
|
using NP.Model;
|
|
|
|
|
|
using System.Collections;
|
|
|
|
|
|
using NP.Base.Auth;
|
|
|
|
|
|
using NP.Base.ENUM;
|
|
|
|
|
|
namespace NP.Base.Controllers
|
|
|
|
|
|
{
|
|
|
|
|
|
public partial class ACommonController : NP.Base.BaseController
|
|
|
|
|
|
{
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 기수저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult TermSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Dao.Get<Term>("cm.terms", new Hashtable() { {"tmnonot", vm.Term.tmno },{"tyear", vm.Term.tyear },{"tseq", vm.Term.tseq } }).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(-1);
|
|
|
|
|
|
}
|
|
|
|
|
|
vm.Term.uno = SUserInfo.UserNo;
|
|
|
|
|
|
vm.Term.uip = GetUserIP();
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.term."+ GetIU(vm.Term.tmno), vm.Term));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 과정분류저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cg"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CGSave(CG cg)
|
|
|
|
|
|
{
|
|
|
|
|
|
cg.uno = SUserInfo.UserNo; cg.uip = GetUserIP();
|
|
|
|
|
|
if (cg.isdel == 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
cg.saveflag = "del";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Dao.Get<CG>("cm.cgs", new Hashtable() { { "cgnonot", cg.cgno }, { "cgcode", cg.cgcode } }).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(-1);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cg." + GetIU(cg.cgno), cg));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 과정분류 가져오기
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cgno"></param>
|
|
|
|
|
|
/// <param name="pcgno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CGGet(int cgno = 0, int pcgno = 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (cgno > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(Dao.Get<CG>("cm.cgs", new Hashtable { { "cgno", cgno } }).First());
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (pcgno > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBackList(Dao.Get<CG>("cm.cgs", new Hashtable { { "pcgno", pcgno },{ "isuse",1},{"isdel",0 } }));
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonNoData();
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 과정을 통해 강좌 생성
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cgno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMCreateByCMMaster(int cgno)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBackList(Dao.Get<CM>("cm.datacreatecmbycmmaster", cgno));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 과정,강좌 가져오기
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="ismaster"></param>
|
|
|
|
|
|
/// <param name="iscurrent"></param>
|
|
|
|
|
|
/// <param name="orderby"></param>
|
|
|
|
|
|
/// <param name="cgno"></param>
|
|
|
|
|
|
/// <param name="cname"></param>
|
|
|
|
|
|
/// <param name="notcmnos"></param>
|
|
|
|
|
|
/// <param name="notcmno"></param>
|
|
|
|
|
|
/// <param name="pno"></param>
|
|
|
|
|
|
/// <param name="cshape"></param>
|
|
|
|
|
|
/// <param name="tmno"></param>
|
|
|
|
|
|
/// <param name="cshapes"></param>
|
|
|
|
|
|
/// <param name="isall"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMGet(int? ismaster,int? iscurrent,String orderby, int? cgno, String cname, String notcmnos, int? notcmno, int? pno, int? cshape, int? tmno, String cshapes, int? isall)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBackList(Dao.Get<CM>("cm.cms", new Hashtable { { "tmno", tmno }, { "cshape", cshape },{ "cgno", cgno }, { "isuse"+(isall==1?"x":""), 1 }, { "ismaster" + ((ismaster??0) == 91?"02":""), ismaster},{ "listcolumn",1 }, { "cname", cname },{ "notcmnos", notcmnos==""?null:notcmnos }, { "notcmno", (notcmno ?? 0) < 1 ? (int?)null : notcmno }, { "pagenum", pno }, { "pagerowsize", 10 },{ "cshapes", cshapes }, { "iscurrent", iscurrent }, { "orderby", orderby } }));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// KFCF잔재
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="bkname"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult BookFind(String bkname)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBackList(Dao.Get<Book>("cm.books", new Hashtable { { "isuse", 1 }, { "bknamelike", bkname } }));
|
|
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult NcsFind(int ncsdepth, String ncsname)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBackList(Dao.Get<NCS>("cm.ncses" + ncsdepth, new Hashtable { { "ncsname", ncsname } }));
|
|
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMPRPfee(int userno, String sd)
|
|
|
|
|
|
{
|
|
|
|
|
|
var cmpr = new CMPR() { userno = userno, uno = SUserInfo.UserNo, uip = GetUserIP(), CMPRs = new List<CMPR>() { } };
|
|
|
|
|
|
foreach(var d in sd.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
cmpr.CMPRs.Add(new CMPR() { cmno = GetInt(d.Split(':')[0]), pfee = GetInt(d.Split(':')[1]) });
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmprpfee", cmpr));
|
|
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[ValidateInput(false)]
|
|
|
|
|
|
public JsonResult BookSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.Book.uno = SUserInfo.UserNo; vm.Book.uip = GetUserIP();
|
|
|
|
|
|
if (Request.Files.GetMultiple("fgnothumb").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.Book.fgnothumb = SetFile(Request.Files.GetMultiple("fgnothumb").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), vm.Book.fgnothumb ?? 0, "book", "fgnothumb");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (Request.Files.GetMultiple("fgno").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.Book.fgno = SetFile(Request.Files.GetMultiple("fgno").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), vm.Book.fgno ?? 0, "book", "fgno");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.Book.bkno < 1) { return JsonOK(Dao.Save("cm.bookin", vm.Book)); }
|
|
|
|
|
|
else { return JsonOK(Dao.Save("cm.bookup", vm.Book)); }
|
|
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[ValidateInput(false)]
|
|
|
|
|
|
public JsonResult BookDel(Int64 bkno)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.bookdel", new Hashtable() { {"bkno",bkno } }));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌 저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[ValidateInput(false)]
|
|
|
|
|
|
public JsonResult CMSave(VMCM vm)
|
|
|
|
|
|
{
|
2020-11-16 18:02:46 +09:00
|
|
|
|
vm.CM.outfee = vm.CM.infee; //영남은 비회원가격 없이 회원가격으로 통일 2020-11-16
|
2020-10-12 14:39:23 +09:00
|
|
|
|
if(vm.CM.ismaster == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CM.retime = Convert.ToDateTime(vm.CM.retimeymd + " 23:59:59");
|
|
|
|
|
|
vm.CM.setime = Convert.ToDateTime(vm.CM.setimeymd + " 23:59:59");
|
|
|
|
|
|
vm.CM.getime = Convert.ToDateTime(vm.CM.getimeymd + " 23:59:59");
|
2021-01-19 15:57:17 +09:00
|
|
|
|
if (vm.CM.retimeymd == "2099-12-31")
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CM.sstime = null;
|
|
|
|
|
|
vm.CM.setime = null;
|
2021-01-20 14:59:32 +09:00
|
|
|
|
vm.CM.gstime = null;
|
|
|
|
|
|
vm.CM.getime = null;
|
|
|
|
|
|
vm.CM.rstime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
|
2021-01-19 15:57:17 +09:00
|
|
|
|
}
|
2020-10-12 14:39:23 +09:00
|
|
|
|
}
|
|
|
|
|
|
if (vm.CM.isrefund == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CM.ncsnos = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
int orgcmno = vm.CM.cmno;
|
|
|
|
|
|
vm.CM.uno = SUserInfo.UserNo; vm.CM.uip = GetUserIP();
|
|
|
|
|
|
if (Request.Files.GetMultiple("fgnocm").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CM.fgnocm = SetFile(Request.Files.GetMultiple("fgnocm").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), vm.CM.fgnocm ?? 0, "cm", "fgnocm");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CM.cmno < 1) {
|
|
|
|
|
|
Dao.Insert("cm.cmin", vm.CM);
|
|
|
|
|
|
if (vm.CM.cmno < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
//평가기준 기본등록
|
|
|
|
|
|
Dao.Save("cm.cmev.in", new Hashtable() { { "cmno", vm.CM.cmno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
|
|
|
|
|
//강의실메뉴 기본값 삽입
|
|
|
|
|
|
Dao.Save("cm.cmmenu.in", new Hashtable() { { "cmno", vm.CM.cmno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (Dao.Save("cm.cmup", vm.CM) < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
//담당자, 교재, 선행, 후행, ncs직무저장
|
|
|
|
|
|
if (orgcmno > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
//삭제정리
|
|
|
|
|
|
Dao.Save("cm.data.delete", new Hashtable() { { "cmno", vm.CM.cmno }, { "usernos", vm.CM.usernos }, { "bknos", vm.CM.bknos }, { "rcmnospre", vm.CM.cmnospre }, { "rcmnosnext", vm.CM.cmnosnext }, { "ndnos", vm.CM.ncsnos } });
|
|
|
|
|
|
}
|
|
|
|
|
|
//저장
|
|
|
|
|
|
Dao.Save("cm.data.save", new Hashtable() { { "cmno", vm.CM.cmno }, { "usernos", vm.CM.usernos ?? "0" }, { "bknos", vm.CM.bknos ?? "0" }, { "rcmnospre", vm.CM.cmnospre ?? "0" }, { "rcmnosnext", vm.CM.cmnosnext ?? "0" }, { "ndnos", vm.CM.ncsnos ?? "0" }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } });
|
|
|
|
|
|
if (orgcmno > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
//회차강사 정리
|
|
|
|
|
|
Dao.Save("cm.cminning.profclear", vm.CM.cmno);
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(vm.CM.cmno);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// KFCF잔재
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMPCSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CM.sstime = vm.CM.setime = DateTime.Now;
|
|
|
|
|
|
vm.CM.uno = SUserInfo.UserNo; vm.CM.uip = GetUserIP();
|
|
|
|
|
|
if (vm.CM.cmno < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
Dao.Insert("cm.cmpcin", vm.CM);
|
|
|
|
|
|
if (vm.CM.cmno < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Dao.Save("cm.cmpcup", vm.CM) < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
//결제내역있으면 강좌 추가, 삭제 막기, 설계안에 없지만 나중에 할인가를 변경해야 할 수도 있겠지.
|
|
|
|
|
|
if (Dao.Get<int>("cm.check.cmpcpay", vm.CM.cmno).First() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
//강좌정보 저장
|
|
|
|
|
|
//isnew:cmno:dseq:orginfee:orgoutfee:drate:infee:outfee
|
|
|
|
|
|
vm.CM.cmnos = "";
|
|
|
|
|
|
vm.CM.inquery = "";
|
|
|
|
|
|
vm.CM.upquery = "";
|
|
|
|
|
|
vm.CM.Ds = new List<CM>() { };
|
|
|
|
|
|
foreach (var s in vm.savedata.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
var cm = s.Split(':');
|
|
|
|
|
|
vm.CM.cmnos += "," + cm[1];
|
|
|
|
|
|
if (cm[0] != "1")
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CM.Ds.Add(new CM() { cmno = GetInt(cm[1]), dseq = GetInt(cm[2]), orginfee = GetInt(cm[3]), orgoutfee = GetInt(cm[4]), drate = GetInt(cm[5]), infee = GetInt(cm[6]), outfee = GetInt(cm[7]) });
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
vm.CM.cmnos = vm.CM.cmnos.Substring(1);
|
|
|
|
|
|
vm.CM.inquery = vm.CM.inquery == "" ? null : vm.CM.inquery.Substring(1);
|
|
|
|
|
|
vm.CM.upquery = vm.CM.Ds.Count() > 0 ? "1" : null;
|
|
|
|
|
|
//삭제, 삽입, 수정, 금액롤업
|
|
|
|
|
|
Dao.Save("cm.cmpccm.save", vm.CM);
|
|
|
|
|
|
return JsonOK(vm.CM.cmno);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//강좌정보 저장
|
|
|
|
|
|
//isnew:cmno:dseq:orginfee:orgoutfee:drate:infee:outfee
|
|
|
|
|
|
vm.CM.cmnos = "";
|
|
|
|
|
|
vm.CM.inquery = "";
|
|
|
|
|
|
vm.CM.upquery = "";
|
|
|
|
|
|
vm.CM.Ds = new List<CM>() { };
|
|
|
|
|
|
foreach (var s in vm.savedata.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
var cm = s.Split(':');
|
|
|
|
|
|
vm.CM.cmnos += "," + cm[1];
|
|
|
|
|
|
if (cm[0] == "1")
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CM.inquery += string.Format(",({0},{1},{2},{3},{4},{5},{6},{7},now(),{8},now(),{8},'{9}')", vm.CM.cmno, cm[1], cm[2], cm[3], cm[4], cm[5], cm[6], cm[7],vm.CM.uno, vm.CM.uip);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CM.Ds.Add(new CM() { cmno = GetInt(cm[1]), dseq = GetInt(cm[2]), orginfee = GetInt(cm[3]), orgoutfee = GetInt(cm[4]), drate = GetInt(cm[5]), infee = GetInt(cm[6]), outfee = GetInt(cm[7]) });
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
vm.CM.cmnos = vm.CM.cmnos.Substring(1);
|
|
|
|
|
|
vm.CM.inquery = vm.CM.inquery == "" ? null : vm.CM.inquery.Substring(1);
|
|
|
|
|
|
vm.CM.upquery = vm.CM.Ds.Count() > 0 ? "1" : null;
|
|
|
|
|
|
//삭제, 삽입, 수정, 금액롤업
|
|
|
|
|
|
Dao.Save("cm.cmpccm.save", vm.CM);
|
|
|
|
|
|
return JsonOK(vm.CM.cmno);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌 삭제
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMDel(int cmno)
|
|
|
|
|
|
{
|
|
|
|
|
|
//패키지 등록 현황 확인
|
|
|
|
|
|
if (Dao.Get<int>("cm.check.cmpcpay",cmno ).First() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(new JsonRtn() { code = 1 });
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.del", new Hashtable() { { "cmno", cmno },{"uno",SUserInfo.UserNo },{"uip",GetUserIP() } }));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌회차삭제
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="im"></param>
|
|
|
|
|
|
/// <param name="cmino"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMInningDel(int im, Int64 cmino)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cminning.del" + (im==1?"2":""), cmino));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 교육장교육회차 삭제
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="im"></param>
|
|
|
|
|
|
/// <param name="cmino"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
2020-10-23 17:42:52 +09:00
|
|
|
|
public JsonResult CMInningByScdDel(int im, Int64 cmino)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cminning.del3" + (im == 1 ? "2" : ""), cmino));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 교육일정삭제
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="im"></param>
|
|
|
|
|
|
/// <param name="cmisno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-23 17:42:52 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMInningScdDel(int im, Int64 cmisno)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cminningscd.del" + (im == 1 ? "2" : ""), cmisno));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌 순차학습 저장(0:임의학습,1:순차학습)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmno"></param>
|
|
|
|
|
|
/// <param name="isseq"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-23 17:42:52 +09:00
|
|
|
|
[HttpPost]
|
2020-10-12 14:39:23 +09:00
|
|
|
|
public JsonResult CMSeqSave(int cmno, int isseq)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmseqsave", new Hashtable() { { "cmno", cmno },{ "isseq", isseq }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌회차 가져오기
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmino"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMInningGet(Int64 cmino)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(Dao.Get<CMInning>("cm.cminnings", new Hashtable() { { "cmino", cmino } }).First());
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 교육일정 가져오기
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmino"></param>
|
|
|
|
|
|
/// <param name="cmisno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
2020-10-23 17:42:52 +09:00
|
|
|
|
public JsonResult CMInningScdGet(Int64 cmino ,Int64 cmisno)
|
|
|
|
|
|
{
|
|
|
|
|
|
var data = Dao.Get<CMinningscd>("cm.cminningscds", new Hashtable() { { "cmino", cmino }, { "cmisno", cmisno } }).First();
|
|
|
|
|
|
data.estart2 = data.estart.ToString("yyyy-MM-dd HH:mm");
|
|
|
|
|
|
data.eend2 = data.eend.ToString("yyyy-MM-dd HH:mm");
|
|
|
|
|
|
return JsonBack(data);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌회차저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmi"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-23 17:42:52 +09:00
|
|
|
|
[HttpPost]
|
2020-10-12 14:39:23 +09:00
|
|
|
|
public JsonResult CMInningSave(CMInning cmi)
|
|
|
|
|
|
{
|
|
|
|
|
|
cmi.uno = SUserInfo.UserNo; cmi.uip = GetUserIP();
|
|
|
|
|
|
cmi.week = 1;
|
|
|
|
|
|
int rtn = 0;
|
|
|
|
|
|
if (Request.Files.GetMultiple("filetf").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
cmi.fgnotf = SetFile(Request.Files.GetMultiple("filetf").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), cmi.fgnotf ?? 0, "cminning", "fgnotf");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (cmi.cmino < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
Dao.Insert("cm.cminnings.in", cmi);
|
|
|
|
|
|
rtn = cmi.cmino > 0 ? 1 : 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
rtn = Dao.Save("cm.cminnings." + (cmi.cmino > 0 ? "up" : "in"), cmi);
|
|
|
|
|
|
}
|
2021-11-03 15:19:08 +09:00
|
|
|
|
//집체교육일정,온라인일시
|
|
|
|
|
|
if(cmi.cmino > 0 && cmi.isscd == 1 && cmi.scdtype == 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
Dao.Save("cm.cminningscd.clear", cmi);
|
|
|
|
|
|
Dao.Save("cm.cmev.clear", cmi);
|
|
|
|
|
|
}
|
2020-10-12 14:39:23 +09:00
|
|
|
|
if (cmi.istaste == 1){
|
|
|
|
|
|
Dao.Save("cm.cminnings.istasteclear", cmi);
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(rtn, true);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌교육일정 저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmis"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-23 17:42:52 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMInningScdSave(CMinningscd cmis)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(!string.IsNullOrEmpty(cmis.estart2))
|
|
|
|
|
|
cmis.estart = Convert.ToDateTime(cmis.estart2);
|
|
|
|
|
|
if (!string.IsNullOrEmpty(cmis.eend2))
|
|
|
|
|
|
cmis.eend = Convert.ToDateTime(cmis.eend2);
|
|
|
|
|
|
cmis.uno = SUserInfo.UserNo;
|
|
|
|
|
|
cmis.uip = GetUserIP();
|
|
|
|
|
|
int rtn = 0;
|
|
|
|
|
|
if (cmis.cmisno < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
Dao.Insert("cm.cminningscd.in", cmis);
|
|
|
|
|
|
rtn = cmis.cmisno > 0 ? 1 : 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
rtn = Dao.Save("cm.cminningscd." + (cmis.cmisno > 0 ? "up" : "in"), cmis);
|
2021-11-03 15:19:08 +09:00
|
|
|
|
Dao.Save("cm.cminningscd.up.lect",cmis);
|
2020-10-23 17:42:52 +09:00
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(rtn, true);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 컨텐츠 검색
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmno"></param>
|
|
|
|
|
|
/// <param name="ctname"></param>
|
|
|
|
|
|
/// <param name="pno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult ContentFind(int? cmno, String ctname, int pno)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBackList(Dao.Get<CT>("cm.contents", new Hashtable() { { "cmno", cmno }, { "ctname", ctname }, { "pagenum", pno }, { "pagerowsize", 10 },{"isuse",1 } }));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌평가정보
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmev"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMEVSave(CMEV cmev)
|
|
|
|
|
|
{
|
|
|
|
|
|
cmev.uno = SUserInfo.UserNo; cmev.uip = GetUserIP();
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmevsave", cmev));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌 시험 저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMEXSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CMEX.uip = GetUserIP();
|
|
|
|
|
|
vm.CMEX.uno = SUserInfo.UserNo;
|
|
|
|
|
|
//최종평가는 과정/강좌당 1개만
|
|
|
|
|
|
if (vm.CMEX.extype == 1 && Dao.Get<int>("cm.cmex.extype1count", new Hashtable() { { "cmno", vm.CMEX.cmno }, { "exno", vm.CMEX.exno } }).First() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(new JsonRtn() { code = 1, obj = -1 });
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CMEX.exno > 0 && ExamSaveValid(vm.CMEX.exno) != "")
|
|
|
|
|
|
{
|
|
|
|
|
|
//응시자데이터 존재하므로 일부데이터만 저장
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmex.savetop", vm.CMEX), false);
|
|
|
|
|
|
}
|
|
|
|
|
|
vm.CMEX.cmexqs = new List<CMEXQ>();
|
|
|
|
|
|
vm.CMEX.cmexlayers = new List<CMEXLayer>();
|
|
|
|
|
|
if (vm.CMEX.eqtype == 1 && !string.IsNullOrEmpty(vm.savedata))
|
|
|
|
|
|
{
|
|
|
|
|
|
//임의문항
|
|
|
|
|
|
foreach (String s in vm.savedata.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
var s2 = s.Split(':');
|
|
|
|
|
|
vm.CMEX.cmexlayers.Add(new CMEXLayer() { exno = vm.CMEX.exno, qdiff = GetInt(s2[0])
|
|
|
|
|
|
, cc1 = GetInt(s2[1]), cc2 = GetInt(s2[2]), cc3 = GetInt(s2[3]), cc4 = GetInt(s2[4]), cc5 = GetInt(s2[5]), qcount = GetInt(s2[6]), rpoint = GetInt(s2[7])});
|
|
|
|
|
|
vm.CMEX.tpoint += GetInt(s2[6]) * GetInt(s2[7]);
|
|
|
|
|
|
vm.CMEX.qcount += GetInt(s2[6]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(vm.savedata2))
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var q in vm.savedata2.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
var qi = q.Split(':');
|
|
|
|
|
|
vm.CMEX.cmexqs.Add(new CMEXQ() { eqno = GetInt(qi[0]), qseq = GetInt(qi[1]), qno = GetInt(qi[2]), rpoint = GetInt(qi[3]) });
|
|
|
|
|
|
if (vm.CMEX.eqtype == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CMEX.tpoint += GetInt(qi[3]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CMEX.eqtype == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CMEX.qcount = vm.CMEX.cmexqs.Count();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-12-26 23:11:05 +09:00
|
|
|
|
//2025-12-24 / KHJ / 시험응시 시작일/종료일 모델 바인딩
|
|
|
|
|
|
vm.CMEX.testsdate = vm.stringval18 + " " + vm.stringval19 + ":" + vm.stringval20;
|
|
|
|
|
|
vm.CMEX.testedate = vm.stringval21 + " " + vm.stringval22 + ":" + vm.stringval23;
|
|
|
|
|
|
|
2020-10-12 14:39:23 +09:00
|
|
|
|
return JsonOK(Dao.SaveExam(vm.CMEX), false);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
2025-01-24 15:11:26 +09:00
|
|
|
|
/// 가상번호 extype 1: 진행평가, 2: 최종평가, 11: 과제, 21: 토론, 31: 강사설문, 32: 강의평가
|
2020-10-12 14:39:23 +09:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="extype"></param>
|
|
|
|
|
|
/// <param name="no"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public JsonResult ESTDel(int extype, int no)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (extype == 1 || extype == 2) {if (ExamSaveValid(no) == ""){return JsonOK(Dao.Save("cm.cmex.del", no));}}
|
|
|
|
|
|
else if(extype == 11 || extype == 21){ if (SDSaveValid(no) == "") { return JsonOK(Dao.Save("cm.cmsd.del", no)); } }
|
|
|
|
|
|
else if (extype == 31 || extype == 32){ if (RSSaveValid(no) == "") { return JsonOK(Dao.Save("cm.cmrs.del", no)); } }
|
|
|
|
|
|
return JsonOK(0);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 문제 삭제
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="qnos"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult QuestionDel(String qnos)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.question.del", new Hashtable() { { "qnos", qnos } }), true);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 문제사용여부변경
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="qnos"></param>
|
|
|
|
|
|
/// <param name="flag"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult QuestionChangeUYN(String qnos, int flag)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.question.isusechange", new Hashtable() { { "qnos", qnos }, { "isuse", flag == 8 ? 1 : 0 } }), true);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 문제저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[ValidateInput(false)]
|
|
|
|
|
|
public JsonResult QuestionSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.Question.uip = GetUserIP();
|
|
|
|
|
|
vm.Question.uno = SUserInfo.UserNo;
|
|
|
|
|
|
vm.Question.QIs = new List<QuestionItem>();
|
|
|
|
|
|
if (vm.Question.atype != 2)
|
|
|
|
|
|
{
|
|
|
|
|
|
foreach (var idx in vm.savedata.Split(','))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (vm.Question.atype == 0 || !string.IsNullOrEmpty(Request["qitext2" + idx]))
|
|
|
|
|
|
{
|
|
|
|
|
|
var qi = new QuestionItem() { qino = GetInt(Request["qino" + idx]), fgno = GetLong(Request["qifile" + idx]) < 1 ? (Int64?)null : GetLong(Request["qifile" + idx]), isright = vm.Question.atype == 1 ? 1 : GetInt(Request["chkqi" + idx]), qitext = vm.Question.atype == 0 ? Request["qitext" + idx] : Request["qitext2" + idx] };
|
|
|
|
|
|
if (vm.Question.atype == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Request.Files.GetMultiple("file" + idx).Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
qi.fgno = SetFile(Request.Files.GetMultiple("file" + idx).Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), qi.fgno ?? 0, "questionitem", "fgno");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
vm.Question.rightcount += qi.isright;
|
|
|
|
|
|
vm.Question.QIs.Add(qi);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(Dao.SaveQuestion(vm.Question, 1), false);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌과제저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMSDSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CMSD.uno = SUserInfo.UserNo; vm.CMSD.uip = GetUserIP();
|
|
|
|
|
|
if (Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CMSD.fgno = SetFile(Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), vm.CMSD.fgno ?? 0, "cmsd", "fgno");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CMSD.sdno < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
Dao.Insert("cm.cmsd.in", vm.CMSD);
|
|
|
|
|
|
return JsonOK(vm.CMSD.sdno);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (base.SDSaveValid(vm.CMSD.sdno) == "")
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmsd.up", vm.CMSD));
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmsd.uplock", vm.CMSD));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌설문저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMRSSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CMRS.uno = SUserInfo.UserNo; vm.CMRS.uip = GetUserIP();
|
|
|
|
|
|
if (vm.CMRS.rstype == 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CMRS.rscondition = 0;
|
2025-01-24 15:11:26 +09:00
|
|
|
|
}//강의평가일 때 cmino 저장 안함
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CMRS.cmino = 0;
|
2020-10-12 14:39:23 +09:00
|
|
|
|
}
|
2025-01-24 15:11:26 +09:00
|
|
|
|
|
|
|
|
|
|
//등록일 때
|
2020-10-12 14:39:23 +09:00
|
|
|
|
if (vm.CMRS.rsno < 1)
|
|
|
|
|
|
{
|
2025-01-24 15:11:26 +09:00
|
|
|
|
//설문(강사설문) 일 때 복수 등록 가능
|
|
|
|
|
|
//설문(강의평가)은 1개씩만 등록가능
|
|
|
|
|
|
if (Dao.Get<int>("cm.cmrs.check", new Hashtable() { {"cmno",vm.CMRS.cmno }, { "rsno", vm.CMRS.rsno }, { "rstype", vm.CMRS.rstype } }).First() > 0 && vm.CMRS.rstype != 1)
|
2020-10-12 14:39:23 +09:00
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(0);
|
|
|
|
|
|
}
|
|
|
|
|
|
Dao.Insert("cm.cmrs.in", vm.CMRS);
|
|
|
|
|
|
return JsonOK(vm.CMRS.rsno);
|
|
|
|
|
|
}
|
2025-01-24 15:11:26 +09:00
|
|
|
|
|
|
|
|
|
|
//수정일 때
|
2020-10-12 14:39:23 +09:00
|
|
|
|
if (base.RSSaveValid(vm.CMRS.rsno) == "")
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmrs.up", vm.CMRS));
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmrs.uplock", vm.CMRS));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌메뉴권한 저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMMenuSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CMMenu.uno = SUserInfo.UserNo; vm.CMMenu.uip = GetUserIP();
|
|
|
|
|
|
vm.CMMenu.bmnos = vm.CMMenu.bmnos == "" ? null : vm.CMMenu.bmnos;
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmmenu.up", vm.CMMenu));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 설문저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult RSCSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.RSC.uno = SUserInfo.UserNo; vm.RSC.uip = GetUserIP();
|
|
|
|
|
|
if (!string.IsNullOrEmpty(vm.savedata2))
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.RSC.Ds = new List<RSCQ>() { };
|
|
|
|
|
|
foreach (var q in vm.savedata2.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
var qi = q.Split(':');
|
|
|
|
|
|
vm.RSC.Ds.Add(new RSCQ() { rscqno = GetInt(qi[0]), dseq = GetInt(qi[1]), qno = GetInt(qi[2]) });
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.RSC.rscno < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
Dao.Insert("cm.rsc.in", vm.RSC);
|
|
|
|
|
|
if (vm.RSC.rscno > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
Dao.Save("cm.rscq.in", vm.RSC);
|
|
|
|
|
|
return JsonOK(vm.RSC.rscno);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.RSC.Dsin = vm.RSC.Ds.Where(w => w.rscqno < 1).ToList();
|
|
|
|
|
|
vm.RSC.Dsup = vm.RSC.Ds.Where(w => w.rscqno > 0).ToList();
|
|
|
|
|
|
vm.RSC.QNosin = string.Join(",", vm.RSC.Dsin.Select(s => s.qno));
|
|
|
|
|
|
vm.RSC.QNosup = string.Join(",", vm.RSC.Dsup.Select(s => s.qno));
|
|
|
|
|
|
if ("".Equals(base.RSCSaveValid(vm.RSC.rscno)))
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.rsc.up", vm.RSC));
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.rsc.uplock", vm.RSC));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return Json(0);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌복제(저장)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmno"></param>
|
|
|
|
|
|
/// <param name="cname"></param>
|
|
|
|
|
|
/// <param name="tmno"></param>
|
|
|
|
|
|
/// <param name="nomaster"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMCopy(int cmno, String cname, int? tmno = null, bool nomaster = false)
|
|
|
|
|
|
{
|
|
|
|
|
|
int uno = SUserInfo.UserNo;
|
|
|
|
|
|
String uip = GetUserIP();
|
|
|
|
|
|
//해당 강좌가 회차정보가 존재하는지 확인
|
2022-07-08 09:43:25 +09:00
|
|
|
|
if (nomaster && Dao.Get<CMInning>("cm.cminnings", new System.Collections.Hashtable() { { "cmno", cmno } }).Count < -1 )
|
2020-10-12 14:39:23 +09:00
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(new JsonRtn() { code = 1 });
|
|
|
|
|
|
}
|
|
|
|
|
|
//복제할 대상 중 첨부파일이 있는 데이터 확인하여 파일 복제
|
|
|
|
|
|
var datas = Dao.Get<Data>("cm.cminfile", cmno).ToList();
|
|
|
|
|
|
var dtype = 0;
|
|
|
|
|
|
var intval = 0;
|
|
|
|
|
|
Int64 longval3 = 0;
|
|
|
|
|
|
foreach (var d in datas.Where(w=>w.dtype == 1))
|
|
|
|
|
|
{
|
|
|
|
|
|
var vm = new VMCM() { };
|
|
|
|
|
|
//과제토론첨부파일복제
|
|
|
|
|
|
if (dtype != d.dtype || intval != d.intval)
|
|
|
|
|
|
{
|
|
|
|
|
|
//테이블키(테이블유형 및 테이블키번호가 달라지면 파일그룹번호를 생성한다)
|
|
|
|
|
|
var fg = new NP.Model.File() { tablename = "cmsd", columnname = "fgno", uno = uno, uip = uip };
|
|
|
|
|
|
Dao.Insert<File>("sys.filegroup.insert", fg);
|
|
|
|
|
|
longval3 = d.longval3 = fg.fgno;
|
|
|
|
|
|
dtype = d.dtype;
|
|
|
|
|
|
intval = d.intval;
|
|
|
|
|
|
//파일정보 복사
|
|
|
|
|
|
Dao.Save("sys.file.copy", new Hashtable() { { "ofgno", d.longval }, { "nfgno", d.longval3 }, { "uno", uno }, { "uip", uip },{ "copytype",tmno == null || nomaster ? "copy" : "inherit" } });
|
|
|
|
|
|
}
|
|
|
|
|
|
//파일복제
|
|
|
|
|
|
System.IO.FileInfo fi = new System.IO.FileInfo(Server.MapPath(vm.Files + d.strval));
|
|
|
|
|
|
System.IO.File.Copy(Server.MapPath(vm.Files + d.strval)
|
|
|
|
|
|
, Server.MapPath(vm.Files + d.strval.Substring(0, d.strval.IndexOf('.')) + "_"+ (tmno == null || nomaster ? "copy" : "inherit") + "_" + uno + "_" + longval3 + d.strval.Substring(d.strval.IndexOf('.'))));
|
|
|
|
|
|
}
|
|
|
|
|
|
longval3 = 0;
|
|
|
|
|
|
Int64 longval4 = 0;
|
|
|
|
|
|
foreach (var d in datas.Where(w => w.dtype == 2))
|
|
|
|
|
|
{
|
|
|
|
|
|
var vm = new VMCM() { };
|
|
|
|
|
|
//오프라인학습교안파일복제
|
|
|
|
|
|
if (longval4 != d.longval4)
|
|
|
|
|
|
{
|
|
|
|
|
|
//테이블키(테이블유형 및 테이블키번호가 달라지면 파일그룹번호를 생성한다)
|
|
|
|
|
|
var fg = new NP.Model.File() { tablename = "cminning", columnname = "fgnotf", uno = uno, uip = uip };
|
|
|
|
|
|
Dao.Insert<File>("sys.filegroup.insert", fg);
|
|
|
|
|
|
longval3 = d.longval3 = fg.fgno;
|
|
|
|
|
|
longval4 = d.longval4;
|
|
|
|
|
|
//파일정보 복사
|
|
|
|
|
|
Dao.Save("sys.file.copy", new Hashtable() { { "ofgno", d.longval }, { "nfgno", d.longval3 }, { "uno", uno }, { "uip", uip }, { "copytype", tmno == null || nomaster ? "copy" : "inherit" } });
|
|
|
|
|
|
}
|
|
|
|
|
|
//파일복제
|
|
|
|
|
|
System.IO.FileInfo fi = new System.IO.FileInfo(Server.MapPath(vm.Files + d.strval));
|
|
|
|
|
|
System.IO.File.Copy(Server.MapPath(vm.Files + d.strval)
|
|
|
|
|
|
, Server.MapPath(vm.Files + d.strval.Substring(0, d.strval.IndexOf('.')) + "_" + (tmno == null || nomaster ? "copy" : "inherit") + "_" + uno + "_" + longval3 + d.strval.Substring(d.strval.IndexOf('.'))));
|
|
|
|
|
|
}
|
|
|
|
|
|
longval3 = 0;
|
|
|
|
|
|
longval4 = 0;
|
|
|
|
|
|
foreach (var d in datas.Where(w => w.dtype == 3))
|
|
|
|
|
|
{
|
|
|
|
|
|
var vm = new VMCM() { };
|
|
|
|
|
|
//강좌첨부파일복제
|
|
|
|
|
|
if (longval4 != d.longval)
|
|
|
|
|
|
{
|
|
|
|
|
|
//테이블키(테이블유형 및 테이블키번호가 달라지면 파일그룹번호를 생성한다)
|
|
|
|
|
|
var fg = new NP.Model.File() { tablename = "cm", columnname = "fgnocm", uno = uno, uip = uip };
|
|
|
|
|
|
Dao.Insert<File>("sys.filegroup.insert", fg);
|
|
|
|
|
|
longval3 = d.longval3 = fg.fgno;
|
|
|
|
|
|
longval4 = d.longval;
|
|
|
|
|
|
//파일정보 복사
|
|
|
|
|
|
Dao.Save("sys.file.copy", new Hashtable() { { "ofgno", d.longval }, { "nfgno", d.longval3 }, { "uno", uno }, { "uip", uip }, { "copytype", tmno == null || nomaster ? "copy" : "inherit" } });
|
|
|
|
|
|
}
|
|
|
|
|
|
//파일복제
|
|
|
|
|
|
System.IO.FileInfo fi = new System.IO.FileInfo(Server.MapPath(vm.Files + d.strval));
|
|
|
|
|
|
System.IO.File.Copy(Server.MapPath(vm.Files + d.strval)
|
|
|
|
|
|
, Server.MapPath(vm.Files + d.strval.Substring(0, d.strval.IndexOf('.')) + "_" + (tmno == null || nomaster ? "copy" : "inherit") + "_" + uno + "_" + longval3 + d.strval.Substring(d.strval.IndexOf('.'))));
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(Dao.CMCopy(cmno,uno,uip,datas, tmno == null?1:0, tmno, cname));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// KFCF잔재
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmno"></param>
|
|
|
|
|
|
/// <param name="check"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMCheck(int cmno, String check)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (check)
|
|
|
|
|
|
{
|
|
|
|
|
|
case "cmpcpay":
|
|
|
|
|
|
//패키지 등록 현황 확인
|
|
|
|
|
|
if (Dao.Get<int>("cm.check.cmpcpay", cmno).First() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(new JsonRtn() { code = 1 });
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(new JsonRtn() { code = 1000, obj = Dao.Get<int>("cm.check.cmpcpay",new Hashtable() { {"cmno",cmno } } ).First() });
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(0);
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 컨텐츠페이지 삭제
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="ctno"></param>
|
|
|
|
|
|
/// <param name="cpno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CTPDel(int ctno, int cpno)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.ctpdel", new Hashtable() { { "ctno", ctno }, { "cpno", cpno }, { "uno", SUserInfo.UserNo}, {"uip", GetUserIP() } }));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 컨텐츠 저장
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
[ValidateInput(false)]
|
|
|
|
|
|
public JsonResult CTSave(VMCM vm)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.uno = SUserInfo.UserNo; vm.CT.uip = GetUserIP();
|
|
|
|
|
|
if (!string.IsNullOrEmpty(vm.CT.ccode))
|
|
|
|
|
|
{
|
|
|
|
|
|
if (Dao.Get<Data>("cm.check.ctccode", new Hashtable() { { "ctnonot" + (vm.CT.ctno > 0 ? "" : "x"), vm.CT.ctno }, { "ccode", vm.CT.ccode } }).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(new JsonRtn() { code = 1, obj = -9 });
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CT.ctype < 2 && Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if ((vm.CT.fgno ?? 0) > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
//기존등록된 콘텐츠파일 삭제
|
|
|
|
|
|
Dao.Save("sys.file.del2", new Hashtable() { { "fgno", vm.CT.fgno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() }, { "isadmin", SUserInfo.IsAdmin ? 1 : 0 } });
|
|
|
|
|
|
}
|
|
|
|
|
|
vm.CT.fgno = SetFile(Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), vm.CT.fgno ?? 0, "ct", "fgno", 1, "XX", true);
|
|
|
|
|
|
//콘텐츠파일이 업로드되었는데 수정모드라면 기존 폴더이름을 현재폴더이름 + 현재시간초 로 변경
|
|
|
|
|
|
/* /Contents스토리지폴더/콘텐츠코드/* */
|
|
|
|
|
|
if (!string.IsNullOrEmpty(vm.CT.ccode))
|
|
|
|
|
|
{
|
|
|
|
|
|
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Server.MapPath(vm.Contents+"/" + vm.CT.ccode));
|
|
|
|
|
|
if (di.Exists)
|
|
|
|
|
|
{
|
|
|
|
|
|
di.MoveTo(Server.MapPath(vm.Contents+"/" + vm.CT.ccode + "_backup_" + DateTime.Now.ToString("yyyyMMddHHmmss")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!System.IO.Directory.Exists(Server.MapPath(vm.Contents+"/" + vm.CT.ccode)))
|
|
|
|
|
|
{
|
|
|
|
|
|
System.IO.Directory.CreateDirectory(Server.MapPath(vm.Contents+"/" + vm.CT.ccode));
|
|
|
|
|
|
}
|
2025-04-03 13:57:19 +09:00
|
|
|
|
|
2020-10-12 14:39:23 +09:00
|
|
|
|
if (Request.Files.GetMultiple("file").First().FileName.Split('.').Last().ToUpper() == "ZIP")
|
|
|
|
|
|
{
|
|
|
|
|
|
//압축해제
|
|
|
|
|
|
var zf = GetFiles(vm.CT.fgno.Value);
|
|
|
|
|
|
Helpers.UnZipFiles(Server.MapPath(vm.Contents + zf.First().fileurl), Server.MapPath(vm.Contents + "/" + vm.CT.ccode));
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
Request.Files.GetMultiple("file").First().SaveAs(Server.MapPath(vm.Contents+"/" + vm.CT.ccode + "/" + Request.Files.GetMultiple("file").First().FileName.Split('\\').Last()));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CT.ctype == 0 && Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.isoversize2 = 0;
|
|
|
|
|
|
if (Request.Files.GetMultiple("file").Where(w => !string.IsNullOrEmpty(w.FileName)).First().ContentLength > 50000000)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.isoversize = 1;
|
|
|
|
|
|
vm.CT.isoversize2 = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (Request.Files.GetMultiple("filetf").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.fgnotf = SetFile(Request.Files.GetMultiple("filetf").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), vm.CT.fgnotf ?? 0, "ct", "fgnotf");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (Request.Files.GetMultiple("filethumb").Where(w => !string.IsNullOrEmpty(w.FileName)).Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.fgnothumb = SetFile(Request.Files.GetMultiple("filethumb").Where(w => !string.IsNullOrEmpty(w.FileName)).ToList(), vm.CT.fgnothumb ?? 0, "ct", "fgnothumb");
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CT.ctno < 1)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.Ds = new List<CTPage>() { };
|
|
|
|
|
|
Dao.Insert("cm.ct.in", vm.CT);
|
|
|
|
|
|
int i = 1;
|
|
|
|
|
|
vm.CT.inquery = "";
|
|
|
|
|
|
foreach(var s in vm.savedata.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
var sv = s.Split(':');
|
|
|
|
|
|
vm.CT.inquery += ",(" + vm.CT.ctno + "," + (i++) + ",'" + sv[1].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";") +
|
|
|
|
|
|
"','" + sv[2].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";") +
|
|
|
|
|
|
"','" + sv[3].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";") + "',0,now()," + vm.CT.uno + ",now()," + vm.CT.uno + ",'" + vm.CT.uip + "')";
|
|
|
|
|
|
}
|
|
|
|
|
|
vm.CT.inquery = vm.CT.inquery.Substring(1);
|
|
|
|
|
|
Dao.Save("cm.ctpage.in2", vm.CT);
|
|
|
|
|
|
return JsonOK(vm.CT.ctno);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
Dao.Save("cm.ct.up", vm.CT);
|
|
|
|
|
|
vm.CT.Ds = new List<CTPage>() { };
|
|
|
|
|
|
int i = 1;
|
|
|
|
|
|
//매핑된 과정/강좌 있을 경우 페이지 추가 막는다
|
|
|
|
|
|
if (Dao.Get<int>("cm.ct.checkcmi", vm.CT.ctno).First() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.inquery = "";
|
|
|
|
|
|
foreach (var s in vm.savedata.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
var sv = s.Split(':');
|
|
|
|
|
|
if (sv[0] != "0")
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.Ds.Add(new CTPage()
|
|
|
|
|
|
{
|
|
|
|
|
|
cpno = GetInt(sv[0]),
|
|
|
|
|
|
pseq = i++,
|
|
|
|
|
|
cpname = sv[1].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";"),
|
|
|
|
|
|
srcp = sv[2].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";"),
|
|
|
|
|
|
srcm = sv[3].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";")
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Dao.Save("cm.ctp.up", vm.CT);
|
|
|
|
|
|
return JsonBack(new JsonRtn() { code = 1000, obj = 999 });
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.inquery = "";
|
|
|
|
|
|
foreach (var s in vm.savedata.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
var sv = s.Split(':');
|
|
|
|
|
|
if (sv[0] == "0")
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.inquery += ",(" + vm.CT.ctno + "," + (i++) + ",'" + sv[1].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";") +
|
|
|
|
|
|
"','" + sv[2].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";") +
|
|
|
|
|
|
"','" + sv[3].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";") + "',0,now()," + vm.CT.uno + ",now()," + vm.CT.uno + ",'" + vm.CT.uip + "')";
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.Ds.Add(new CTPage()
|
|
|
|
|
|
{
|
|
|
|
|
|
cpno = GetInt(sv[0]),
|
|
|
|
|
|
pseq = i++,
|
|
|
|
|
|
cpname = sv[1].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";"),
|
|
|
|
|
|
srcp = sv[2].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";"),
|
|
|
|
|
|
srcm = sv[3].Replace("nptechseconddeveloperphd", ":").Replace("nptechdeveloperphd", ";")
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CT.inquery != "")
|
|
|
|
|
|
{
|
|
|
|
|
|
vm.CT.inquery = vm.CT.inquery.Substring(1);
|
|
|
|
|
|
Dao.Save("cm.ctpage.in2", vm.CT);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CT.Ds.Count() > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
Dao.Save("cm.ctp.up", vm.CT);
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonOK(vm.CT.ctno);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-04-03 13:57:19 +09:00
|
|
|
|
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 컨텐츠 삭제
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="ctno"></param>
|
|
|
|
|
|
/// <param name="ctnos"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CTDel(int ctno = 0, String ctnos = "")
|
|
|
|
|
|
{
|
|
|
|
|
|
if (ctno > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.ct.del", new Hashtable() { { "ctno", ctno }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.ct.del2", new Hashtable() { { "ctnos", ctnos }, { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() } }));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강의실게시판 강좌목록
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="tmno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMGetForBoard(int tmno)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (SUserInfo.IsTeacher)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(Dao.Get<CM>("cm.mycms", new Hashtable() { { "tmno", tmno }, { "userno", SUserInfo.UserNo } }));
|
|
|
|
|
|
}
|
|
|
|
|
|
return JsonBack(Dao.Get<CM>("cm.cms", new System.Collections.Hashtable() { { "tmno", tmno }, { "ismaster", 0 }, { "orderby", "d.cname,d.classno" } }));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 게시판목록
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult BMGetForBoard(int cmno)
|
|
|
|
|
|
{
|
|
|
|
|
|
CMMenu cmmenu = Dao.Get<CMMenu>("cm.cmmenus", new System.Collections.Hashtable() { { "cmno", cmno } }).First();
|
|
|
|
|
|
return JsonBack(Dao.Get<BoardMaster>("board.bms", new System.Collections.Hashtable() { { "bmposition", 1 },{"bmnos",cmmenu.bmnos } }));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// KFCF잔재
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMCalc(String data)
|
|
|
|
|
|
{
|
|
|
|
|
|
var sd = new Hashtable() { { "uno", SUserInfo.UserNo }, { "uip", GetUserIP() }, { "Ds", new List<CMCalc>() { } } };
|
|
|
|
|
|
var ds = new List<CMCalc>() { };
|
|
|
|
|
|
foreach(var s in data.Split(';'))
|
|
|
|
|
|
{
|
|
|
|
|
|
var v = s.Split(':');
|
|
|
|
|
|
ds.Add(new CMCalc()
|
|
|
|
|
|
{
|
|
|
|
|
|
cmno = GetInt(v[0]),
|
|
|
|
|
|
infee = GetInt(v[1]),
|
|
|
|
|
|
outfee = GetInt(v[2]),
|
|
|
|
|
|
feeloc = GetInt(v[3]),
|
|
|
|
|
|
feebkpr = GetInt(v[4]),
|
|
|
|
|
|
feebrt = GetInt(v[5]),
|
|
|
|
|
|
feemat = GetInt(v[6]),
|
|
|
|
|
|
feefoo = GetInt(v[7]),
|
|
|
|
|
|
feeetc = GetInt(v[8]),
|
|
|
|
|
|
prtcnt = GetInt(v[9])
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
sd["Ds"] = ds;
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmcalc", sd));
|
|
|
|
|
|
}
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CheckCmCalc(int cmno)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(new JsonRtn() { code = 1000 ,obj = Dao.Get<CMCalc>("cm.cmcalc.print", cmno)});
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌패키지 가져오기
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="pcno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMPCGet(int pcno)
|
|
|
|
|
|
{
|
|
|
|
|
|
return JsonBack(Dao.Get<CM>("cm.pcms", new System.Collections.Hashtable() { { "pcno", pcno } }));
|
|
|
|
|
|
}
|
2021-12-03 13:12:19 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 문제가져오기
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="qno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2020-10-12 14:39:23 +09:00
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult QuestionGet(int qno)
|
|
|
|
|
|
{
|
|
|
|
|
|
var rtn = new Hashtable() { };
|
|
|
|
|
|
rtn.Add("q", Dao.Get<Question>("cm.questions", new Hashtable() { { "qno", qno } }).First());
|
|
|
|
|
|
rtn.Add("qis", Dao.Get<QuestionItem>("cm.questionitems", new Hashtable() { { "qno", qno } }));
|
|
|
|
|
|
return JsonBack(rtn);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-26 23:11:05 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌설정 > 시험설정 > 시험목록
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="cmno"></param>
|
|
|
|
|
|
/// <param name="ctname"></param>
|
|
|
|
|
|
/// <param name="pno"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult ExamList(VMCM vm) {
|
|
|
|
|
|
var p = new Hashtable();
|
|
|
|
|
|
|
|
|
|
|
|
p.Clear();
|
|
|
|
|
|
p.Add("cmno", vm.CM.cmno);
|
|
|
|
|
|
p.Add("estart", vm.CM.estart);
|
|
|
|
|
|
p.Add("eend", vm.CM.eend);
|
|
|
|
|
|
p.Add("instructors", vm.CM.instructors);
|
|
|
|
|
|
vm.ESTs = Dao.Get<EST>("cm.exlist", p);
|
|
|
|
|
|
|
|
|
|
|
|
return JsonBackList(vm.ESTs);
|
|
|
|
|
|
}
|
2020-10-12 14:39:23 +09:00
|
|
|
|
|
2025-12-26 23:11:05 +09:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 강좌 시험 저장 - 2025-12-26 / KHJ / 혹시 몰라서 최종평가(시험설정) 저장 로직을 따로 만들었음..ㅡㅡ
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="vm"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
|
public JsonResult CMEXSave2025(VMCM vm) {
|
|
|
|
|
|
vm.CMEX.uip = GetUserIP();
|
|
|
|
|
|
vm.CMEX.uno = SUserInfo.UserNo;
|
|
|
|
|
|
//최종평가는 과정/강좌당 1개만
|
|
|
|
|
|
//if (vm.CMEX.extype == 1 && Dao.Get<int>("cm.cmex.extype1count", new Hashtable() { { "cmno", vm.CMEX.cmno }, { "exno", vm.CMEX.exno } }).First() > 0) {
|
|
|
|
|
|
// return JsonBack(new JsonRtn() { code = 1, obj = -1 });
|
|
|
|
|
|
//}
|
|
|
|
|
|
if (vm.CMEX.exno > 0 && ExamSaveValid(vm.CMEX.exno) != "") {
|
|
|
|
|
|
//응시자데이터 존재하므로 일부데이터만 저장
|
|
|
|
|
|
return JsonOK(Dao.Save("cm.cmex.savetop", vm.CMEX), false);
|
|
|
|
|
|
}
|
|
|
|
|
|
vm.CMEX.cmexqs = new List<CMEXQ>();
|
|
|
|
|
|
vm.CMEX.cmexlayers = new List<CMEXLayer>();
|
|
|
|
|
|
if (vm.CMEX.eqtype == 1 && !string.IsNullOrEmpty(vm.savedata)) {
|
|
|
|
|
|
//임의문항
|
|
|
|
|
|
foreach (String s in vm.savedata.Split(';')) {
|
|
|
|
|
|
var s2 = s.Split(':');
|
|
|
|
|
|
vm.CMEX.cmexlayers.Add(new CMEXLayer() {
|
|
|
|
|
|
exno = vm.CMEX.exno,
|
|
|
|
|
|
qdiff = GetInt(s2[0])
|
|
|
|
|
|
,
|
|
|
|
|
|
cc1 = GetInt(s2[1]),
|
|
|
|
|
|
cc2 = GetInt(s2[2]),
|
|
|
|
|
|
cc3 = GetInt(s2[3]),
|
|
|
|
|
|
cc4 = GetInt(s2[4]),
|
|
|
|
|
|
cc5 = GetInt(s2[5]),
|
|
|
|
|
|
qcount = GetInt(s2[6]),
|
|
|
|
|
|
rpoint = GetInt(s2[7])
|
|
|
|
|
|
});
|
|
|
|
|
|
vm.CMEX.tpoint += GetInt(s2[6]) * GetInt(s2[7]);
|
|
|
|
|
|
vm.CMEX.qcount += GetInt(s2[6]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(vm.savedata2)) {
|
|
|
|
|
|
foreach (var q in vm.savedata2.Split(';')) {
|
|
|
|
|
|
var qi = q.Split(':');
|
|
|
|
|
|
vm.CMEX.cmexqs.Add(new CMEXQ() { eqno = GetInt(qi[0]), qseq = GetInt(qi[1]), qno = GetInt(qi[2]), rpoint = GetInt(qi[3]) });
|
|
|
|
|
|
if (vm.CMEX.eqtype == 0) {
|
|
|
|
|
|
vm.CMEX.tpoint += GetInt(qi[3]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (vm.CMEX.eqtype == 0) {
|
|
|
|
|
|
vm.CMEX.qcount = vm.CMEX.cmexqs.Count();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//2025-12-24 / KHJ / 시험응시 시작일/종료일 모델 바인딩
|
|
|
|
|
|
vm.CMEX.testsdate = vm.stringval18 + " " + vm.stringval19 + ":" + vm.stringval20;
|
|
|
|
|
|
vm.CMEX.testedate = vm.stringval21 + " " + vm.stringval22 + ":" + vm.stringval23;
|
|
|
|
|
|
|
|
|
|
|
|
return JsonOK(Dao.SaveExam(vm.CMEX), false);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2020-10-12 14:39:23 +09:00
|
|
|
|
}
|