Browse Source

version update

main
yk 1 year ago
parent
commit
ad37204c8f
7 changed files with 89 additions and 45 deletions
  1. +52
    -31
      business/staff.go
  2. +11
    -0
      common/cache.go
  3. +1
    -1
      common/common.go
  4. +4
    -0
      common/config.go
  5. +11
    -9
      config.json
  6. +7
    -2
      main.go
  7. +3
    -2
      templates/conf.html

+ 52
- 31
business/staff.go View File

@@ -62,7 +62,7 @@ type Req struct {
} }


func RegStaff(param Req) (*common.Response, error) { func RegStaff(param Req) (*common.Response, error) {
url := common.ConfigData.PushDataUrl
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.PushDataUrl
common.Info(common.GenLogLine()+"reg staff url:%s\n", url) common.Info(common.GenLogLine()+"reg staff url:%s\n", url)
method := "POST" method := "POST"


@@ -110,12 +110,15 @@ func RegStaff(param Req) (*common.Response, error) {
fmt.Println("Error:", err) fmt.Println("Error:", err)
return nil, err return nil, err
} }
if response.Code != 200 || response.Code != 0 {
return response, errors.New(response.Msg)
}
common.Error(common.GenLogLine()+"reg result %s", string(body)) common.Error(common.GenLogLine()+"reg result %s", string(body))
return response, nil return response, nil
} }


