Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

CnChunfeng / crm_server

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Settings
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Find file
Normal viewHistoryPermalink
Switch branch/tag
  • crm_server
  • cmd
  • queue
  • user_add
  • main.go
main.go 2.37 KB
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
1 2 3
package main

import (
Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
4
	"crm-server/configs"
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
5 6 7 8
	"crm-server/internal/common"
	"crm-server/internal/logic"
	"crm-server/internal/model"
	"crm-server/internal/service"
Joneq's avatar
增加三个脚本
489ccb9f
 
Joneq committed 5 years ago
9
	"encoding/json"
Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
10 11 12
	"fmt"
	"github.com/streadway/amqp"
	"log"
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
13
	"strconv"
Joneq's avatar
睡眠
9ca03009
 
Joneq committed 5 years ago
14
	"time"
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
15 16 17 18 19 20
)

var(
	InsertData model.MemberAddUserData
)

Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
21 22 23 24
type WaitAddUser struct {
	User_Id 	int `json:"user_id"`
}

Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
25 26 27 28

//监听用户添加队列
func main(){

Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
29 30
	//定义队列类型和错误类型
	service.ProGramErrType = "member_user_add"
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
31 32 33
	//设置所有城市
	common.SetCityName()

Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
	conn, err := amqp.Dial("amqp://"+configs.RABBITMQDSN+"/")
	if err != nil {
		service.WriteErrDetail(err.Error() + "Failed to connect to RabbitMQ")
	}
	defer conn.Close()

	ch, err := conn.Channel()
	if err != nil {
		service.WriteErrDetail(err.Error() + "Failed to open a channel")
	}
	defer ch.Close()

	q, err := ch.QueueDeclare(
		service.ProGramErrType, // name
		true,   // durable
		false,   // delete when unused
		false,   // exclusive
		false,   // no-wait
		nil,     // arguments
	)
	if err != nil {
		service.WriteErrDetail(err.Error()+"Failed to declare a queue")
	}

	msgs, err := ch.Consume(
		q.Name, // queue
		"",     // consumer
		true,   // auto-ack
		false,  // exclusive
		false,  // no-local
		false,  // no-wait
		nil,    // args
	)
	if err != nil {
		service.WriteErrDetail(err.Error() +"Failed to register a consumer")
	}

	forever := make(chan bool)
	var user WaitAddUser

	go func() {
		for d := range msgs {
Joneq's avatar
睡眠
9ca03009
 
Joneq committed 5 years ago
76
			time.Sleep(5*time.Second)
Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
77 78 79 80 81 82 83 84 85
			json.Unmarshal(d.Body,&user)
			fmt.Println(user)
			handle(user.User_Id)
		}
	}()

	log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
	<-forever
}
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
86

Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
87 88 89


func handle(memberId int)(result bool) {
Joneq's avatar
睡眠
9ca03009
 
Joneq committed 5 years ago
90
	time.Sleep(5*time.Second)
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
91
	//获取当前会员的基本数据
Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
92
	InsertData = logic.GetMemberUserInfo(memberId)
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
93 94

	//检测用户是否存在
Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
95 96 97
	if InsertData.User_Id == 0 {
		service.WriteErrDetail(strconv.Itoa(memberId) + "会员系统中用户信息不存在")
		return false
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
98 99
	}
	if logic.CheckMemberIdIsHave(InsertData.User_Id) != 0 {
Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
100 101
		service.WriteErrDetail(strconv.Itoa(memberId) + "crm系统中用户已经存在")
		return false
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
102 103 104 105
	}

	//处理得到的用户数据
	InsertData = logic.HandleData(InsertData)
Joneq's avatar
增加三个脚本
489ccb9f
 
Joneq committed 5 years ago
106

Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
107
	//插入数据
Joneq's avatar
增加三个脚本
489ccb9f
 
Joneq committed 5 years ago
108
	if !logic.InsertMemberUser(InsertData) {
Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
109 110 111
		errSourcedata, _ := json.Marshal(InsertData)
		service.WriteErrDetail("插入用户数据错误:" + string(errSourcedata))
		return false
Joneq's avatar
增加三个脚本
489ccb9f
 
Joneq committed 5 years ago
112
	}
Joneq's avatar
增加释放字段
31097b3a
 
Joneq committed 5 years ago
113
	return true
Joneq's avatar
增加拉取用户脚本
170d329a
 
Joneq committed 5 years ago
114
}