From d3cfb0844b04dbd95d3c59bc39bda9013306b306 Mon Sep 17 00:00:00 2001 From: chenweijian <820961417@qq.com> Date: Mon, 29 May 2023 15:39:31 +0800 Subject: [PATCH] =?UTF-8?q?cp=E9=82=80=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _const/enum/cp_e/cp_relation.go | 10 ++++++++++ domain/model/cp_m/cp_relation.go | 19 +++++++++++++++++++ mysql/3.9.0.sql | 15 +++++++++++++++ route/cp_r/cp_relation.go | 5 +++++ 4 files changed, 49 insertions(+) diff --git a/_const/enum/cp_e/cp_relation.go b/_const/enum/cp_e/cp_relation.go index 5d55d0e..9faf608 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 b15cd0b..2a137e9 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 89e9f76..1679935 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 cd79697..a7a2e97 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"` -- 2.22.0