mybatis join 관련한 기능 추가

This commit is contained in:
Suh
2024-01-09 13:08:26 +09:00
parent 97d48eaf95
commit b82403d064
9 changed files with 516 additions and 92 deletions

View File

@@ -3,7 +3,62 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTO Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.no1.wms.authority.AuthorityMapper">
<resultMap id="authorityResultMap" type="AuthorityDto">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="account" property="account"/>
<result column="authority" property="authority"/>
<result column="product_category" property="productCategory"/>
<result column="product" property="product"/>
<result column="prices" property="prices"/>
<result column="vendor" property="vendor"/>
<result column="warehouse" property="warehouse"/>
<result column="stock" property="stock"/>
<result column="plan_in" property="planIn"/>
<result column="product_in" property="productIn"/>
<result column="product_out" property="productOut"/>
<result column="board" property="board"/>
<result column="activation" property="activation"/>
<result column="is_group_authority" property="isGroupAuthority"/>
<association property="accountDto" javaType="AccountDto">
<id column="personal_authority_id" property="personalAuthorityId" />
<result column="employee_number" property="employeeNumber" />
<result column="acc_name" property="name" />
</association>
</resultMap>
<select id="selectById" resultType="AuthorityDto">
SELECT * FROM authority WHERE id = #{id}
</select>
<select id="selectAll" resultMap="authorityResultMap" parameterType="map">
SELECT
auth.id, auth.name, auth.account, auth.authority, auth.product_category, auth.product,
auth.prices, auth.vendor, auth.warehouse, auth.stock, auth.plan_in, auth.product_in,
auth.product_out, auth.board, auth.activation, auth.is_group_authority,
acc.employee_number, acc.name acc_name
from authority auth left join account acc on acc.personal_authority_id = auth.id
where auth.name like concat('%',#{search},'%')
order by auth.activation desc, auth.id desc limit #{start}, #{perPage}
</select>
<select id="selectByName" resultType="int">
SELECT count(name) FROM authority WHERE name = #{name}
</select>
<insert id="insert" parameterType="AuthorityDto">
insert into authority
(
id, name, account, authority, product_category,
product, prices, vendor, warehouse, stock, plan_in,
product_in, product_out, board, activation, is_group_authority)
VALUES (
UUID(), #{name}, #{account},
#{authority}, #{productCategory},
#{product},#{prices},#{vendor},
#{warehouse},#{stock}, #{planIn},
#{productIn},#{productOut},#{board},
#{activation}, #{isGroupAuthority}
)
</insert>
</mapper>

View File

@@ -3,4 +3,8 @@
}
.tab-pane{
background-color: rgb(208, 208, 208);
}
.form-check{
display: inline!important;
}

View File

