zoukankan      html  css  js  c++  java
  • 同时可以运行在JVM上的Kotlin~枚举和判定以及数据对象的写法总结

    枚举

    package io.github.deadzq.eenum
    
    /**
     * @Author: zhangQi
     * @Date: 2020-09-24 11:34
     * 通讯录回调通知 类型
     */
    enum class ContactEventChangeType(val changeType:String,val changeTypeEn:String) {
        create_user("新增成员事件","create_user"),
        update_user("更新成员事件","update_user"),
        delete_user("删除成员事件","delete_user"),
    
        create_party("新增部门事件","create_party"),
        update_party("更新部门事件","update_party"),
        delete_party("删除部门事件","delete_party"),
    
        update_tag("标签成员变更事件","update_tag")
    }
    

    判定

    package io.github.deadzq.util
    
    import io.github.deadzq.eenum.*
    import org.springframework.stereotype.Component
    
    /**
     * @Author: zhangQi
     * @Date: 2020-09-06 14:56
     * 状态判定
     */
    @Component
    class StatusUtil {
    
        /**
         * 群状态判定 id->描述
         */
        fun groupStatuId(groupStatuId:Int):String?{
            return when(groupStatuId){
                0 -> GroupStatus.zero.status
                1 -> GroupStatus.one.status
                2 -> GroupStatus.two.status
                3 -> GroupStatus.thr.status
                else -> null
            }
        }
    
    
        /**
         * 加群方式判定 id->描述
         */
        fun joinSceneId(joinSceneId:Int):String?{
            return when (joinSceneId) {
                1 ->  JoinScene.one.scene
                2 ->  JoinScene.two.scene
                3 ->  JoinScene.thr.scene
                else -> null
            }
        }
    
        /**
         * 成员类型判定 id->描述
         */
        fun memberTypeId(memberTypeId:Int):String?{
            return when (memberTypeId){
                1 -> MemberType.one.type
                2 -> MemberType.two.type
                else -> null
            }
        }
    
        /**
         * 消息群发类型中文含义
         */
        fun imTypeId(typeId:Int):String?{
            return when (typeId){
                1 -> ImType.text.type
                2 -> ImType.image.type
                3 -> ImType.link.type
                4 -> ImType.miniprogram.type
                else -> null
            }
        }
    
        /**
         * 客户流失未流失
         */
        fun lostCustId(lostCustId:Int):String?{
            return when(lostCustId){
                1 -> LostCustStatus.lost.status
                2 -> LostCustStatus.nolost.status
                else -> null
            }
        }
    
        /**
         * 客户流失原因
         */
        fun lostCustReason(changeType:String):String?{
            return when(changeType){
                "transfer_fail" -> LostCustReason.transfer_fail.reason
                "del_follow_user" -> LostCustReason.del_follow_user.reason
                "del_external_contact" -> LostCustReason.del_external_contact.reason
                else -> null
            }
        }
    
        /**
         * 消息群发类型标识
         */
        fun imTypeIdSignature(typeId:Int):String?{
            return when (typeId){
                1 -> ImType.text.signature
                2 -> ImType.image.signature
                3 -> ImType.link.signature
                4 -> ImType.miniprogram.signature
                else -> null
            }
        }
    
        /**
         * 群发消息接收类型
         */
        fun imRecvTypeId(recvTypeId:Int):String?{
            return when (recvTypeId){
                1 -> ImRecvType.single.type
                2 -> ImRecvType.group.type
                else -> null
            }
        }
    
    
        /**
         * 群发消息接收类型标识 single,group
         */
        fun imRecvTypeIdentification(recvTypeId:Int):String?{
            return when (recvTypeId){
                1 -> ImRecvType.single.identification
                2 -> ImRecvType.group.identification
                else -> null
            }
        }
    
        /**
         * 获取标签type的类型string
         */
        fun tagTypeId(tagTypeId:Int):String?{
            return when(tagTypeId){
                1 -> TagType.inside.type
                2 -> TagType.outside.type
                else -> null
            }
        }
    
    }
    

    数据对象(用于比如说json转换实体类.class,并调用相关方法完成转换,kotlin数据对象的好处在于可以自动完成字段的空值控制-在类型后加?号)

    package io.github.deadzq.model
    
    import com.fasterxml.jackson.annotation.JsonProperty
    import io.vertx.core.json.JsonArray
    import io.vertx.core.json.JsonObject
    
    /**
     * @Author: zhangQi
     * @Date: 2020-11-17 13:40
     * followers数据对象
     */
    data class FollowUserModel(
            var userid: String?,
            var remark: String?,
            var description: String?,
            var createtime: Long?,
            var tags: Any?,
            @JsonProperty("remark_corp_name")
            var remarkCorpName: String?,
            @JsonProperty("remark_mobiles")
            var remarkMobiles: Any?,
            @JsonProperty("oper_userid")
            var operUserid: String?,
            @JsonProperty("add_way")
            var addWay: Int?,
            var state: String?
    ) {
    
        fun listTags(): List<Tags>? {
            try {
                return (tags as JsonArray)
                        .mapNotNull { it as JsonObject }
                        .map {
                            it.mapTo(Tags::class.java)
                        }
            } catch (e: Exception) {
            }
            return null;
        }
    
        fun convertRemarkMobiles(): JsonArray? {
            try {
                return remarkMobiles as JsonArray
            } catch (e: Exception) {
            }
            return null;
        }
    
        data class Tags (
            var group_name:String?,
            var tag_name:String?,
            var tag_id:String?,
            var type:Int?
        )
    
    }
    
  • 相关阅读:
    day15—jQuery UI之widgets插件
    day14—jQuery UI 之dialog部件
    day13—CSS之导航栏
    day12—jQuery ui引入及初体验
    day11—前端学习之我不想看书
    struts2的action方法匹配以及通配符的使用
    Java中的static
    ActiveMQ的简单使用
    MS DOS 常用命令整理
    IntelliJ IDEA 中 Ctrl+Alt+Left/Right 失效
  • 原文地址:https://www.cnblogs.com/ukzq/p/13998523.html
Copyright © 2011-2022 走看看