114 lines
2.6 KiB
Go
114 lines
2.6 KiB
Go
/*
|
|
* @Author: giaogiao giaogiao
|
|
* @Date: 2023-08-29 17:06:12
|
|
* @LastEditors: giaogiao giaogiao
|
|
* @LastEditTime: 2023-09-01 10:17:53
|
|
* @FilePath: \gomysql\main.go
|
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
*/
|
|
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"gomysql/models"
|
|
"strconv"
|
|
"strings"
|
|
|
|
_ "github.com/go-sql-driver/mysql"
|
|
"xorm.io/xorm"
|
|
)
|
|
|
|
var engine *xorm.Engine
|
|
|
|
func getInputByFmt() string {
|
|
//定义变量
|
|
var str string
|
|
//Scanf函数读取输入到变量中 两个返回值
|
|
//分别为读取到的长度 失败信息
|
|
_, err := fmt.Scanf("%s", &str) //注意使用%s读取输入字符串只能读取到空白符之前
|
|
if err != nil {
|
|
return err.Error()
|
|
}
|
|
// fmt.Println("Read length is ", length)
|
|
return str
|
|
}
|
|
|
|
/*
|
|
*修改根据id
|
|
*/
|
|
func chang(id string) {
|
|
getInputByFmt()
|
|
type DataJson []struct {
|
|
Detailid string `json:"detailid"`
|
|
Name string `json:"name"`
|
|
Applied int `json:"applied"`
|
|
Actual int `json:"actual"`
|
|
}
|
|
var err error
|
|
engine, err = xorm.NewEngine("mysql", "root:daobang123@tcp(10.34.8.97:3306)/wentiju2?charset=utf8")
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
if err := engine.Ping(); err != nil {
|
|
fmt.Println(err, "数据库连接失败!")
|
|
return
|
|
}
|
|
defer engine.Close()
|
|
// fmt.Println("数据库连接成功!")
|
|
data := new(models.DbNkExpense)
|
|
has, err := engine.Where("id=?", id).Get(data)
|
|
if err != nil {
|
|
println(err)
|
|
return
|
|
}
|
|
if !strings.Contains(data.Sano, "CLFYBX") {
|
|
println("不属于差旅报销 自动退出")
|
|
return
|
|
}
|
|
if has {
|
|
print("标题:" + data.Title + "编号:" + data.Sano + "请确定标题和编号是否正正确 y/n :")
|
|
inpout := getInputByFmt()
|
|
if inpout != "Y" && inpout != "y" {
|
|
return
|
|
}
|
|
} else {
|
|
println("没有这行数据")
|
|
return
|
|
}
|
|
data.Detailid = "73AA5010-6A8F-680E-DA8A-CE295EF26A02"
|
|
// data.Detailid
|
|
datajson := new(DataJson)
|
|
err = json.Unmarshal([]byte(data.Details), &datajson)
|
|
if err != nil {
|
|
fmt.Println("error: ", err)
|
|
return
|
|
}
|
|
for i, _ := range *datajson {
|
|
sText := "人员经费"
|
|
textQuoted := strconv.QuoteToASCII(sText)
|
|
textUnquoted := textQuoted[1 : len(textQuoted)-1]
|
|
(*datajson)[i].Name = textUnquoted
|
|
(*datajson)[i].Detailid = "73AA5010-6A8F-680E-DA8A-CE295EF26A02"
|
|
|
|
}
|
|
jsonBytes, err := json.Marshal(*datajson)
|
|
if err != nil {
|
|
println(err)
|
|
}
|
|
|
|
data.Details = string(jsonBytes)
|
|
affected, err := engine.ID(id).Update(data)
|
|
if err != nil {
|
|
println(err)
|
|
}
|
|
fmt.Printf("修改了%d行\n", affected)
|
|
}
|
|
|
|
func main() {
|
|
print("请输入需要修改的id:")
|
|
chang(getInputByFmt())
|
|
|
|
}
|