huangjiajun hace 3 semanas
padre
commit
60f24b7233
Se han modificado 15 ficheros con 245 adiciones y 34 borrados
  1. +1
    -1
      app/agent/svc/svc_store.go
  2. +16
    -1
      app/db/db_order.go
  3. +21
    -0
      app/db/db_store_withdraw.go
  4. +1
    -1
      app/db/dbs_map.go
  5. +1
    -0
      app/db/model/community_team_order.go
  6. +1
    -0
      app/db/model/community_team_pay_order.go
  7. +1
    -1
      app/hdl/hdl_printer_list.go
  8. +98
    -3
      app/hdl/hdl_store_index.go
  9. +64
    -0
      app/hdl/hdl_store_order.go
  10. +17
    -14
      app/router/router.go
  11. +1
    -1
      app/svc/svc_order.go
  12. +8
    -0
      app/svc/svc_pay_community_team.go
  13. +1
    -1
      app/svc/svc_pay_community_team_pay.go
  14. +8
    -10
      app/svc/svc_printer_list.go
  15. +6
    -1
      app/svc/svc_store_order.go

+ 1
- 1
app/agent/svc/svc_store.go Ver fichero

@@ -102,7 +102,7 @@ func StoreWithdrawAudit(c *gin.Context) {
return
}
if req["state"] == "3" {
bools := svc.MoneyCheck(c, sess, data.Uid, data.ParentUid, data.StoreType, 0, 3, utils.StrToFloat64(data.Amount), "提现审核拒绝退回", utils.StrToInt64(utils.OrderUUID(data.Uid)))
bools := svc.MoneyCheck(c, sess, data.Uid, data.ParentUid, data.StoreType, 0, 2, utils.StrToFloat64(data.Amount), "提现审核拒绝退回", utils.StrToInt64(utils.OrderUUID(data.Uid)))
if bools == false {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "审核失败"))


+ 16
- 1
app/db/db_order.go Ver fichero

@@ -4,6 +4,7 @@ import (
"applet/app/db/model"
"applet/app/md"
"applet/app/utils"
"github.com/gin-gonic/gin"
"xorm.io/xorm"
)