@@ -187,9 +187,6 @@
*/
$(function() {
$("#div_personal_search").hide();
$("#search_btn").on("click", function () {
$("select[name='search_select'] option:selected").val();
});
$(".nav-item button").on("click", function(obj){
const selectedButtonId = $(obj.currentTarget).attr('id');
if(selectedButtonId === 'home-tab'){
@@ -201,6 +198,19 @@
}
});
});
function onSearch(isPersonalSearch){
let jsonData = {};
if(isPersonalSearch){
jsonData.searchOption = $("select[name='search_select'] option:selected").val();
jsonData.searchValue = $("#search_personal_input").val();
}else{
jsonData.searchValue = $("#search_group_input").val();
}
console.log(JSON.stringify(jsonData));
}
</script>
<div class="container-fluid">
<div class="row">
@@ -212,70 +222,71 @@
<hr>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="container">
<div class="row">
<div class="col-4">
<!-- 탭 부분 -->
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="home-tab" data-bs-toggle="tab" data-bs-target="#group_authority_tab" type="button" role="tab" aria-controls="home" aria-selected="true">그룹 권한</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="profile-tab" data-bs-toggle="tab" data-bs-target="#personal_authority_tab" type="button" role="tab" aria-controls="profile" aria-selected="false">개인 권한</button>
</li>
</ul>
</div>
<div class="col-8">
<div id="div_group_search" class="text-end">
<input id="search_group_input" type="text" class="w-60 d-inline form-control" placeholder="검색">
<button id="search_group_btn" type="button" class="btn btn-primary">검색</button>
</div>
<div id="div_personal_search" class="text-end">
<select name="search_select" class="form-select d-inline">
<option selected value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<input id="search_personal_input" type="text" class="w-60 d-inline form-control" placeholder="검색">
<button id="search_personal_btn" type="button" class="btn btn-primary">검색</button>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="container">
<div class="row">
<div class="col-4">
<!-- 탭 부분 -->
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="profile-tab" data-bs-toggle="tab" data-bs-target="#personal_authority_tab" type="button" role="tab" aria-controls="profile" aria-selected="false">개인 권한</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="home-tab" data-bs-toggle="tab" data-bs-target="#group_authority_tab" type="button" role="tab" aria-controls="home" aria-selected="true">그룹 권한</button>
</li>
</ul>
</div>
<div class="row">
<div class="col-12">
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="group_authority_tab" role="tabpanel" aria-labelledby="group-authority-tab">
<table class="table" >
<thead class="table-dark">
<tr><th>번호</th><th>권한 명</th></tr>
</thead>
<tbody>
<tr><td>1</td><td>사장 권한</td></tr>
<tr><td>2</td><td>관리자 권한</td></tr>
<tr><td>3</td><td>사원 권한</td></tr>
</tbody>
</table>
</div>
<div class="tab-pane fade" id="personal_authority_tab" role="tabpanel" aria-labelledby="personal-authority-tab">
<table class="table" >
<thead class="table-dark">
<tr><th>번호</th><th>id</th><th>이름</th><th>권한 명</th></tr>
</thead>
<tbody>
<tr><td>1</td><td>230112</td><td>김이박</td><td>사장 권한</td></tr>
<tr><td>2</td><td>230112</td><td>김이박</td><td>사장 권한</td></tr>
<tr><td>3</td><td>230112</td><td>김이박</td><td>사장 권한</td></tr>
</tbody>
</table>
</div>
</div>
<div class="col-8">
<div id="div_group_search" class="text-end">
<input id="search_group_input" type="text" class="w-60 d-inline form-control" placeholder="검색">
<button id="search_group_btn" type="button" class="btn btn-primary" onclick="onSearch(false)">검색</button>
</div>
<div id="div_personal_search" class="text-end">
<select name="search_select" class="form-select d-inline">
<option selected value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<input id="search_personal_input" type="text" class="w-60 d-inline form-control" placeholder="검색">
<button id="search_personal_btn" type="button" class="btn btn-primary" onclick="onSearch(true)">검색</button>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="tab-content" id="myTabContent">
<div class="tab-pane fade show active" id="personal_authority_tab" role="tabpanel" aria-labelledby="personal-authority-tab">
<table class="table" >
<thead class="table-dark">
<tr><th>번호</th><th>ID</th><th>사용자 명</th><th>권한</th></tr>
</thead>
<tbody>
<tr><td>1</td><td>230112</td><td>김이박</td><td>사장 권한</td></tr>
<tr><td>2</td><td>230112</td><td>김이박</td><td>사장 권한</td></tr>
<tr><td>3</td><td>230112</td><td>김이박</td><td>사장 권한</td></tr>
</tbody>
</table>
</div>
<div class="tab-pane fade" id="group_authority_tab" role="tabpanel" aria-labelledby="group-authority-tab">
<table class="table" >
<thead class="table-dark">
<tr><th>번호</th><th>권한 명</th></tr>
</thead>
<tbody>
<tr><td>1</td><td>사장 권한</td></tr>
<tr><td>2</td><td>관리자 권한</td></tr>
<tr><td>3</td><td>사원 권한</td></tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 탭 부분 끝 -->
</div>
<!-- 탭 부분 끝 -->
</div>
</div>
</div>