## 报单赠送提货列表合并数据,后台充值提货卡产品数据

This commit is contained in:
zhangheng 2025-10-21 14:24:36 +08:00
parent 2bb0369e00
commit b89df39a1e
4 changed files with 102 additions and 106 deletions

View File

@ -91,7 +91,7 @@ public class AcPickController extends BaseController {
acPickQueryVO.setPickTypeVal(EPickType.getEnumByValue(acPickQueryVO.getPickType()).getLabel()); acPickQueryVO.setPickTypeVal(EPickType.getEnumByValue(acPickQueryVO.getPickType()).getLabel());
if (EPickType.PICK_PRODUCT.getValue() == acPickExt.getPickType()) { if (EPickType.PICK_PRODUCT.getValue() == acPickExt.getPickType() || EPickType.DECLARATION_GIFT.getValue() == acPickExt.getPickType()) {
// 提货产品 // 提货产品
acPickQueryVO.setDetailList(Collections.singletonList(AcPickQueryDetailVO.builder() acPickQueryVO.setDetailList(Collections.singletonList(AcPickQueryDetailVO.builder()
.productName(acPickExt.getProductName()) .productName(acPickExt.getProductName())

View File

@ -31,117 +31,111 @@
PK_COUNTRY, PK_COUNTRY,
PK_ID, PK_BASE_ID, REGISTER_AUTHORITY, PK_PRODUCT, SPECS_NAME, SPECS_NAME_ID, QUANTITY, LEVEL PK_ID, PK_BASE_ID, REGISTER_AUTHORITY, PK_PRODUCT, SPECS_NAME, SPECS_NAME_ID, QUANTITY, LEVEL
</sql> </sql>
<update id="updateOrInsertPick"> <update id="updateOrInsertPick">DECLARE
DECLARE v_error_count NUMBER := 0; v_error_count NUMBER := 0;
BEGIN BEGIN
BEGIN BEGIN
MERGE INTO AC_PICK tgt USING ( MERGE INTO AC_PICK tgt
SELECT USING (SELECT adgr.PK_BASE_ID,
adgr.PK_ID AS SRC_ID, so.PK_CREATOR AS PK_MEMBER,
so.PK_CREATOR AS PK_MEMBER, 32 AS PICK_TYPE,
32 AS PICK_TYPE, adgd.PK_PRODUCT AS PK_DATA_ID,
adgc.PK_ID AS PK_BASE_CONFIG, adgd.SPECS_NAME,
adgd.PK_PRODUCT AS PK_DATA_ID, adgd.SPECS_NAME_ID,
adgd.SPECS_NAME AS SPECS_NAME, SUM(adgd.QUANTITY) AS USABLE_QUANTITY,
adgd.SPECS_NAME_ID AS SPECS_NAME_ID, bp.COVER AS PICK_COVER,
adgd.QUANTITY AS USABLE_QUANTITY, 0 AS IS_FREE_MAIL,
bp.COVER AS PICK_COVER, 0 AS DEL_FLAG,
0 AS IS_FREE_MAIL, SUM(adgd.QUANTITY) AS BASE_QUANTITY,
0 AS DEL_FLAG, SYSDATE AS CREATION_TIME,
adgd.QUANTITY AS BASE_QUANTITY, 100000000 AS PK_CREATOR,
adgr.PK_BASE_ID AS PK_BASE_ID, #{pkCountry} AS PK_COUNTRY
SYSDATE AS CREATION_TIME, FROM AC_DECLARATION_GIFT_RECORD adgr
100000000 AS PK_CREATOR, LEFT JOIN AC_DECLARATION_GIFT_CONFIG adgc ON adgr.PK_RULE_ID = adgc.PK_ID
#{pkCountry} AS PK_COUNTRY LEFT JOIN AC_DECLARATION_GIFT_DETAIL adgd ON adgc.PK_ID = adgd.PK_RULE_ID
FROM LEFT JOIN BD_PRODUCT bp ON adgd.PK_PRODUCT = bp.PK_ID
AC_DECLARATION_GIFT_RECORD adgr LEFT JOIN BD_PRODUCT_EXTEND bpe ON bp.PK_ID = bpe.PK_PRODUCT
LEFT JOIN AC_DECLARATION_GIFT_CONFIG adgc ON adgr.PK_RULE_ID = adgc.PK_ID LEFT JOIN SA_ORDER so ON adgr.ORDER_CODE = so.ORDER_CODE
LEFT JOIN AC_DECLARATION_GIFT_DETAIL adgd ON adgc.PK_ID = adgd.PK_RULE_ID WHERE adgr.SYNC_STATUS IN (0, 2)
LEFT JOIN BD_PRODUCT bp ON adgd.PK_PRODUCT = bp.PK_ID GROUP BY adgr.PK_BASE_ID,
LEFT JOIN BD_PRODUCT_EXTEND bpe ON bp.PK_ID = bpe.PK_PRODUCT so.PK_CREATOR,
LEFT JOIN SA_ORDER so ON adgr.ORDER_CODE = so.ORDER_CODE adgd.PK_PRODUCT,
WHERE adgd.SPECS_NAME,
adgr.SYNC_STATUS = 0 adgd.SPECS_NAME_ID,
OR adgr.SYNC_STATUS = 2 bp.COVER) src
) src ON ( ON (
tgt.PICK_TYPE = src.PICK_TYPE tgt.PICK_TYPE = src.PICK_TYPE
AND tgt.PK_BASE_CONFIG = src.PK_BASE_CONFIG
AND tgt.PK_DATA_ID = src.PK_DATA_ID AND tgt.PK_DATA_ID = src.PK_DATA_ID
AND tgt.SPECS_NAME = src.SPECS_NAME AND tgt.SPECS_NAME = src.SPECS_NAME
AND tgt.SPECS_NAME_ID = src.SPECS_NAME_ID AND tgt.SPECS_NAME_ID = src.SPECS_NAME_ID
AND tgt.PK_BASE_ID = src.PK_BASE_ID AND tgt.PK_BASE_ID = src.PK_BASE_ID
AND tgt.DEL_FLAG = src.DEL_FLAG AND tgt.DEL_FLAG = src.DEL_FLAG
) )
WHEN MATCHED THEN WHEN MATCHED THEN
UPDATE UPDATE SET
SET tgt.USABLE_QUANTITY = tgt.USABLE_QUANTITY + src.USABLE_QUANTITY, tgt.USABLE_QUANTITY = tgt.USABLE_QUANTITY + src.USABLE_QUANTITY,
tgt.MODIFIED_TIME = SYSDATE, tgt.MODIFIED_TIME = SYSDATE,
tgt.PK_MODIFIED = src.PK_CREATOR tgt.PK_MODIFIED = src.PK_CREATOR
WHEN NOT MATCHED THEN WHEN NOT MATCHED THEN
INSERT ( INSERT (
PK_ID, PK_ID,
PK_MEMBER, PK_MEMBER,
PICK_TYPE, PICK_TYPE,
PK_BASE_CONFIG, PK_BASE_CONFIG,
PK_DATA_ID, PK_DATA_ID,
SPECS_NAME, SPECS_NAME,
SPECS_NAME_ID, SPECS_NAME_ID,
USABLE_QUANTITY, USABLE_QUANTITY,
PICK_COVER, PICK_COVER,
IS_FREE_MAIL, IS_FREE_MAIL,
DEL_FLAG, DEL_FLAG,
BASE_QUANTITY, BASE_QUANTITY,
PK_BASE_ID, PK_BASE_ID,
CREATION_TIME, CREATION_TIME,
PK_CREATOR, PK_CREATOR,
PK_COUNTRY PK_COUNTRY
) )
VALUES VALUES (AC_PICK_SEQ.NEXTVAL,
( src.PK_MEMBER,
AC_PICK_SEQ.NEXTVAL, src.PICK_TYPE,
src.PK_MEMBER, 0,
src.PICK_TYPE, src.PK_DATA_ID,
src.PK_BASE_CONFIG, src.SPECS_NAME,
src.PK_DATA_ID, src.SPECS_NAME_ID,
src.SPECS_NAME, src.USABLE_QUANTITY,
src.SPECS_NAME_ID, src.PICK_COVER,
src.USABLE_QUANTITY, src.IS_FREE_MAIL,
src.PICK_COVER, src.DEL_FLAG,
src.IS_FREE_MAIL, src.BASE_QUANTITY,
src.DEL_FLAG, src.PK_BASE_ID,
src.BASE_QUANTITY, src.CREATION_TIME,
src.PK_BASE_ID, src.PK_CREATOR,
src.CREATION_TIME, src.PK_COUNTRY);
100000000,
src.PK_COUNTRY UPDATE AC_DECLARATION_GIFT_RECORD
); SET SYNC_STATUS = 1
UPDATE AC_DECLARATION_GIFT_RECORD WHERE SYNC_STATUS IN (0, 2);
SET SYNC_STATUS = 1
WHERE EXCEPTION
SYNC_STATUS = 0 WHEN OTHERS THEN
OR SYNC_STATUS = 2; v_error_count := SQL%ROWCOUNT;
EXCEPTION UPDATE AC_DECLARATION_GIFT_RECORD
WHEN OTHERS THEN SET SYNC_STATUS = 2
v_error_count := SQL % ROWCOUNT; WHERE SYNC_STATUS IN (0, 2);
UPDATE AC_DECLARATION_GIFT_RECORD END;
SET SYNC_STATUS = 2
WHERE INSERT INTO AC_PICK_LOG (PK_ID, PK_PICK, PK_USER, QUANTITY, PK_COUNTRY)
SYNC_STATUS = 0 SELECT AC_PICK_LOG_SEQ.NEXTVAL,
OR SYNC_STATUS = 2; p.PK_ID,
END; p.PK_CREATOR,
INSERT INTO AC_PICK_LOG (PK_ID, PK_PICK, PK_USER, QUANTITY, PK_COUNTRY) SELECT p.USABLE_QUANTITY,
AC_PICK_LOG_SEQ.NEXTVAL, p.PK_COUNTRY
p.PK_ID, FROM AC_PICK p
p.PK_CREATOR, WHERE TRUNC(p.CREATION_TIME) = TRUNC(SYSDATE)
p.USABLE_QUANTITY, OR TRUNC(p.MODIFIED_TIME) = TRUNC(SYSDATE);
p.PK_COUNTRY
FROM COMMIT;
AC_PICK p END;
WHERE
TRUNC(p.CREATION_TIME) = TRUNC(SYSDATE)
OR TRUNC(p.MODIFIED_TIME) = TRUNC(SYSDATE);
COMMIT;
END;
</update> </update>
<select id="selectAcPickSevenDay" resultType="com.hzs.common.domain.activity.pick.AcPick"> <select id="selectAcPickSevenDay" resultType="com.hzs.common.domain.activity.pick.AcPick">
SELECT adgr.PK_MEMBER, SELECT adgr.PK_MEMBER,

View File

@ -177,7 +177,7 @@
abc.act_name abc.act_name
FROM AC_PICK ap FROM AC_PICK ap
INNER JOIN cu_member cm ON cm.pk_id = ap.pk_member INNER JOIN cu_member cm ON cm.pk_id = ap.pk_member
LEFT JOIN bd_product bp ON bp.pk_id = ap.pk_data_id AND ap.pick_type in (0, 1, 5, 7, 8) LEFT JOIN bd_product bp ON bp.pk_id = ap.pk_data_id AND ap.pick_type in (0, 1, 5, 7, 8, 32)
left join ac_base_config abc on abc.pk_id = ap.pk_base_id left join ac_base_config abc on abc.pk_id = ap.pk_base_id
WHERE ap.del_flag = 0 WHERE ap.del_flag = 0
and ap.pk_country = #{pkCountry} and ap.pk_country = #{pkCountry}

View File

@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j @Slf4j
@ConditionalOnProperty(name = "xxl-job.start", havingValue = "true") @ConditionalOnProperty(name = "xxl-job.start", havingValue = "true")
@Component @Component
@RestController
public class ActivityJob { public class ActivityJob {
@DubboReference @DubboReference
@ -40,6 +41,7 @@ public class ActivityJob {
* 报单赠送更新提货列表 * 报单赠送更新提货列表
*/ */
@XxlJob("handleDeclarationData") @XxlJob("handleDeclarationData")
@GetMapping("test-push")
public void handleDeclarationData() { public void handleDeclarationData() {
log.info("报单赠送更新提货列表 开始执行"); log.info("报单赠送更新提货列表 开始执行");
R<?> resultR = iAcTourismServiceApi.handleDeclarationData(); R<?> resultR = iAcTourismServiceApi.handleDeclarationData();