## 提货记录定时任务

This commit is contained in:
zhangheng 2025-10-15 15:55:49 +08:00
parent b162732059
commit dfcddfdba2
8 changed files with 196 additions and 15 deletions

View File

@ -16,4 +16,11 @@ public interface IAcTourismServiceApi {
*/
R<?> handleTourismData();
/**
* 报单赠送更新提货列表
* @return
*/
R<?> handleDeclarationData();
}

View File

@ -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;
/**
* <p>
@ -13,4 +17,7 @@ import com.hzs.activity.declaration.vo.AcDeclarationGiftConfig;
*/
public interface AcDeclarationGiftConfigMapper extends BaseMapper<AcDeclarationGiftConfig> {
List<AcPick> selectAcPickSevenDay();
void updateOrInsertPick(@Param("pkCountry") Integer pkCountry);
}

View File

@ -24,4 +24,7 @@ public interface IAcDeclarationGiftConfigService extends IService<AcDeclarationG
String updateConfig(AcDeclarationParam acDeclarationParam);
String deleteConfig(Long pkId);
void handleDeclarationData();
}

View File

@ -18,12 +18,14 @@ import com.hzs.activity.declaration.param.AcDeclarationParam;
import com.hzs.activity.declaration.service.IAcDeclarationGiftConfigService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.activity.declaration.vo.AcDeclarationGiftConfig;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.enums.EActType;
import com.hzs.common.core.enums.EApprovalBusiness;
import com.hzs.common.core.enums.EControlType;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.activity.base.AcBaseConfig;
import com.hzs.common.domain.activity.base.AcGoalMemberConfig;
import com.hzs.common.domain.activity.pick.AcPick;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.system.sys.dto.LoginUser;
import lombok.extern.slf4j.Slf4j;
@ -128,6 +130,8 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio
return null;
}
private void removeDeclarationConfig(Long pkId) {
// 删除活动基本配置
baseConfigService.removeById(pkId);
@ -172,4 +176,13 @@ public class AcDeclarationGiftConfigServiceImpl extends ServiceImpl<AcDeclaratio
}
});
}
@Override
public void handleDeclarationData() {
// 所属国家
Integer pkCountry = CountryConstants.CHINA_COUNTRY;
// 更新提货列表
baseMapper.updateOrInsertPick(pkCountry);
}
}

View File

@ -1,5 +1,6 @@
package com.hzs.activity.tourism.provider;
import com.hzs.activity.declaration.service.IAcDeclarationGiftConfigService;
import com.hzs.activity.tourism.IAcTourismServiceApi;
import com.hzs.activity.tourism.service.IAcTourismDataService;
import com.hzs.common.core.domain.R;
@ -21,6 +22,9 @@ public class AcTourismServiceProvider implements IAcTourismServiceApi {
@Autowired
private IAcTourismDataService iAcTourismDataService;
@Autowired
private IAcDeclarationGiftConfigService iAcDeclarationGiftConfigService;
@Override
public R<?> 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();
}
}

View File

@ -4,25 +4,26 @@
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.activity.declaration.vo.AcDeclarationGiftConfig">
<id column="PK_ID" property="pkId" />
<result column="DEL_FLAG" property="delFlag" />
<result column="CREATION_TIME" property="creationTime" />
<result column="PK_CREATOR" property="pkCreator" />
<result column="MODIFIED_TIME" property="modifiedTime" />
<result column="PK_MODIFIED" property="pkModified" />
<result column="PK_COUNTRY" property="pkCountry" />
<result column="PK_BASE_ID" property="pkBaseId" />
<result column="REGISTER_AUTHORITY" property="registerAuthority" />
<result column="PK_PRODUCT" property="pkProduct" />
<result column="SPECS_NAME" property="specsName" />
<result column="SPECS_NAME_ID" property="specsNameId" />
<result column="QUANTITY" property="quantity" />
<result column="LEVEL" property="level" />
<id column="PK_ID" property="pkId"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_BASE_ID" property="pkBaseId"/>
<result column="REGISTER_AUTHORITY" property="registerAuthority"/>
<result column="PK_PRODUCT" property="pkProduct"/>
<result column="SPECS_NAME" property="specsName"/>
<result column="SPECS_NAME_ID" property="specsNameId"/>
<result column="QUANTITY" property="quantity"/>
<result column="LEVEL" property="level"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
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
</sql>
<update id="updateOrInsertPick">
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;
</update>
<select id="selectAcPickSevenDay" resultType="com.hzs.common.domain.activity.pick.AcPick">
SELECT 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,
bpe.DELIVERY_QUANTITY AS BASE_QUANTITY,
adgr.PK_BASE_ID AS PK_BASE_ID
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;
</select>
</mapper>

View File

@ -35,6 +35,11 @@ public enum EPickType {
*/
LOTTERY_DRAW(17, "抽奖"),
/**
* 关联 AC_DECLARATION_GIFT_CONFIG
*/
DELCARATION_GIFT(32,"报单赠送")
;
/**

View File

@ -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("报单赠送更新提货列表 结束执行");
}
}