select cm.pk_id, cm.member_code, cm.member_name, cm.phone, cm.pk_settle_country, cm.pk_parent, cm.pk_place_parent, cm.place_dept, cm.pk_team_code, cm.pk_center_code, cm.category, cm.pk_settle_grade, cm.pk_awards, cm.purchase_status, cm.order_source, cm.is_real_name, cm.is_bus_license, cm.is_maker_space, cm.share_status, cm.pay_pwd, cm.register_authority, cm.nick_name, cm.pk_vertex, cm.service_code from cu_member cm where cm.del_flag = 0 INSERT INTO CU_MEMBER (PK_ID, MEMBER_CODE, MEMBER_NAME, CATEGORY, CUSTOMER_TYPE, PHONE, EMAIL, ID_CARD, PK_SETTLE_COUNTRY, PK_PARENT, PK_PLACE_PARENT, PLACE_DEPT, PK_TEAM_CODE, PK_CENTER_CODE, SOURCE, PK_REGISTER_GRADE, PK_SETTLE_GRADE, PK_AWARDS, CONSUME_MONEY, CONSUME_ACHIEVE, PAY_STATUS, LOGIN_PWD, PAY_PWD, LOGIN_PASSWORD, PAY_PASSWORD, PK_VERTEX, ACCOUNT_STATUS, ORDER_SOURCE, PK_CREATOR, CREATION_TIME, PK_COUNTRY, PAY_TIME, GLOBAL_CODE, COUNTRY_CODE, REGISTER_AUTHORITY, EXPIRE_DATE, STOP_DATE, IS_MAKER_GIFT, MAKER_GIFT_TIME) VALUES (#{pkId,jdbcType=INTEGER}, #{memberCode}, #{memberName}, #{category}, #{customerType}, #{phone}, #{email, jdbcType=VARCHAR}, #{idCard, jdbcType=VARCHAR}, #{pkSettleCountry}, #{pkParent}, #{pkPlaceParent,jdbcType=NUMERIC}, #{placeDept,jdbcType=INTEGER}, #{pkTeamCode,jdbcType=INTEGER}, #{pkCenterCode,jdbcType=INTEGER}, #{source}, #{pkRegisterGrade}, #{pkSettleGrade}, #{pkAwards}, #{consumeMoney,jdbcType=NUMERIC}, #{consumeAchieve,jdbcType=NUMERIC}, #{payStatus}, #{loginPwd}, #{payPwd}, #{loginPassword}, #{payPassword}, #{pkVertex,jdbcType=INTEGER}, #{accountStatus}, #{orderSource}, #{pkCreator,jdbcType=INTEGER}, #{creationTime, jdbcType=TIMESTAMP}, #{pkCountry}, #{payTime, jdbcType=TIMESTAMP}, #{globalCode, jdbcType=VARCHAR}, #{countryCode, jdbcType=VARCHAR}, #{registerAuthority,jdbcType=INTEGER}, #{expireDate, jdbcType=DATE}, #{stopDate, jdbcType=DATE}, #{isMakerGift,jdbcType=INTEGER}, #{makerGiftTime,jdbcType=TIMESTAMP}) insert ALL into CU_MEMBER ( PK_ID, MEMBER_CODE, MEMBER_NAME, CUSTOMER_TYPE, PHONE, PK_PARENT, PK_PLACE_PARENT, PLACE_DEPT, PK_COUNTRY, PK_SETTLE_COUNTRY, SOURCE, PK_REGISTER_GRADE, PK_SETTLE_GRADE, PK_AWARDS, LOGIN_PWD, PAY_PWD, LOGIN_PASSWORD, PAY_PASSWORD, PK_CREATOR, CREATION_TIME, PAY_TIME, PAY_STATUS, PK_TEAM_CODE, PK_VERTEX, ORDER_SOURCE, CONSUME_ACHIEVE, GLOBAL_CODE, COUNTRY_CODE, EXPIRE_DATE, STOP_DATE ) values ( #{item.pkId}, #{item.memberCode}, #{item.memberName}, #{item.customerType}, #{item.phone}, #{item.pkParent}, #{item.pkPlaceParent}, #{item.placeDept}, #{item.pkCountry}, #{item.pkSettleCountry}, #{item.source}, #{item.pkRegisterGrade}, #{item.pkSettleGrade}, #{item.pkAwards}, #{item.loginPwd}, #{item.payPwd}, #{item.loginPassword}, #{item.payPassword}, #{item.pkCreator}, #{item.creationTime}, #{item.payTime}, #{item.payStatus}, #{item.pkTeamCode, jdbcType=NUMERIC}, #{item.pkVertex, jdbcType=NUMERIC}, #{item.orderSource}, #{item.consumeAchieve}, #{item.globalCode, jdbcType=VARCHAR}, #{item.countryCode, jdbcType=VARCHAR}, #{item.expireDate, jdbcType=DATE}, #{item.stopDate, jdbcType=DATE} ) SELECT 1 FROM dual MERGE INTO cu_member m USING ( select #{item.pkMember} pk_member, #{item.newValue} member_name #{item.newValue} phone FROM DUAL ) t ON ( t.pk_member=m.pk_id and m.pk_id in #{item.pkMember} ) WHEN MATCHED THEN UPDATE SET m.member_name = t.member_name, m.member_name = DECODE(m.system_type,1,t.phone,m.member_name), m.phone = t.phone, m.MODIFIED_TIME = sysdate, m.pk_modified = #{updatePkMember} update cu_member is_real_name = #{value} login_pwd = #{loginPwd},login_password = #{loginPassword}, pay_pwd = #{payPwd},pay_password = #{payPassword} login_pwd = #{loginPwd},login_password = #{loginPassword} pay_pwd = #{payPwd},pay_password = #{payPassword} pk_register_grade = #{value} pk_settle_grade = #{value} pk_awards = #{value} pk_country = #{value} account_status = #{value} income_status = #{value} purchase_status = 0 share_status = 0 purchase_status = 1 share_status = 1 register_authority = #{value} is_maker_space = #{value} super_studio = #{value} is_dealer = #{value} LECTURER_LEVEL = #{value} SYSTEM_LEVEL = #{value} pk_max_awards = #{value} ,MODIFIED_TIME = sysdate, PK_MODIFIED = #{updatePkMember} where pk_id in #{item.pkMember} update CU_MEMBER set PK_PARENT = #{pkParent}, DIRECT_PUSH_NUMBER = #{directPushNumber} where PK_ID = #{pkMember} update CU_MEMBER set PK_PLACE_PARENT = #{pkPlaceParent}, PLACE_DEPT = #{placeDept} where PK_ID = #{pkMember} update cu_member m set m.change_number = nvl(m.change_number,0) + 1, m.modified_time = sysdate, m.pk_modified = #{updatePkMember} where m.pk_id in #{item} UPDATE cu_member m SET m.modified_time = SYSDATE, m.pk_modified = 100000000, m.expire_date = add_months(m.expire_date, 12), m.stop_date = add_months(m.stop_date, 12) WHERE m.expire_date <= add_months(trunc(SYSDATE), 4) AND m.pk_id IN (SELECT rw.pk_member FROM bd_agreement_renewal_white rw WHERE rw.del_flag = 0 AND rw.type = 1) update cu_member cm set cm.expire_date = #{expireDate}, cm.stop_date = #{stopDate}, cm.modified_time = sysdate where cm.del_flag = 0 and cm.category = 0 and cm.pk_settle_country = #{pkCountry} and cm.member_name = #{memberName} and cm.phone = #{phone} update cu_member cm set (cm.expire_date, cm.stop_date) = (select cm.expire_date, add_months(cm.expire_date, ${stopMonth}) stop_date from cu_member cm where cm.pk_id = #{pkMember}), cm.pk_modified = #{pkMember}, cm.modified_time = sysdate where cm.del_flag = 0 and cm.category = 0 and cm.pk_settle_country = #{pkCountry} and cm.member_name = #{memberName} and cm.phone = #{phone} and #{expireDate} >= cm.expire_date update cu_member cm set cm.stop_date = add_months(cm.expire_date, ${stopMonth}), cm.modified_time = sysdate, cm.pk_modified = #{pkMember} where cm.del_flag = 0 and cm.category = 0 and cm.pk_settle_country = #{pkCountry} and cm.member_name = #{memberName} and cm.phone = #{phone} and cm.stop_date != add_months(cm.expire_date, ${stopMonth}) update cu_member cm set (cm.expire_date, cm.stop_date) = (select max(cm.expire_date) expire_date, add_months(max(cm.expire_date), ${stopMonth}) stop_date from cu_member cm where cm.del_flag = 0 and cm.category = 0 and cm.pk_settle_country = #{pkCountry} and cm.member_name = #{memberName} and cm.phone = #{phone}), cm.pk_modified = #{pkMember}, cm.modified_time = sysdate where cm.del_flag = 0 and cm.category = 0 and cm.pk_settle_country = #{pkCountry} and cm.member_name = #{memberName} and cm.phone = #{phone} update cu_member cm set cm.expire_status = (case when cm.expire_date >= TRUNC(sysdate) then 1 when TRUNC(sysdate) > cm.expire_date and cm.stop_date >= TRUNC(sysdate) then 2 end) where cm.del_flag = 0 and cm.category = 0 and cm.pk_settle_country = #{pkCountry} and cm.member_name = #{memberName} and cm.phone = #{phone} and cm.pk_id = #{pkMember} merge into cu_member cm using (select cm.member_name, cm.phone, max(cm.pk_max_awards) from cu_member cm where cm.del_flag = 0 and cm.pk_settle_country = #{pkCountry} and cm.category = 0 and cm.pk_max_awards != 1 group by cm.member_name, cm.phone) tmp on (cm.member_name = tmp.member_name and cm.phone = tmp.phone and cm.del_flag = 0 and cm.pk_settle_country = #{pkCountry} and cm.category = 0) WHEN MATCHED THEN update set cm.stop_date = add_months(cm.expire_date, 12), cm.modified_time = sysdate update cu_member cm set cm.expire_status = 2, cm.modified_time = sysdate where cm.del_flag = 0 and cm.category = 0 and cm.pk_settle_country = #{pkCountry} and TRUNC(sysdate) > cm.expire_date and cm.stop_date >= TRUNC(sysdate) update cu_member cm set cm.expire_status = 3, cm.category = 2, cm.modified_time = sysdate where cm.del_flag = 0 and cm.category = 0 and cm.pk_settle_country = #{pkCountry} and TRUNC(sysdate) > cm.stop_date update CU_MEMBER set SERVICE_CODE = null where MEMBER_CODE = #{memberCode}