diff --git a/_const/enum/cp_e/cp_relation.go b/_const/enum/cp_e/cp_relation.go index 5d55d0ebf011b169e3507297c81ff18480e56431..9faf608a357332bed4431090eaa2504f42641a5c 100644 --- a/_const/enum/cp_e/cp_relation.go +++ b/_const/enum/cp_e/cp_relation.go @@ -1,6 +1,16 @@ package cp_e +import "git.hilo.cn/hilo-common/resource/mysql" + +type CpInviteStatus mysql.Type + const ( //新用户 CpRelationInviteDiamond = 18888 + + //1.未接受2.已接受3.拒接导致退费4.过期导致退费 + CpInvite CpInviteStatus = 1 + CpInviteAccept CpInviteStatus = 2 + CpInviteRefuse CpInviteStatus = 3 + CpInviteExpired CpInviteStatus = 4 ) diff --git a/domain/model/cp_m/cp_relation.go b/domain/model/cp_m/cp_relation.go index b15cd0b023046378f6891ae7bba3af88456bf79b..2a137e901d6e3e37cee7366ad270f1a470a0d355 100644 --- a/domain/model/cp_m/cp_relation.go +++ b/domain/model/cp_m/cp_relation.go @@ -2,7 +2,9 @@ package cp_m import ( "git.hilo.cn/hilo-common/domain" + "git.hilo.cn/hilo-common/resource/mysql" "gorm.io/gorm" + "hilo-user/_const/enum/cp_e" "hilo-user/myerr/bizerr" "time" ) @@ -14,6 +16,14 @@ type CpRelation struct { CreatedTime time.Time `json:"createdTime"` } +type CpInvite struct { + Id uint64 `json:"id"` + UserId uint64 `json:"userId"` + InviteUserId uint64 `json:"inviteUserId"` + DiamondNum uint32 `json:"diamondNum"` + Status mysql.Type `json:"status"` +} + func CreateCp(model *domain.Model, userId1, userId2 uint64) error { userIds := []uint64{userId1, userId2} result := model.DB().Exec("insert into cp_relation(user_id1, user_id2) values(?,?) where not exists (select user_id1 from cp_relation where user_id1 in (?) or user_id2 in (?));", userId1, userId2, userIds, userIds) @@ -39,3 +49,12 @@ func GetCp(model *domain.Model, userId uint64) (*CpRelation, error) { } return res, nil } + +func CreateCpInvite(model *domain.Model, userId, userIdInvite uint64, diamondNum uint32) error { + err := model.DB().Model(CpInvite{}).Create(CpInvite{UserId: userId, InviteUserId: userIdInvite, DiamondNum: diamondNum, Status: mysql.Type(cp_e.CpInvite)}).Error + if err != nil { + model.Log.Errorf("CreateCpInvite user1:%d, user2:%d, diamondNum:%d, err:%v", userId, userIdInvite, diamondNum, err) + return err + } + return nil +} diff --git a/mysql/3.9.0.sql b/mysql/3.9.0.sql index 89e9f76fd0729b24d271ead86537bb30fd3f916c..1679935b35888a53218cf237066036197cb63846 100644 --- a/mysql/3.9.0.sql +++ b/mysql/3.9.0.sql @@ -13,3 +13,18 @@ CREATE TABLE `cp_relation` ( INSERT INTO hilo.diamond_operate_set (diamond_num, frequency_num, frequency_day, diamond_max_num, add_reduce, `type`, name, status, diamond_type) VALUES (-1, -1, -1, -1, 2, 94, 'cp邀请扣费', 1, 1), (-1, -1, -1, -1, 1, 95, 'cp邀请退费', 1, 1); + +CREATE TABLE `cp_invite` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', + `user_id` bigint NOT NULL COMMENT '发起邀请者', + `invite_user_id` bigint NOT NULL COMMENT '被邀请的人', + `diamond_num` int unsigned NOT NULL COMMENT '邀请者花费的钻石', + `status` tinyint unsigned NOT NULL COMMENT '状态1.未接受2.已接受3.拒接导致退费4.过期导致退费', + `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `uid_idx` (`user_id`) USING BTREE, + KEY `uid2_idx` (`invite_user_id`) USING BTREE, + KEY `status_idx` (`status`) USING BTREE, + KEY `created_time` (`created_time`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='cp邀请发起记录'; \ No newline at end of file diff --git a/route/cp_r/cp_relation.go b/route/cp_r/cp_relation.go index cd796979028167e74a3dad69144eeddbc874933d..a7a2e97eb6436dcb612b187736193c5cb2c166cb 100644 --- a/route/cp_r/cp_relation.go +++ b/route/cp_r/cp_relation.go @@ -98,6 +98,11 @@ func InviteCpRelation(c *gin.Context) (*mycontext.MyContext, error) { model.Log.Errorf("InviteCpRelation myUserId:%d, err:%v", myUserId, err) return err } + err = cp_m.CreateCpInvite(model, myUserId, userInvite.ID, cp_e.CpRelationInviteDiamond) + if err != nil { + model.Log.Errorf("InviteCpRelation myUserId:%d, err:%v", myUserId, err) + return err + } // 发送私信 type CpInviteMessage struct { Identifier string `json:"identifier"`