- DeleteStore

This commit is contained in:
gazebo
2019-01-07 11:47:44 +08:00
parent 699c8c1ea4
commit 38ae3e16d6
3 changed files with 71 additions and 2 deletions

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"strconv"
"strings"
"time"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils"
@@ -463,8 +464,54 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor
return num, err
}
func DeleteStore(ctx *jxcontext.Context, db *dao.DaoDB, storeID int, userName string) (num int64, err error) {
return 0, errors.New("暂不支持删除京西门店")
func DeleteStore(ctx *jxcontext.Context, storeID int) (num int64, err error) {
db := dao.GetDB()
store := &model.Store{}
store.ID = storeID
if err = dao.GetEntity(db, store); err != nil {
return 0, err
}
if store.Status == model.StoreStatusOpened {
return 0, fmt.Errorf("删除京西门店前必须将所有门店解绑且门店处于关店状态")
}
sql := `
SELECT (SELECT COUNT(*) FROM store_map t1 WHERE t1.store_id = ? AND t1.deleted_at = ?)
+ (SELECT COUNT(*) FROM store_courier_map t1 WHERE t1.store_id = ? AND t1.deleted_at = ?) ct
`
ct := 0
if err = dao.GetRow(db, &ct, sql, storeID, utils.DefaultTimeValue, storeID, utils.DefaultTimeValue); err != nil {
return 0, err
}
globals.SugarLogger.Debugf("DeleteStore storeID:%d, ct=%d", storeID, ct)
if ct > 0 {
return 0, fmt.Errorf("删除京西门店前必须将所有门店解绑且门店处于关店状态")
}
dao.Begin(db)
defer dao.Rollback(db)
now := time.Now()
for _, tableName := range []string{"store_sku_bind", "store_sku_category_map", "store_op_request"} {
sql = fmt.Sprintf(`
UPDATE %s t1
SET t1.deleted_at = ?,
t1.updated_at = ?,
t1.last_operator = ?
WHERE t1.store_id = ? AND t1.deleted_at = ?
`, tableName)
if _, err = dao.ExecuteSQL(db, sql, now, now, ctx.GetUserName(), storeID, utils.DefaultTimeValue); err != nil {
return 0, err
}
}
if num, err = dao.DeleteEntityLogically(db, store, nil, ctx.GetUserName(), nil); err != nil {
return 0, err
}
dao.Commit(db)
return num, err
// return 0, errors.New("暂不支持删除京西门店")
}
func TmpGetJxBadCommentsNo(ctx *jxcontext.Context, storeID int) (count int, err error) {

View File

@@ -71,6 +71,20 @@ func (c *StoreController) UpdateStore() {
})
}
// @Title 删除京西门店
// @Description 删除京西门店
// @Param token header string true "认证token"
// @Param storeID query int true "门店ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /DeleteStore [delete]
func (c *StoreController) DeleteStore() {
c.callDeleteStore(func(params *tStoreDeleteStoreParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.DeleteStore(params.Ctx, params.StoreID)
return retVal, "", err
})
}
// @Title 创建京西门店
// @Description 创建京西门店
// @Param token header string true "认证token"

View File

@@ -559,6 +559,14 @@ func init() {
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
beego.ControllerComments{
Method: "DeleteStore",
Router: `/DeleteStore`,
AllowHTTPMethods: []string{"delete"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
beego.ControllerComments{
Method: "DeleteStoreCourierMap",