Merge branch 'main' of http://192.168.0.251:3000/localnet/localhost-back.git into main
All checks were successful
LOCALNET-DEV/pipeline/head This commit looks good

This commit is contained in:
nevermoregb 2025-03-17 13:06:58 +09:00
commit 6affb7dade
30 changed files with 466 additions and 119 deletions

View File

@ -36,6 +36,7 @@ public class MapBasedUrlRoleMapper implements UrlRoleMapper{
urlRoleMappings.put("/api/worddict/**", PERMIT_ALL);
urlRoleMappings.put("/api/quilleditor/**", PERMIT_ALL);
urlRoleMappings.put("/api/commuters/**", PERMIT_ALL);
urlRoleMappings.put("/api/admin/**", PERMIT_ALL);
return new HashMap<>(urlRoleMappings);
}
}

View File

@ -0,0 +1,73 @@
/************************************************************
*
* @packageName : io.company.localhost.controller.api
* @fileName : AdminController.java
* @author : 서지희
* @date : 25.03.14
* @description : 게시판
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 25.03.14 서지희 최초 생성
*
*************************************************************/
package io.company.localhost.controller.api;
import java.util.List;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.company.localhost.common.annotation.Member;
import io.company.localhost.common.annotation.ParameterCheck;
import io.company.localhost.common.annotation.ReqMap;
import io.company.localhost.common.dto.ApiResponse;
import io.company.localhost.common.dto.MapDto;
import io.company.localhost.service.NetmemberService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/api/admin")
@RequiredArgsConstructor
@Slf4j
public class AdminController {
private final NetmemberService netmemberService;
/**
* 사원 리스트
* @return 사원 리스트
*/
@Member
@ParameterCheck
@GetMapping("/users")
public ApiResponse<List<MapDto>> selectallUserList() {
List<MapDto> response = netmemberService.selectallUserList();
return ApiResponse.ok(response);
}
/**
* 관리자 권한 수정
* @ReqMap map 요청 파라미터 (MEMBERROL, MEMBERSEQ)
* @return 결과 메시지
*/
@Member
@ParameterCheck
@PutMapping("/role")
public ApiResponse<String> updateUserRole(@ReqMap MapDto map) {
Long id = Long.valueOf(map.get("id").toString());
String role = map.get("role").toString();
String newRole = role.equalsIgnoreCase("ADMIN") ? "ROLE_ADMIN" : "ROLE_MEMBER";
netmemberService.updateUserRole(id, newRole);
return ApiResponse.ok("관리자 권한이 변경되었습니다.");
}
}

View File

