返回列表 上一筆 下一筆

📄 資料內容

/**

 * Copyright (c) 1989-2020 INVENTEC BESTA Co., Ltd.

 * All Rights Reserved.

 */

package com.taiwanlife.teamwalk.common.entity.redeem ;



import java.time.LocalDateTime ;



import jakarta.persistence.CascadeType ;

import jakarta.persistence.Column ;

import jakarta.persistence.ConstraintMode ;

import jakarta.persistence.Entity ;

import jakarta.persistence.EntityListeners ;

import jakarta.persistence.EnumType ;

import jakarta.persistence.Enumerated ;

import jakarta.persistence.FetchType ;

import jakarta.persistence.ForeignKey ;

import jakarta.persistence.JoinColumn ;

import jakarta.persistence.ManyToOne ;



import com.fasterxml.jackson.annotation.JsonBackReference;

import org.springframework.data.jpa.domain.support.AuditingEntityListener ;

import org.springframework.format.annotation.DateTimeFormat ;



import com.fasterxml.jackson.annotation.JsonFormat ;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties ;

import com.fasterxml.jackson.annotation.JsonInclude ;

import com.taiwanlife.teamwalk.common.entity.AbstractPrimaryKeyEntity ;

import com.taiwanlife.teamwalk.common.entity.member.MbrMember ;



import lombok.AllArgsConstructor ;

import lombok.Builder ;

import lombok.Data ;

import lombok.EqualsAndHashCode ;

import lombok.NoArgsConstructor ;

import lombok.ToString ;





/**

 * @author Seimo.Zhan

 * @version 1

 *

 * @date 2020/09/18

 */

@Entity

@EntityListeners ( AuditingEntityListener.class )

@JsonIgnoreProperties ( ignoreUnknown = true, value = { "hibernateLazyInitializer", "handler", "fieldHandler" } )

@JsonInclude ( JsonInclude.Include.NON_EMPTY )

@Data

@NoArgsConstructor

@AllArgsConstructor

@EqualsAndHashCode ( callSuper = true )

@ToString ( callSuper = true )

@Builder

public class ReProductExchange extends AbstractPrimaryKeyEntity

{



	@DateTimeFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )

	@JsonFormat ( pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8" )

	private LocalDateTime exchangeTime ;



	private Integer exchangeAmt ;



	@Enumerated ( EnumType.STRING )

	@Column ( columnDefinition = "char(1)" )

	private Status status ;



	@DateTimeFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )

	@JsonFormat ( pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8" )

	private LocalDateTime usedTime ;



	@ManyToOne ( targetEntity = MbrMember.class, cascade = { CascadeType.REFRESH, CascadeType.MERGE }, optional = true, fetch = FetchType.LAZY )

	@JoinColumn ( name = "member_id", referencedColumnName = "id", foreignKey = @ForeignKey ( name = "none", value = ConstraintMode.NO_CONSTRAINT ) )

	@JsonIgnoreProperties ( ignoreUnknown = true, value = { "reProductExchanges" } )

	//@JsonBackReference

	private MbrMember mbrMember ;



	@ManyToOne ( targetEntity = ReProduct.class, cascade = { CascadeType.REFRESH, CascadeType.MERGE }, optional = true, fetch = FetchType.LAZY )

	@JoinColumn ( name = "product_id", referencedColumnName = "id", foreignKey = @ForeignKey ( name = "none", value = ConstraintMode.NO_CONSTRAINT ) )

	@JsonIgnoreProperties ( ignoreUnknown = true, value = { "reProductExchanges" } )

	//@JsonBackReference

	private ReProduct reProduct ;



	@ManyToOne ( targetEntity = ReProductCoupon.class, cascade = { CascadeType.REFRESH, CascadeType.MERGE }, optional = true, fetch = FetchType.LAZY )

	@JoinColumn ( name = "coupon_id", referencedColumnName = "id", foreignKey = @ForeignKey ( name = "none", value = ConstraintMode.NO_CONSTRAINT ) )

	@JsonIgnoreProperties ( ignoreUnknown = true, value = { "reProductExchanges" } )

	//@JsonBackReference

	private ReProductCoupon reProductCoupon ;



	@ManyToOne ( targetEntity = ReProductCompany.class, cascade = { CascadeType.REFRESH, CascadeType.MERGE }, optional = true, fetch = FetchType.LAZY )

	@JoinColumn ( name = "product_company_id", referencedColumnName = "id", foreignKey = @ForeignKey ( name = "none", value = ConstraintMode.NO_CONSTRAINT ) )

	@JsonIgnoreProperties ( ignoreUnknown = true, value = { "reProductExchanges" } )

	//@JsonBackReference

	private ReProductCompany reProductCompany ;



	/**

	 * @author Seimo.Zhan

	 * @version 1

	 *

	 * @date 2020/09/18

	 */

	public enum Status

	{



		N ( 'N', "未使用" ),

		U ( 'U', "已使用" ),

		E ( 'E', "已過期" ) ;



		private final char name ;

		private final String value ;



		/**

		 * Constructor

		 * @param name

		 * @param value

		 */

		private Status ( char name, String value )

		{

			this.name = name ;

			this.value = value ;

		}



		/**

		 * @return char

		 */

		public char getName ()

		{

			return name ;

		}



		/**

		 * @return String

		 */

		public String getValue ()

		{

			return value ;

		}



	}



}

