u
This commit is contained in:
1 parent
bb780a42ab
commit
d3145e3dc5
19 files changed
+15364
-416
No files matched your search
@@ -15,12 +15,16 @@ import (
|
||||
)
|
||||
|
||||
func InitMoneyRouter(r *router.Router) {
|
||||
group := r.Group("money")
|
||||
group.POST("/query", queryMoneyRecords)
|
||||
group.GET("/category", getUserCategory)
|
||||
group.POST("/insert", insertMoneyRecord)
|
||||
group.POST("/update", updateMoneyRecord)
|
||||
group.POST("/delete", deleteMoneyRecord)
|
||||
groupRecord := r.Group("money")
|
||||
groupRecord.POST("/query", queryMoneyRecords)
|
||||
groupRecord.POST("/insert", insertMoneyRecord)
|
||||
groupRecord.POST("/update", updateMoneyRecord)
|
||||
groupRecord.POST("/delete", deleteMoneyRecord)
|
||||
|
||||
groupCategory := r.Group("money/category")
|
||||
groupCategory.GET("", getUserCategory)
|
||||
groupCategory.POST("/updateSort", updateMoneyCategorySort)
|
||||
groupCategory.POST("/delete", deleteMoneyCategoryById)
|
||||
}
|
||||
|
||||
// InitDefaultCategories 初始化系统默认分类到用户分类表
|
||||
@@ -300,3 +304,45 @@ func deleteMoneyRecord(c *router.Context) error {
|
||||
|
||||
return response.Success(c).Message("删除成功").Send()
|
||||
}
|
||||
|
||||
func updateMoneyCategorySort(c *router.Context) error {
|
||||
bodyData, err := c.BodyMap()
|
||||
fmt.Println("进入了===")
|
||||
|
||||
if err == nil {
|
||||
fmt.Println(err.Error())
|
||||
fmt.Println("发生异常===")
|
||||
return c.AddError(err)
|
||||
}
|
||||
|
||||
if bodyData == nil {
|
||||
return response.Success(c).Send()
|
||||
}
|
||||
|
||||
updateArray := bodyData.GetArray("data")
|
||||
|
||||
fmt.Println(updateArray)
|
||||
|
||||
_, err = db.UpdateBatch("money_user_category", "id", updateArray)
|
||||
|
||||
if err != nil {
|
||||
return c.AddError(err)
|
||||
}
|
||||
|
||||
return response.Success(c).Send()
|
||||
}
|
||||
|
||||
func deleteMoneyCategoryById(c *router.Context) error {
|
||||
bodyData, err := c.GetBodyWithRequired("id")
|
||||
if err != nil {
|
||||
return c.AddError(err)
|
||||
}
|
||||
recordId := bodyData.GetInt64("id")
|
||||
|
||||
_, err = db.DeleteOne("money_user_category", "id", recordId)
|
||||
if err != nil {
|
||||
return c.AddError(err)
|
||||
}
|
||||
|
||||
return response.Success(c).Message("删除成功").Send()
|
||||
}
|
||||
@@ -3,6 +3,8 @@ package db
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"base-go-v2/internal/utils/mapx"
|
||||
)
|
||||
|
||||
// ---------------- 内部辅助函数 ----------------
|
||||
@@ -42,10 +44,7 @@ func UpdateOne(table string, idColumn string, id interface{}, data map[string]in
|
||||
|
||||
res, err := tx.Exec(sql, values...)
|
||||
if err != nil {
|
||||
err := tx.Rollback()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
_ = tx.Rollback()
|
||||
return 0, err
|
||||
}
|
||||
|
||||
@@ -56,8 +55,8 @@ func UpdateOne(table string, idColumn string, id interface{}, data map[string]in
|
||||
return res.RowsAffected()
|
||||
}
|
||||
|
||||
// UpdateBatch 批量更新,dataList 中每个 map 必须包含主键 idColumn
|
||||
func UpdateBatch(table string, idColumn string, dataList []map[string]interface{}) (int64, error) {
|
||||
// UpdateBatch 批量更新,dataList 中每个 mapx.M 必须包含主键 idColumn
|
||||
func UpdateBatch(table string, idColumn string, dataList []mapx.M) (int64, error) {
|
||||
if len(dataList) == 0 {
|
||||
return 0, nil
|
||||
}
|
||||
@@ -68,30 +67,36 @@ func UpdateBatch(table string, idColumn string, dataList []map[string]interface{
|
||||
}
|
||||
|
||||
total := int64(0)
|
||||
for _, data := range dataList {
|
||||
idValue, ok := data[idColumn]
|
||||
for _, item := range dataList {
|
||||
idValue, ok := item[idColumn]
|
||||
if !ok {
|
||||
tx.Rollback()
|
||||
_ = tx.Rollback()
|
||||
return 0, fmt.Errorf("缺少主键列 %s", idColumn)
|
||||
}
|
||||
|
||||
// 移除主键列,否则会重复在 SET 中出现
|
||||
delete(data, idColumn)
|
||||
// 将 mapx.M 转为 map[string]interface{},并移除主键
|
||||
data := make(map[string]interface{})
|
||||
for k, v := range item {
|
||||
if k != idColumn {
|
||||
data[k] = v
|
||||
}
|
||||
}
|
||||
|
||||
sql, values := buildUpdateSQL(table, data, idColumn)
|
||||
values = append(values, idValue)
|
||||
|
||||
res, err := tx.Exec(sql, values...)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
|
||||
_ = tx.Rollback()
|
||||
return 0, err
|
||||
}
|
||||
|
||||
rows, err := res.RowsAffected()
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
_ = tx.Rollback()
|
||||
return 0, err
|
||||
}
|
||||
|
||||
total += rows
|
||||
}
|
||||
|
||||
|
||||
@@ -94,7 +94,6 @@ func (c *Context) GetBodyWithRequired(keys ...string) (mapx.M, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 校验必填字段
|
||||
if err := validate.NotEmpty(req, keys...); err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in new issue
Block a user