diff --git a/yami-shop-bean/src/main/java/com/yami/shop/bean/enums/MessageStatus.java b/yami-shop-bean/src/main/java/com/yami/shop/bean/enums/MessageStatus.java new file mode 100644 index 0000000..019daeb --- /dev/null +++ b/yami-shop-bean/src/main/java/com/yami/shop/bean/enums/MessageStatus.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. + * + * https://www.mall4j.com/ + * + * 未经允许,不可做商业用途! + * + * 版权所有,侵权必究! + */ + +package com.yami.shop.bean.enums; + +/** + * `MessageStatus`枚举类用于定义消息状态相关的常量值,在电商系统或者其他涉及消息处理的业务场景中, + * 可以通过这些明确的枚举值来清晰地表示消息所处的不同状态,方便在业务逻辑中进行判断、处理以及数据存储等操作, + * 使得代码对于消息状态的处理更加规范、易读且不容易出现歧义。 + + * @author lanhai + */ +public enum MessageStatus { + + /** + * `CANCEL`枚举值表示消息被取消的状态,对应的整数值为 `0`。 + * 在实际业务场景中,例如用户手动取消了某个消息提醒,或者系统根据一定规则判定某个消息不再需要展示、处理时, + * 可以将消息的状态设置为 `CANCEL`,通过这个枚举值来清晰地传达消息已经处于取消状态这一信息, + * 方便后续业务逻辑根据此状态进行相应的操作,比如不再推送该消息、在消息列表中隐藏该条消息等。 + */ + CANCEL(0), + + /** + * `RELEASE`枚举值代表消息已发布的状态,其对应整数值为 `1`。 + * 当一条消息经过相关流程创建完成并且可以对外展示、推送或者供用户查看时, + * 其状态就可以设置为 `RELEASE`,意味着该消息处于正常有效的发布状态,在业务逻辑里, + * 例如消息推送服务会根据这个状态来决定是否将消息发送给对应的用户,前端页面也会依据此状态来展示相应的消息内容等。 + */ + RELEASE(1); + + /** + * `num`属性用于存储每个枚举值对应的整数值,通过这种方式建立起枚举值与具体数值的映射关系, + * 在需要将枚举值转换为对应的数字进行存储(比如存储到数据库中)或者在不同模块间传递以数字形式表示的状态信息时会用到, + * 使得可以用统一的数字规则来表示不同的消息状态,便于系统进行数据处理和交互。 + */ + private Integer num; + + /** + * `value`方法用于获取当前枚举值对应的整数值,它提供了一种外部访问 `num` 属性的途径, + * 在其他类需要知晓某个 `MessageStatus` 枚举值具体对应的数字时,可以通过调用这个方法来获取相应的值, + * 遵循了面向对象编程中对数据访问进行封装控制的原则,保证了数据获取的规范性和安全性。 + */ + public Integer value() { + return num; + } + + /** + * 构造方法用于初始化每个枚举值对应的整数值,在定义枚举常量(如 `CANCEL(0)` 和 `RELEASE(1)`)时会调用此构造方法, + * 将传入的整数值赋给 `num` 属性,建立起枚举常量和对应数值之间的关联,确保每个枚举值都有正确的数值与之对应, + * 以便后续通过 `value` 方法等进行准确的数值获取操作。 + */ + MessageStatus(Integer num) { + this.num = num; + } +} \ No newline at end of file diff --git a/yami-shop-bean/src/main/java/com/yami/shop/bean/model/Message.java b/yami-shop-bean/src/main/java/com/yami/shop/bean/model/Message.java new file mode 100644 index 0000000..c2f4328 --- /dev/null +++ b/yami-shop-bean/src/main/java/com/yami/shop/bean/model/Message.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. + * + * https://www.mall4j.com/ + * + * 未经允许,不可做商业用途! + * + * 版权所有,侵权必究! + */ + +package com.yami.shop.bean.app.param; + +import io.swagger.v3.oas.annotations.media.Schema; + +/** + * `LoginParam`类是一个用于接收用户登录相关操作参数的数据对象,在电商系统用户登录的业务逻辑处理中起着关键作用。 + * 它主要用于在前端与后端进行交互时,承载用户发起登录操作时所需的各项必要数据信息,以便后端能够依据这些参数准确地执行相应的业务逻辑, + * 比如验证登录信息的合法性、根据不同的登录方式(小程序登录或账号密码登录)进行对应的身份验证等操作。 + + * @author lanhai + */ +@Schema(description = "登陆参数") +public class LoginParam { + + /** + * `code`属性用于存储小程序登录时返回的 `code` 值。在小程序登录的流程中,用户授权登录后,小程序会向微信等平台获取一个临时的 `code`, + * 这个 `code` 会被传递到后端服务器,后端再凭借该 `code` 向对应的平台(如微信开放平台)发起请求,换取用户的相关信息(如唯一标识等), + * 进而完成登录验证操作。通过 `@Schema` 注解明确其描述为“小程序登陆时返回的 `code`(使用 `code` 登陆必填)”, + * 并标记为必填项(`required = true`),以此确保在用户选择小程序登录方式时,前端必须传递这个关键的 `code` 参数给后端, + * 保证登录流程能够顺利进行,避免因缺少必要参数而导致登录失败。 + */ + @Schema(description = "小程序登陆时返回的code(使用code登陆必填)", required = true) + private String code; + + /** + * `mobile`属性用于存放用户登录时的用户名信息,在采用账号密码登录方式时,这里通常指的是用户的手机号码。 + * 手机号码作为常见的账号形式,方便用户记忆且具有唯一性,后端系统会依据这个手机号码去数据库等存储介质中查找对应的用户记录, + * 并与后续传入的密码进行匹配验证,以确认用户身份的合法性。通过 `@Schema` 注解将其描述为“登陆时的用户名(账号密码登陆必填)”, + * 同时设为必填项,告知接口调用者在使用账号密码登录时必须提供有效的手机号码作为用户名,保障登录验证过程有准确的账号依据。 + */ + @Schema(description = "登陆时的用户名(账号密码登陆必填)", required = true) + private String mobile; + + /** + * `password`属性用于存储用户登录时输入的密码信息,在账号密码登录模式下,它与前面的 `mobile` 属性一同作为验证用户身份的关键要素。 + * 用户输入的密码会与后端存储的已加密的密码(出于安全考虑,通常会对密码进行加密存储)进行比对,只有两者匹配时, + * 才会认定用户登录成功。借助 `@Schema` 注解明确其描述为“登陆时的密码(账号密码登陆必填)”,并标记为必填项, + * 强制要求接口调用者在使用账号密码登录方式时必须提供正确的密码,确保登录操作的安全性和准确性。 + */ + @Schema(description = "登陆时的密码(账号密码登陆必填)", required = true) + private String password; + + /** + * `getCode`方法是一个标准的JavaBean风格的访问器方法(Getter方法),用于获取 `code` 属性的值。 + * 在其他类需要访问本类中存储的小程序登录 `code` 参数信息时,可以通过调用这个方法来获取相应的值,遵循了面向对象编程中封装的原则, + * 对属性的访问进行了一定的控制,保证数据获取的规范性和安全性。 + */ + public String getCode() { + return code; + } + + /** + * `setCode`方法是与 `getCode` 对应的修改器方法(Setter方法),用于设置 `code` 属性的值。 + * 当外部需要更新本类中存储的小程序登录 `code` 信息时,可以通过调用这个方法并传入新的字符串值来实现属性值的修改, + * 同样也是遵循JavaBean规范,方便对属性进行赋值操作,同时在方法内部可以添加一些额外的逻辑(如数据验证等)来保障数据的合法性。 + */ + public void setCode(String code) { + this.code = code; + } + + /** + * `getMobile`方法是用于获取 `mobile` 属性值的Getter方法,其作用与 `getCode` 类似, + * 为外部类提供了获取用户名(手机号码)信息的途径,使得其他部分的代码可以按照规范的方式获取该属性存储的内容,便于后续基于用户名进行相关操作。 + */ + public String getMobile() { + return mobile; + } + + /** + * `setMobile`方法是对应 `getMobile` 的Setter方法,用于设置 `mobile` 属性的值, + * 当需要更新用户名(手机号码)信息时,外部代码可以调用这个方法传入新的字符串值来改变属性的存储内容, + * 并且可以在方法内部根据业务需求添加必要的数据校验等逻辑,确保设置的手机号码符合要求。 + */ + public void setMobile(String mobile) { + this.mobile = mobile; + } + + /** + * `getPassword`方法是获取 `password` 属性值的Getter方法,通过调用它, + * 其他类能够获取到本类中存储的密码信息,方便在后续的业务逻辑中,例如密码验证等操作中使用该密码作为关键的比对依据, + * 确保业务操作围绕准确的登录密码展开。 + */ + public String getPassword() { + return password; + } + + /** + * `setPassword`方法是用于设置 `password` 属性值的Setter方法,当需要更新密码信息时(例如用户修改密码等情况), + * 外部代码可以调用这个方法传入新的字符串值来改变其存储内容,同样也可以在方法内部添加适当的数据验证逻辑,保障密码的合法性和安全性。 + */ + public void setPassword(String password) { + this.password = password; + } +} \ No newline at end of file