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/worddict/**", PERMIT_ALL);
urlRoleMappings.put("/api/quilleditor/**", PERMIT_ALL); urlRoleMappings.put("/api/quilleditor/**", PERMIT_ALL);
urlRoleMappings.put("/api/commuters/**", PERMIT_ALL); urlRoleMappings.put("/api/commuters/**", PERMIT_ALL);
urlRoleMappings.put("/api/admin/**", PERMIT_ALL);
return new HashMap<>(urlRoleMappings); 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 댓글 * @return 댓글
*/ */
@Member @Member
@ -251,7 +251,7 @@ public class BoardController {
/** /**
* 대댓글 조회 * 대댓글 조회
* @ReqMap map 수정 데이터 (LOCBRDSEQ) * @ReqMap map 수정 데이터 (LOCCMTPNT)
* @return 대댓글 * @return 대댓글
*/ */
@Member @Member
@ -389,7 +389,7 @@ public class BoardController {
* @return 카테고리 리스트 * @return 카테고리 리스트
*/ */
@GetMapping("/categories") @GetMapping("/categories")
public ApiResponse<List<MapDto>> getCategories() { public ApiResponse<List<MapDto>> SelectCategories() {
List<MapDto> categories = commoncodService.selectCategoryList(); List<MapDto> categories = commoncodService.selectCategoryList();
return ApiResponse.ok(categories); return ApiResponse.ok(categories);
} }

View File

@ -18,6 +18,8 @@ package io.company.localhost.controller.api;
import java.util.List; import java.util.List;
import org.springframework.web.bind.annotation.GetMapping; 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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; 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 * @param map
* @return * @return
*/ */
@GetMapping("/today") @GetMapping("/month")
public ApiResponse<List<MapDto>> selectTodayCommuter(int memberSeq) { public ApiResponse<List<MapDto>> selectCommutersByMonth(int year, int month) {
return ApiResponse.ok(commutersService.selectTodayCommuter(memberSeq)); 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 java.util.List;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
@ -61,9 +60,7 @@ public class ProjectController {
/** /**
* 프로젝트 목록 조회 * 프로젝트 목록 조회
* *
* @param projectName 프로젝트 이름 * @param map
* @param participantSeq 참여자 번호
* @param address 주소 정보 (주소, 상세주소, 우편번호)
* @return * @return
* *
*/ */
@ -105,7 +102,7 @@ public class ProjectController {
/** /**
* 비밀번호 재설정 * 프로젝트 멤버 참여 업데이트
* *
* @param map * @param map
* @return * @return
@ -170,4 +167,17 @@ public class ProjectController {
return ApiResponse.ok(promemberService.selectMemberProjects(memberSeq)); 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 @Member
@ParameterCheck @ParameterCheck
@GetMapping("getWordList") @GetMapping("getWordList")
public ApiResponse<MapDto> getWordList(@ReqMap MapDto map) { public ApiResponse<MapDto> selectWordList(@ReqMap MapDto map) {
int total = worddictyservice.getTotal(map); int total = worddictyservice.getTotal(map);
List<MapDto> wordList = worddictyservice.getWordList(map); List<MapDto> wordList = worddictyservice.selectWordList(map);
MapDto OutData = new MapDto(); MapDto OutData = new MapDto();
OutData.put("total", total); OutData.put("total", total);
@ -73,7 +73,7 @@ public class worddictController {
@Member @Member
@ParameterCheck @ParameterCheck
@GetMapping("getWordCategory") @GetMapping("getWordCategory")
public ApiResponse<List<MapDto>> getWordCategory() { public ApiResponse<List<MapDto>> selectWordCategory() {
List<MapDto> WordCategoryList = commoncodservice.selectWordCategory(); List<MapDto> WordCategoryList = commoncodservice.selectWordCategory();
return ApiResponse.ok(WordCategoryList); return ApiResponse.ok(WordCategoryList);
} }
@ -97,8 +97,8 @@ public class worddictController {
@Member @Member
@ParameterCheck @ParameterCheck
@GetMapping("getWordDetail") @GetMapping("getWordDetail")
public ApiResponse<MapDto> getWordDetail(@ReqMap MapDto map) { public ApiResponse<MapDto> selectWordDetail(@ReqMap MapDto map) {
return ApiResponse.ok( worddictyservice.getWordDetail(map)); return ApiResponse.ok( worddictyservice.selectWordDetail(map));
} }
/** /**
* 용어 등록 - 카테고리 등록 * 용어 등록 - 카테고리 등록
@ -125,7 +125,6 @@ public class worddictController {
@PatchMapping("updateWord") @PatchMapping("updateWord")
public ApiResponse<Long> updateWord(@ReqMap MapDto map) { public ApiResponse<Long> updateWord(@ReqMap MapDto map) {
//userId
Long userId = AuthUtil.getUser().getId(); Long userId = AuthUtil.getUser().getId();
map.put("userId", userId); map.put("userId", userId);
Long result = worddictyservice.updateWord(map); Long result = worddictyservice.updateWord(map);

View File

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

View File

@ -27,6 +27,14 @@ public interface CommutersMapper {
int updateLeaveTime(MapDto map); 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); 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); List<MapDto> selectProjectLog(int projctSeq);
int deleteProject(MapDto map); int deleteProject(MapDto map);
List<MapDto> selectUserProjectPeriod(int projectSeq);
} }

View File

@ -33,4 +33,6 @@ public interface PromemberMapper {
List<MapDto> selectMemberProjects(int memberSeq); 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; package io.company.localhost.mapper;
import java.util.List; 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; package io.company.localhost.mapper;
import java.util.List; import java.util.List;
@ -13,8 +27,4 @@ public interface VotMemberMapper {
List<MapDto> selectVoteMember(Integer locvotSeq); 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; package io.company.localhost.mapper;
import org.apache.ibatis.annotations.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; package io.company.localhost.mapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -9,5 +23,4 @@ public interface VotchoiceMapper {
void insertChoice(MapDto map); 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; package io.company.localhost.mapper;
import java.util.List; import java.util.List;

View File

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

View File

@ -15,17 +15,13 @@
package io.company.localhost.service; package io.company.localhost.service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List; import java.util.List;
import org.springframework.stereotype.Service; 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.common.dto.MapDto;
import io.company.localhost.mapper.CommutersMapper; 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; import lombok.RequiredArgsConstructor;
@Service @Service
@ -42,6 +38,8 @@ public class CommutersService {
*/ */
public int insertCommuters(MapDto map) { public int insertCommuters(MapDto map) {
map.put("commutDay", LocalDateTime.now()); map.put("commutDay", LocalDateTime.now());
map.put("commutCme", LocalTime.now());
int result = commutersMapper.insertCommuters(map); int result = commutersMapper.insertCommuters(map);
return result; return result;
@ -52,21 +50,58 @@ public class CommutersService {
* @param map * @param map
* @return * @return
*/ */
// public List<MapDto> updateLeaveTime(MapDto map) { public boolean updateLeaveTime(MapDto map) {
//
//
// return ;
// }
//
/** if(map.get("commutLve") != null) {
* 당일 출근 기록 조회 map.put("commutLve", null);
* @param memberSeq 사용자 번호 } else {
* @return 당일 출근 정보 map.put("commutLve", LocalTime.now());
*/ }
public List<MapDto> selectTodayCommuter(int memberSeq) {
return commutersMapper.selectTodayCommuter(memberSeq);
return commutersMapper.updateLeaveTime(map) > 0;
} }
/**
* 현재 달의 모든 출근 정보 조회
*
* @param year, month
* @return
*/
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,10 +119,20 @@ public class NetmemberService {
* @param * @param
* @return * @return
*/ */
public List<MapDto> getallUserList() { public List<MapDto> selectallUserList() {
return memberMapper.getallUserList(); 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 java.util.List;
import org.springframework.stereotype.Service; 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.common.dto.MapDto;
import io.company.localhost.mapper.CommutersMapper;
import io.company.localhost.mapper.NetprojctMapper; import io.company.localhost.mapper.NetprojctMapper;
import io.company.localhost.mapper.PromemberMapper; import io.company.localhost.mapper.PromemberMapper;
import io.company.localhost.mapper.commoncodMapper; import io.company.localhost.mapper.commoncodMapper;
@ -33,6 +32,7 @@ public class NetprojctService {
private final commoncodMapper commoncodMapper; private final commoncodMapper commoncodMapper;
private final NetprojctMapper netprojctMapper; private final NetprojctMapper netprojctMapper;
private final PromemberMapper promemberMapper; private final PromemberMapper promemberMapper;
private final CommutersMapper commutersMapper;
/** /**
@ -123,6 +123,10 @@ public class NetprojctService {
*/ */
public boolean deleteProject(MapDto map) { public boolean deleteProject(MapDto map) {
promemberMapper.deletePromember(map);
commutersMapper.deleteCommuters(map);
boolean result = netprojctMapper.deleteProject(map) > 0; boolean result = netprojctMapper.deleteProject(map) > 0;
Integer color = map.getInt("projctCol"); Integer color = map.getInt("projctCol");
@ -136,4 +140,14 @@ public class NetprojctService {
return result; return result;
} }
/**
* 프로젝트 모든 사용자 참여기간 조회
*
* @param
* @return
*/
public List<MapDto> selectUserProjectPeriod(int projctSeq) {
return netprojctMapper.selectUserProjectPeriod(projctSeq);
}
} }

View File

@ -235,21 +235,19 @@ public class localbordService {
return boardMapper.selectCountCommentReactions(boardId); return boardMapper.selectCountCommentReactions(boardId);
} }
private String procFirstImageUrl(String jsonContent) { public static String procFirstImageUrl(String jsonContent) {
try { try {
// JSON 유효성 검사
if (!procIsValidJson(jsonContent)) {
throw new IllegalArgumentException("Invalid JSON content: " + jsonContent);
}
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonContent); JsonNode rootNode = objectMapper.readTree(jsonContent);
// JSON 배열 순회 // "ops" 배열 가져오기
for (JsonNode node : rootNode) { JsonNode opsNode = rootNode.get("ops");
JsonNode insertNode = node.get("insert"); if (opsNode != null && opsNode.isArray()) {
if (insertNode != null && insertNode.has("image")) { for (JsonNode node : opsNode) {
return insertNode.get("image").asText(); // 번째 이미지 URL 반환 JsonNode insertNode = node.get("insert");
if (insertNode != null && insertNode.has("image")) {
return insertNode.get("image").asText(); // 번째 이미지 URL 반환
}
} }
} }
} catch (Exception e) { } catch (Exception 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; package io.company.localhost.service;
import java.util.ArrayList; import java.util.ArrayList;
@ -63,8 +77,8 @@ public class localvoteService {
MapDto voteMap = new MapDto(); MapDto voteMap = new MapDto();
voteMap.put("localVote", vote); voteMap.put("localVote", vote);
Integer locvotSeq = (Integer) vote.get("LOCVOTSEQ"); Integer locvotSeq = (Integer) vote.get("LOCVOTSEQ");
//투표 항목조회 + 결과 조회 + 투표여부
map.put("locvotSeq", locvotSeq); map.put("locvotSeq", locvotSeq);
//투표 항목조회 + 결과 조회 + 투표여부
List<MapDto> voteDetails = votdetailmapper.selectVoteDetailsResult(map); List<MapDto> voteDetails = votdetailmapper.selectVoteDetailsResult(map);
//투표 가능 멤버 조회 //투표 가능 멤버 조회
List<MapDto> voteMembers = votmembermapper.selectVoteMember(locvotSeq); List<MapDto> voteMembers = votmembermapper.selectVoteMember(locvotSeq);

View File

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

View File

@ -6,38 +6,83 @@
<insert id="insertCommuters" useGeneratedKeys="true" keyProperty="COMMUTSEQ"> <insert id="insertCommuters" useGeneratedKeys="true" keyProperty="COMMUTSEQ">
INSERT INTO commuters ( INSERT INTO commuters (
COMMUTSEQ, COMMUTSEQ,
MRMBERSEQ, MEMBERSEQ,
PROJCTSEQ, PROJCTSEQ,
COMMUTCMT, COMMUTCMT,
COMMUTLVT, COMMUTLVE,
COMMUTDAY, COMMUTDAY,
COMMUTARR COMMUTARR
) VALUES ( ) VALUES (
#{commutSeq}, #{commutSeq},
#{memberSeq}, #{memberSeq},
#{projctSeq}, #{projctSeq},
#{commutCmt}, #{commutCme},
#{commutLvt}, #{commutLve},
#{commutDay}, #{commutDay},
#{commutArr} #{commutArr}
) )
</insert> </insert>
<!-- 퇴근 시간 업데이트 --> <!-- 퇴근 시간 업데이트 -->
<update id="updateLeaveTime" parameterType="map"> <update id="updateLeaveTime">
UPDATE commuters UPDATE commuters
SET COMMUTLVT = #{commutLvt} SET COMMUTLVE = #{commutLve}
WHERE MRMBERSEQ = #{memberSeq} WHERE MEMBERSEQ = #{memberSeq}
AND COMMUTDAY = CURDATE() AND COMMUTDAY = CURDATE()
</update> </update>
<!-- 당일 출근 기록 조회 --> <!-- 현재 달의 모든 출근 정보 조회 -->
<select id="selectTodayCommuter" parameterType="int" resultType="map"> <select id="selectCommutersByMonth" parameterType="map" resultType="map">
SELECT c.*, p.PROJCTNAM, p.projctcolor SELECT
FROM commuters c c.COMMUTSEQ,
LEFT JOIN project p ON c.PROJCTSEQ = p.PROJCTSEQ c.MEMBERSEQ,
WHERE c.MRMBERSEQ = #{memberSeq} c.PROJCTSEQ,
AND c.COMMUTDAY = CURDATE() 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>
<!-- 사용자 오늘 출근 정보 조회 -->
<select id="selectTodayCommuterInfo" parameterType="Integer" resultType="map">
SELECT c.COMMUTCMT, c.COMMUTLVE
FROM commuters c
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> </mapper>

View File

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

View File

@ -30,6 +30,9 @@
<if test="category != null and category != ''"> <if test="category != null and category != ''">
AND SUBSTRING(p.PROJCTSTR, 1, 4) = #{category} AND SUBSTRING(p.PROJCTSTR, 1, 4) = #{category}
</if> </if>
<if test="excludeEnded != null and excludeEnded == 'true'">
AND (p.PROJCTEND IS NULL OR p.PROJCTEND > CURDATE())
</if>
ORDER BY p.PROJCTSTR DESC ORDER BY p.PROJCTSTR DESC
</select> </select>
@ -105,9 +108,41 @@
</select> </select>
<!-- 프로젝트 삭제 --> <!-- 프로젝트 삭제 -->
<delete id="deleteProject"> <delete id="deleteProject" parameterType="int">
DELETE FROM netprojct WHERE PROJCTSEQ = #{projctSeq} DELETE FROM netprojct WHERE PROJCTSEQ = #{projctSeq}
</delete> </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> </mapper>

View File

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

View File

@ -65,30 +65,6 @@
) )
</insert> </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 id="selectBoardDetail" resultType="io.company.localhost.common.dto.MapDto">
SELECT SELECT
@ -180,7 +156,7 @@
<select id="selectComments" resultType="io.company.localhost.common.dto.MapDto"> <select id="selectComments" resultType="io.company.localhost.common.dto.MapDto">
SELECT SELECT
c.LOCCMTSEQ,c.LOCBRDSEQ,c.LOCCMTPNT,c.LOCCMTRPY, 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.MEMBERNAM AS author,
m.MEMBERSEQ AS authorId m.MEMBERSEQ AS authorId
FROM localcomt c FROM localcomt c
@ -195,8 +171,7 @@
c.LOCCMTSEQ,c.LOCBRDSEQ,c.LOCCMTPNT,c.LOCCMTRPY, c.LOCCMTSEQ,c.LOCBRDSEQ,c.LOCCMTPNT,c.LOCCMTRPY,
c.LOCCMTUDT,c.LOCCMTPWD,c.LOCCMTRDT,c.LOCCMTPNT, c.LOCCMTUDT,c.LOCCMTPWD,c.LOCCMTRDT,c.LOCCMTPNT,
m.MEMBERNAM AS author, m.MEMBERNAM AS author,
m.MEMBERSEQ AS authorId, m.MEMBERSEQ AS authorId
m.MEMBERPRF as profileImg
FROM localcomt c FROM localcomt c
LEFT JOIN netmember m ON c.MEMBERSEQ = m.MEMBERSEQ LEFT JOIN netmember m ON c.MEMBERSEQ = m.MEMBERSEQ
WHERE LOCCMTPNT = #{LOCCMTPNT} and LOCCMTPNT != 1 WHERE LOCCMTPNT = #{LOCCMTPNT} and LOCCMTPNT != 1

View File

@ -122,7 +122,7 @@
</select> </select>
<select id="selectSentVacationCount" resultType="io.company.localhost.common.dto.MapDto"> <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> </select>

View File

@ -141,7 +141,7 @@
and w.WRDDICCAT = #{category} and w.WRDDICCAT = #{category}
</if> </if>
</sql> </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 select
w.WRDDICSEQ, w.WRDDICSEQ,
w.WRDDICCAT, w.WRDDICCAT,
@ -232,7 +232,7 @@
where where
WRDDICSEQ = #{WRDDICSEQ} WRDDICSEQ = #{WRDDICSEQ}
</update> </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 * select *
from from
worddicty worddicty