diff --git a/bd-api/bd-api-sale/src/main/java/com/hzs/activity/tourism/IAcTourismServiceApi.java b/bd-api/bd-api-sale/src/main/java/com/hzs/activity/tourism/IAcTourismServiceApi.java index 10f9e7a8..fc695caa 100644 --- a/bd-api/bd-api-sale/src/main/java/com/hzs/activity/tourism/IAcTourismServiceApi.java +++ b/bd-api/bd-api-sale/src/main/java/com/hzs/activity/tourism/IAcTourismServiceApi.java @@ -16,4 +16,11 @@ public interface IAcTourismServiceApi { */ R handleTourismData(); + + /** + * 报单赠送更新提货列表 + * @return + */ + R handleDeclarationData(); + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftConfigMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftConfigMapper.java index f86dcff4..89568ce5 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftConfigMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftConfigMapper.java @@ -2,6 +2,10 @@ package com.hzs.activity.declaration.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hzs.activity.declaration.vo.AcDeclarationGiftConfig; +import com.hzs.common.domain.activity.pick.AcPick; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +17,7 @@ import com.hzs.activity.declaration.vo.AcDeclarationGiftConfig; */ public interface AcDeclarationGiftConfigMapper extends BaseMapper { + List selectAcPickSevenDay(); + + void updateOrInsertPick(@Param("pkCountry") Integer pkCountry); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftConfigService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftConfigService.java index d5453662..03b76c4c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftConfigService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftConfigService.java @@ -24,4 +24,7 @@ public interface IAcDeclarationGiftConfigService extends IService handleTourismData() { try { @@ -32,4 +36,15 @@ public class AcTourismServiceProvider implements IAcTourismServiceApi { return R.fail(); } + @Override + public R handleDeclarationData() { + try { + iAcDeclarationGiftConfigService.handleDeclarationData(); + return R.ok(); + } catch (Exception e) { + log.error("旅游活动更新积分异常", e); + } + return R.fail(); + } + } diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftConfigMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftConfigMapper.xml index b1538475..1de3fced 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftConfigMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftConfigMapper.xml @@ -4,25 +4,26 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - DEL_FLAG, + DEL_FLAG + , CREATION_TIME, PK_CREATOR, MODIFIED_TIME, @@ -30,5 +31,120 @@ PK_COUNTRY, PK_ID, PK_BASE_ID, REGISTER_AUTHORITY, PK_PRODUCT, SPECS_NAME, SPECS_NAME_ID, QUANTITY, LEVEL + + DECLARE + v_error_count NUMBER := 0; + BEGIN + BEGIN + MERGE INTO AC_PICK tgt USING (SELECT adgr.PK_ID AS SRC_ID, + adgr.PK_MEMBER, + 32 AS PICK_TYPE, + adgc.PK_ID AS PK_BASE_CONFIG, + adgr.PK_PRODUCT AS PK_DATA_ID, + adgc.SPECS_NAME AS SPECS_NAME, + adgc.SPECS_NAME_ID AS SPECS_NAME_ID, + adgr.QUANTITY AS USABLE_QUANTITY, + bp.COVER AS PICK_COVER, + 0 AS IS_FREE_MAIL, + 0 AS DEL_FLAG, + adgr.QUANTITY AS BASE_QUANTITY, + adgr.PK_BASE_ID AS PK_BASE_ID, + SYSDATE AS CREATION_TIME, + adgr.PK_MEMBER AS PK_CREATOR, + #{pkCountry} AS PK_COUNTRY + FROM AC_DECLARATION_GIFT_RECORD adgr + LEFT JOIN AC_DECLARATION_GIFT_CONFIG adgc ON adgr.PK_RULE_ID = adgc.PK_ID + LEFT JOIN BD_PRODUCT bp ON adgr.PK_PRODUCT = bp.PK_ID + LEFT JOIN BD_PRODUCT_EXTEND bpe ON bp.PK_ID = bpe.PK_PRODUCT + WHERE TRUNC(adgr.CREATION_TIME) = TRUNC(SYSDATE) - 7 + OR adgr.SYNC_STATUS = 2) src ON ( + 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.SPECS_NAME = src.SPECS_NAME + AND tgt.SPECS_NAME_ID = src.SPECS_NAME_ID + AND tgt.PK_BASE_ID = src.PK_BASE_ID + ) + WHEN MATCHED THEN + UPDATE + SET tgt.USABLE_QUANTITY = tgt.USABLE_QUANTITY + src.USABLE_QUANTITY, + tgt.MODIFIED_TIME = SYSDATE, + tgt.PK_MODIFIED = src.PK_CREATOR + WHEN NOT MATCHED THEN + INSERT ( + PK_ID, + PK_MEMBER, + PICK_TYPE, + PK_BASE_CONFIG, + PK_DATA_ID, + SPECS_NAME, + SPECS_NAME_ID, + USABLE_QUANTITY, + PICK_COVER, + IS_FREE_MAIL, + DEL_FLAG, + BASE_QUANTITY, + PK_BASE_ID, + CREATION_TIME, + PK_CREATOR, + PK_COUNTRY + ) + VALUES (AC_PICK_SEQ.NEXTVAL, + src.PK_MEMBER, + src.PICK_TYPE, + src.PK_BASE_CONFIG, + src.PK_DATA_ID, + src.SPECS_NAME, + src.SPECS_NAME_ID, + src.USABLE_QUANTITY, + src.PICK_COVER, + src.IS_FREE_MAIL, + src.DEL_FLAG, + src.BASE_QUANTITY, + src.PK_BASE_ID, + src.CREATION_TIME, + src.PK_CREATOR, + src.PK_COUNTRY); + UPDATE AC_DECLARATION_GIFT_RECORD + SET SYNC_STATUS = 1 + WHERE (TRUNC(CREATION_TIME) = TRUNC(SYSDATE) - 7 OR SYNC_STATUS = 2); + EXCEPTION + WHEN OTHERS THEN + v_error_count := SQL % ROWCOUNT; + UPDATE AC_DECLARATION_GIFT_RECORD + SET SYNC_STATUS = 2 + WHERE (TRUNC(CREATION_TIME) = TRUNC(SYSDATE) - 7 OR SYNC_STATUS = 2); + END; + INSERT INTO AC_PICK_LOG (PK_ID, PK_PICK, PK_USER, QUANTITY, PK_COUNTRY) + SELECT AC_PICK_LOG_SEQ.NEXTVAL, + p.PK_ID, + p.PK_CREATOR, + p.USABLE_QUANTITY, + p.PK_COUNTRY + FROM AC_PICK p + WHERE TRUNC(p.CREATION_TIME) = TRUNC(SYSDATE) + OR TRUNC(p.MODIFIED_TIME) = TRUNC(SYSDATE); + COMMIT; + END; + + diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPickType.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPickType.java index 4c79f653..30ff2460 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPickType.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/enums/EPickType.java @@ -35,6 +35,11 @@ public enum EPickType { */ LOTTERY_DRAW(17, "抽奖"), + /** + * 关联 AC_DECLARATION_GIFT_CONFIG 表 + */ + DELCARATION_GIFT(32,"报单赠送") + ; /** diff --git a/bd-third/src/main/java/com/hzs/third/job/ActivityJob.java b/bd-third/src/main/java/com/hzs/third/job/ActivityJob.java index 6662e880..a0699136 100644 --- a/bd-third/src/main/java/com/hzs/third/job/ActivityJob.java +++ b/bd-third/src/main/java/com/hzs/third/job/ActivityJob.java @@ -34,4 +34,19 @@ public class ActivityJob { log.info("旅游活动更新积分 结束执行"); } + /** + * 报单赠送更新提货列表 + */ + @XxlJob("handleDeclarationData") + public void handleDeclarationData() { + log.info("报单赠送更新提货列表 开始执行"); + R resultR = iAcTourismServiceApi.handleDeclarationData(); + if (resultR.isSuccess()) { + log.info("报单赠送更新提货列表 执行成功"); + } else { + log.error("报单赠送更新提货列表 执行失败"); + } + log.info("报单赠送更新提货列表 结束执行"); + } + }