🔐 Base64 編碼內容

LyoqCgogKiBDb3B5cmlnaHQgKGMpIDE5ODktMjAyMCBJTlZFTlRFQyBCRVNUQSBDby4sIEx0ZC4KCiAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCgogKi8KCnBhY2thZ2UgY29tLnRhaXdhbmxpZmUudGVhbXdhbGsuY29tbW9uLmVudGl0eS5yZWRlZW0gOwoKCgppbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWUgOwoKCgppbXBvcnQgamFrYXJ0YS5wZXJzaXN0ZW5jZS5DYXNjYWRlVHlwZSA7CgppbXBvcnQgamFrYXJ0YS5wZXJzaXN0ZW5jZS5Db2x1bW4gOwoKaW1wb3J0IGpha2FydGEucGVyc2lzdGVuY2UuQ29uc3RyYWludE1vZGUgOwoKaW1wb3J0IGpha2FydGEucGVyc2lzdGVuY2UuRW50aXR5IDsKCmltcG9ydCBqYWthcnRhLnBlcnNpc3RlbmNlLkVudGl0eUxpc3RlbmVycyA7CgppbXBvcnQgamFrYXJ0YS5wZXJzaXN0ZW5jZS5FbnVtVHlwZSA7CgppbXBvcnQgamFrYXJ0YS5wZXJzaXN0ZW5jZS5FbnVtZXJhdGVkIDsKCmltcG9ydCBqYWthcnRhLnBlcnNpc3RlbmNlLkZldGNoVHlwZSA7CgppbXBvcnQgamFrYXJ0YS5wZXJzaXN0ZW5jZS5Gb3JlaWduS2V5IDsKCmltcG9ydCBqYWthcnRhLnBlcnNpc3RlbmNlLkpvaW5Db2x1bW4gOwoKaW1wb3J0IGpha2FydGEucGVyc2lzdGVuY2UuTWFueVRvT25lIDsKCgoKaW1wb3J0IGNvbS5mYXN0ZXJ4bWwuamFja3Nvbi5hbm5vdGF0aW9uLkpzb25CYWNrUmVmZXJlbmNlOwoKaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuZGF0YS5qcGEuZG9tYWluLnN1cHBvcnQuQXVkaXRpbmdFbnRpdHlMaXN0ZW5lciA7CgppbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5mb3JtYXQuYW5ub3RhdGlvbi5EYXRlVGltZUZvcm1hdCA7CgoKCmltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uYW5ub3RhdGlvbi5Kc29uRm9ybWF0IDsKCmltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uYW5ub3RhdGlvbi5Kc29uSWdub3JlUHJvcGVydGllcyA7CgppbXBvcnQgY29tLmZhc3RlcnhtbC5qYWNrc29uLmFubm90YXRpb24uSnNvbkluY2x1ZGUgOwoKaW1wb3J0IGNvbS50YWl3YW5saWZlLnRlYW13YWxrLmNvbW1vbi5lbnRpdHkuQWJzdHJhY3RQcmltYXJ5S2V5RW50aXR5IDsKCmltcG9ydCBjb20udGFpd2FubGlmZS50ZWFtd2Fsay5jb21tb24uZW50aXR5Lm1lbWJlci5NYnJNZW1iZXIgOwoKCgppbXBvcnQgbG9tYm9rLkFsbEFyZ3NDb25zdHJ1Y3RvciA7CgppbXBvcnQgbG9tYm9rLkJ1aWxkZXIgOwoKaW1wb3J0IGxvbWJvay5EYXRhIDsKCmltcG9ydCBsb21ib2suRXF1YWxzQW5kSGFzaENvZGUgOwoKaW1wb3J0IGxvbWJvay5Ob0FyZ3NDb25zdHJ1Y3RvciA7CgppbXBvcnQgbG9tYm9rLlRvU3RyaW5nIDsKCgoKCgovKioKCiAqIEBhdXRob3IgU2VpbW8uWmhhbgoKICogQHZlcnNpb24gMQoKICogCgogKiBAZGF0ZSAyMDIwLzA5LzE4CgogKi8KCkBFbnRpdHkKCkBFbnRpdHlMaXN0ZW5lcnMgKCBBdWRpdGluZ0VudGl0eUxpc3RlbmVyLmNsYXNzICkKCkBKc29uSWdub3JlUHJvcGVydGllcyAoIGlnbm9yZVVua25vd24gPSB0cnVlLCB2YWx1ZSA9IHsgImhpYmVybmF0ZUxhenlJbml0aWFsaXplciIsICJoYW5kbGVyIiwgImZpZWxkSGFuZGxlciIgfSApCgpASnNvbkluY2x1ZGUgKCBKc29uSW5jbHVkZS5JbmNsdWRlLk5PTl9FTVBUWSApCgpARGF0YQoKQE5vQXJnc0NvbnN0cnVjdG9yCgpAQWxsQXJnc0NvbnN0cnVjdG9yCgpARXF1YWxzQW5kSGFzaENvZGUgKCBjYWxsU3VwZXIgPSB0cnVlICkKCkBUb1N0cmluZyAoIGNhbGxTdXBlciA9IHRydWUgKQoKQEJ1aWxkZXIKCnB1YmxpYyBjbGFzcyBSZVByb2R1Y3RFeGNoYW5nZSBleHRlbmRzIEFic3RyYWN0UHJpbWFyeUtleUVudGl0eQoKewoKCQoKCUBEYXRlVGltZUZvcm1hdCAoIHBhdHRlcm4gPSAieXl5eS1NTS1kZCBISDptbTpzcyIgKQoKCUBKc29uRm9ybWF0ICggcGF0dGVybiA9ICJ5eXl5L01NL2RkIEhIOm1tOnNzIiwgdGltZXpvbmUgPSAiR01UKzgiICkKCglwcml2YXRlIExvY2FsRGF0ZVRpbWUgZXhjaGFuZ2VUaW1lIDsKCgkKCglwcml2YXRlIEludGVnZXIgZXhjaGFuZ2VBbXQgOwoKCQoKCUBFbnVtZXJhdGVkICggRW51bVR5cGUuU1RSSU5HICkKCglAQ29sdW1uICggY29sdW1uRGVmaW5pdGlvbiA9ICJjaGFyKDEpIiApCgoJcHJpdmF0ZSBTdGF0dXMgc3RhdHVzIDsKCgkKCglARGF0ZVRpbWVGb3JtYXQgKCBwYXR0ZXJuID0gInl5eXktTU0tZGQgSEg6bW06c3MiICkKCglASnNvbkZvcm1hdCAoIHBhdHRlcm4gPSAieXl5eS9NTS9kZCBISDptbTpzcyIsIHRpbWV6b25lID0gIkdNVCs4IiApCgoJcHJpdmF0ZSBMb2NhbERhdGVUaW1lIHVzZWRUaW1lIDsKCgkKCglATWFueVRvT25lICggdGFyZ2V0RW50aXR5ID0gTWJyTWVtYmVyLmNsYXNzLCBjYXNjYWRlID0geyBDYXNjYWRlVHlwZS5SRUZSRVNILCBDYXNjYWRlVHlwZS5NRVJHRSB9LCBvcHRpb25hbCA9IHRydWUsIGZldGNoID0gRmV0Y2hUeXBlLkxBWlkgKQoKCUBKb2luQ29sdW1uICggbmFtZSA9ICJtZW1iZXJfaWQiLCByZWZlcmVuY2VkQ29sdW1uTmFtZSA9ICJpZCIsIGZvcmVpZ25LZXkgPSBARm9yZWlnbktleSAoIG5hbWUgPSAibm9uZSIsIHZhbHVlID0gQ29uc3RyYWludE1vZGUuTk9fQ09OU1RSQUlOVCApICkKCglASnNvbklnbm9yZVByb3BlcnRpZXMgKCBpZ25vcmVVbmtub3duID0gdHJ1ZSwgdmFsdWUgPSB7ICJyZVByb2R1Y3RFeGNoYW5nZXMiIH0gKQoKCS8vQEpzb25CYWNrUmVmZXJlbmNlCgoJcHJpdmF0ZSBNYnJNZW1iZXIgbWJyTWVtYmVyIDsKCgkKCglATWFueVRvT25lICggdGFyZ2V0RW50aXR5ID0gUmVQcm9kdWN0LmNsYXNzLCBjYXNjYWRlID0geyBDYXNjYWRlVHlwZS5SRUZSRVNILCBDYXNjYWRlVHlwZS5NRVJHRSB9LCBvcHRpb25hbCA9IHRydWUsIGZldGNoID0gRmV0Y2hUeXBlLkxBWlkgKQoKCUBKb2luQ29sdW1uICggbmFtZSA9ICJwcm9kdWN0X2lkIiwgcmVmZXJlbmNlZENvbHVtbk5hbWUgPSAiaWQiLCBmb3JlaWduS2V5ID0gQEZvcmVpZ25LZXkgKCBuYW1lID0gIm5vbmUiLCB2YWx1ZSA9IENvbnN0cmFpbnRNb2RlLk5PX0NPTlNUUkFJTlQgKSApCgoJQEpzb25JZ25vcmVQcm9wZXJ0aWVzICggaWdub3JlVW5rbm93biA9IHRydWUsIHZhbHVlID0geyAicmVQcm9kdWN0RXhjaGFuZ2VzIiB9ICkKCgkvL0BKc29uQmFja1JlZmVyZW5jZQoKCXByaXZhdGUgUmVQcm9kdWN0IHJlUHJvZHVjdCA7CgoJCgoJQE1hbnlUb09uZSAoIHRhcmdldEVudGl0eSA9IFJlUHJvZHVjdENvdXBvbi5jbGFzcywgY2FzY2FkZSA9IHsgQ2FzY2FkZVR5cGUuUkVGUkVTSCwgQ2FzY2FkZVR5cGUuTUVSR0UgfSwgb3B0aW9uYWwgPSB0cnVlLCBmZXRjaCA9IEZldGNoVHlwZS5MQVpZICkKCglASm9pbkNvbHVtbiAoIG5hbWUgPSAiY291cG9uX2lkIiwgcmVmZXJlbmNlZENvbHVtbk5hbWUgPSAiaWQiLCBmb3JlaWduS2V5ID0gQEZvcmVpZ25LZXkgKCBuYW1lID0gIm5vbmUiLCB2YWx1ZSA9IENvbnN0cmFpbnRNb2RlLk5PX0NPTlNUUkFJTlQgKSApCgoJQEpzb25JZ25vcmVQcm9wZXJ0aWVzICggaWdub3JlVW5rbm93biA9IHRydWUsIHZhbHVlID0geyAicmVQcm9kdWN0RXhjaGFuZ2VzIiB9ICkKCgkvL0BKc29uQmFja1JlZmVyZW5jZQoKCXByaXZhdGUgUmVQcm9kdWN0Q291cG9uIHJlUHJvZHVjdENvdXBvbiA7CgoKCglATWFueVRvT25lICggdGFyZ2V0RW50aXR5ID0gUmVQcm9kdWN0Q29tcGFueS5jbGFzcywgY2FzY2FkZSA9IHsgQ2FzY2FkZVR5cGUuUkVGUkVTSCwgQ2FzY2FkZVR5cGUuTUVSR0UgfSwgb3B0aW9uYWwgPSB0cnVlLCBmZXRjaCA9IEZldGNoVHlwZS5MQVpZICkKCglASm9pbkNvbHVtbiAoIG5hbWUgPSAicHJvZHVjdF9jb21wYW55X2lkIiwgcmVmZXJlbmNlZENvbHVtbk5hbWUgPSAiaWQiLCBmb3JlaWduS2V5ID0gQEZvcmVpZ25LZXkgKCBuYW1lID0gIm5vbmUiLCB2YWx1ZSA9IENvbnN0cmFpbnRNb2RlLk5PX0NPTlNUUkFJTlQgKSApCgoJQEpzb25JZ25vcmVQcm9wZXJ0aWVzICggaWdub3JlVW5rbm93biA9IHRydWUsIHZhbHVlID0geyAicmVQcm9kdWN0RXhjaGFuZ2VzIiB9ICkKCgkvL0BKc29uQmFja1JlZmVyZW5jZQoKCXByaXZhdGUgUmVQcm9kdWN0Q29tcGFueSByZVByb2R1Y3RDb21wYW55IDsKCgkKCgkvKioKCgkgKiBAYXV0aG9yIFNlaW1vLlpoYW4KCgkgKiBAdmVyc2lvbiAxCgoJICogCgoJICogQGRhdGUgMjAyMC8wOS8xOAoKCSAqLwoKCXB1YmxpYyBlbnVtIFN0YXR1cwoKCXsKCgkJCgoJCU4gKCAnTicsICLmnKrkvb/nlKgiICksCgoJCVUgKCAnVScsICLlt7Lkvb/nlKgiICksCgoJCUUgKCAnRScsICLlt7LpgY7mnJ8iICkgOwoKCQkKCgkJcHJpdmF0ZSBmaW5hbCBjaGFyIG5hbWUgOwoKCQlwcml2YXRlIGZpbmFsIFN0cmluZyB2YWx1ZSA7CgoJCQoKCQkvKioKCgkJICogQ29uc3RydWN0b3IKCgkJICogQHBhcmFtIG5hbWUKCgkJICogQHBhcmFtIHZhbHVlCgoJCSAqLwoKCQlwcml2YXRlIFN0YXR1cyAoIGNoYXIgbmFtZSwgU3RyaW5nIHZhbHVlICkKCgkJewoKCQkJdGhpcy5uYW1lID0gbmFtZSA7CgoJCQl0aGlzLnZhbHVlID0gdmFsdWUgOwoKCQl9CgoJCQoKCQkvKioKCgkJICogQHJldHVybiBjaGFyCgoJCSAqLwoKCQlwdWJsaWMgY2hhciBnZXROYW1lICgpCgoJCXsKCgkJCXJldHVybiBuYW1lIDsKCgkJfQoKCQkKCgkJLyoqCgoJCSAqIEByZXR1cm4gU3RyaW5nCgoJCSAqLwoKCQlwdWJsaWMgU3RyaW5nIGdldFZhbHVlICgpCgoJCXsKCgkJCXJldHVybiB2YWx1ZSA7CgoJCX0KCgkJCgoJfQoKCQoKfQo=
返回列表 上一筆 下一筆