func RegOnlineStaff(param Req) error { func RegOnlineStaff(param Req) error {
url := common.ConfigData.PushDataUrl
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.PushDataUrl
fmt.Printf("url:%s\n", url) fmt.Printf("url:%s\n", url)
method := "POST" method := "POST"


@@ -154,27 +157,39 @@ func RegOnlineStaff(param Req) error {
return nil return nil
} }


func HandleStaff(emp Req) error {
func HandleStaff(emp Req) (*common.Response, error) {
if emp.StaffBase64Img != "" { if emp.StaffBase64Img != "" {
//feature = FetchStaffFaceFeature(emp.StaffBase64Img) //feature = FetchStaffFaceFeature(emp.StaffBase64Img)
//emp.FaceFeature = LocalFetchStaffFaceFeature(emp.StaffBase64Img) //emp.FaceFeature = LocalFetchStaffFaceFeature(emp.StaffBase64Img)
} }
var sType int
if emp.StaffType > 70 {
sType = 4
} else {
sType = 5

if common.ConfigData.Mode != "online" {
emp.StaffBase64Img = ""
} }
emp.StaffType = sType
var sDels = []int{5, 6, 7, 8}
if common.AryContainInt(sDels, emp.DelFlag) {
emp.DelFlag = 1
} else {
emp.DelFlag = 0

//======东方微银逻辑======start====
if strings.Contains(common.ConfigData.EnterpriseName, "东方微银") {
var sType int
if emp.StaffType > 70 {
sType = 4
} else {
sType = 5
}
emp.StaffType = sType
var sDels = []int{5, 6, 7, 8}
if common.AryContainInt(sDels, emp.DelFlag) {
emp.DelFlag = 1
} else {
emp.DelFlag = 0
}
} }
//======东方微银逻辑======end====


RegStaff(emp)
return nil
resp, err := RegStaff(emp)
if err != nil {
return resp, err
}
return resp, nil
} }


// Fetch2 获取员工信息,模拟获取saas的人员数据 // Fetch2 获取员工信息,模拟获取saas的人员数据
@@ -260,7 +275,7 @@ func Fetch2() []Staff {
// AbleSendCode 发送验证码 // AbleSendCode 发送验证码
func AbleSendCode(phone string) string { func AbleSendCode(phone string) string {


url := common.ConfigData.CheckSendCodeUrl + "/" + phone
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.CheckSendCodeUrl + "/" + phone
method := "GET" method := "GET"


payload := strings.NewReader("") payload := strings.NewReader("")
@@ -297,7 +312,7 @@ func SendCode(phone string) string {


ableSend := AbleSendCode(phone) ableSend := AbleSendCode(phone)
fmt.Println("ableSend:", ableSend) fmt.Println("ableSend:", ableSend)
url := common.ConfigData.SendCodeUrl
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.SendCodeUrl
method := "POST" method := "POST"


payload := strings.NewReader(`{ payload := strings.NewReader(`{
@@ -341,7 +356,7 @@ func SendCode(phone string) string {
func ValidCode(phone string, code string) (string, error) { func ValidCode(phone string, code string) (string, error) {
ableSend := AbleSendCode(phone) ableSend := AbleSendCode(phone)
fmt.Println("ableSend:", ableSend) fmt.Println("ableSend:", ableSend)
url := common.ConfigData.ValidCodeUrl + phone + "/" + code
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.ValidCodeUrl + phone + "/" + code
method := "GET" method := "GET"


payload := strings.NewReader(``) payload := strings.NewReader(``)
@@ -371,7 +386,7 @@ func ValidCode(phone string, code string) (string, error) {


func StaffInfo(staffId string) (map[string]interface{}, error) { func StaffInfo(staffId string) (map[string]interface{}, error) {
fmt.Println("staffId:", staffId) fmt.Println("staffId:", staffId)
url := common.ConfigData.StaffInfoUrl
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.StaffInfoUrl
method := "GET" method := "GET"
token, err := common.GetToken() token, err := common.GetToken()
if err != nil { if err != nil {
@@ -431,7 +446,7 @@ func StaffInfo(staffId string) (map[string]interface{}, error) {
} }


func MgrLogin(userName string, password string) string { func MgrLogin(userName string, password string) string {
url := common.ConfigData.MgrLoginUrl
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.MgrLoginUrl
fmt.Println("url:", url) fmt.Println("url:", url)
enterpriseName := common.ConfigData.EnterpriseName enterpriseName := common.ConfigData.EnterpriseName
method := "POST" method := "POST"
@@ -471,7 +486,7 @@ func MgrLogin(userName string, password string) string {
} }


func PhoneLogin(phone string) (map[string]interface{}, error) { func PhoneLogin(phone string) (map[string]interface{}, error) {
url := common.ConfigData.PhoneLoginUrl
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.PhoneLoginUrl
method := "POST" method := "POST"


payload := strings.NewReader(`{ payload := strings.NewReader(`{
@@ -632,7 +647,7 @@ func FetchStaffImage(ygbh string) string {
fmt.Println("Error:", err) fmt.Println("Error:", err)
} }


var result string = ""
var result = ""


for _, item := range response.Data { for _, item := range response.Data {
var s string var s string
@@ -645,8 +660,8 @@ func FetchStaffImage(ygbh string) string {
return strings.Replace(result, "\n", "", -1) return strings.Replace(result, "\n", "", -1)
} }


func FetchStaffFaceFeature(base64 string) string {
url := "http://39.105.51.226:5000/cv/feature-extraction-service/1.7"
func FetchStaffFaceFeature(base64 string) (string, error) {
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.FaceDetectUrl
method := "POST" method := "POST"


err := common.SaveBase64ImageToFile(base64, "images/"+fmt.Sprintf("%d", time.Now().Unix())+"test.jpg") err := common.SaveBase64ImageToFile(base64, "images/"+fmt.Sprintf("%d", time.Now().Unix())+"test.jpg")
@@ -662,7 +677,7 @@ func FetchStaffFaceFeature(base64 string) string {
if err != nil { if err != nil {
fmt.Errorf(common.GenLogLine()+"%s", err) fmt.Errorf(common.GenLogLine()+"%s", err)
common.Error(common.GenLogLine()+"%s", err) common.Error(common.GenLogLine()+"%s", err)
return ""
return "", err
} }
req.Header.Add("Authorization", "Bearer ") req.Header.Add("Authorization", "Bearer ")
req.Header.Add("Content-Type", "application/json") req.Header.Add("Content-Type", "application/json")
@@ -671,7 +686,7 @@ func FetchStaffFaceFeature(base64 string) string {
if err != nil { if err != nil {
fmt.Errorf(common.GenLogLine()+"%s", err) fmt.Errorf(common.GenLogLine()+"%s", err)
common.Error(common.GenLogLine()+"%s", err) common.Error(common.GenLogLine()+"%s", err)
return ""
return "", err
} }
defer res.Body.Close() defer res.Body.Close()


@@ -679,7 +694,7 @@ func FetchStaffFaceFeature(base64 string) string {
if err != nil { if err != nil {
fmt.Errorf(common.GenLogLine()+"%s", err) fmt.Errorf(common.GenLogLine()+"%s", err)
common.Error(common.GenLogLine()+"%s", err) common.Error(common.GenLogLine()+"%s", err)
return ""
return "", err
} }
fmt.Println(string(body)) fmt.Println(string(body))


@@ -687,12 +702,16 @@ func FetchStaffFaceFeature(base64 string) string {
err = json.Unmarshal([]byte(string(body)), &response) err = json.Unmarshal([]byte(string(body)), &response)
if err != nil { if err != nil {
fmt.Println("Error:", err) fmt.Println("Error:", err)
return "", err
} }


var result string var result string
result, err = extractFeature(response.Result[0]) result, err = extractFeature(response.Result[0])
if err != nil {
return "", err
}
fmt.Printf(" success data : %+v\n", result) fmt.Printf(" success data : %+v\n", result)
return result
return result, nil
} }


func extractFeature(data interface{}) (string, error) { func extractFeature(data interface{}) (string, error) {
@@ -768,6 +787,7 @@ func LocalFetchStaffFaceFeature(base64 string) (string, string, error) {
faces, ok := response["data"].(map[string]interface{}) faces, ok := response["data"].(map[string]interface{})
if !ok { if !ok {
fmt.Errorf("No faces found") fmt.Errorf("No faces found")
return "", imgName, errors.New("No faces found")
} }


feature, ok1 := faces["faceData"].(map[string]interface{})["theFeature"].([]interface{}) feature, ok1 := faces["faceData"].(map[string]interface{})["theFeature"].([]interface{})
@@ -861,7 +881,7 @@ func TimerHandle() {
if t3.After(t1) { if t3.After(t1) {
staff.StaffBase64Img = FetchStaffImage(staff.Code) staff.StaffBase64Img = FetchStaffImage(staff.Code)
common.Info(common.GenLogLine()+"----%v", "" == staff.StaffBase64Img) common.Info(common.GenLogLine()+"----%v", "" == staff.StaffBase64Img)
str := HandleStaff(staff)
_, str := HandleStaff(staff)
common.Info(common.GenLogLine()+"--2.2注册人员 姓名:%s 编号:%s 更新时间:%s--\n", staff.StaffName, staff.Code, staff.Modified) common.Info(common.GenLogLine()+"--2.2注册人员 姓名:%s 编号:%s 更新时间:%s--\n", staff.StaffName, staff.Code, staff.Modified)
//str := RegOnlineStaff(staff) //str := RegOnlineStaff(staff)
ss := "" ss := ""
@@ -892,7 +912,8 @@ func EmpToReq(emp mydatabase.Emp) Req {
req.StaffName = emp.Name req.StaffName = emp.Name
req.StaffType = 5 //普通员工 req.StaffType = 5 //普通员工
req.Phone = emp.Phone req.Phone = emp.Phone
req.StaffBase64Img = emp.Avatar
str, _ := common.FileToBase64(emp.Avatar)
req.StaffBase64Img = str
req.FaceFeature = emp.Features req.FaceFeature = emp.Features
return req return req
} }

+ 11
- 0
common/cache.go View File

@@ -123,3 +123,14 @@ func extractBase64Data(base64Image string) string {
} }
return parts[1] return parts[1]
} }

func FileToBase64(filePath string) (string, error) {
imageBytes, err := os.ReadFile(filePath)
if err != nil {
fmt.Println("Error reading file:", err)
return "", err
}

// 将JPEG文件内容进行Base64编码
return base64.StdEncoding.EncodeToString(imageBytes), nil
}

+ 1
- 1
common/common.go View File

@@ -72,7 +72,7 @@ func TruncateLastSlash(inputString string) string {
} }


func GetToken() (string, error) { func GetToken() (string, error) {
url := ConfigData.FetchTokenUrl
url := "http://" + ConfigData.ServerIp + ":8080/" + ConfigData.FetchTokenUrl
method := "POST" method := "POST"
Info(GenLogLine() + "获取token") Info(GenLogLine() + "获取token")
token := GetCache("token") token := GetCache("token")


+ 4
- 0
common/config.go View File

@@ -16,12 +16,14 @@ type Config struct {
MgrLoginUrl string `json:"mgrLoginUrl"` MgrLoginUrl string `json:"mgrLoginUrl"`
ValidCodeUrl string `json:"validCodeUrl"` ValidCodeUrl string `json:"validCodeUrl"`
StaffInfoUrl string `json:"staffInfoUrl"` StaffInfoUrl string `json:"staffInfoUrl"`
FaceDetectUrl string `json:"faceDetectUrl"`
EnterpriseName string `json:"enterpriseName"` EnterpriseName string `json:"enterpriseName"`
Port string `json:"port"` Port string `json:"port"`
PushDataUrl string `json:"pushDataUrl"` PushDataUrl string `json:"pushDataUrl"`
LocalDetectUrl string `json:"localDetectUrl"` LocalDetectUrl string `json:"localDetectUrl"`
DevId string `json:"devId"` DevId string `json:"devId"`
DevIp string `json:"devIp"` DevIp string `json:"devIp"`
ServerIp string `json:"serverIp"`
Timer int `json:"timer"` Timer int `json:"timer"`
Sync int `json:"sync"` Sync int `json:"sync"`
Mode string `json:"mode"` Mode string `json:"mode"`
@@ -58,6 +60,8 @@ func UpdateConfig(updateValues map[string]interface{}) string {
config.DevId = value.(string) config.DevId = value.(string)
case "devIp": case "devIp":
config.DevIp = value.(string) config.DevIp = value.(string)
case "serverIp":
config.ServerIp = value.(string)
case "mode": case "mode":
config.Mode = value.(string) config.Mode = value.(string)
case "enterpriseName": case "enterpriseName":


+ 11
- 9
config.json View File

@@ -1,20 +1,22 @@
{ {
"fetchTokenUrl": "http://172.17.0.1:8080/auth/deviceLogin",
"fetchTokenUrl": "/auth/deviceLogin",
"phone": "18910801519", "phone": "18910801519",
"fetchDataUrl": "http://172.17.0.1:8080/system/staff/list",
"fetchDataUrl": "/system/staff/list",
"fetchData2Url": "http://10.1.26.139/api/dizhiyuan/member/DZYAction", "fetchData2Url": "http://10.1.26.139/api/dizhiyuan/member/DZYAction",
"sendCodeUrl": "http://172.17.0.1:8080/system/sms/api/send-code",
"checkSendCodeUrl": "http://172.17.0.1:8080/system/staff/api/ableLogin",
"phoneLoginUrl": "http://172.17.0.1:8080/auth/phoneLogin",
"mgrLoginUrl": "http://172.17.0.1:8080/auth/mgr-login",
"validCodeUrl": "http://172.17.0.1:8080/system/staff/api/validCode",
"staffInfoUrl": "http://172.17.0.1:8080/system/staff/list",
"sendCodeUrl": "/system/sms/api/send-code",
"checkSendCodeUrl": "/system/staff/api/ableLogin",
"phoneLoginUrl": "/auth/phoneLogin",
"mgrLoginUrl": "/auth/mgr-login",
"validCodeUrl": "/system/staff/api/validCode",
"staffInfoUrl": "/system/staff/list",
"faceDetectUrl": "http://39.105.51.226:5000/cv/feature-extraction-service/1.7",
"enterpriseName": "演示机", "enterpriseName": "演示机",
"port": "18080", "port": "18080",
"pushDataUrl": "http://172.17.0.1:8080/system/staff/api/new-staff",
"pushDataUrl": "/system/staff/api/new-staff",
"localDetectUrl": "/face/feature", "localDetectUrl": "/face/feature",
"devId": "442926c7610ed10b", "devId": "442926c7610ed10b",
"devIp": "192.168.10.32", "devIp": "192.168.10.32",
"serverIp": "172.17.0.1",
"timer": 90, "timer": 90,
"sync": 0, "sync": 0,
"mode": "online" "mode": "online"

+ 7
- 2
main.go View File

@@ -214,6 +214,11 @@ func MgrPageHandler(c *gin.Context) {


func TestHandler(c *gin.Context) { func TestHandler(c *gin.Context) {
fmt.Printf("timer: ====%d\n", common.ConfigData.Timer) fmt.Printf("timer: ====%d\n", common.ConfigData.Timer)
str, err := common.FileToBase64("static/faces/1710208090test.jpg")
if err != nil {
fmt.Printf("error: ====%s\n", err)
}
fmt.Printf("str: ====%s\n", str)
c.JSON(http.StatusOK, "request successfully") c.JSON(http.StatusOK, "request successfully")
} }


@@ -225,7 +230,7 @@ func RegisterHandler(c *gin.Context) {
avatar := c.PostForm("avatar") avatar := c.PostForm("avatar")


emp, _ := mydatabase.SelectOneByPhone(phone) emp, _ := mydatabase.SelectOneByPhone(phone)
fmt.Println("====phone:" + phone)
fmt.Println(emp) fmt.Println(emp)
if emp.ID > 0 { if emp.ID > 0 {
c.JSON(http.StatusInternalServerError, map[string]interface{}{"Message": "已存在该手机号对应的员工,请查验后重试!"}) c.JSON(http.StatusInternalServerError, map[string]interface{}{"Message": "已存在该手机号对应的员工,请查验后重试!"})
@@ -270,7 +275,7 @@ func PassHandler(c *gin.Context) {
if handleTypeInt == 1 { if handleTypeInt == 1 {
emp.Avatar = strings.ReplaceAll(emp.Avatar, "data:image/jpeg;base64,", "") emp.Avatar = strings.ReplaceAll(emp.Avatar, "data:image/jpeg;base64,", "")
//将员工信息提交到后台 //将员工信息提交到后台
resp, err := business.RegStaff(business.EmpToReq(emp))
resp, err := business.HandleStaff(business.EmpToReq(emp))
if err != nil { if err != nil {
c.JSON(http.StatusOK, map[string]interface{}{"Message": err.Error()}) c.JSON(http.StatusOK, map[string]interface{}{"Message": err.Error()})
return return


+ 3
- 2
templates/conf.html View File

@@ -24,7 +24,7 @@
padding-top: 15vh; padding-top: 15vh;
} }


.enterprise-name, .devId, .devIp, .sync {
.enterprise-name, .devId, .devIp, .sync, .serverIp {
width: 50vw; width: 50vw;
height: 5vh; height: 5vh;
border-radius: 2vw; border-radius: 2vw;
@@ -89,7 +89,7 @@
position: relative; position: relative;
padding-top: 42vh; padding-top: 42vh;
} }
.enterprise-name, .devId, .devIp,.sync {
.enterprise-name, .devId, .devIp,.sync, .serverIp {
width: 37vh; width: 37vh;
height: 6vh; height: 6vh;
border-radius: 2vh; border-radius: 2vh;
@@ -138,6 +138,7 @@
<input class="enterprise-name" name="enterpriseName" value="{{.config.EnterpriseName}}" type="text" placeholder="租户名"> <input class="enterprise-name" name="enterpriseName" value="{{.config.EnterpriseName}}" type="text" placeholder="租户名">
<input class="devId" name="devId" type="text" value="{{.config.DevId}}" placeholder="对应数字人设备号"> <input class="devId" name="devId" type="text" value="{{.config.DevId}}" placeholder="对应数字人设备号">
<input class="devIp" name="devIp" value="{{.config.DevIp}}" type="text" placeholder="数字人ip"> <input class="devIp" name="devIp" value="{{.config.DevIp}}" type="text" placeholder="数字人ip">
<input class="serverIp" name="serverIp" value="{{.config.ServerIp}}" type="text" placeholder="服务器域名或ip">
<select class="sync" name="sync" > <select class="sync" name="sync" >
<option value="1" {{if eq .config.Sync 1}}selected{{end}}>同步</option> <option value="1" {{if eq .config.Sync 1}}selected{{end}}>同步</option>
<option value="0" {{if eq .config.Sync 0}}selected{{end}}>不同步</option> <option value="0" {{if eq .config.Sync 0}}selected{{end}}>不同步</option>


Loading…
Cancel
Save