質問編集履歴

1

SQLの処理に問題がありそうだとご指摘いただいたcontroller.loginのソースコードを追記いたしましたので、ご確認宜しくお願い致します。正常に動いていた時から修正はしておりません。

2022/04/07 03:42

投稿

Gunjirk
Gunjirk

スコア23

test CHANGED
File without changes
test CHANGED
@@ -250,6 +250,93 @@
250
250
  case "keiyakuHistoryAPI":
251
251
  controller.KeiyakuHistory(cmd, data, w, db)
252
252
  }
253
+ }
254
+
255
+ ```
256
+
257
+ ```GO
258
+ package controller
259
+
260
+ import (
261
+ "database/sql"
262
+ "encoding/json"
263
+ "io"
264
+ "net/http"
265
+ "os"
266
+
267
+ entity "../../models/entity"
268
+ responsejson "../responsejson"
269
+
270
+ rotatelogs "github.com/lestrrat-go/file-rotatelogs"
271
+ "github.com/spiegel-im-spiegel/logf"
272
+ )
273
+
274
+ func Login(cmd string, data string, w http.ResponseWriter, db *sql.DB) {
275
+
276
+ // **************************************
277
+ // ログファイル作成
278
+ // **************************************
279
+
280
+ logf.SetMinLevel(logf.DEBUG)
281
+ // rl, err := rotatelogs.New("C:/Users/navita-remo/go/kokyaku/log/kokyaku.%Y%m%d.log")
282
+ rl, err := rotatelogs.New("C:/work/顧客台帳システム/kokyaku/log/kokyaku.%Y%m%d.log")
283
+ if err != nil {
284
+ logf.Error(err)
285
+ }
286
+ ws := io.MultiWriter(
287
+ rl,
288
+ os.Stdout,
289
+ )
290
+ logf.SetOutput(ws)
291
+
292
+ logger := logf.New(
293
+ logf.WithFlags(logf.LstdFlags|logf.Lshortfile),
294
+ logf.WithWriter(rl),
295
+ logf.WithMinLevel(logf.INFO),
296
+ )
297
+
298
+ // login API
299
+ li := entity.Login{}
300
+ err = json.Unmarshal([]byte(data), &li)
301
+ if err != nil {
302
+ logger.Errorf("%s,(ID:%s)\n", err, li.UserID)
303
+ }
304
+
305
+ res := new(entity.LoginResponse)
306
+ res.Cmd = cmd
307
+ res.Ret = "0"
308
+ res.UserID = li.UserID
309
+
310
+ LoginColumn := `
311
+ DM_USER.USER_NAME_KNJ,
312
+ DM_KYOTEN.KYOTEN_NAME_KNJ,
313
+ DM_USER.PASSWORD_ENABLE_KIGEN_DATE
314
+ `
315
+ join := `
316
+ inner join DM_KYOTEN on DM_USER.KYOTEN_CD = DM_KYOTEN.KYOTEN_CD
317
+ `
318
+ var PasswordEnableKigenDate string
319
+
320
+ // 1レコードをSELECT
321
+ err = db.QueryRow("SELECT "+LoginColumn+" FROM DM_USER "+join+" WHERE DM_USER.USER_ID = \""+li.UserID+"\" AND DM_USER.PASSWORD = \""+li.Password+"\"").Scan(
322
+ &res.Username,
323
+ &res.Kyotenname,
324
+ &PasswordEnableKigenDate,
325
+ )
326
+ if err != nil {
327
+ logger.Errorf("%s,(ID:%s)\n", err, li.UserID)
328
+ res.Ret = "1"
329
+ } else {
330
+ logger.Print("ログインしました(ID:" + li.UserID + ")")
331
+ }
332
+
333
+ // JSON変換してクライアントに送る
334
+ resJSON, _ := json.Marshal(res)
335
+ responsejson.ResponseJSON(resJSON, w)
336
+ }
337
+
338
+ func logger() {
339
+
253
340
  }
254
341
 
255
342
  ```
@@ -291,43 +378,3 @@
291
378
  created by net/http.(*Server).Serve
292
379
  C:/Program Files/Go/src/net/http/server.go:3034 +0x4e8
293
380
 
294
- go env 実行結果
295
-
296
- C:\Users\h_gunji>go env
297
- set GO111MODULE=auto
298
- set GOARCH=amd64
299
- set GOBIN=
300
- set GOCACHE=C:\Users\h_gunji\AppData\Local\go-build
301
- set GOENV=C:\Users\h_gunji\AppData\Roaming\go\env
302
- set GOEXE=.exe
303
- set GOEXPERIMENT=
304
- set GOFLAGS=
305
- set GOHOSTARCH=amd64
306
- set GOHOSTOS=windows
307
- set GOINSECURE=
308
- set GOMODCACHE=C:\Users\h_gunji\go\pkg\mod
309
- set GONOPROXY=
310
- set GONOSUMDB=
311
- set GOOS=windows
312
- set GOPATH=C:\Users\h_gunji\go
313
- set GOPRIVATE=
314
- set GOPROXY=https://proxy.golang.org,direct
315
- set GOROOT=C:\Program Files\Go
316
- set GOSUMDB=sum.golang.org
317
- set GOTMPDIR=
318
- set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
319
- set GOVCS=
320
- set GOVERSION=go1.17.6
321
- set GCCGO=gccgo
322
- set AR=ar
323
- set CC=gcc
324
- set CXX=g++
325
- set CGO_ENABLED=1
326
- set GOMOD=
327
- set CGO_CFLAGS=-g -O2
328
- set CGO_CPPFLAGS=
329
- set CGO_CXXFLAGS=-g -O2
330
- set CGO_FFLAGS=-g -O2
331
- set CGO_LDFLAGS=-g -O2
332
- set PKG_CONFIG=pkg-config
333
- set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\h_gunji\AppData\Local\Temp\go-build52671668=/tmp/go-build -gno-record-gcc-switches