123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package main
- import (
- qu "app.yhyue.com/moapp/jybase/common"
- "fmt"
- _ "github.com/go-sql-driver/mysql"
- "github.com/xormplus/xorm"
- "log"
- )
- type sysConfig struct {
- Mysql string `json:"mysql"`
- AdminMysql string `json:"adminMysql"`
- }
- var SysConfig sysConfig
- var Mysql *xorm.Engine
- var AdminMysql *xorm.Engine
- func init() {
- var err error
- qu.ReadConfig("./config.json", &SysConfig)
- log.Println(SysConfig.Mysql)
- log.Println(SysConfig.AdminMysql)
- Mysql, err = xorm.NewEngine("mysql", SysConfig.Mysql)
- if err != nil {
- log.Println("初始化mysql数据库失败", err)
- }
- AdminMysql, err = xorm.NewEngine("mysql", SysConfig.AdminMysql)
- if err != nil {
- log.Println("初始化AdminMysql数据库失败", err)
- }
- }
- func main() {
- // 查询剑鱼后台所有人员的用户名以及id 存放到map里
- //sql2 := "select order_code,salesperson from dataexport_order where salesperson is not null and salesperson_id is null"
- type user struct {
- Id string `xorm:"id"`
- UserName string `xorm:"username"`
- }
- var users []user
- // 1. 从订单表中查询出有销售人员的订单的id以及销售人员名称,
- //sql1 := "select id ,username from admin_user"
- err := AdminMysql.Table("admin_user").Select("id,username").Find(&users)
- if err != nil {
- fmt.Println("获取剑鱼后台用户信息失败", err)
- return
- }
- nameInfo := map[string]interface{}{}
- if users != nil && len(users) > 0 {
- for _, v := range users {
- nameInfo[v.UserName] = v.Id
- }
- log.Println("剑鱼后台用户信息:", nameInfo)
- } else {
- log.Println("未查询到用户信息,确认数据库是否正确")
- return
- }
- // 2. 获取id
- //sql2 := "select order_code,salesperson from dataexport_order where salesperson is not null and salesperson_id is null"
- order := new(struct {
- OrderCode string `xorm:"order_code"`
- Salesperson string `xorm:"salesperson"`
- })
- rows, err := Mysql.Table("dataexport_order").Select("order_code,salesperson").Where("salesperson is not null and salesperson !='' and salesperson_id is null ").Rows(order)
- log.Println("rows", rows)
- defer func(rows *xorm.Rows) {
- if rows != nil {
- rows.Close()
- }
- }(rows)
- fmt.Println("开始迭代需要更新的订单表数据")
- var count int
- var errCount int
- var successCount int
- for rows.Next() {
- err = rows.Scan(order)
- if err != nil {
- log.Println("迭代数据出错", err)
- return
- }
- count++
- orderCode := order.OrderCode
- salesperson := order.Salesperson
- if id, ok := nameInfo[salesperson]; ok {
- //sql3 := "update dateexport_order set salesperson_id = ? where order_code=?"
- update, err := Mysql.Table("dataexport_order").Where("order_code=?", orderCode).Update(map[string]interface{}{
- "salesperson_id": id,
- })
- if err != nil || update < 1 {
- errCount++
- log.Printf("更新失败:订单号:%v,销售人员:%v,销售人员id:%v ", orderCode, salesperson, id)
- fmt.Println("更新失败", err)
- continue
- }
- successCount++
- log.Printf("更新完成:订单号:%v,销售人员:%v,销售人员id:%v", orderCode, salesperson, id)
- } else {
- errCount++
- log.Printf("未获取到对应用户id,请核实销售人员姓名:订单号:%v,销售人员:%v,", orderCode, salesperson)
- }
- }
- log.Printf("共%v条数据,更新成功%v,更新失败%v", count, successCount, errCount)
- //log.Printf("需要手动核实的数据:%v", errData)
- }
|