@ -235,7 +235,7 @@ public class BoardController {
/**
* 댓글 조회
* @ReqMap map 수정 데이터 (LOCBRDSEQ)
* @ReqMap map 수정 데이터 (LOCBRDSEQ, page)
* @return 댓글
*/
@Member
@ -251,7 +251,7 @@ public class BoardController {
/**
* 대댓글 조회
* @ReqMap map 수정 데이터 (LOCBRDSEQ)
* @ReqMap map 수정 데이터 (LOCCMTPNT)
* @return 대댓글
*/
@Member
@ -389,7 +389,7 @@ public class BoardController {
* @return 카테고리 리스트
*/
@GetMapping("/categories")
public ApiResponse<List<MapDto>> getCategories() {
public ApiResponse<List<MapDto>> SelectCategories() {
List<MapDto> categories = commoncodService.selectCategoryList();
return ApiResponse.ok(categories);
}

View File

@ -18,6 +18,8 @@ package io.company.localhost.controller.api;
import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -51,14 +53,63 @@ public class CommutersController {
}
/**
* 출퇴근 당일 조회
* 퇴근 업데이트
*
* @param map
* @return
*
*/
@PatchMapping("/updateLve")
public ApiResponse<Boolean> updateLeaveTime(@ReqMap MapDto map) {
boolean isLeaveTime = commutersService.updateLeaveTime(map);
return ApiResponse.ok(isLeaveTime);
}
/**
* 현재 달의 모든 출근 정보 조회
*
* @param map
* @return
*/
@GetMapping("/today")
public ApiResponse<List<MapDto>> selectTodayCommuter(int memberSeq) {
return ApiResponse.ok(commutersService.selectTodayCommuter(memberSeq));
@GetMapping("/month")
public ApiResponse<List<MapDto>> selectCommutersByMonth(int year, int month) {
return ApiResponse.ok(commutersService.selectCommutersByMonth(year, month));
}
/**
* 오늘 사용자의 출근 정보 조회
*
* @param map
* @return
*/
@GetMapping("/today/{memberSeq}")
public ApiResponse<List<MapDto>> selectTodayCommuterInfo(@PathVariable Integer memberSeq) {
return ApiResponse.ok(commutersService.selectTodayCommuterInfo(memberSeq));
}
/**
* 오늘 출근 모든 사용자 조회
*
* @param map
* @return
*/
@GetMapping("/todays")
public ApiResponse<List<MapDto>> selectTodayCommuter() {
return ApiResponse.ok(commutersService.selectTodayCommuter());
}
/**
* 출근 프로젝트 업데이트
*
* @param map
* @return
*
*/
@PatchMapping("/update")
public ApiResponse<Boolean> updateCommuterProject(@ReqMap MapDto map) {
boolean isCommuter = commutersService.updateCommuterProject(map);
return ApiResponse.ok(isCommuter);
}
}

View File

@ -17,7 +17,6 @@ package io.company.localhost.controller.api;
import java.util.List;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
@ -61,9 +60,7 @@ public class ProjectController {
/**
* 프로젝트 목록 조회
*
* @param projectName 프로젝트 이름
* @param participantSeq 참여자 번호
* @param address 주소 정보 (주소, 상세주소, 우편번호)
* @param map
* @return
*
*/
@ -105,7 +102,7 @@ public class ProjectController {
/**
* 비밀번호 재설정
* 프로젝트 멤버 참여 업데이트
*
* @param map
* @return
@ -170,4 +167,17 @@ public class ProjectController {
return ApiResponse.ok(promemberService.selectMemberProjects(memberSeq));
}
/**
* 프로젝트 모든 사용자 참여기간 조회
*
* @return
*
*/
@ParameterCheck
@GetMapping("/period/{projctSeq}")
public ApiResponse<List<MapDto>> selectUserProjectPeriod(@PathVariable int projctSeq) {
return ApiResponse.ok(netprojctService.selectUserProjectPeriod(projctSeq));
}
}

View File

@ -53,10 +53,10 @@ public class worddictController {
@Member
@ParameterCheck
@GetMapping("getWordList")
public ApiResponse<MapDto> getWordList(@ReqMap MapDto map) {
public ApiResponse<MapDto> selectWordList(@ReqMap MapDto map) {
int total = worddictyservice.getTotal(map);
List<MapDto> wordList = worddictyservice.getWordList(map);
List<MapDto> wordList = worddictyservice.selectWordList(map);
MapDto OutData = new MapDto();
OutData.put("total", total);
@ -73,7 +73,7 @@ public class worddictController {
@Member
@ParameterCheck
@GetMapping("getWordCategory")
public ApiResponse<List<MapDto>> getWordCategory() {
public ApiResponse<List<MapDto>> selectWordCategory() {
List<MapDto> WordCategoryList = commoncodservice.selectWordCategory();
return ApiResponse.ok(WordCategoryList);
}
@ -97,8 +97,8 @@ public class worddictController {
@Member
@ParameterCheck
@GetMapping("getWordDetail")
public ApiResponse<MapDto> getWordDetail(@ReqMap MapDto map) {
return ApiResponse.ok( worddictyservice.getWordDetail(map));
public ApiResponse<MapDto> selectWordDetail(@ReqMap MapDto map) {
return ApiResponse.ok( worddictyservice.selectWordDetail(map));
}
/**
* 용어 등록 - 카테고리 등록
@ -125,7 +125,6 @@ public class worddictController {
@PatchMapping("updateWord")
public ApiResponse<Long> updateWord(@ReqMap MapDto map) {
//userId
Long userId = AuthUtil.getUser().getId();
map.put("userId", userId);
Long result = worddictyservice.updateWord(map);

View File

@ -292,8 +292,8 @@ public class UserController {
*/
@ParameterCheck
@GetMapping("/allUserList")
public ApiResponse<MapDto> getallUserList() {
List<MapDto> allUserList = netmemberservice.getallUserList();
public ApiResponse<MapDto> selectallUserList() {
List<MapDto> allUserList = netmemberservice.selectallUserList();
MemberVo user = AuthUtil.getUser();
MapDto outData = new MapDto();

View File

@ -27,6 +27,14 @@ public interface CommutersMapper {
int updateLeaveTime(MapDto map);
List<MapDto> selectTodayCommuter(int memberSeq);
List<MapDto> selectCommutersByMonth(int year, int month);
List<MapDto> selectTodayCommuterInfo(Integer memberSeq);
List<MapDto> selectTodayCommuter();
int updateCommuterProject(MapDto map);
int deleteCommuters(MapDto map);
}

View File

@ -42,6 +42,8 @@ public interface NetmemberMapper {
int updatePassword(MapDto map);
List<MapDto> getallUserList();
List<MapDto> selectallUserList();
void updateUserRole(Long id, String role);
}

View File

@ -32,4 +32,6 @@ public interface NetprojctMapper {
List<MapDto> selectProjectLog(int projctSeq);
int deleteProject(MapDto map);
List<MapDto> selectUserProjectPeriod(int projectSeq);
}

View File

@ -33,4 +33,6 @@ public interface PromemberMapper {
List<MapDto> selectMemberProjects(int memberSeq);
int deletePromember(MapDto map);
}

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.mapper
* @fileName : VotDetailMapper.java
* @author : 공현지
* @date : 25.01.07
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 공현지 최초 생성
*
*************************************************************/
package io.company.localhost.mapper;
import java.util.List;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.mapper
* @fileName : VotMemberMapper.java
* @author : 공현지
* @date : 25.01.07
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 공현지 최초 생성
*
*************************************************************/
package io.company.localhost.mapper;
import java.util.List;
@ -13,8 +27,4 @@ public interface VotMemberMapper {
List<MapDto> selectVoteMember(Integer locvotSeq);
}

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.mapper
* @fileName : VotRecordMapper.java
* @author : 공현지
* @date : 25.01.07
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 공현지 최초 생성
*
*************************************************************/
package io.company.localhost.mapper;
import org.apache.ibatis.annotations.Mapper;

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.mapper
* @fileName : VotchoiceMapper.java
* @author : 공현지
* @date : 25.01.07
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 공현지 최초 생성
*
*************************************************************/
package io.company.localhost.mapper;
import org.apache.ibatis.annotations.Mapper;
@ -9,5 +23,4 @@ public interface VotchoiceMapper {
void insertChoice(MapDto map);
}

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.mapper
* @fileName : localvoteMapper.java
* @author : 공현지
* @date : 25.01.07
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 공현지 최초 생성
*
*************************************************************/
package io.company.localhost.mapper;
import java.util.List;

View File

@ -23,13 +23,13 @@ import io.company.localhost.common.dto.MapDto;
@Mapper
public interface worddictyMapper {
List<MapDto> getWordList(MapDto map);
List<MapDto> selectWordList(MapDto map);
Long insertWord(MapDto map);
Long updateWord(MapDto map);
MapDto getWordDetail(MapDto map);
MapDto selectWordDetail(MapDto map);
int getTotal(MapDto map);

View File

@ -15,17 +15,13 @@
package io.company.localhost.service;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import io.company.localhost.common.annotation.ReqMap;
import io.company.localhost.common.dto.MapDto;
import io.company.localhost.mapper.CommutersMapper;
import io.company.localhost.mapper.NetprojctMapper;
import io.company.localhost.mapper.PromemberMapper;
import io.company.localhost.mapper.commoncodMapper;
import lombok.RequiredArgsConstructor;
@Service
@ -42,6 +38,8 @@ public class CommutersService {
*/
public int insertCommuters(MapDto map) {
map.put("commutDay", LocalDateTime.now());
map.put("commutCme", LocalTime.now());
int result = commutersMapper.insertCommuters(map);
return result;
@ -52,21 +50,58 @@ public class CommutersService {
* @param map
* @return
*/
// public List<MapDto> updateLeaveTime(MapDto map) {
//
//
// return ;
// }
//
public boolean updateLeaveTime(MapDto map) {
if(map.get("commutLve") != null) {
map.put("commutLve", null);
} else {
map.put("commutLve", LocalTime.now());
}
return commutersMapper.updateLeaveTime(map) > 0;
}
/**
* 당일 출근 기록 조회
* @param memberSeq 사용자 번호
* @return 당일 출근 정보
* 현재 달의 모든 출근 정보 조회
*
* @param year, month
* @return
*/
public List<MapDto> selectTodayCommuter(int memberSeq) {
return commutersMapper.selectTodayCommuter(memberSeq);
public List<MapDto> selectCommutersByMonth(int year, int month) {
return commutersMapper.selectCommutersByMonth(year, month);
}
/**
* 오늘 사용자 출근 정보 조회
*
* @param memberSeq
* @return
*/
public List<MapDto> selectTodayCommuterInfo(Integer memberSeq) {
return commutersMapper.selectTodayCommuterInfo(memberSeq);
}
/**
* 오늘 출근 모든 사용자 조회
*
* @param
* @return
*/
public List<MapDto> selectTodayCommuter() {
return commutersMapper.selectTodayCommuter();
}
/**
* 출근 프로젝트 업데이트
*
* @param map
* @return
*/
public boolean updateCommuterProject(MapDto map) {
return commutersMapper.updateCommuterProject(map) > 0;
}
}

View File

@ -119,8 +119,18 @@ public class NetmemberService {
* @param
* @return
*/
public List<MapDto> getallUserList() {
return memberMapper.getallUserList();
public List<MapDto> selectallUserList() {
return memberMapper.selectallUserList();
}
/**
* 사원 권한 업데이트
*
* @param
* @return
*/
public void updateUserRole(Long id, String newRole) {
memberMapper.updateUserRole(id, newRole);
}
/**

View File

@ -18,10 +18,9 @@ import java.time.LocalDateTime;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import io.company.localhost.common.annotation.ReqMap;
import io.company.localhost.common.dto.MapDto;
import io.company.localhost.mapper.CommutersMapper;
import io.company.localhost.mapper.NetprojctMapper;
import io.company.localhost.mapper.PromemberMapper;
import io.company.localhost.mapper.commoncodMapper;
@ -33,6 +32,7 @@ public class NetprojctService {
private final commoncodMapper commoncodMapper;
private final NetprojctMapper netprojctMapper;
private final PromemberMapper promemberMapper;
private final CommutersMapper commutersMapper;
/**
@ -123,6 +123,10 @@ public class NetprojctService {
*/
public boolean deleteProject(MapDto map) {
promemberMapper.deletePromember(map);
commutersMapper.deleteCommuters(map);
boolean result = netprojctMapper.deleteProject(map) > 0;
Integer color = map.getInt("projctCol");
@ -136,4 +140,14 @@ public class NetprojctService {
return result;
}
/**
* 프로젝트 모든 사용자 참여기간 조회
*
* @param
* @return
*/
public List<MapDto> selectUserProjectPeriod(int projctSeq) {
return netprojctMapper.selectUserProjectPeriod(projctSeq);
}
}

View File

@ -235,23 +235,21 @@ public class localbordService {
return boardMapper.selectCountCommentReactions(boardId);
}
private String procFirstImageUrl(String jsonContent) {
public static String procFirstImageUrl(String jsonContent) {
try {
// JSON 유효성 검사
if (!procIsValidJson(jsonContent)) {
throw new IllegalArgumentException("Invalid JSON content: " + jsonContent);
}
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonContent);
// JSON 배열 순회
for (JsonNode node : rootNode) {
// "ops" 배열 가져오기
JsonNode opsNode = rootNode.get("ops");
if (opsNode != null && opsNode.isArray()) {
for (JsonNode node : opsNode) {
JsonNode insertNode = node.get("insert");
if (insertNode != null && insertNode.has("image")) {
return insertNode.get("image").asText(); // 번째 이미지 URL 반환
}
}
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Failed to extract first image URL: " + e.getMessage(), e);

View File

@ -1,3 +1,17 @@
/************************************************************
*
* @packageName : io.company.localhost.service
* @fileName : localvoteService.java
* @author : 공현지
* @date : 25.01.07
* @description :
*
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 24.12.06 공현지 최초 생성
*
*************************************************************/
package io.company.localhost.service;
import java.util.ArrayList;
@ -63,8 +77,8 @@ public class localvoteService {
MapDto voteMap = new MapDto();
voteMap.put("localVote", vote);
Integer locvotSeq = (Integer) vote.get("LOCVOTSEQ");
//투표 항목조회 + 결과 조회 + 투표여부
map.put("locvotSeq", locvotSeq);
//투표 항목조회 + 결과 조회 + 투표여부
List<MapDto> voteDetails = votdetailmapper.selectVoteDetailsResult(map);
//투표 가능 멤버 조회
List<MapDto> voteMembers = votmembermapper.selectVoteMember(locvotSeq);

View File

@ -33,8 +33,8 @@ public class worddictyService {
private final worddictyMapper worddictymapper;
private final commoncodMapper commoncodmapper;
public List<MapDto> getWordList(MapDto map) {
List<MapDto> wordList = worddictymapper.getWordList(map);
public List<MapDto> selectWordList(MapDto map) {
List<MapDto> wordList = worddictymapper.selectWordList(map);
for (MapDto word : wordList) {
Object content = word.get("WRDDICCON");
// BlobUtil.procBlobToString으로 content 변환
@ -80,8 +80,8 @@ public class worddictyService {
public Long updateWord(MapDto map) {
return worddictymapper.updateWord(map);
}
public MapDto getWordDetail(MapDto map) {
return worddictymapper.getWordDetail(map);
public MapDto selectWordDetail(MapDto map) {
return worddictymapper.selectWordDetail(map);
}
public int getTotal(MapDto map) {
return worddictymapper.getTotal(map);

View File

@ -6,38 +6,83 @@
<insert id="insertCommuters" useGeneratedKeys="true" keyProperty="COMMUTSEQ">
INSERT INTO commuters (
COMMUTSEQ,
MRMBERSEQ,
MEMBERSEQ,
PROJCTSEQ,
COMMUTCMT,
COMMUTLVT,
COMMUTLVE,
COMMUTDAY,
COMMUTARR
) VALUES (
#{commutSeq},
#{memberSeq},
#{projctSeq},
#{commutCmt},
#{commutLvt},
#{commutCme},
#{commutLve},
#{commutDay},
#{commutArr}
)
</insert>
<!-- 퇴근 시간 업데이트 -->
<update id="updateLeaveTime" parameterType="map">
<update id="updateLeaveTime">
UPDATE commuters
SET COMMUTLVT = #{commutLvt}
WHERE MRMBERSEQ = #{memberSeq}
SET COMMUTLVE = #{commutLve}
WHERE MEMBERSEQ = #{memberSeq}
AND COMMUTDAY = CURDATE()
</update>
<!-- 당일 출근 기록 조회 -->
<select id="selectTodayCommuter" parameterType="int" resultType="map">
SELECT c.*, p.PROJCTNAM, p.projctcolor
<!-- 현재 달의 모든 출근 정보 조회 -->
<select id="selectCommutersByMonth" parameterType="map" resultType="map">
SELECT
c.COMMUTSEQ,
c.MEMBERSEQ,
c.PROJCTSEQ,
c.COMMUTCMT,
c.COMMUTLVE,
c.COMMUTDAY,
c.COMMUTARR,
m.MEMBERNAM as memberName,
m.MEMBERPRF as profile,
p.PROJCTNAM,
cc.CMNCODNAM AS projctcolor
FROM
commuters c
JOIN
netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
JOIN
netprojct p ON c.PROJCTSEQ = p.PROJCTSEQ
LEFT JOIN commoncod cc ON p.PROJCTCOL = cc.CMNCODVAL AND cc.CMNCODYNP = '1'
WHERE
YEAR(c.COMMUTDAY) = #{year}
AND MONTH(c.COMMUTDAY) = #{month}
</select>
<!-- 사용자 오늘 출근 정보 조회 -->
<select id="selectTodayCommuterInfo" parameterType="Integer" resultType="map">
SELECT c.COMMUTCMT, c.COMMUTLVE
FROM commuters c
LEFT JOIN project p ON c.PROJCTSEQ = p.PROJCTSEQ
WHERE c.MRMBERSEQ = #{memberSeq}
WHERE c.MEMBERSEQ = #{memberSeq}
AND c.COMMUTDAY = CURDATE()
</select>
<!-- 오늘 출근 모든 사용자 조회 -->
<select id="selectTodayCommuter">
SELECT c.COMMUTCMT, m.MEMBERSEQ, m.MEMBERPRF as profile, p.PROJCTNAM
FROM commuters c
JOIN netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
JOIN netprojct p ON c.PROJCTSEQ = p.PROJCTSEQ
WHERE c.COMMUTDAY = CURDATE()
</select>
<!-- 출근 프로젝트 업데이트 -->
<update id="updateCommuterProject">
UPDATE commuters
SET PROJCTSEQ = #{projctSeq}
WHERE MEMBERSEQ = #{memberSeq}
AND COMMUTDAY = CURDATE()
</update>
<delete id="deleteCommuters" parameterType="int">
DELETE FROM commuters WHERE PROJCTSEQ = #{projctSeq}
</delete>
</mapper>

View File

@ -134,7 +134,7 @@
</update>
<!-- 전체 회원 목록 -->
<select id="getallUserList" resultType="Map">
<select id="selectallUserList" resultType="Map">
SELECT
m.*
,c.CMNCODNAM usercolor
@ -152,4 +152,8 @@
m.MEMBERLEA ="N"
</select>
<update id="updateUserRole">
UPDATE netmember SET MEMBERROL = #{role} WHERE MEMBERSEQ = #{id}
</update>
</mapper>

View File

@ -30,6 +30,9 @@
<if test="category != null and category != ''">
AND SUBSTRING(p.PROJCTSTR, 1, 4) = #{category}
</if>
<if test="excludeEnded != null and excludeEnded == 'true'">
AND (p.PROJCTEND IS NULL OR p.PROJCTEND > CURDATE())
</if>
ORDER BY p.PROJCTSTR DESC
</select>
@ -105,9 +108,41 @@
</select>
<!-- 프로젝트 삭제 -->
<delete id="deleteProject">
<delete id="deleteProject" parameterType="int">
DELETE FROM netprojct WHERE PROJCTSEQ = #{projctSeq}
</delete>
<!-- 프로젝트 모든 사용자 참여기간 조회 -->
<select id="selectUserProjectPeriod" resultType="io.company.localhost.common.dto.MapDto">
SELECT
m.MEMBERSEQ,
m.MEMBERNAM,
p.PROJCTSEQ,
p.PROJCTNAM,
p.PROJCTSTR as projectStartDate,
p.PROJCTEND as projectEndDate,
(
SELECT MIN(c2.COMMUTDAY)
FROM commuters c2
WHERE c2.PROJCTSEQ = p.PROJCTSEQ
AND c2.MEMBERSEQ = m.MEMBERSEQ
) as userStartDate,
(
SELECT MAX(c2.COMMUTDAY)
FROM commuters c2
WHERE c2.PROJCTSEQ = p.PROJCTSEQ
AND c2.MEMBERSEQ = m.MEMBERSEQ
) as userEndDate
FROM
netprojct p
INNER JOIN
commuters c ON p.PROJCTSEQ = c.PROJCTSEQ
INNER JOIN
netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
WHERE
p.PROJCTSEQ = #{projectSeq}
GROUP BY
m.MEMBERSEQ, p.PROJCTSEQ
</select>
</mapper>

View File

@ -47,4 +47,8 @@
ORDER BY p.PROJCTSTR DESC
</select>
<delete id="deletePromember" parameterType="int">
DELETE FROM promember WHERE PROJCTSEQ = #{projctSeq}
</delete>
</mapper>

View File

@ -65,30 +65,6 @@
)
</insert>
<!-- 멀티 첨부파일 저장 -->
<insert id="insertAttachments" parameterType="map">
INSERT INTO commonfil (
CMNBRDSEQ,
CMNFLENAM,
CMNFLEORG,
CMNFLEPAT,
CMNFLEEXT,
CMNFLESIZ,
CMNFLEREG,
CMNFLERDT
) VALUES
<foreach collection="list" item="item" index="index" open="(" separator="),(" close=")">
#{LOCBRDSEQ},
#{item.saveFileName},
#{item.originalFileName},
#{item.filePath},
#{item.extension},
#{item.fileSize},
#{CMNFLEREG},
NOW()
</foreach>
</insert>
<!-- 게시물 상세정보 조회 -->
<select id="selectBoardDetail" resultType="io.company.localhost.common.dto.MapDto">
SELECT
@ -180,7 +156,7 @@
<select id="selectComments" resultType="io.company.localhost.common.dto.MapDto">
SELECT
c.LOCCMTSEQ,c.LOCBRDSEQ,c.LOCCMTPNT,c.LOCCMTRPY,
c.LOCCMTUDT,c.LOCCMTPWD,c.LOCCMTRDT,c.LOCCMTPNT,
c.LOCCMTUDT,c.LOCCMTPWD,c.LOCCMTRDT,
m.MEMBERNAM AS author,
m.MEMBERSEQ AS authorId
FROM localcomt c
@ -195,8 +171,7 @@
c.LOCCMTSEQ,c.LOCBRDSEQ,c.LOCCMTPNT,c.LOCCMTRPY,
c.LOCCMTUDT,c.LOCCMTPWD,c.LOCCMTRDT,c.LOCCMTPNT,
m.MEMBERNAM AS author,
m.MEMBERSEQ AS authorId,
m.MEMBERPRF as profileImg
m.MEMBERSEQ AS authorId
FROM localcomt c
LEFT JOIN netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
WHERE LOCCMTPNT = #{LOCCMTPNT} and LOCCMTPNT != 1

View File

@ -122,7 +122,7 @@
</select>
<select id="selectSentVacationCount" resultType="io.company.localhost.common.dto.MapDto">
SELECT COUNT(*) as count FROM localvaca WHERE MEMBERSEQ = #{userId} AND LOCVACRMM = #{receiverId}
SELECT COUNT(*) as count FROM localvaca WHERE MEMBERSEQ = #{userId} AND LOCVACRMM = #{receiverId} AND YEAR(LOCVACUDT) = YEAR(NOW())
</select>

View File

@ -141,7 +141,7 @@
and w.WRDDICCAT = #{category}
</if>
</sql>
<select id="getWordList" parameterType="map" resultType="io.company.localhost.common.dto.MapDto">
<select id="selectWordList" parameterType="map" resultType="io.company.localhost.common.dto.MapDto">
select
w.WRDDICSEQ,
w.WRDDICCAT,
@ -232,7 +232,7 @@
where
WRDDICSEQ = #{WRDDICSEQ}
</update>
<select id="getWordDetail" parameterType="map" resultType="io.company.localhost.common.dto.MapDto">
<select id="selectWordDetail" parameterType="map" resultType="io.company.localhost.common.dto.MapDto">
select *
from
worddicty