@@ -63,6 +64,14 @@ func GetOrderInfoAllEg(eg *xorm.Engine, oid string) *[]model.CommunityTeamOrderI
}
return &data
}
func GetOrderInfoFirstEg(eg *xorm.Engine, oid string) *model.CommunityTeamOrderInfo {
var data model.CommunityTeamOrderInfo
get, err := eg.Where("oid=?", oid).Get(&data)
if err != nil || get == false {
return nil
}
return &data
}
func GetOrderInfoEg(eg *xorm.Engine, oid string) *model.CommunityTeamOrderInfo {
var data model.CommunityTeamOrderInfo
get, err := eg.Where("oid=?", oid).Asc("id").Get(&data)
@@ -72,7 +81,7 @@ func GetOrderInfoEg(eg *xorm.Engine, oid string) *model.CommunityTeamOrderInfo {
return &data
}

func GetOrderList(eg *xorm.Engine, arg map[string]string) *[]model.CommunityTeamOrder {
func GetOrderList(c *gin.Context, eg *xorm.Engine, arg map[string]string) *[]model.CommunityTeamOrder {
var data []model.CommunityTeamOrder
sess := eg.Where("1=1")
if arg["uid"] != "" {
@@ -87,6 +96,12 @@ func GetOrderList(eg *xorm.Engine, arg map[string]string) *[]model.CommunityTeam
if arg["code"] != "" {
sess.And("code=?", arg["code"])
}
if arg["start_time"] != "" {
sess.And("create_at>=?", arg["start_time"])
}
if arg["end_time"] != "" {
sess.And("create_at<?", arg["end_time"])
}
limit := utils.StrToInt(arg["size"])
start := (utils.StrToInt(arg["p"]) - 1) * limit
err := sess.OrderBy("id desc").Limit(limit, start).Find(&data)


+ 21
- 0
app/db/db_store_withdraw.go Ver fichero

@@ -21,6 +21,26 @@ func GetStoreWithdraw(eg *xorm.Engine, arg map[string]string) (*[]model.Communit
}
return &data, count
}
func GetStoreFlow(eg *xorm.Engine, arg map[string]string) (*[]model.CommunityTeamStoreAmountFlow, int64) {
var data []model.CommunityTeamStoreAmountFlow
sess := eg.Where("1=1")
if arg["store_uid"] != "" {
sess.And("uid=?", arg["store_uid"])
}
if arg["ord_type"] != "" {
sess.And("ord_type=?", arg["ord_type"])
}
limit := utils.StrToInt(arg["size"])
start := (utils.StrToInt(arg["p"]) - 1) * limit
if limit > 0 {
sess.Limit(limit, start)
}
count, err := sess.Desc("id").FindAndCount(&data)
if err != nil {
return nil, count
}
return &data, count
}
func CommWhere(eg *xorm.Engine, arg map[string]string) *xorm.Session {
sess := eg.Where("1=1")
if arg["store_uid"] != "" {
@@ -32,6 +52,7 @@ func CommWhere(eg *xorm.Engine, arg map[string]string) *xorm.Session {
if arg["store_type"] != "" {
sess.And("store_type=?", arg["store_type"])
}

if arg["state"] != "" {
sess.And("state=?", arg["state"])
}


+ 1
- 1
app/db/dbs_map.go Ver fichero

@@ -92,7 +92,7 @@ func GetAllDatabaseDev() *[]model.DbMapping {
var err error
if cfg.Local { // 本地调试 加快速度
//fmt.Println("notice:LOCAL TEST, only masterId:** 123456 ** available!")
err = Db.Where("deleted_at != ? AND is_dev = '1' AND db_master_id=?", 1, 123456).Find(&m)
err = Db.Where("deleted_at != ? AND is_dev = '1' AND db_master_id=?", 1, 22255132).Find(&m)
//err = Db.Where(" db_master_id=?", 74856566).Find(&m)
} else {
err = Db.Where("deleted_at != ? AND is_dev = '1' ", 1).Find(&m)


+ 1
- 0
app/db/model/community_team_order.go Ver fichero

@@ -41,4 +41,5 @@ type CommunityTeamOrder struct {
StoreSettleAt int `json:"store_settle_at" xorm:"default 0 comment('') INT(11)"`
SettleAt int `json:"settle_at" xorm:"default 0 comment('') INT(11)"`
CommissionAt int `json:"commission_at" xorm:"default 0 comment('') INT(11)"`
IsNotice int `json:"is_notice" xorm:"not null default 0 comment('支付状态:0:未支付,1:已支付') TINYINT(2)"`
}

+ 1
- 0
app/db/model/community_team_pay_order.go Ver fichero

@@ -26,4 +26,5 @@ type CommunityTeamPayOrder struct {
UserCommission string `json:"user_commission" xorm:"default 0.00 DECIMAL(20,2)"`
AgentCommission string `json:"agent_commission" xorm:"default 0.00 DECIMAL(20,2)"`
PlatformCommission string `json:"platform_commission" xorm:"default 0.00 DECIMAL(20,2)"`
IsNotice int `json:"is_notice" xorm:"not null default 0 comment('支付状态:0:未支付,1:已支付') TINYINT(2)"`
}

+ 1
- 1
app/hdl/hdl_printer_list.go Ver fichero

@@ -45,7 +45,7 @@ func PrinterIndexDel(c *gin.Context) {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
svc.PrinterDelIndex(c, idsMap["id"], idsMap["store_id"])
svc.PrinterDelIndex(c, idsMap["id"])
}

// 明细


+ 98
- 3
app/hdl/hdl_store_index.go Ver fichero

@@ -3,6 +3,7 @@ package hdl
import (
"applet/app/db"
"applet/app/e"
storeSvc "applet/app/store/svc"
"applet/app/svc"
"applet/app/utils"
"fmt"
@@ -40,6 +41,21 @@ func StoreIndexTotal(c *gin.Context) {
successCount = v["success_count"]
waitCount = v["wait_count"]
}
sqlCodePay := `select SUM(amount-agent_commission-platform_commission) AS money,SUM(amount) AS amount,SUM(commission) AS commission,SUM(IF(state=3,1,0)) as count,SUM(IF(state in(1,2),1,0)) as success_count,
SUM(IF(state=1,1,0)) as wait_count
from community_team_pay_order
where %s
`
whereCodePay := where + " and create_at>='" + stime.Format("2006-01-02 15:04:05") + "' and create_at<'" + etime.Format("2006-01-02 15:04:05") + "'"
sqlCodePay = fmt.Sprintf(sqlCodePay, whereCodePay)
nativeStringCodePay, _ := db.QueryNativeString(svc.MasterDb(c), sqlCodePay)
for _, v := range nativeStringCodePay {
amount = utils.Float64ToStr(utils.StrToFloat64(amount) + utils.StrToFloat64(v["amount"]))
money = utils.Float64ToStr(utils.StrToFloat64(money) + utils.StrToFloat64(v["money"]))
commission = utils.Float64ToStr(utils.StrToFloat64(commission) + utils.StrToFloat64(v["commission"]))
count = utils.IntToStr(utils.StrToInt(count) + utils.StrToInt(v["count"]))
successCount = utils.IntToStr(utils.StrToInt(successCount) + utils.StrToInt(v["success_count"]))
}
store := db.GetStoreIdEg(svc.MasterDb(c), utils.IntToStr(user.Info.Uid))
tmp := []map[string]string{
{"name": "营业总额", "value": svc.GetCommissionPrec(c, amount, "2", "1")},
@@ -50,9 +66,88 @@ func StoreIndexTotal(c *gin.Context) {
if store.StoreType > 0 {
tmp = append(tmp, map[string]string{"name": "订单收益", "value": svc.GetCommissionPrec(c, money, "2", "1")})
}
tmp = append(tmp, map[string]string{"name": "已付款订单量", "value": successCount})
tmp = append(tmp, map[string]string{"name": "已取消订单量", "value": count})
tmp = append(tmp, map[string]string{"name": "待提货订单量", "value": waitCount})
tmp = append(tmp, map[string]string{"name": "已付款订单量", "value": utils.IntToStr(utils.StrToInt(successCount))})
tmp = append(tmp, map[string]string{"name": "已取消订单量", "value": utils.IntToStr(utils.StrToInt(count))})
tmp = append(tmp, map[string]string{"name": "待提货订单量", "value": utils.IntToStr(utils.StrToInt(waitCount))})
e.OutSuc(c, tmp, nil)
return
}

func StoreWithdrawBase(c *gin.Context) {
user := svc.GetUser(c)
var res = map[string]string{
"is_bind": "0",
"amount": "0",
"alipay_account": user.Profile.AccAlipay,
"alipay_name": user.Profile.AccAlipayRealName,
"info": "",
}
if user.Profile.AccAlipay != "" {
res["is_bind"] = "1"
}

store := db.GetStoreIdEg(svc.MasterDb(c), utils.IntToStr(user.Info.Uid))
if store != nil {
amountData := db.GetStoreAmountEg(svc.MasterDb(c), user.Info.Uid, store.ParentUid, store.StoreType)
if amountData != nil {
res["amount"] = amountData.Amount
}
}
e.OutSuc(c, res, nil)
return
}
func StoreWithdrawFlowCate(c *gin.Context) {
res := []map[string]string{
{"name": "全部", "value": ""},
{"name": "订单", "value": "1"},
{"name": "收款", "value": "4"},
{"name": "提现", "value": "2"},
}
e.OutSuc(c, res, nil)
return
}
func StoreWithdrawFlow(c *gin.Context) {
var req map[string]string
if err := c.ShouldBindJSON(&req); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}
user := svc.GetUser(c)
req["store_uid"] = utils.IntToStr(user.Info.Uid)
store := db.GetStoreIdEg(svc.MasterDb(c), utils.IntToStr(user.Info.Uid))
if store != nil {
req["parent_uid"] = utils.IntToStr(store.ParentUid)
req["store_type"] = utils.IntToStr(store.StoreType)
}
withdraw, total := db.GetStoreFlow(svc.MasterDb(c), req)
list := make([]map[string]string, 0)
if withdraw != nil {
var stateList = []string{"", "订单", "提现", "", "收款"}
for _, v := range *withdraw {
tmp := map[string]string{
"amount": v.Amount,
"title": v.Title,
"ord_type": utils.IntToStr(v.OrdType),
"label": stateList[v.OrdType],
"oid": utils.Int64ToStr(v.Oid),
"time": v.CreateAt.Format("2006-01-02 15:04:05"),
}
if v.OrdType == 1 {
ord := db.GetOrderInfoFirstEg(svc.MasterDb(c), utils.Int64ToStr(v.Oid))
if ord != nil {
tmp["title"] = ord.Title
}
}
list = append(list, tmp)
}
}
res := map[string]interface{}{
"total": total,
"list": list,
}
e.OutSuc(c, res, nil)
return
}
func StoreWithdrawDoing(c *gin.Context) {
storeSvc.StoreWithdrawDoing(c)
}

+ 64
- 0
app/hdl/hdl_store_order.go Ver fichero

@@ -1,8 +1,15 @@
package hdl

import (
"applet/app/db"
"applet/app/db/model"
"applet/app/e"
"applet/app/svc"
"applet/app/utils"
"encoding/json"
"github.com/gin-gonic/gin"
"strings"
"time"
)

func StoreOrderList(c *gin.Context) {
@@ -17,3 +24,60 @@ func StoreOrderDetail(c *gin.Context) {
func StoreOrderConfirm(c *gin.Context) {
svc.StoreOrderConfirm(c)
}
func GetNewOrderNoticeList(c *gin.Context) {
user := svc.GetUser(c)
storeId := user.Info.Uid
payTipOpen := db.SysCfgGet(c, "community_pay_tip_open")
list := make([]string, 0)

if payTipOpen == "1" {
today := utils.GetTimeRange("today")
todayTime := time.Unix(today["start"], 0).Format("2006-01-02 15:04:05")
sql2 := `select * from community_team_pay_order where is_notice=0 and store_uid=? and state>0 and create_at>=? order by create_at asc`
nativeString2, _ := db.QueryNativeString(svc.MasterDb(c), sql2, storeId, todayTime)
payCodeTip := db.SysCfgGet(c, "community_pay_code_tip")
payGoodsTip := db.SysCfgGet(c, "community_pay_goods_tip")
payGoodsSecondTip := db.SysCfgGet(c, "community_pay_goods_second_tip")
payGoodsTipType := db.SysCfgGet(c, "community_pay_goods_tip_type")
for _, v := range nativeString2 {
payCodeTipStr := strings.ReplaceAll(payCodeTip, "[金额]", svc.GetCommissionPrec(c, v["amount"], "2", "1"))
list = append(list, payCodeTipStr)
svc.MasterDb(c).Where("id=? ", v["id"]).Cols("is_notice").Update(&model.CommunityTeamPayOrder{IsNotice: 1})
}
sql := `select * from community_team_order where is_notice=0 and store_uid=? and state in(1,2) and pay_at>=? order by pay_at asc`
nativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql, storeId, todayTime)
mainStr := payGoodsTip
if payGoodsTipType == "1" {
mainStr = payGoodsSecondTip
}
for k, v := range nativeString {
sql1 := `select title,num,sku_info from community_team_order_info
where oid=?
`
queryNativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql1, v["oid"])
str := ""
for _, v1 := range queryNativeString {
tmp := make([]map[string]interface{}, 0)
json.Unmarshal([]byte(v["sku_info"]), &tmp)
skuStr := ""
for _, v2 := range tmp {
skuStr += utils.AnyToString(v2["value"])
}
str += " " + v1["title"] + skuStr + v1["num"] + " 份"
}
if payGoodsTipType == "1" {
list = append(list, mainStr+str)
}
if payGoodsTipType != "1" && k == 0 {
list = append(list, mainStr)
}
svc.MasterDb(c).Where("oid=? ", v["oid"]).Cols("is_notice").Update(&model.CommunityTeamOrder{IsNotice: 1})
}

}
res := map[string]interface{}{
"list": list,
}
e.OutSuc(c, res, nil)
return
}

+ 17
- 14
app/router/router.go Ver fichero

@@ -187,20 +187,23 @@ func routeCommunityTeam(r *gin.RouterGroup) {
r.POST("/store/order/detail", hdl.StoreOrderDetail)
r.POST("/store/order/confirm", hdl.StoreOrderConfirm)
r.GET("/store/order/cate", hdl.StoreOrderCate)
r.GET("/store/order/notice", hdl.GetNewOrderNoticeList)
r.POST("/store/index/total", hdl.StoreIndexTotal)

r.GET("/printer/cate/list", hdl.PrinterCateList) //打印机类型列表
r.GET("/printer/location/list", hdl.PrinterLocationList) //打印机位置列表
r.POST("/printer/list", hdl.PrinterIndex) //打印机列表
r.POST("/printer/save", hdl.PrinterIndexSave) //打印机添加编辑
r.POST("/printer/del", hdl.PrinterIndexDel) //打印机删除
r.POST("/printer/module/list", hdl.PrinterModule) //打印机模板
r.POST("/printer/module/save", hdl.PrinterIndexModuleSave) //打印机模板选择
r.POST("/printer/use/save", hdl.PrinterIndexStateSave) //打印机使用状态调整
r.POST("/printer/record/list", hdl.PrinterIndexRecord) //打印机明细
r.POST("/printer/record/screen", hdl.PrinterIndexRecordScreen) //打印机筛选
r.POST("/printer/send", hdl.PrinterIndexToSend) //打印机测试
r.POST("/printer/check", hdl.PrinterIndexCheck) //订
r.GET("/store/withdraw/base", hdl.StoreWithdrawBase)
r.GET("/store/withdraw/flow/cate", hdl.StoreWithdrawFlowCate)
r.POST("/store/withdraw/flow", hdl.StoreWithdrawFlow)
r.POST("/store/withdraw/doing", hdl.StoreWithdrawDoing)
r.GET("/printer/cate/list", hdl.PrinterCateList) //打印机类型列表
r.GET("/printer/location/list", hdl.PrinterLocationList) //打印机位置列表
r.POST("/printer/list", hdl.PrinterIndex) //打印机列表
r.POST("/printer/save", hdl.PrinterIndexSave) //打印机添加编辑
r.POST("/printer/del", hdl.PrinterIndexDel) //打印机删除
r.POST("/printer/module/list", hdl.PrinterModule) //打印机模板
r.POST("/printer/module/save", hdl.PrinterIndexModuleSave) //打印机模板选择
r.POST("/printer/use/save", hdl.PrinterIndexStateSave) //打印机使用状态调整
r.POST("/printer/record/list", hdl.PrinterIndexRecord) //打印机明细
r.GET("/printer/record/screen", hdl.PrinterIndexRecordScreen) //打印机筛选
r.POST("/printer/send", hdl.PrinterIndexToSend) //打印机测试
r.POST("/printer/check", hdl.PrinterIndexCheck) //订

}

+ 1
- 1
app/svc/svc_order.go Ver fichero

@@ -36,7 +36,7 @@ func OrderList(c *gin.Context) {
}
user := GetUser(c)
arg["uid"] = utils.IntToStr(user.Info.Uid)
data := db.GetOrderList(MasterDb(c), arg)
data := db.GetOrderList(c, MasterDb(c), arg)
var state = []string{"待付款", "待提货", "已完成", "已取消"}
list := make([]map[string]interface{}, 0)
scheme, host := ImageBucket(c)


+ 8
- 0
app/svc/svc_pay_community_team.go Ver fichero

@@ -117,6 +117,14 @@ func CommonCallbackCommunityTeam(c *gin.Context, orderId string, payMethod strin
ord.PayAt = time.Now()
ord.PayMethod = md.PayMethodIDs[payMethod]
MasterDb(c).Where("id=?", ord.Id).Cols("state,update_at,code,pay_at,pay_method").Update(ord)
engine := MasterDb(c)
storeId, ord1, goodsInfo, err := CommGetPrinterContent(c, utils.Int64ToStr(ord.Oid))
if err != nil {
e.OutErr(c, 400, err)
return
}
//打印操作
go ReplaceDoing(c, engine, storeId, ord1, goodsInfo)
return
}
func Code() string {


+ 1
- 1
app/svc/svc_pay_community_team_pay.go Ver fichero

@@ -118,7 +118,7 @@ func CommonCallbackCommunityTeamPay(c *gin.Context, orderId string, payMethod st
if ord.StoreType == 1 {
money = utils.StrToFloat64(ord.Amount) - utils.StrToFloat64(ord.PlatformCommission)
}
bools := MoneyCheck(c, sess, ord.StoreUid, ord.ParentUid, ord.StoreType, 0, 1, money, "收款码收款", ord.Oid)
bools := MoneyCheck(c, sess, ord.StoreUid, ord.ParentUid, ord.StoreType, 0, 4, money, "收款码收款", ord.Oid)
if bools == false {
sess.Rollback()
return


+ 8
- 10
app/svc/svc_printer_list.go Ver fichero

@@ -135,10 +135,10 @@ func PrinterIndexSave(c *gin.Context) {
return
}
}
user := GetUser(c)
var module = model.CommunityTeamStorePrinter{
Id: utils.StrToInt(search.Id),
StoreId: utils.StrToInt(search.StoreId),
StoreId: user.Info.Uid,
SnNum: search.SnNum,
IdentificationCode: search.IdentificationCode,
Name: search.Name,
@@ -175,7 +175,6 @@ func PrinterIndexSave(c *gin.Context) {
return
}

e.OutSuc(c, "success", nil)
return
}

@@ -222,9 +221,11 @@ func PrinterIndexStateSave(c *gin.Context) {
}

// 删除打印机
func PrinterDelIndex(c *gin.Context, ids, storeId string) {
func PrinterDelIndex(c *gin.Context, ids string) {
engine := MasterDb(c)
//查出这条记录拿sn码
user := GetUser(c)
storeId := utils.IntToStr(user.Info.Uid)
printerOne, _ := db.GetPrinterIndexById(engine, ids, storeId)
if printerOne.Id == 0 {
e.OutErr(c, 400, e.NewErr(400, "删除失败"))
@@ -257,17 +258,14 @@ func PrinterDelIndex(c *gin.Context, ids, storeId string) {

// 明细筛选条件
func PrinterIndexRecordScreen(c *gin.Context) {
var search md.RecordRequest
if err := c.ShouldBindJSON(&search); err != nil {
e.OutErr(c, e.ERR_INVALID_ARGS, err)
return
}

engine := MasterDb(c)
if engine == nil {
e.OutErr(c, e.ERR_MASTER_ID, nil)
return
}
printer, _ := db.GetPrinterIndexAll(engine, search.StoreId)
user := GetUser(c)
printer, _ := db.GetPrinterIndexAll(engine, utils.IntToStr(user.Info.Uid))
var r md.RecordPrinterScreen
r.TimeSort = []md.NewSelectList{
{


+ 6
- 1
app/svc/svc_store_order.go Ver fichero

@@ -59,7 +59,12 @@ func StoreOrderList(c *gin.Context) {
}
user := GetUser(c)
arg["store_uid"] = utils.IntToStr(user.Info.Uid)
data := db.GetOrderList(MasterDb(c), arg)
if arg["type"] != "" && arg["date"] != "" {
stime, etime := GetDate(c, arg)
arg["start_time"] = stime.Format("2006-01-02 15:04:05")
arg["end_time"] = etime.Format("2006-01-02 15:04:05")
}
data := db.GetOrderList(c, MasterDb(c), arg)
var state = []string{"待付款", "待提货", "已完成", "已取消"}
list := make([]map[string]interface{}, 0)
if data != nil {


Cargando…
Cancelar
Guardar