Merge branch 'dev' of https://git.jetbrains.space/nalpari/q-cast-iii/qcast-api into feature/qcast-api-002

This commit is contained in:
changkyu choi 2024-09-20 15:21:38 +09:00
commit 9ea055d517
19 changed files with 230 additions and 161 deletions

View File

@ -1,15 +1,13 @@
package com.interplug.qcast.biz.commCode;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
import com.interplug.qcast.biz.commCode.dto.CodeReq;
import com.interplug.qcast.biz.commCode.dto.CommCodeApiResponse;
import com.interplug.qcast.biz.commCode.dto.CommCodeDetailRequest;
import com.interplug.qcast.biz.commCode.dto.CommCodeHeaderRequest;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@ -23,31 +21,12 @@ import lombok.extern.slf4j.Slf4j;
public class CommCodeController {
private final CommCodeService commCodeService;
@Operation(description = "공통코드 COMM_H 정보를 등록/수정 한다.(동기화)")
@PutMapping("/qc-comm-h-update")
@Operation(description = "공통코드 정보를 등록/수정 한다.(동기화)")
@PutMapping("/qc-comm-update")
@ResponseStatus(HttpStatus.OK)
public CommCodeApiResponse setQcCommCdYn(@RequestBody List<CommCodeHeaderRequest> headReqList) {
public CommCodeApiResponse setQcCommCdYn(@RequestBody CodeReq codeReq) {
CommCodeApiResponse codeResponse = new CommCodeApiResponse();
int resultCnt = commCodeService.setCommHUpdate(headReqList);
if (resultCnt > 0)
codeResponse.setCode("200");
else
codeResponse.setCode("500");
return codeResponse;
}
@Operation(description = "공통코드 COMM_L 정보를 등록/수정 한다.(동기화)")
@PutMapping("/qc-comm-l-update")
@ResponseStatus(HttpStatus.OK)
public CommCodeApiResponse setCommLUpdate(
@RequestBody List<CommCodeDetailRequest> detailReqList) {
CommCodeApiResponse codeResponse = new CommCodeApiResponse();
int resultCnt = commCodeService.setCommLUpdate(detailReqList);
int resultCnt = commCodeService.setCommHUpdate(codeReq);
if (resultCnt > 0)
codeResponse.setCode("200");
else

View File

@ -1,14 +1,13 @@
package com.interplug.qcast.biz.commCode;
import org.apache.ibatis.annotations.Mapper;
import com.interplug.qcast.biz.commCode.dto.CommCodeDetailRequest;
import com.interplug.qcast.biz.commCode.dto.CommCodeHeaderRequest;
import com.interplug.qcast.biz.commCode.dto.CodeRes;
@Mapper
public interface CommCodeMapper {
int setCommHUpdate(CommCodeHeaderRequest codeReq);
int setCommHUpdate(CodeRes codeRes);
int setCommLUpdate(CommCodeDetailRequest codeReq);
int setCommLUpdate(CodeRes codeRes);
}

View File

@ -1,9 +1,8 @@
package com.interplug.qcast.biz.commCode;
import java.util.List;
import org.springframework.stereotype.Service;
import com.interplug.qcast.biz.commCode.dto.CommCodeDetailRequest;
import com.interplug.qcast.biz.commCode.dto.CommCodeHeaderRequest;
import com.interplug.qcast.biz.commCode.dto.CodeReq;
import com.interplug.qcast.biz.commCode.dto.CodeRes;
import lombok.RequiredArgsConstructor;
@Service
@ -12,33 +11,30 @@ public class CommCodeService {
private final CommCodeMapper commCodeMapper;
public int setCommHUpdate(List<CommCodeHeaderRequest> headReqList) {
public int setCommHUpdate(CodeReq codeReq) {
int resultCnt = 0;
if (!headReqList.isEmpty()) {
for (CommCodeHeaderRequest headReq : headReqList) {
if ("Y".equals(headReq.getQcCommYn())) {
headReq.setDelFlg(0);
if (!codeReq.getApiHeadCdList1().isEmpty()) {
for (CodeRes codeRes : codeReq.getApiHeadCdList1()) {
if ("Y".equals(codeRes.getQcCommYn())) {
codeRes.setDelFlg(0);
} else {
headReq.setDelFlg(1);
codeRes.setDelFlg(1);
}
resultCnt += commCodeMapper.setCommHUpdate(headReq);
resultCnt += commCodeMapper.setCommHUpdate(codeRes);
}
}
return resultCnt;
}
public int setCommLUpdate(List<CommCodeDetailRequest> detailReqList) {
int resultCnt = 0;
if (!detailReqList.isEmpty()) {
for (CommCodeDetailRequest detailReq : detailReqList) {
if ("A".equals(detailReq.getClStatCd())) {
detailReq.setClDelFlg(0);
if (!codeReq.getApiCommCdList1().isEmpty()) {
for (CodeRes codeRes : codeReq.getApiCommCdList1()) {
if ("A".equals(codeRes.getClStatCd())) {
codeRes.setClDelFlg(0);
} else {
detailReq.setClDelFlg(1);
codeRes.setClDelFlg(1);
}
resultCnt += commCodeMapper.setCommLUpdate(detailReq);
}
resultCnt += commCodeMapper.setCommLUpdate(codeRes);
}
}
return resultCnt;
}

View File

@ -0,0 +1,15 @@
package com.interplug.qcast.biz.commCode.dto;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class CodeReq {
private List<CodeRes> apiHeadCdList1;
private List<CodeRes> apiCommCdList1;
}

View File

@ -4,12 +4,14 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class CommCodeRequest {
public class CodeRes {
private String headCd;
private String headId;
private String headNm;
@ -26,9 +28,7 @@ public class CommCodeRequest {
private String refNum4;
private String refNum5;
private String remarks;
private String delFlg;
// private String regDt;
// private String uptDt;
private Integer delFlg;
private String clHeadCd;
private String clCode;
@ -48,10 +48,9 @@ public class CommCodeRequest {
private Integer clRefNum5;
private Integer clPriority;
private String clRefCnt;
private String clDelFlg;
// private String clRegDt;
// private String clUptDt;
private String clStatCd;
private Integer clDelFlg;
private String qcGubun;
private String qcCommYn;
}

View File

@ -1,35 +0,0 @@
package com.interplug.qcast.biz.commCode.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class CommCodeDetailRequest {
private String clHeadCd;
private String clCode;
private String clReadCd;
private String clCodeNm;
private String clCodeJp;
private String clCode4Th;
private String clRefChr1;
private String clRefChr2;
private String clRefChr3;
private String clRefChr4;
private String clRefChr5;
private Integer clRefNum1;
private Integer clRefNum2;
private Integer clRefNum3;
private Integer clRefNum4;
private Integer clRefNum5;
private Integer clPriority;
private String clRefCnt;
private Integer clDelFlg;
private String clStatCd;
}

View File

@ -1,35 +0,0 @@
package com.interplug.qcast.biz.commCode.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class CommCodeHeaderRequest {
private String headCd;
private String headId;
private String headNm;
private String headJp;
private String head4Th;
private String refChr1;
private String refChr2;
private String refChr3;
private String refChr4;
private String refChr5;
private String refNum1;
private String refNum2;
private String refNum3;
private String refNum4;
private String refNum5;
private String remarks;
private String qcCommYn;
private Integer delFlg;
}

View File

@ -1,18 +0,0 @@
package com.interplug.qcast.biz.commCode.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class CommCodeResponse {
private String code;
private String message;
}

View File

@ -0,0 +1,34 @@
package com.interplug.qcast.biz.storeFavorite;
import com.interplug.qcast.biz.storeFavorite.dto.StoreFavoriteRequest;
import com.interplug.qcast.biz.user.dto.UserResponse;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping("/api/store-favorite")
@RequiredArgsConstructor
@Tag(name = "StoreFavorite", description = "Store Favorite 관련 API")
public class StoreFavoriteController {
private final StoreFavoriteService storeFavService;
@Operation(description = "Store Favorite 정보를 등록/수정 한다.(동기화)")
@PutMapping("/store-favorite-save")
@ResponseStatus(HttpStatus.OK)
public UserResponse setStoreFavoriteSave(@RequestBody StoreFavoriteRequest req) {
UserResponse userResponse = new UserResponse();
int resultCnt = storeFavService.setStoreFavoriteSave(req);
if (resultCnt > 0) userResponse.setCode("200");
else userResponse.setCode("500");
return userResponse;
}
}

View File

@ -0,0 +1,10 @@
package com.interplug.qcast.biz.storeFavorite;
import com.interplug.qcast.biz.storeFavorite.dto.StoreFavoriteRequest;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface StoreFavoriteMapper {
int setStoreFavoriteSave(StoreFavoriteRequest req);
}

View File

@ -0,0 +1,17 @@
package com.interplug.qcast.biz.storeFavorite;
import com.interplug.qcast.biz.storeFavorite.dto.StoreFavoriteRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class StoreFavoriteService {
private final StoreFavoriteMapper storeFavoriteMapper;
public int setStoreFavoriteSave(StoreFavoriteRequest req) {
return storeFavoriteMapper.setStoreFavoriteSave(req);
}
}

View File

@ -0,0 +1,16 @@
package com.interplug.qcast.biz.storeFavorite.dto;
import lombok.Data;
@Data
public class StoreFavoriteRequest {
private String userId;
private String saleStoreId;
private String dispOrder;
private String delFlg;
private String registDatetime;
private String lastEditDatetime;
}

View File

@ -47,4 +47,18 @@ public class UserController {
return userResponse;
}
@Operation(description = "판매점 Sap 정보를 등록/수정 한다.(동기화)")
@PutMapping("/store-sap-info-save")
@ResponseStatus(HttpStatus.OK)
public UserResponse setStoreSapCdSave(@RequestBody StoreRequest storeReq) {
UserResponse userResponse = new UserResponse();
int resultCnt = userService.setStoreSapCdSave(storeReq);
if (resultCnt > 0) userResponse.setCode("200");
else userResponse.setCode("500");
return userResponse;
}
}

View File

@ -12,4 +12,5 @@ public interface UserMapper {
int setStoreSapCdSave(StoreRequest storeReq);
int setUserSave(UserRequest userReqList);
}

View File

@ -13,8 +13,9 @@ public class UserService {
private final UserMapper userMapper;
public int setStoreSave(StoreRequest storeReq) {
int resultCnt = userMapper.setStoreSave(storeReq);
userMapper.setStoreSapCdSave(storeReq);
return userMapper.setStoreSave(storeReq);
return resultCnt;
}
public int setUserSave(List<UserRequest> userReqList) {
@ -27,4 +28,8 @@ public class UserService {
return resultCnt;
}
public int setStoreSapCdSave(StoreRequest storeReq) {
return userMapper.setStoreSapCdSave(storeReq);
}
}

View File

@ -18,6 +18,7 @@ public class UserRequest {
private String registDatetime;
private String lastEditDatetime;
private String lastEditUser;
private String delFlg;
}

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.interplug.qcast.biz.commCode.CommCodeMapper">
<insert id="setCommHUpdate" parameterType="com.interplug.qcast.biz.commCode.dto.CommCodeHeaderRequest">
<insert id="setCommHUpdate" parameterType="com.interplug.qcast.biz.commCode.dto.CodeRes">
/* sqlid : com.interplug.qcast.commCode.setCommHUpdate */
MERGE M_COMM_H AS A
USING
@ -27,7 +27,6 @@
, REF_NUM5 = #{refNum5}
, REMARKS = #{remarks}
, DEL_FLG = #{delFlg}
, REG_DT = GETDATE()
, UPT_DT = GETDATE()
WHEN NOT MATCHED THEN
INSERT (
@ -73,7 +72,7 @@
);
</insert>
<insert id="setCommLUpdate" parameterType="com.interplug.qcast.biz.commCode.dto.CommCodeDetailRequest">
<insert id="setCommLUpdate" parameterType="com.interplug.qcast.biz.commCode.dto.CodeRes">
/* sqlid : com.interplug.qcast.commCode.setCommLUpdate */
MERGE M_COMM_L AS A
USING
@ -100,7 +99,6 @@
, PRIORITY = #{clPriority}
, REF_CNT = #{clRefCnt}
, DEL_FLG = #{clDelFlg}
, REG_DT = GETDATE()
, UPT_DT = GETDATE()
WHEN NOT MATCHED THEN
INSERT (

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.interplug.qcast.biz.storeFavorite.StoreFavoriteMapper">
<insert id="setStoreFavoriteSave" parameterType="com.interplug.qcast.biz.storeFavorite.dto.StoreFavoriteRequest" >
/* sqlid : com.interplug.qcast.storeFavorite.setStoreFavoriteSave */
MERGE M_SALES_STORE_FAV AS A
USING
( SELECT #{userId} AS USER_ID, #{saleStoreId} AS SALE_STORE_ID ) AS D
ON (A.USER_ID = D.USER_ID AND A.SALE_STORE_ID = D.SALE_STORE_ID
)
WHEN MATCHED THEN
UPDATE SET
DEL_FLG = #{delFlg}
, DISP_ORDER = #{dispOrder}
, LAST_EDIT_DATETIME = #{lastEditDatetime}
WHEN NOT MATCHED THEN
INSERT (
USER_ID
, SALE_STORE_ID
, DISP_ORDER
, DEL_FLG
, REGIST_DATETIME
, LAST_EDIT_DATETIME
) VALUES (
#{userId}
, #{saleStoreId}
, #{dispOrder}
, #{delFlg}
, #{registDatetime}
, #{lastEditDatetime}
);
</insert>
</mapper>

View File

@ -6,20 +6,55 @@
<insert id="setStoreSapCdSave" parameterType="com.interplug.qcast.biz.user.dto.StoreRequest" >
/* sqlid : com.interplug.qcast.user.setStoreSapCdSave */
MERGE M_SALES_STORE_ID_FOR_SAP AS A
USING
( SELECT #{saleStoreId} AS SALE_STORE_ID ) AS D
ON (A.SALE_STORE_ID = D.SALE_STORE_ID)
WITH SALES_STORE_CTE AS (
SELECT
SALE_STORE_ID
, SALE_STORE_NAME
, SALE_STORE_LEVEL
, FIRST_AGENT_ID
, PARENT_SALE_AGENT_ID
, DEL_FLG
FROM M_SALES_STORE WITH(NOLOCK)
WHERE SALE_STORE_ID = #{saleStoreId}
AND APPROVE_FLG = '2'
UNION ALL
SELECT
A.SALE_STORE_ID
, A.SALE_STORE_NAME
, A.SALE_STORE_LEVEL
, A.FIRST_AGENT_ID
, A.PARENT_SALE_AGENT_ID
, A.DEL_FLG
FROM M_SALES_STORE A WITH(NOLOCK)
INNER JOIN SALES_STORE_CTE B
ON A.PARENT_SALE_AGENT_ID = B.SALE_STORE_ID
WHERE A.APPROVE_FLG = '2'
)
MERGE INTO M_SALES_STORE_ID_FOR_SAP AS A
USING (
SELECT
CASE WHEN SALE_STORE_LEVEL = '1' THEN 'Y' ELSE 'N' END AS FIRST_AGENT_YN
, SALE_STORE_ID
, SALE_STORE_NAME
, SALE_STORE_LEVEL
, FIRST_AGENT_ID
, PARENT_SALE_AGENT_ID
, DEL_FLG
FROM SALES_STORE_CTE
) AS D
ON A.SALE_STORE_ID = D.SALE_STORE_ID
WHEN MATCHED AND D.DEL_FLG = '1' THEN
DELETE
WHEN MATCHED THEN
UPDATE SET
SAP_SALES_STORE_CD = #{sapSalesStoreCd}
WHEN NOT MATCHED THEN
INSERT (
SALE_STORE_ID
, SAP_SALES_STORE_CD
SALE_STORE_ID
, SAP_SALES_STORE_CD
) VALUES (
#{saleStoreId}
, #{sapSalesStoreCd}
#{saleStoreId}
, #{sapSalesStoreCd}
);
</insert>
@ -138,8 +173,11 @@
/* sqlid : com.interplug.qcast.user.setUserSave */
MERGE M_USER AS A
USING
( SELECT #{userId} AS USER_ID ) AS D
( SELECT #{userId} AS USER_ID
, #{delFlg} AS DEL_FLG ) AS D
ON (A.USER_ID = D.USER_ID)
WHEN MATCHED AND D.DEL_FLG = '1' THEN
DELETE
WHEN MATCHED THEN
UPDATE SET
SALE_STORE_ID = #{saleStoreId}
@ -191,4 +229,5 @@
, #{lastEditUser}
);
</insert>
</mapper>