diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index 41d1a0013..e3666b843 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -27,6 +27,7 @@ func InitServiceInfo(version, buildDate, gitCommit string) { "vendorName": model.VendorChineseNames, "orderStatus": model.OrderStatusName, "waybillStatus": model.WaybillStatusName, + "bankName": model.BankName, }, } } diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 40aae677a..155cdc6d8 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -69,35 +69,38 @@ func UpdatePlace(placeCode int, payload map[string]interface{}, userName string) // todo 门店绑定信息可以考虑以数组形式返回,而不是现在这样 func GetStores(keyword string, params map[string]interface{}, offset, pageSize int) (retVal *StoresInfo, err error) { - sql := ` + sqlFrom := ` FROM store t1 LEFT JOIN place city ON t1.city_code = city.code AND city.level = 2 LEFT JOIN place district ON t1.district_code = district.code AND district.level = 3 LEFT JOIN store_map jdm ON t1.id = jdm.store_id AND jdm.vendor_id = 0 LEFT JOIN store_map elmm ON t1.id = elmm.store_id AND elmm.vendor_id = 2 LEFT JOIN store_map ebaim ON t1.id = ebaim.store_id AND ebaim.vendor_id = 3 - WHERE` + ` + sqlWhere := ` + WHERE + ` sqlParams := make([]interface{}, 0) if keyword != "" { keywordLike := "%" + keyword + "%" - sql += " (t1.name LIKE ? OR t1.address LIKE ? OR t1.tel1 LIKE ? OR t1.tel2 LIKE ? OR t1.last_operator LIKE ? OR city.name LIKE ?" + sqlWhere += " (t1.name LIKE ? OR t1.address LIKE ? OR t1.tel1 LIKE ? OR t1.tel2 LIKE ? OR t1.last_operator LIKE ? OR city.name LIKE ?" sqlParams = append(sqlParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil { - sql += " OR t1.id = ? OR t1.city_code = ? OR t1.district_code = ? OR t1.lng = ? OR t1.lat = ?" + sqlWhere += " OR t1.id = ? OR t1.city_code = ? OR t1.district_code = ? OR t1.lng = ? OR t1.lat = ?" sqlParams = append(sqlParams, keywordInt64, keywordInt64, keywordInt64, keywordInt64, keywordInt64) } - sql += ")" + sqlWhere += ")" } else { - sql += " 1 = 1" + sqlWhere += " 1 = 1" } if params["id"] != nil { - sql += " AND t1.id = ?" + sqlWhere += " AND t1.id = ?" sqlParams = append(sqlParams, params["id"].(int)) } if params["name"] != nil { - sql += " AND t1.name LIKE ?" + sqlWhere += " AND t1.name LIKE ?" sqlParams = append(sqlParams, "%"+params["name"].(string)+"%") } if params["placeID"] != nil { @@ -106,35 +109,46 @@ func GetStores(keyword string, params map[string]interface{}, offset, pageSize i level = params["placeLevel"].(int) } if level == 2 { - sql += " AND t1.city_code = ?" + sqlWhere += " AND t1.city_code = ?" } else { - sql += " AND t1.district_code = ?" + sqlWhere += " AND t1.district_code = ?" } sqlParams = append(sqlParams, params["placeID"].(int)) } if params["address"] != nil { - sql += " AND t1.address LIKE ?" + sqlWhere += " AND t1.address LIKE ?" sqlParams = append(sqlParams, "%"+params["address"].(string)+"%") } if params["tel"] != nil { - sql += " AND (t1.tel1 LIKE ? OR t1.tel2 LIKE ?)" + sqlWhere += " AND (t1.tel1 LIKE ? OR t1.tel2 LIKE ?)" sqlParams = append(sqlParams, "%"+params["tel"].(string)+"%") sqlParams = append(sqlParams, "%"+params["tel"].(string)+"%") } + // if params["cardCond"] != nil { + // cardCond := params["cardCond"].(int) + // if cardCond == -1 || cardCond == 1 { + // sqlFrom += "\nLEFT JOIN bill_info ON t1.store_id = bill_info.jx_store_id\n" + // if cardCond == -1 { + // sqlWhere += " AND bill_info.id IS NULL" + // } else { + // sqlWhere += " AND bill_info.id IS NOT NULL" + // } + // } + // } if params["fromStatus"] != nil { fromStatus := params["fromStatus"].(int) toStatus := fromStatus if params["toStatus"] != nil { toStatus = params["toStatus"].(int) } - sql += " AND t1.status >= ? AND t1.status <= ?" + sqlWhere += " AND t1.status >= ? AND t1.status <= ?" sqlParams = append(sqlParams, fromStatus, toStatus) } if vendorStoreCond := strings.ToUpper(utils.Interface2String(params["vendorStoreCond"])); vendorStoreCond == "AND" || vendorStoreCond == "OR" { if vendorStoreCond == "AND" { - sql += " AND ( 1 = 1" + sqlWhere += " AND ( 1 = 1" } else { - sql += " AND ( 1 = 0" + sqlWhere += " AND ( 1 = 0" } condMap := map[string]int{ "jdm": utils.Interface2DirectIntWithDefault(params["jdCond"], 0), @@ -143,18 +157,19 @@ func GetStores(keyword string, params map[string]interface{}, offset, pageSize i } for tableName, cond := range condMap { if cond != 0 { - sql += " " + vendorStoreCond + " " + tableName + sqlWhere += " " + vendorStoreCond + " " + tableName } if cond == -1 { - sql += ".vendor_store_id IS NULL" + sqlWhere += ".vendor_store_id IS NULL" } else if cond == 1 { - sql += ".vendor_store_id IS NOT NULL" + sqlWhere += ".vendor_store_id IS NOT NULL" } } - sql += ")" + sqlWhere += ")" } - sqlData := "SELECT SQL_CALC_FOUND_ROWS t1.*, city.name city_name, district.name district_name, jdm.vendor_store_id jd_id, elmm.vendor_store_id elm_id, ebaim.vendor_store_id ebai_id\n" + sql + ` - ORDER BY id + sql := "SELECT SQL_CALC_FOUND_ROWS t1.*, city.name city_name, district.name district_name, jdm.vendor_store_id jd_id, elmm.vendor_store_id elm_id, ebaim.vendor_store_id ebai_id\n" + + sqlFrom + sqlWhere + ` + ORDER BY t1.id LIMIT ? OFFSET ?` if pageSize == 0 { pageSize = model.DefPageSize @@ -165,7 +180,7 @@ func GetStores(keyword string, params map[string]interface{}, offset, pageSize i sqlParams = append(sqlParams, pageSize, offset) retVal = &StoresInfo{} db := dao.GetDB() - if err = dao.GetRows(db, &retVal.Stores, sqlData, sqlParams...); err == nil { + if err = dao.GetRows(db, &retVal.Stores, sql, sqlParams...); err == nil { countInfo := &struct{ Ct int }{} if err = dao.GetRow(db, countInfo, "SELECT FOUND_ROWS() ct"); err == nil { retVal.TotalCount = countInfo.Ct diff --git a/business/model/store.go b/business/model/store.go index 854aaad1f..f5e2432a3 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -27,6 +27,7 @@ var ( StoreStatusName map[int]string DeliveryRangeTypeName map[int]string DeliveryTypeName map[int]string + BankName map[string]string ) func init() { @@ -44,6 +45,70 @@ func init() { StoreDeliveryTypeByPlatform: "平台专送", StoreDeliveryTypeByStore: "门店自送", } + BankName = map[string]string{ + "ICB": "工商银行", + "CCB": "建设银行", + "ABC": "农业银行", + "BOC": "中国银行", + "PSBC": "邮储银行", + "CITIC": "中信银行", + "CEB": "光大银行", + "HXB": "华夏银行", + "CMBC": "民生银行", + "CMB": "招商银行", + "SHB": "上海银行", + "BJB": "北京银行", + "BEA": "东亚银行", + "CIB": "兴业银行", + "NBB": "宁波银行", + "SPDB": "浦发银行", + "GDB": "广发银行", + "SPAB": "平安银行", + "BSB": "包商银行", + "CSCB": "长沙银行", + "CDB": "承德银行", + "CDRCB": "成都农商银行", + "CRCB": "重庆农村商业银行", + "CQB": "重庆银行", + "DLB": "大连银行", + "DYCCB": "东营市商业银行", + "ORBANK": "鄂尔多斯银行", + "FJNXB": "福建省农村信用社", + "GYB": "贵阳银行", + "GCB": "广州银行", + "GRCB": "广州农村商业银行", + "HEBB": "哈尔滨银行", + "HNNXB": "湖南省农村信用社", + "HSB": "徽商银行", + "BHB": "河北银行", + "HZCB": "杭州银行", + "BOJZ": "锦州银行", + "CSRCB": "江苏常熟农村商业银行", + "JSB": "江苏银行", + "JRCB": "江阴农村商业银行", + "JJCCB": "九江银行", + "LZB": "兰州银行", + "DAQINGB": "龙江银行", + "QHB": "青海银行", + "SHRCB": "上海农商银行", + "SRB": "上饶银行", + "SDEB": "顺德农村商业银行", + "TZCB": "台州银行", + "WHSHB": "威海市商业银行", + "WFCCB": "潍坊银行", + "WZCB": "温州银行", + "URMQCCB": "乌鲁木齐商业银行", + "WRCB": "无锡农村商业银行", + "YCCB": "宜昌市商业银行", + "YZB": "鄞州银行", + "CZCB": "浙江稠州商业银行", + "ZJTLCB": "浙江泰隆商业银行", + "MTBANK": "浙江民泰商业银行", + "NJCB": "南京银行", + "NCB": "南昌银行", + "QLBANK": "齐鲁银行", + "YDRCB": "尧都农村商业银行", + } } type Store struct {