163 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			XML
		
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			XML
		
	
	
	
| <?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.hzs.activity.declaration.mapper.AcDeclarationGiftConfigMapper">
 | |
| 
 | |
|     <!-- 通用查询映射结果 -->
 | |
|     <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"/>
 | |
|     </resultMap>
 | |
| 
 | |
|     <!-- 通用查询结果列 -->
 | |
|     <sql id="Base_Column_List">
 | |
|         DEL_FLAG
 | |
|         ,
 | |
|         CREATION_TIME,
 | |
|         PK_CREATOR,
 | |
|         MODIFIED_TIME,
 | |
|         PK_MODIFIED,
 | |
|         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,
 | |
|                 adgd.SPECS_NAME AS SPECS_NAME,
 | |
|                 adgd.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,
 | |
|                 100000000 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 AC_DECLARATION_GIFT_DETAIL adgd ON adgc.PK_ID = adgd.PK_RULE_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,
 | |
|                             100000000,
 | |
|                             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>
 |