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) {
url := common.ConfigData.PushDataUrl
url := "http://" + common.ConfigData.ServerIp + ":8080/" + common.ConfigData.PushDataUrl
common.Info(common.GenLogLine()+"reg staff url:%s\n", url)
method := "POST"

@@ -110,12 +110,15 @@ func RegStaff(param Req) (*common.Response, error) {
fmt.Println("Error:", 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))
return response, nil
}

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

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

func HandleStaff(emp Req) error {
func HandleStaff(emp Req) (*common.Response, error) {
if emp.StaffBase64Img != "" {
//feature = FetchStaffFaceFeature(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的人员数据
@@ -260,7 +275,7 @@ func Fetch2() []Staff {
// AbleSendCode 发送验证码
func AbleSendCode(phone string) string {

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

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

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

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

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

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

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

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

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

var result string = ""
var result = ""

for _, item := range response.Data {
var s string
@@ -645,8 +660,8 @@ func FetchStaffImage(ygbh string) string {
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"

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 {
fmt.Errorf(common.GenLogLine()+"%s", err)
common.Error(common.GenLogLine()+"%s", err)
return ""
return "", err
}
req.Header.Add("Authorization", "Bearer ")
req.Header.Add("Content-Type", "application/json")
@@ -671,7 +686,7 @@ func FetchStaffFaceFeature(base64 string) string {
if err != nil {
fmt.Errorf(common.GenLogLine()+"%s", err)
common.Error(common.GenLogLine()+"%s", err)
return ""
return "", err
}
defer res.Body.Close()

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

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

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

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

feature, ok1 := faces["faceData"].(map[string]interface{})["theFeature"].([]interface{})
@@ -861,7 +881,7 @@ func TimerHandle() {
if t3.After(t1) {
staff.StaffBase64Img = FetchStaffImage(staff.Code)
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)
//str := RegOnlineStaff(staff)
ss := ""
@@ -892,7 +912,8 @@ func EmpToReq(emp mydatabase.Emp) Req {
req.StaffName = emp.Name
req.StaffType = 5 //普通员工
req.Phone = emp.Phone
req.StaffBase64Img = emp.Avatar
str, _ := common.FileToBase64(emp.Avatar)
req.StaffBase64Img = str
req.FaceFeature = emp.Features
return req
}

+ 11
- 0
common/cache.go View File

@@ -123,3 +123,14 @@ func extractBase64Data(base64Image string) string {
}
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) {
url := ConfigData.FetchTokenUrl
url := "http://" + ConfigData.ServerIp + ":8080/" + ConfigData.FetchTokenUrl
method := "POST"
Info(GenLogLine() + "获取token")
token := GetCache("token")


+ 4
- 0
common/config.go View File

@@ -16,12 +16,14 @@ type Config struct {
MgrLoginUrl string `json:"mgrLoginUrl"`
ValidCodeUrl string `json:"validCodeUrl"`
StaffInfoUrl string `json:"staffInfoUrl"`
FaceDetectUrl string `json:"faceDetectUrl"`
EnterpriseName string `json:"enterpriseName"`
Port string `json:"port"`
PushDataUrl string `json:"pushDataUrl"`
LocalDetectUrl string `json:"localDetectUrl"`
DevId string `json:"devId"`
DevIp string `json:"devIp"`
ServerIp string `json:"serverIp"`
Timer int `json:"timer"`
Sync int `json:"sync"`
Mode string `json:"mode"`
@@ -58,6 +60,8 @@ func UpdateConfig(updateValues map[string]interface{}) string {
config.DevId = value.(string)
case "devIp":
config.DevIp = value.(string)
case "serverIp":
config.ServerIp = value.(string)
case "mode":
config.Mode = value.(string)
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",
"fetchDataUrl": "http://172.17.0.1:8080/system/staff/list",
"fetchDataUrl": "/system/staff/list",
"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": "演示机",
"port": "18080",
"pushDataUrl": "http://172.17.0.1:8080/system/staff/api/new-staff",
"pushDataUrl": "/system/staff/api/new-staff",
"localDetectUrl": "/face/feature",
"devId": "442926c7610ed10b",
"devIp": "192.168.10.32",
"serverIp": "172.17.0.1",
"timer": 90,
"sync": 0,
"mode": "online"

+ 7
- 2
main.go View File

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

func TestHandler(c *gin.Context) {
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")
}

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

emp, _ := mydatabase.SelectOneByPhone(phone)
fmt.Println("====phone:" + phone)
fmt.Println(emp)
if emp.ID > 0 {
c.JSON(http.StatusInternalServerError, map[string]interface{}{"Message": "已存在该手机号对应的员工,请查验后重试!"})
@@ -270,7 +275,7 @@ func PassHandler(c *gin.Context) {
if handleTypeInt == 1 {
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 {
c.JSON(http.StatusOK, map[string]interface{}{"Message": err.Error()})
return


+ 3
- 2
templates/conf.html View File

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

.enterprise-name, .devId, .devIp, .sync {
.enterprise-name, .devId, .devIp, .sync, .serverIp {
width: 50vw;
height: 5vh;
border-radius: 2vw;
@@ -89,7 +89,7 @@
position: relative;
padding-top: 42vh;
}
.enterprise-name, .devId, .devIp,.sync {
.enterprise-name, .devId, .devIp,.sync, .serverIp {
width: 37vh;
height: 6vh;
border-radius: 2vh;
@@ -138,6 +138,7 @@
<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="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" >
<option value="1" {{if eq .config.Sync 1}}selected{{end}}>同步</option>
<option value="0" {{if eq .config.Sync 0}}selected{{end}}>不同步</option>


Loading…
Cancel
Save