<이슈처리 - 성적처리(전체)_진도율 팝업>

1. 진도율 클릭 > 개인별 출결 이력

 1) 운영에서 속도저하로 인한 404 오류

2. FO 로컬 설정 변경

# 해결방안

1. 출결 이력에서 불필요 쿼리 (lect.pagelogs) 조회 제거

# 커밋 파일
BO\Controllers\croomController.cs
BO\Views\croom/atts.cshtml
Dao\Mybatis\Maps\Lect.xml
FO\FO.csproj

# 테스트 결과
- 이상없음

# 특이사항 및 이슈사항
- 이상없음
This commit is contained in:
swpark 2022-01-13 05:04:48 +00:00
parent 397eef9e2f
commit 59c13bcbe4
3 changed files with 85 additions and 113 deletions

View File

@ -759,24 +759,13 @@ namespace NP.BO.Controllers
public ActionResult atts(VMLect vm) public ActionResult atts(VMLect vm)
{ {
vm.pagerowcount = 10; // 한 페이지에 보이는 로우 수
var ht = SetHash(vm);
vm.Lect = Dao.Get<Lect>("lect.lects", new System.Collections.Hashtable() { { "lectno", vm.longval } }).First(); vm.Lect = Dao.Get<Lect>("lect.lects", new System.Collections.Hashtable() { { "lectno", vm.longval } }).First();
vm.LectInningPages = Dao.Get<LectInningPage>("lect.lectinningpages", new System.Collections.Hashtable() { { "lectno", vm.Lect.lectno },{"isscd", 0} });
ht.Add("lectno", vm.Lect.lectno);
ht.Add("isscd", 0);
//vm.LectInningPages = Dao.Get<LectInningPage>("lect.lectinningpages", new System.Collections.Hashtable() { { "lectno", vm.Lect.lectno },{"isscd", 0} });
vm.LectInningPages = Dao.Get<LectInningPage>("lect.lectinningpages", ht);
vm.pagetotalcount = GetCount(vm.LectInningPages.FirstOrDefault());
// [이슈_602 / 박상완] 활동이력 탭에서 '검색' 시 데이터 로드 할 수 있도록 변경 // [이슈_602 / 박상완] 활동이력 탭에서 '검색' 시 데이터 로드 할 수 있도록 변경
// 파라미터 userno 를 -1으로 변경 // 파라미터 userno 를 -1으로 변경
vm.PageLogs = Dao.Get<PageLog>("lect.pagelogs", new System.Collections.Hashtable() { { "start", vm.Lect.sstime }, { "end", vm.Lect.setime.Value.ToString("yyyy-MM-dd 23:59:59") }, { "userno", -1 }, { "logsite", 1 } }); // [이슈 404 오류] 첫 페이지 조회시 쿼리문 조회 불필요
//vm.PageLogs = Dao.Get<PageLog>("lect.pagelogs", new System.Collections.Hashtable() { { "start", vm.Lect.sstime }, { "end", vm.Lect.setime.Value.ToString("yyyy-MM-dd 23:59:59") }, { "userno", -1 }, { "logsite", 1 } });
// [이슈_602 / 박상완] YYYY-MM-DD 로 검색하는 부분을 조회일 하루로 기본값 부탁드립니다. 예) 오늘 조회 시 : 2021-12-27 ~ 2021-12-27 // [이슈_602 / 박상완] YYYY-MM-DD 로 검색하는 부분을 조회일 하루로 기본값 부탁드립니다. 예) 오늘 조회 시 : 2021-12-27 ~ 2021-12-27
vm.Lect.sstime = DateTime.Now; // (검색) 시작일 - 현재시간 vm.Lect.sstime = DateTime.Now; // (검색) 시작일 - 현재시간

View File

@ -2,7 +2,7 @@
@{ Layout = "~/Views/Shared/_PopupLayout.cshtml";} @{ Layout = "~/Views/Shared/_PopupLayout.cshtml";}
<ul class="pagination pagination-md"> <ul class="pagination pagination-md">
<li class="active"><a href="#" onclick="gotab(0);" data-toggle="tab">출결이력</a></li> <li class="active"><a href="#" onclick="gotab(0);" data-toggle="tab">출결이력</a></li>
<li><a href="#" onclick="gotab(1);" data-toggle="tab">활동이력</a></li> <li style="display:none;"><a href="#" onclick="gotab(1);" data-toggle="tab">활동이력</a></li>
</ul> </ul>
<table class="regtable" style="margin-top: 0;"> <table class="regtable" style="margin-top: 0;">
<colgroup><col width="100" /><col width="300" /><col width="100" /><col /></colgroup> <colgroup><col width="100" /><col width="300" /><col width="100" /><col /></colgroup>
@ -26,8 +26,8 @@
</tr> </tr>
</thead> </thead>
<tbody class="data" id="tbody1"> <tbody class="data" id="tbody1">
@foreach (var iseq in Model.LectInningPages.Select(s => s.iseq).Distinct()) @foreach(var iseq in Model.LectInningPages.Select(s=>s.iseq).Distinct())
{ {
var inning = Model.LectInningPages.Where(w => w.iseq == iseq).First(); var inning = Model.LectInningPages.Where(w => w.iseq == iseq).First();
<tr data-cmino="@inning.cmino" data-cpno="@inning.cpno"> <tr data-cmino="@inning.cmino" data-cpno="@inning.cpno">
<td>@inning.iseq</td> <td>@inning.iseq</td>
@ -35,19 +35,19 @@
<td>@inning.ititle</td> <td>@inning.ititle</td>
<td>@inning.atimename</td> <td>@inning.atimename</td>
<td class="@(inning.isonline==1 && inning.istatus != null ?"link":"") text-center"> <td class="@(inning.isonline==1 && inning.istatus != null ?"link":"") text-center">
@if (inning.isonline == 1 && inning.istatus != null@*&& inning.cpno > 0*@) @if (inning.isonline == 1 && inning.istatus != null @*&& inning.cpno > 0*@)
{ {
<a href="#" onclick="viewpage(@inning.cmino, this)">@inning.litotstudymin 분 <i class="fa fa-level-down"></i></a> <a href="#" onclick="viewpage(@inning.cmino, this)">@inning.litotstudymin 분 <i class="fa fa-level-down"></i></a>
} }
else else
{ {
@:- @:-
} }
</td> </td>
<td>@inning.listimeymdhms<br />@string.Format("({0}|{1})", inning.liispcsname, inning.lisips)</td> <td>@inning.listimeymdhms<br />@string.Format("({0}|{1})", inning.liispcsname, inning.lisips)</td>
<td>@inning.lietimeymdhms<br />@string.Format("({0})", inning.lieips)</td> <td>@inning.lietimeymdhms<br />@string.Format("({0})", inning.lieips)</td>
<td> <td>
@if (inning.isonline == 1 && ((inning.istatus == 0 || inning.istatus == 1) || (inning.istatus == 2 && inning.statustime != null))) @if (inning.isonline == 1 && ((inning.istatus == 0 || inning.istatus == 1) || (inning.istatus==2 && inning.statustime != null)))
{ {
<a href="#" class="link" style="color: #0094ff; text-decoration: underline;" onclick="viewabs(@inning.lectno, @inning.cmino, @inning.istatus, '@inning.statususername', '@inning.statususerid', '@inning.statustimename', '@((inning.statusreason??"").Replace("\n","newline"))')">@inning.istatusname</a> <a href="#" class="link" style="color: #0094ff; text-decoration: underline;" onclick="viewabs(@inning.lectno, @inning.cmino, @inning.istatus, '@inning.statususername', '@inning.statususerid', '@inning.statustimename', '@((inning.statusreason??"").Replace("\n","newline"))')">@inning.istatusname</a>
} }
@ -57,7 +57,6 @@ else
} }
</td> </td>
</tr> </tr>
if (inning.isonline == 1 && inning.istatus != null/* && inning.cpno > 0*/) if (inning.isonline == 1 && inning.istatus != null/* && inning.cpno > 0*/)
{ {
var innings = Model.LectInningPages.Where(w => w.iseq == iseq); var innings = Model.LectInningPages.Where(w => w.iseq == iseq);
@ -90,13 +89,10 @@ else
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
} }
} }
</tbody> </tbody>
</table> </table>
</div> </div>
<form id="mform" method="post">
@Html.Pager((int)Model.pagenum, 10, Model.pagerowcount, Model.pagetotalcount)
</form>
</section> </section>
</div> </div>
<div id="tab1" style="display: none;"> <div id="tab1" style="display: none;">
@ -117,14 +113,7 @@ else
</tr> </tr>
</thead> </thead>
<tbody id="tbody2"> <tbody id="tbody2">
@foreach(var d in Model.PageLogs)
{
<tr>
<td>@d.cdtymdhm</td>
<td>@d.uip</td>
<td class="text-left">@d.loginfo</td>
</tr>
}
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -759,16 +759,12 @@
order by u.username order by u.username
</select> </select>
<select id="lect.lectinningpages" parameterClass="hashtable" resultClass="lectinningpage"> <select id="lect.lectinningpages" parameterClass="hashtable" resultClass="lectinningpage">
select *
from (
select a.lectno,b.cmino,d.logno,f.sstime,f.setime select a.lectno,b.cmino,d.logno,f.sstime,f.setime
,b.iseq,b.isonline,b.ititle,b.atime ,b.iseq,b.isonline,b.ititle,b.atime
,c.istatus,c.totstudy litotstudy,c.stime listime,c.etime lietime,c.sip lisip,c.eip lieip,c.ispcs liispcs,c.ispce liispce ,c.istatus,c.totstudy litotstudy,c.stime listime,c.etime lietime,c.sip lisip,c.eip lieip,c.ispcs liispcs,c.ispce liispce
,c.statustime,c.statusreason,c.statususerno,cu.username statususername,cu.userid statususerid ,c.statustime,c.statusreason,c.statususerno,cu.username statususername,cu.userid statususerid
,d.totstudy,d.stime,d.etime,d.sip,d.eip,d.ispc,d.ispc ispcs,d.webkitinfo ,d.totstudy,d.stime,d.etime,d.sip,d.eip,d.ispc,d.ispc ispcs,d.webkitinfo
,e.pseq,e.cpno ,e.pseq,e.cpno
,row_number() over(order by <isNotNull property="orderby">$orderby$</isNotNull><isNull property="orderby">b.iseq,d.stime</isNull>) rno
,count(b.cmino) over() pagetotalcount
from lect a from lect a
inner join cminning b on b.cmno=a.cmno inner join cminning b on b.cmno=a.cmno
inner join cm f on f.cmno=a.cmno inner join cm f on f.cmno=a.cmno
@ -782,10 +778,8 @@
<isNotNull property="isscd" prepend="and">ifnull(b.isscd,0)=#isscd#</isNotNull> <isNotNull property="isscd" prepend="and">ifnull(b.isscd,0)=#isscd#</isNotNull>
</dynamic> </dynamic>
order by b.iseq,d.stime order by b.iseq,d.stime
) gp
<include refid="sql.pagedynamic"></include>
order by gp.rno
</select> </select>
<select id="lect.pagelogs" parameterClass="hashtable" resultClass="pagelog"> <select id="lect.pagelogs" parameterClass="hashtable" resultClass="pagelog">
select a.cdt,a.uip,b.pagename,a.loginfo select a.cdt,a.uip,b.pagename,a.loginfo
from pagelog a from pagelog a