Author | SHA1 | Message | Date |
---|---|---|---|
DengBiao | 1fed7f9e89 | update | 1 year ago |
DengBiao | a37615101c | Merge branch 'master' into add_mode | 1 year ago |
DengBiao | 808c5aa465 | Merge branch 'master' into add_mode | 1 year ago |
DengBiao | 92ca6283a5 | update | 1 year ago |
@@ -0,0 +1,55 @@ | |||||
package enum | |||||
type FactoryIdentityState int32 | |||||
const ( | |||||
FactoryIdentityStateForNormal = 1 | |||||
FactoryIdentityStateForFreeze = 2 | |||||
) | |||||
func (gt FactoryIdentityState) String() string { | |||||
switch gt { | |||||
case FactoryIdentityStateForNormal: | |||||
return "正常" | |||||
case FactoryIdentityStateForFreeze: | |||||
return "冻结" | |||||
default: | |||||
return "未知" | |||||
} | |||||
} | |||||
type FactoryIdentityIsSubsidy int32 | |||||
const ( | |||||
FactoryIdentityIsSubsidyForNo = 0 | |||||
FactoryIdentityIsSubsidyForYes = 1 | |||||
) | |||||
func (gt FactoryIdentityIsSubsidy) String() string { | |||||
switch gt { | |||||
case FactoryIdentityIsSubsidyForNo: | |||||
return "不开启优惠补贴" | |||||
case FactoryIdentityIsSubsidyForYes: | |||||
return "开启优惠补贴" | |||||
default: | |||||
return "未知" | |||||
} | |||||
} | |||||
type FactoryIdentityIsLimitConsumeNum int32 | |||||
const ( | |||||
FactoryIdentityIsLimitConsumeNumForNo = 0 | |||||
FactoryIdentityIsLimitConsumeNumForYes = 1 | |||||
) | |||||
func (gt FactoryIdentityIsLimitConsumeNum) String() string { | |||||
switch gt { | |||||
case FactoryIdentityIsSubsidyForNo: | |||||
return "不限制消费次数" | |||||
case FactoryIdentityIsSubsidyForYes: | |||||
return "限制消费次数" | |||||
default: | |||||
return "未知" | |||||
} | |||||
} |
@@ -0,0 +1,19 @@ | |||||
package enum | |||||
type FactorySetIsOpenNaturalCustomer int32 | |||||
const ( | |||||
FactorySetIsOpenNaturalCustomerForYes = 1 | |||||
FactorySetIsOpenNaturalCustomerForNo = 2 | |||||
) | |||||
func (gt FactorySetIsOpenNaturalCustomer) String() string { | |||||
switch gt { | |||||
case FactorySetIsOpenNaturalCustomerForYes: | |||||
return "开启自然顾客" | |||||
case FactorySetIsOpenNaturalCustomerForNo: | |||||
return "关闭自然顾客" | |||||
default: | |||||
return "未知" | |||||
} | |||||
} |
@@ -42,6 +42,13 @@ func EnterpriseManageInfo(c *gin.Context) { | |||||
return | return | ||||
} | } | ||||
} | } | ||||
if enterprise.Pvd == enum.EnterprisePvdForAllPayment && enterprise.Mode == enum.EnterpriseModeForFactory { | |||||
err, resp = svc.FactoryInfo(utils.StrToInt(enterpriseId)) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
} | |||||
if enterprise.Kind == enum.EnterpriseKindByNursingHome { | if enterprise.Kind == enum.EnterpriseKindByNursingHome { | ||||
err, resp = svc.NursingHomeInfo(utils.StrToInt(enterpriseId)) | err, resp = svc.NursingHomeInfo(utils.StrToInt(enterpriseId)) | ||||
if err != nil { | if err != nil { | ||||
@@ -115,6 +122,13 @@ func UserIdentityList(c *gin.Context) { | |||||
return | return | ||||
} | } | ||||
} | } | ||||
if enterprise.Pvd == enum.EnterprisePvdForAllPayment && enterprise.Mode == enum.EnterpriseModeForFactory { | |||||
resp, err = svc2.EnterpriseUserListByFactory(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
} | |||||
if enterprise.Kind == enum.EnterpriseKindByNursingHome { | if enterprise.Kind == enum.EnterpriseKindByNursingHome { | ||||
resp, err = svc2.EnterpriseUserListByNursingHome(req) | resp, err = svc2.EnterpriseUserListByNursingHome(req) | ||||
if err != nil { | if err != nil { | ||||
@@ -0,0 +1,761 @@ | |||||
package hdl | |||||
import ( | |||||
"applet/app/admin/enum" | |||||
"applet/app/admin/lib/validate" | |||||
"applet/app/admin/md" | |||||
"applet/app/admin/svc" | |||||
svc2 "applet/app/admin/svc/enterprise_manage" | |||||
"applet/app/db" | |||||
"applet/app/db/model" | |||||
"applet/app/e" | |||||
enum2 "applet/app/enum" | |||||
"applet/app/utils" | |||||
"fmt" | |||||
"github.com/360EntSecGroup-Skylar/excelize" | |||||
"github.com/gin-gonic/gin" | |||||
"github.com/jinzhu/copier" | |||||
"strconv" | |||||
"time" | |||||
) | |||||
func FactoryIdentityList(c *gin.Context) { | |||||
enterpriseId := utils.StrToInt(c.DefaultQuery("enterprise_id", "0")) | |||||
var req md.FactoryIdentityListReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
factoryIdentity := db.FactoryIdentityDb{} | |||||
factoryIdentity.Set(enterpriseId) | |||||
factoryIdentityList, total, err := factoryIdentity.FindFactoryIdentity(req.Page, req.Limit) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
var result []*md.FactoryIdentityListResp | |||||
for _, v := range *factoryIdentityList { | |||||
var temp md.FactoryIdentityListResp | |||||
copier.Copy(&temp, v) | |||||
sql := fmt.Sprintf("SELECT count(*) as total FROM factory_identity_with_user_identity where factory_identity_id = %d", v.Id) | |||||
mapArr1, err1 := db.QueryNativeString(db.Db, sql) | |||||
if err1 != nil { | |||||
e.OutErr(c, e.ERR, err1.Error()) | |||||
return | |||||
} | |||||
temp.WithUserIdentitiesNum = mapArr1[0]["total"] | |||||
result = append(result, &temp) | |||||
} | |||||
e.OutSuc(c, map[string]interface{}{ | |||||
"list": result, | |||||
"total": total, | |||||
"state": []map[string]interface{}{ | |||||
{ | |||||
"name": enum.FactoryIdentityState(enum.FactoryIdentityStateForNormal).String(), | |||||
"value": enum.FactoryIdentityStateForNormal, | |||||
}, | |||||
{ | |||||
"name": enum.FactoryIdentityState(enum.FactoryIdentityStateForFreeze).String(), | |||||
"value": enum.FactoryIdentityStateForFreeze, | |||||
}, | |||||
}, | |||||
"is_subsidy": []map[string]interface{}{ | |||||
{ | |||||
"name": enum.FactoryIdentityIsSubsidy(enum.FactoryIdentityIsSubsidyForYes).String(), | |||||
"value": enum.FactoryIdentityIsSubsidyForYes, | |||||
}, | |||||
{ | |||||
"name": enum.FactoryIdentityIsSubsidy(enum.FactoryIdentityIsSubsidyForNo).String(), | |||||
"value": enum.FactoryIdentityIsSubsidyForNo, | |||||
}, | |||||
}, | |||||
"is_limit_consume_num": []map[string]interface{}{ | |||||
{ | |||||
"name": enum.FactoryIdentityIsLimitConsumeNum(enum.FactoryIdentityIsLimitConsumeNumForNo).String(), | |||||
"value": enum.FactoryIdentityIsLimitConsumeNumForNo, | |||||
}, | |||||
{ | |||||
"name": enum.FactoryIdentityIsLimitConsumeNum(enum.FactoryIdentityIsLimitConsumeNumForYes).String(), | |||||
"value": enum.FactoryIdentityIsLimitConsumeNumForYes, | |||||
}, | |||||
}, | |||||
}, nil) | |||||
return | |||||
} | |||||
func AddFactoryIdentity(c *gin.Context) { | |||||
enterpriseId := utils.StrToInt(c.DefaultQuery("enterprise_id", "0")) | |||||
var req md.AddFactoryIdentityReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
factoryIdentityDb := db.FactoryIdentityDb{} | |||||
factoryIdentityDb.Set(0) | |||||
now := time.Now() | |||||
_, err = factoryIdentityDb.FactoryIdentityInsert(&model.FactoryIdentity{ | |||||
Name: req.Name, | |||||
EnterpriseId: enterpriseId, | |||||
State: enum.FactoryIdentityStateForNormal, | |||||
Memo: req.Memo, | |||||
IsSubsidy: req.IsSubsidy, | |||||
SubsidyAmount: req.SubsidyAmount, | |||||
LeastPayAmount: req.LeastPayAmount, | |||||
IsLimitConsumeNum: req.IsLimitConsumeNum, | |||||
LimitConsumeNum: req.LimitConsumeNum, | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
}) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func UpdateFactoryIdentity(c *gin.Context) { | |||||
var req md.UpdateFactoryIdentityReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
factoryIdentityDb := db.FactoryIdentityDb{} | |||||
factoryIdentityDb.Set(0) | |||||
factoryIdentity, err := factoryIdentityDb.GetFactoryIdentity(req.Id) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if factoryIdentity == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "未查询到相应记录") | |||||
return | |||||
} | |||||
factoryIdentity.Name = req.Name | |||||
factoryIdentity.Memo = req.Memo | |||||
factoryIdentity.IsSubsidy = req.IsSubsidy | |||||
factoryIdentity.SubsidyAmount = req.SubsidyAmount | |||||
factoryIdentity.LeastPayAmount = req.LeastPayAmount | |||||
factoryIdentity.IsLimitConsumeNum = req.IsLimitConsumeNum | |||||
factoryIdentity.LimitConsumeNum = req.LimitConsumeNum | |||||
_, err = factoryIdentityDb.UpdateFactoryIdentity(factoryIdentity, | |||||
"name", "memo", "is_subsidy", "subsidy_amount", "least_pay_amount", "is_limit_consume_num", "limit_consume_num") | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func UpdateFactoryIdentityState(c *gin.Context) { | |||||
var req md.UpdateFactoryIdentityStateReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
factoryIdentityDb := db.FactoryIdentityDb{} | |||||
factoryIdentityDb.Set(0) | |||||
factoryIdentity, err := factoryIdentityDb.GetFactoryIdentity(req.Id) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if factoryIdentity == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "未查询到相应记录") | |||||
return | |||||
} | |||||
factoryIdentity.State = req.State | |||||
_, err = factoryIdentityDb.UpdateFactoryIdentity(factoryIdentity, "state") | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func DeleteFactoryIdentity(c *gin.Context) { | |||||
id := c.Param("id") | |||||
factoryIdentityDb := db.FactoryIdentityDb{} | |||||
factoryIdentityDb.Set(0) | |||||
role, err := factoryIdentityDb.GetFactoryIdentity(utils.StrToInt(id)) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if role == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "未查询到相应记录") | |||||
return | |||||
} | |||||
err = svc.DeleteFactoryIdentity(utils.StrToInt(id)) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func BindUserFactoryIdentity(c *gin.Context) { | |||||
var req md.BindFactoryIdentityReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
err = svc.BindUserFactoryIdentity(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func SetBasicFactory(c *gin.Context) { | |||||
enterpriseId := utils.StrToInt(c.DefaultQuery("enterprise_id", "0")) | |||||
var req md.SetBasicFactoryReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
now := time.Now() | |||||
//1、更新 factory_set | |||||
factorySetDb := db.FactorySetDb{} | |||||
factorySetDb.Set(enterpriseId) | |||||
set, err := factorySetDb.GetFactorySet() | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if set != nil { | |||||
set.IsOpenNaturalCustomer = req.IsOpenNaturalCustomer | |||||
set.NaturalCustomerServiceFee = req.NaturalCustomerServiceFee | |||||
set.UpdateAt = now.Format("2006-01-02 15:04:05") | |||||
_, err2 := factorySetDb.FactorySetUpdate(set, | |||||
"is_open_natural_customer", "natural_customer_service_fee", "update_at") | |||||
if err2 != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err2.Error()) | |||||
return | |||||
} | |||||
} else { | |||||
_, err2 := factorySetDb.FactorySetInsert(&model.FactorySet{ | |||||
EnterpriseId: enterpriseId, | |||||
IsOpenNaturalCustomer: req.IsOpenNaturalCustomer, | |||||
NaturalCustomerServiceFee: req.NaturalCustomerServiceFee, | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
}) | |||||
if err2 != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err2.Error()) | |||||
return | |||||
} | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func GetBasicFactory(c *gin.Context) { | |||||
enterpriseId := utils.StrToInt(c.DefaultQuery("enterprise_id", "0")) | |||||
//1、获取 factory_set | |||||
factorySetDb := db.FactorySetDb{} | |||||
factorySetDb.Set(enterpriseId) | |||||
set, err := factorySetDb.GetFactorySet() | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if set == nil { | |||||
set = &model.FactorySet{ | |||||
EnterpriseId: enterpriseId, | |||||
IsOpenNaturalCustomer: 1, | |||||
NaturalCustomerServiceFee: "0.00", | |||||
CreateAt: time.Now().Format("2006-01-02 15:04:05"), | |||||
UpdateAt: time.Now().Format("2006-01-02 15:04:05"), | |||||
} | |||||
_, err2 := factorySetDb.FactorySetInsert(set) | |||||
if err2 != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err2.Error()) | |||||
return | |||||
} | |||||
} | |||||
e.OutSuc(c, map[string]interface{}{ | |||||
"factory_set": set, | |||||
"is_open_natural_customer": []map[string]interface{}{ | |||||
{ | |||||
"name": enum.FactorySetIsOpenNaturalCustomer(enum.FactorySetIsOpenNaturalCustomerForYes).String(), | |||||
"value": enum.FactorySetIsOpenNaturalCustomerForYes, | |||||
}, | |||||
{ | |||||
"name": enum.FactorySetIsOpenNaturalCustomer(enum.FactorySetIsOpenNaturalCustomerForNo).String(), | |||||
"value": enum.FactorySetIsOpenNaturalCustomerForNo, | |||||
}, | |||||
}, | |||||
}, nil) | |||||
return | |||||
} | |||||
func FactoryDownloadTemplateExcel(c *gin.Context) { | |||||
e.OutSuc(c, "/template/工厂(身份信息导入模板).xlsx", nil) | |||||
return | |||||
} | |||||
func FactoryImportUserIdentity(c *gin.Context) { | |||||
enterpriseIdStr := c.DefaultQuery("enterprise_id", "") | |||||
enterpriseId := utils.StrToInt(enterpriseIdStr) | |||||
enterpriseDb := db.EnterpriseDb{} | |||||
enterpriseDb.Set() | |||||
enterprise, err := enterpriseDb.GetEnterprise(enterpriseId) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if enterprise == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "未查询到对应记录") | |||||
return | |||||
} | |||||
files, _ := c.FormFile("file") | |||||
dst := "./static/upload/" + files.Filename | |||||
err = c.SaveUploadedFile(files, dst) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
xlsx, err := excelize.OpenFile(dst) | |||||
rows := xlsx.GetRows("Sheet" + "1") | |||||
for key, row := range rows { | |||||
if key > 0 && (row[0] != "" && row[1] != "" && row[2] != "" && row[3] != "") { | |||||
var certType = 1 | |||||
if row[0] == "学工号" { | |||||
certType = 2 | |||||
} | |||||
idNo := row[1] | |||||
name := row[2] | |||||
//查找当前工厂身份是否存在 | |||||
factoryIdentityDb := db.FactoryIdentityDb{} | |||||
factoryIdentityDb.Set(enterpriseId) | |||||
factoryIdentity, err := factoryIdentityDb.GetFactoryIdentityByName(row[3]) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if factoryIdentity == nil { | |||||
continue | |||||
} | |||||
//查找当前用户身份是否已存在 | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(0) | |||||
isHasUserIdentity, err := userIdentityDb.UserIdentityExist(enterpriseId, idNo, certType) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if isHasUserIdentity != nil { | |||||
continue | |||||
} | |||||
now := time.Now() | |||||
//新增身份信息 | |||||
userIdentity := &model.UserIdentity{ | |||||
Uid: 0, | |||||
Name: name, | |||||
IdNo: idNo, | |||||
CertType: certType, | |||||
Kind: enum2.UserIdentityKindForCommon, | |||||
Identity: enum2.UserIdentityForFactory, | |||||
EnterpriseId: enterpriseId, | |||||
State: enum2.UserIdentityStateForNormal, | |||||
Memo: "", | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
} | |||||
insertAffected, err := userIdentityDb.UserIdentityInsert(userIdentity) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if insertAffected <= 0 { | |||||
e.OutErr(c, e.ERR_DB_ORM, "新增身份数据失败") | |||||
return | |||||
} | |||||
//更新 factory_identity | |||||
factoryIdentityWithUserIdentityDb := db.FactoryIdentityWithUserIdentityDb{} | |||||
factoryIdentityWithUserIdentityDb.Set() | |||||
info, err := factoryIdentityWithUserIdentityDb.GetFactoryIdentityWithUserIdentity(insertAffected) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if info == nil { | |||||
factoryIdentityWithUserIdentityDb.AddFactoryIdentityWithUserIdentity(&model.FactoryIdentityWithUserIdentity{ | |||||
UserIdentityId: insertAffected, | |||||
FactoryIdentityId: factoryIdentity.Id, | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
}) | |||||
} else { | |||||
info.FactoryIdentityId = factoryIdentity.Id | |||||
_, err1 := factoryIdentityWithUserIdentityDb.UpdateFactoryIdentityWithUserIdentity(info, "factory_identity_id") | |||||
if err1 != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err1.Error()) | |||||
return | |||||
} | |||||
} | |||||
} | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func FactoryUserUpdate(c *gin.Context) { | |||||
var req md.FactoryUserUpdateReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
enterpriseDb := db.EnterpriseDb{} | |||||
enterpriseDb.Set() | |||||
enterprise, err := enterpriseDb.GetEnterprise(req.EnterpriseId) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if enterprise == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "未查询到对应记录") | |||||
return | |||||
} | |||||
err = svc2.FactoryUserUpdate(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func FactoryUserDelete(c *gin.Context) { | |||||
var req md.FactoryUserDeleteReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
enterpriseDb := db.EnterpriseDb{} | |||||
enterpriseDb.Set() | |||||
enterprise, err := enterpriseDb.GetEnterprise(req.EnterpriseId) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if enterprise == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "未查询到对应记录") | |||||
return | |||||
} | |||||
err = svc2.FactoryUserDelete(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func FactoryWorkerList(c *gin.Context) { | |||||
var req md.FactoryWorkerListReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
enterpriseDb := db.EnterpriseDb{} | |||||
enterpriseDb.Set() | |||||
enterprise, err := enterpriseDb.GetEnterprise(req.EnterpriseId) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if enterprise == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "未查询到对应记录") | |||||
return | |||||
} | |||||
resp, total, err := svc2.FactoryWorkerList(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, map[string]interface{}{ | |||||
"list": resp, | |||||
"total": total, | |||||
"user_identity_cert_type_list": []map[string]interface{}{ | |||||
{ | |||||
"name": enum2.UserIdentityCertType.String(enum2.UserIdentityCertTypeForIdCard), | |||||
"value": enum2.UserIdentityCertTypeForIdCard, | |||||
}, | |||||
{ | |||||
"name": enum2.UserIdentityCertType.String(enum2.UserIdentityCertTypeForStudentId), | |||||
"value": enum2.UserIdentityCertTypeForStudentId, | |||||
}, | |||||
//{ | |||||
// "name": enum.UserIdentityCertType.String(enum.UserIdentityCertTypeForPassport), | |||||
// "value": enum.UserIdentityCertTypeForPassport, | |||||
//}, | |||||
}, | |||||
}, nil) | |||||
return | |||||
} | |||||
func FactoryWorkerUpdate(c *gin.Context) { | |||||
var req md.FactoryWorkerUpdateReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
err = svc2.FactoryWorkerUpdate(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func FactoryWorkerDelete(c *gin.Context) { | |||||
var req md.FactoryWorkerDeleteReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
enterpriseDb := db.EnterpriseDb{} | |||||
enterpriseDb.Set() | |||||
enterprise, err := enterpriseDb.GetEnterprise(req.EnterpriseId) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if enterprise == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "未查询到对应记录") | |||||
return | |||||
} | |||||
err = svc2.FactoryWorkerDelete(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func FactoryWorkerAdd(c *gin.Context) { | |||||
var req md.FactoryWorkerAddReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
//1、查找当前身份是否已存在 | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(0) | |||||
isHasUserIdentity, err := userIdentityDb.UserIdentityExist(req.EnterpriseId, req.IdNo, req.CertType) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if isHasUserIdentity != nil { | |||||
e.OutErr(c, e.ERR, "当前身份已存在,直接修改身份即可!") | |||||
return | |||||
} | |||||
now := time.Now() | |||||
//2、新增身份信息 | |||||
userIdentity := &model.UserIdentity{ | |||||
Uid: 0, | |||||
Name: req.Name, | |||||
IdNo: req.IdNo, | |||||
CertType: req.CertType, | |||||
Kind: enum2.UserIdentityKindForCommon, | |||||
Identity: enum2.UserIdentityForFactory, | |||||
EnterpriseId: req.EnterpriseId, | |||||
State: enum2.UserIdentityStateForNormal, | |||||
Memo: "", | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
} | |||||
insertAffected, err := userIdentityDb.UserIdentityInsert(userIdentity) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if insertAffected <= 0 { | |||||
e.OutErr(c, e.ERR_DB_ORM, "新增身份数据失败") | |||||
return | |||||
} | |||||
factoryIdentityWithUserIdentityDb := db.FactoryIdentityWithUserIdentityDb{} | |||||
factoryIdentityWithUserIdentityDb.Set() | |||||
_, err = factoryIdentityWithUserIdentityDb.AddFactoryIdentityWithUserIdentity(&model.FactoryIdentityWithUserIdentity{ | |||||
UserIdentityId: userIdentity.Id, | |||||
FactoryIdentityId: req.FactoryIdentityId, | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
}) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, "关联工厂身份失败") | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func FactoryOrdList(c *gin.Context) { | |||||
var req md.FactoryOrdListReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
resp, total, err := svc2.FactoryOrdList(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, map[string]interface{}{ | |||||
"list": resp, | |||||
"total": total, | |||||
"order_status_list": []map[string]interface{}{ | |||||
{ | |||||
"name": enum2.FactoryOrdOrderStatus.String(enum2.FactoryOrdOrderStatusForSuccess), | |||||
"value": enum2.FactoryOrdOrderStatusForSuccess, | |||||
}, | |||||
{ | |||||
"name": enum2.FactoryOrdOrderStatus.String(enum2.FactoryOrdOrderStatusForRefund), | |||||
"value": enum2.FactoryOrdOrderStatusForRefund, | |||||
}, | |||||
{ | |||||
"name": enum2.FactoryOrdOrderStatus.String(enum2.FactoryOrdOrderStatusForClose), | |||||
"value": enum2.FactoryOrdOrderStatusForClose, | |||||
}, | |||||
}, | |||||
"trade_channel_list": []map[string]interface{}{ | |||||
{ | |||||
"name": enum2.FactoryOrdTradeChannel.String(enum2.FactoryOrdTradeChannelForAli), | |||||
"value": enum2.FactoryOrdTradeChannelForAli, | |||||
}, | |||||
{ | |||||
"name": enum2.FactoryOrdTradeChannel.String(enum2.FactoryOrdTradeChannelForWx), | |||||
"value": enum2.FactoryOrdTradeChannelForWx, | |||||
}, | |||||
}, | |||||
}, nil) | |||||
return | |||||
} | |||||
func FactoryOrdListExport(c *gin.Context) { | |||||
var req md.FactoryOrdListReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
resp, err := svc2.FactoryOrdListExport(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
titleList := []string{"校企名称", "用户电话", "就餐人姓名", "订单号", "交易号", "支付状态", "支付时间", "消费档口", "订单总金额", "实收金额", "买家支付金额", "补贴金额", "服务费用", "交易渠道"} | |||||
xlsx := excelize.NewFile() | |||||
xlsx.SetSheetRow("Sheet1", "A1", &titleList) | |||||
style, err := xlsx.NewStyle(`{"fill":{"type":"pattern","color":["FFFF00"],"pattern":1}, "alignment":{"horizontal":"center"}}`) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
xlsx.SetCellStyle("Sheet1", "A1", "N1", style) | |||||
xlsx.SetColWidth("Sheet1", "A", "N", 25) | |||||
//xlsx.SetColWidth("Sheet1", "B", "B", 30) | |||||
//xlsx.SetColWidth("Sheet1", "C", "E", 15) | |||||
//xlsx.SetColWidth("Sheet1", "F", "I", 10) | |||||
//xlsx.SetColWidth("Sheet1", "J", "J", 20) | |||||
//xlsx.SetColWidth("Sheet1", "K", "K", 10) | |||||
//xlsx.SetColWidth("Sheet1", "L", "L", 25) | |||||
//xlsx.SetColWidth("Sheet1", "M", "M", 15) | |||||
//表头被第一行用了,只能从第二行开始 | |||||
j := 2 | |||||
//var totalAmount = 0.00 | |||||
for _, v := range resp { | |||||
xlsx.SetSheetRow("Sheet1", "A"+strconv.Itoa(j), &[]interface{}{v.EnterpriseName, v.Phone, v.UserIdentityName, v.OutTradeNo, v.TradeNo, enum2.FactoryOrdOrderStatus.String(enum2.FactoryOrdOrderStatus(v.OrderStatus)), | |||||
v.GmtPayment, v.ShopName, v.TotalAmount, v.ReceiptAmount, v.BuyerPayAmount, v.SubsidyAmount, v.ServiceFee, v.TradeChannel}) | |||||
j++ | |||||
} | |||||
//xlsx.SetSheetRow("Sheet1", "A"+strconv.Itoa(j), &[]interface{}{"总计:", "-", "-", "-", "-", "-", "-", totalAmount, "-", "-", "-", "-", "-"}) | |||||
c.Header("Content-Type", "application/octet-stream") | |||||
c.Header("Content-Disposition", "attachment; filename="+"工厂消费记录"+".xlsx") | |||||
c.Header("Content-Transfer-Encoding", "binary") | |||||
//回写到web 流媒体 形成下载 | |||||
_ = xlsx.Write(c.Writer) | |||||
return | |||||
} |
@@ -158,3 +158,131 @@ func DeviceDelete(c *gin.Context) { | |||||
e.OutSuc(c, "success", nil) | e.OutSuc(c, "success", nil) | ||||
return | return | ||||
} | } | ||||
func FactoryDeviceSave(c *gin.Context) { | |||||
var req md.FactoryDeviceSaveReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
deviceDd := db.FactoryDevice{} | |||||
deviceDd.Set(req.TerminalId) | |||||
//查找 device_sn | |||||
device, err := deviceDd.GetFactoryDevice() | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if device == nil { | |||||
insertAffected, err1 := deviceDd.FactoryDeviceInsert(&model2.FactoryDevice{ | |||||
Name: req.Name, | |||||
TerminalId: req.TerminalId, | |||||
EnterpriseId: req.EnterpriseId, | |||||
Memo: req.Memo, | |||||
CreateAt: time.Now().Format("2006-01-02 15:04:05"), | |||||
UpdateAt: time.Now().Format("2006-01-02 15:04:05"), | |||||
}) | |||||
if err1 != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if insertAffected <= 0 { | |||||
e.OutErr(c, e.ERR_DB_ORM, "新增数据失败") | |||||
return | |||||
} | |||||
} else { | |||||
device.EnterpriseId = req.EnterpriseId | |||||
device.Name = req.Name | |||||
device.Memo = req.Memo | |||||
device.UpdateAt = time.Now().Format("2006-01-02 15:04:05") | |||||
updateAffected, err1 := deviceDd.FactoryDeviceUpdate(device, "enterprise_id", "name", "memo", "update_at") | |||||
if err1 != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if updateAffected <= 0 { | |||||
e.OutErr(c, e.ERR_DB_ORM, "更新数据失败") | |||||
return | |||||
} | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func FactoryDeviceList(c *gin.Context) { | |||||
var req md.FactoryDeviceListReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
if req.Limit == 0 { | |||||
req.Limit = 10 | |||||
} | |||||
if req.Page == 0 { | |||||
req.Page = 10 | |||||
} | |||||
sess := db.Db.Desc("factory_device.id") | |||||
if req.Name != "" { | |||||
sess.And("factory_device.name like ?", "%"+req.Name+"%") | |||||
} | |||||
if req.EnterpriseName != "" { | |||||
sess.And("enterprise.name like ?", "%"+req.EnterpriseName+"%") | |||||
} | |||||
if req.StartDate != "" { | |||||
sess.And("factory_device.create_at >=?", req.StartDate) | |||||
} | |||||
if req.EndDate != "" { | |||||
sess.And("factory_device.create_at <=?", req.EndDate) | |||||
} | |||||
var m []*db.FactoryDeviceWithEnterprise | |||||
total, err := sess. | |||||
Join("LEFT", "enterprise", "enterprise.id = factory_device.enterprise_id").Limit(req.Limit, (req.Page-1)*req.Limit).FindAndCount(&m) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
var resp []interface{} | |||||
for _, v := range m { | |||||
resp = append(resp, map[string]interface{}{ | |||||
"id": v.FactoryDevice.Id, | |||||
"name": v.FactoryDevice.Name, | |||||
"terminal_id": v.FactoryDevice.TerminalId, | |||||
"enterprise_id": v.FactoryDevice.EnterpriseId, | |||||
"memo": v.FactoryDevice.Memo, | |||||
"create_at": v.FactoryDevice.CreateAt, | |||||
"update_at": v.FactoryDevice.UpdateAt, | |||||
"enterprise_name": v.Enterprise.Name, | |||||
}) | |||||
} | |||||
e.OutSuc(c, map[string]interface{}{ | |||||
"list": resp, | |||||
"total": total, | |||||
}, nil) | |||||
return | |||||
} | |||||
func FactoryDeviceDelete(c *gin.Context) { | |||||
deviceSn := c.Param("terminal_id") | |||||
deviceDd := db.FactoryDevice{} | |||||
deviceDd.Set(deviceSn) | |||||
deviceDdAffected, err := deviceDd.FactoryDeviceDelete() | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if deviceDdAffected <= 0 { | |||||
e.OutErr(c, e.ERR_DB_ORM, "删除数据失败") | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} |
@@ -15,3 +15,19 @@ type DeviceSaveReq struct { | |||||
EnterpriseId int `json:"enterprise_id" binding:"required"` | EnterpriseId int `json:"enterprise_id" binding:"required"` | ||||
Memo string `json:"memo"` | Memo string `json:"memo"` | ||||
} | } | ||||
type FactoryDeviceSaveReq struct { | |||||
Name string `json:"name" binding:"required"` | |||||
TerminalId string `json:"terminal_id" binding:"required"` | |||||
EnterpriseId int `json:"enterprise_id" binding:"required"` | |||||
Memo string `json:"memo"` | |||||
} | |||||
type FactoryDeviceListReq struct { | |||||
Page int `json:"page" label:"页码"` | |||||
Limit int `json:"limit" label:"每页数量"` | |||||
EnterpriseName string `json:"enterprise_name" label:"校企名称"` | |||||
Name string `json:"name" label:"档口名称"` | |||||
StartDate string `json:"start_date" label:"起始时间"` | |||||
EndDate string `json:"end_date" label:"截止时间"` | |||||
} |
@@ -157,16 +157,16 @@ var EnterpriseKindByMode = []map[string]interface{}{ | |||||
}, | }, | ||||
}, | }, | ||||
}, | }, | ||||
{ | |||||
"name": enum.EnterpriseMode(enum.EnterpriseModeForNursingHome).String(), | |||||
"value": enum.EnterpriseModeForNursingHome, | |||||
"kind_list": []map[string]interface{}{ | |||||
{ | |||||
"name": enum.EnterpriseKind(enum.EnterpriseKindByNursingHome).String(), | |||||
"value": enum.EnterpriseKindByNursingHome, | |||||
}, | |||||
}, | |||||
}, | |||||
//{ | |||||
// "name": enum.EnterpriseMode(enum.EnterpriseModeForNursingHome).String(), | |||||
// "value": enum.EnterpriseModeForNursingHome, | |||||
// "kind_list": []map[string]interface{}{ | |||||
// { | |||||
// "name": enum.EnterpriseKind(enum.EnterpriseKindByNursingHome).String(), | |||||
// "value": enum.EnterpriseKindByNursingHome, | |||||
// }, | |||||
// }, | |||||
//}, | |||||
} | } | ||||
var EnterpriseKindForSchool = []map[string]interface{}{ | var EnterpriseKindForSchool = []map[string]interface{}{ | ||||
@@ -637,6 +637,13 @@ type EnterpriseUserListByNursingHomeResp struct { | |||||
Total int64 `json:"total"` | Total int64 `json:"total"` | ||||
} | } | ||||
type EnterpriseUserListByFactoryResp struct { | |||||
List []EnterpriseUserListByFactoryStruct `json:"list"` | |||||
Total int64 `json:"total"` | |||||
UserIdentityKindList interface{} `json:"user_identity_kind_list"` | |||||
UserIdentityCertTypeList interface{} `json:"user_identity_cert_type_list"` | |||||
} | |||||
type EnterpriseUserListByNursingHomeStruct struct { | type EnterpriseUserListByNursingHomeStruct struct { | ||||
Id int `json:"id" label:"支付宝昵称"` | Id int `json:"id" label:"支付宝昵称"` | ||||
Nickname string `json:"nickname" label:"支付宝昵称"` | Nickname string `json:"nickname" label:"支付宝昵称"` | ||||
@@ -651,6 +658,21 @@ type EnterpriseUserListByNursingHomeStruct struct { | |||||
} `json:"user_identities" label:"身份列表"` | } `json:"user_identities" label:"身份列表"` | ||||
} | } | ||||
type EnterpriseUserListByFactoryStruct struct { | |||||
Id int `json:"id" label:"支付宝昵称"` | |||||
Nickname string `json:"nickname" label:"支付宝昵称"` | |||||
Phone string `json:"phone" label:"手机号"` | |||||
Avatar string `json:"avatar" label:"头像"` | |||||
CreateAt string `json:"create_at" label:"创建时间"` | |||||
UserIdentities []struct { | |||||
Id int `json:"id" label:"身份id"` | |||||
IdNo string `json:"id_no" label:"身份证号"` | |||||
CertType int `json:"cert_type" label:"证件类型"` | |||||
EnterpriseName string `json:"enterprise_name" label:"单位名"` | |||||
Name string `json:"name" label:"姓名"` | |||||
} `json:"user_identities" label:"身份列表"` | |||||
} | |||||
type NursingHomeUserUpdateReq struct { | type NursingHomeUserUpdateReq struct { | ||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | ||||
Uid int `json:"uid" binding:"required" label:"用户id"` | Uid int `json:"uid" binding:"required" label:"用户id"` | ||||
@@ -0,0 +1,16 @@ | |||||
package md | |||||
type FactoryInfoResp struct { | |||||
Name string `json:"name" label:"名称"` | |||||
Memo string `json:"memo" label:"备注"` | |||||
Mode string `json:"mode" label:"模式"` | |||||
Pvd string `json:"pvd" label:"场景"` | |||||
Kind string `json:"kind" label:"种类(1:央厨-学校 2:央厨-工厂 3:自营-学校 4:自营-工厂)"` | |||||
State string `json:"state" label:"状态(1:正常 2:冻结)"` | |||||
WorkerNum int64 `json:"worker_num" label:"员工数量"` | |||||
//UserNum int64 `json:"user_num" label:"用户数量"` | |||||
ThisMonthConsumeAmount float64 `json:"this_month_consume_amount" label:"本月消费金额"` | |||||
ThisMonthOrderNum float64 `json:"this_month_order_num" label:"本月订单"` | |||||
ThisMonthServiceAmount float64 `json:"this_month_service_amount" label:"本月服务费用"` | |||||
ThisMonthReceiptAmount float64 `json:"this_month_receipt_amount" label:"本月实收金额"` | |||||
} |
@@ -0,0 +1,159 @@ | |||||
package md | |||||
type FactoryIdentityListResp struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
Name string `json:"name" xorm:"not null default '' comment('名称') VARCHAR(255)"` | |||||
State int `json:"state" xorm:"not null default 1 comment('状态(1:正常 2:冻结)') TINYINT(1)"` | |||||
Memo string `json:"memo" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
IsSubsidy int `json:"is_subsidy" xorm:"not null default 0 comment('是否优惠补贴(0:否 1:是)') TINYINT(1)"` | |||||
SubsidyAmount string `json:"subsidy_amount" xorm:"not null default 0.00 comment('补贴金额') DECIMAL(8,2)"` | |||||
LeastPayAmount string `json:"least_pay_amount" xorm:"not null default 0.00 comment('最少支付金额') DECIMAL(8,2)"` | |||||
IsLimitConsumeNum int `json:"is_limit_consume_num" xorm:"not null default 0 comment('是否限制消费次数') TINYINT(1)"` | |||||
LimitConsumeNum int `json:"limit_consume_num" xorm:"default 0 comment('限制消费次数/日') TINYINT(1)"` | |||||
WithUserIdentitiesNum string `json:"with_user_identities_num"` | |||||
CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
} | |||||
type UpdateFactoryIdentityStateReq struct { | |||||
Id int `json:"id" binding:"required" label:"id"` | |||||
State int `json:"state" binding:"required" label:"状态"` | |||||
} | |||||
type AddFactoryIdentityReq struct { | |||||
Name string `json:"name" binding:"required" label:"名称"` | |||||
Memo string `json:"memo" label:"备注"` | |||||
IsSubsidy int `json:"is_subsidy" label:"是否优惠补贴(0:否 1:是)"` | |||||
SubsidyAmount string `json:"subsidy_amount" label:"补贴金额"` | |||||
LeastPayAmount string `json:"least_pay_amount" label:"最少支付金额"` | |||||
IsLimitConsumeNum int `json:"is_limit_consume_num" label:"是否限制消费次数"` | |||||
LimitConsumeNum int `json:"limit_consume_num" label:"限制消费次数/日"` | |||||
} | |||||
type UpdateFactoryIdentityReq struct { | |||||
Id int `json:"id" binding:"required" label:"id"` | |||||
Name string `json:"name" binding:"required" label:"名称"` | |||||
Memo string `json:"memo" label:"备注"` | |||||
IsSubsidy int `json:"is_subsidy" label:"是否优惠补贴(0:否 1:是)"` | |||||
SubsidyAmount string `json:"subsidy_amount" label:"补贴金额"` | |||||
LeastPayAmount string `json:"least_pay_amount" label:"最少支付金额"` | |||||
IsLimitConsumeNum int `json:"is_limit_consume_num" label:"是否限制消费次数"` | |||||
LimitConsumeNum int `json:"limit_consume_num" label:"限制消费次数/日"` | |||||
} | |||||
type FactoryIdentityListReq struct { | |||||
Limit int `json:"limit"` | |||||
Page int `json:"page" ` | |||||
Name string `json:"name"` | |||||
State int `json:"state"` | |||||
StartDate string `json:"start_date" ` | |||||
EndDate string `json:"end_date" ` | |||||
} | |||||
type BindFactoryIdentityReq struct { | |||||
UserIdentitiesId int `json:"user_identities_id" binding:"required"` | |||||
FactoryIdentityId int `json:"factory_identity_id" label:"角色id"` | |||||
} | |||||
type SetBasicFactoryReq struct { | |||||
IsOpenNaturalCustomer int `json:"is_open_natural_customer" binding:"required"` | |||||
NaturalCustomerServiceFee string `json:"natural_customer_service_fee" binding:"required"` | |||||
} | |||||
type FactoryWorkerListReq struct { | |||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||||
Limit int `json:"limit" binding:"required"` | |||||
Page int `json:"page" binding:"required"` | |||||
Name string `json:"name" label:"姓名"` | |||||
IdNo string `json:"id_no" label:"身份证号"` | |||||
Phone string `json:"phone" label:"手机号"` | |||||
} | |||||
type FactoryWorkerListResp struct { | |||||
UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | |||||
IdNo string `json:"id_no" label:"身份证号"` | |||||
CertType int `json:"cert_type" label:"证件类型"` | |||||
Phone string `json:"parent_phone" label:"电话"` | |||||
Name string `json:"name" label:"姓名"` | |||||
FactoryIdentityId int `json:"factory_identity_id" label:"工厂身份id"` | |||||
FactoryIdentity string `json:"factory_identity" label:"工厂身份"` | |||||
CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
} | |||||
type FactoryUserDeleteReq struct { | |||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||||
Uids []int `json:"uids" binding:"required" label:"用户id"` | |||||
} | |||||
type FactoryUserUpdateReq struct { | |||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||||
Uid int `json:"uid" binding:"required" label:"用户id"` | |||||
Nickname string `json:"nickname" binding:"required" label:"支付宝昵称"` | |||||
Phone string `json:"phone" binding:"required" label:"手机号"` | |||||
BindUserIdentities []struct { | |||||
UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | |||||
IdNo string `json:"id_no" label:"身份证号"` | |||||
CertType int `json:"cert_type" label:"证件类型"` | |||||
Name string `json:"name" label:"姓名"` | |||||
} `json:"user_identities" label:"身份列表"` | |||||
} | |||||
type FactoryWorkerUpdateReq struct { | |||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||||
UserIdentityId int `json:"user_identity_id" binding:"required" label:"用户身份id"` | |||||
IdNo string `json:"id_no" label:"身份证号"` | |||||
CertType int `json:"cert_type" label:"证件类型(1:身份证 2:学工号 3:护照)"` | |||||
Name string `json:"name" label:"姓名"` | |||||
FactoryIdentityId int `json:"factory_identity_id" label:"工厂身份id"` | |||||
} | |||||
type FactoryWorkerDeleteReq struct { | |||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||||
UserIdentityIds []int `json:"user_identity_ids" binding:"required" label:"用户身份id"` | |||||
} | |||||
type FactoryWorkerAddReq struct { | |||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||||
Name string `json:"name" label:"名称"` | |||||
CertType int `json:"cert_type" label:"证件类型(1:身份证 2:学工号 3:护照)"` | |||||
IdNo string `json:"id_no" label:"身份证号"` | |||||
FactoryIdentityId int `json:"factory_identity_id" label:"工厂身份id"` | |||||
} | |||||
type FactoryOrdListReq struct { | |||||
EnterpriseId int `json:"enterprise_id" label:"企业id"` | |||||
Limit int `json:"limit" binding:"required"` | |||||
Page int `json:"page" binding:"required"` | |||||
Name string `json:"name" label:"姓名"` | |||||
Phone string `json:"phone" label:"用户电话"` | |||||
OutTradeNo string `json:"out_trade_no" label:"订单号"` | |||||
TradeNo string `json:"trade_no" label:"交易单号"` | |||||
OrderStatus int `json:"order_status" label:"订单状态"` | |||||
StartDate string `json:"start_date" label:"订单-开始时间"` | |||||
EndDate string `json:"end_date" label:"订单-截止时间"` | |||||
TerminalId string `json:"terminal_id" label:"设备编号"` | |||||
TradeChannel string `json:"trade_channel" label:"交易渠道"` | |||||
ShopName string `json:"shop_name" label:"消费档口"` | |||||
} | |||||
type FactoryOrdListResp struct { | |||||
EnterpriseId int `json:"enterprise_id" ` | |||||
EnterpriseName string `json:"enterprise_name" ` | |||||
Uid int `json:"uid" ` | |||||
UserIdentityId int `json:"user_identity_id" ` | |||||
UserIdentityName string `json:"user_identity_name" ` | |||||
OutTradeNo string `json:"out_trade_no" ` | |||||
TradeNo string `json:"trade_no"` | |||||
OrderStatus int `json:"order_status"` | |||||
Phone string `json:"phone"` | |||||
GmtPayment string `json:"gmt_payment"` | |||||
TerminalId string `json:"terminal_id" label:"设备编号"` | |||||
ShopName string `json:"shop_name" label:"消费档口"` | |||||
TotalAmount string `json:"total_amount" label:"订单总金额"` | |||||
ReceiptAmount string `json:"receipt_amount" label:"实收金额"` | |||||
BuyerPayAmount string `json:"buyer_pay_amount" label:"买家支付金额"` | |||||
SubsidyAmount string `json:"subsidy_amount" label:"补贴金额"` | |||||
ServiceFee string `json:"service_fee" label:"服务费用"` | |||||
TradeChannel string `json:"trade_channel" label:"交易渠道"` | |||||
} |
@@ -378,3 +378,92 @@ func EnterpriseUserListByNursingHome(req md.EnterpriseUserListReq) (resp md.Ente | |||||
} | } | ||||
return | return | ||||
} | } | ||||
func EnterpriseUserListByFactory(req md.EnterpriseUserListReq) (resp md.EnterpriseUserListByFactoryResp, err error) { | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(0) | |||||
userIdentities, err := userIdentityDb.FindUserIdentityForEnterprise(req.EnterpriseId) | |||||
if err != nil { | |||||
return | |||||
} | |||||
var userIdentitiesMap = map[string][]model.UserIdentity{} | |||||
var uids []int | |||||
for _, v := range *userIdentities { | |||||
userIdentitiesMap[utils.IntToStr(v.Uid)] = append(userIdentitiesMap[utils.IntToStr(v.Uid)], v) | |||||
uids = append(uids, v.Uid) | |||||
} | |||||
var m []model.User | |||||
sess := db.Db.In("id", uids) | |||||
if req.Nickname != "" { | |||||
sess.And("nickname like ?", "%"+req.Nickname+"%") | |||||
} | |||||
if req.Phone != "" { | |||||
sess.And("phone like ?", "%"+req.Phone+"%") | |||||
} | |||||
count, err := sess.Limit(req.Limit, (req.Page-1)*req.Limit).FindAndCount(&m) | |||||
if err != nil { | |||||
return | |||||
} | |||||
resp.Total = count | |||||
for _, v := range m { | |||||
temp := md.EnterpriseUserListByFactoryStruct{ | |||||
Id: v.Id, | |||||
Nickname: v.Nickname, | |||||
Phone: v.Phone, | |||||
Avatar: v.Avatar, | |||||
CreateAt: v.CreateAt, | |||||
} | |||||
for _, v1 := range userIdentitiesMap[utils.IntToStr(v.Id)] { | |||||
temp.UserIdentities = append(temp.UserIdentities, struct { | |||||
Id int `json:"id" label:"身份id"` | |||||
IdNo string `json:"id_no" label:"身份证号"` | |||||
CertType int `json:"cert_type" label:"证件类型"` | |||||
EnterpriseName string `json:"enterprise_name" label:"单位名"` | |||||
Name string `json:"name" label:"姓名"` | |||||
}{Id: v1.Id, IdNo: v1.IdNo, CertType: v1.CertType, EnterpriseName: req.EnterpriseName, Name: v1.Name}) | |||||
} | |||||
resp.List = append(resp.List, temp) | |||||
} | |||||
resp.UserIdentityKindList = []map[string]interface{}{ | |||||
{ | |||||
"name": enum2.UserIdentity.String(enum2.UserIdentityForCentralKitchenForStudent), | |||||
"value": enum2.UserIdentityForCentralKitchenForStudent, | |||||
}, | |||||
{ | |||||
"name": enum2.UserIdentity.String(enum2.UserIdentityForCentralKitchenForTeacher), | |||||
"value": enum2.UserIdentityForCentralKitchenForTeacher, | |||||
}, | |||||
{ | |||||
"name": enum2.UserIdentity.String(enum2.UserIdentityForCentralKitchenForWorker), | |||||
"value": enum2.UserIdentityForCentralKitchenForWorker, | |||||
}, | |||||
{ | |||||
"name": enum2.UserIdentity.String(enum2.UserIdentityForSelfSupportForStudent), | |||||
"value": enum2.UserIdentityForSelfSupportForStudent, | |||||
}, | |||||
{ | |||||
"name": enum2.UserIdentity.String(enum2.UserIdentityForSelfSupportForTeacher), | |||||
"value": enum2.UserIdentityForSelfSupportForTeacher, | |||||
}, | |||||
{ | |||||
"name": enum2.UserIdentity.String(enum2.UserIdentityForSelfSupportForWorker), | |||||
"value": enum2.UserIdentityForSelfSupportForWorker, | |||||
}, | |||||
} | |||||
resp.UserIdentityCertTypeList = []map[string]interface{}{ | |||||
{ | |||||
"name": enum2.UserIdentityCertType.String(enum2.UserIdentityCertTypeForIdCard), | |||||
"value": enum2.UserIdentityCertTypeForIdCard, | |||||
}, | |||||
{ | |||||
"name": enum2.UserIdentityCertType.String(enum2.UserIdentityCertTypeForStudentId), | |||||
"value": enum2.UserIdentityCertTypeForStudentId, | |||||
}, | |||||
//{ | |||||
// "name": enum.UserIdentityCertType.String(enum.UserIdentityCertTypeForPassport), | |||||
// "value": enum.UserIdentityCertTypeForPassport, | |||||
//}, | |||||
} | |||||
return | |||||
} |
@@ -0,0 +1,368 @@ | |||||
package svc | |||||
import ( | |||||
"applet/app/admin/md" | |||||
"applet/app/db" | |||||
"applet/app/db/model" | |||||
enum2 "applet/app/enum" | |||||
"applet/app/utils" | |||||
"errors" | |||||
"time" | |||||
) | |||||
func FactoryUserUpdate(req md.FactoryUserUpdateReq) (err error) { | |||||
var userIdentities []model.UserIdentity | |||||
err = db.Db.Where("uid =? AND enterprise_id =?", req.Uid, req.EnterpriseId).Find(&userIdentities) | |||||
if err != nil { | |||||
return | |||||
} | |||||
var userIdentityIds []int | |||||
for _, v := range userIdentities { | |||||
userIdentityIds = append(userIdentityIds, v.Id) | |||||
} | |||||
session := db.Db.NewSession() | |||||
defer session.Close() | |||||
session.Begin() | |||||
//2、新增 / 编辑 数据 | |||||
now := time.Now() | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(req.Uid) | |||||
var newUserIdentityIds []string | |||||
for _, v := range req.BindUserIdentities { | |||||
if v.UserIdentityId == 0 { | |||||
// 新增 | |||||
insertId, err1 := userIdentityDb.UserIdentityInsertBySession(session, &model.UserIdentity{ | |||||
Uid: req.Uid, | |||||
Name: v.Name, | |||||
IdNo: v.IdNo, | |||||
CertType: v.CertType, | |||||
Kind: enum2.UserIdentityKindForCommon, | |||||
Identity: enum2.UserIdentityForFactory, | |||||
EnterpriseId: req.EnterpriseId, | |||||
Memo: "", | |||||
State: enum2.UserIdentityStateForNormal, | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
}) | |||||
if err1 != nil { | |||||
_ = session.Rollback() | |||||
return err1 | |||||
} | |||||
newUserIdentityIds = append(newUserIdentityIds, utils.IntToStr(insertId)) | |||||
} else { | |||||
//编辑 | |||||
identity, err2 := userIdentityDb.GetUserIdentity(v.UserIdentityId) | |||||
if err != nil { | |||||
_ = session.Rollback() | |||||
return err2 | |||||
} | |||||
if identity == nil { | |||||
_ = session.Rollback() | |||||
return errors.New("未查询到对应的身份信息记录") | |||||
} | |||||
identity.IdNo = v.IdNo | |||||
identity.CertType = v.CertType | |||||
identity.Name = v.Name | |||||
identity.Identity = enum2.UserIdentityForFactory | |||||
_, err3 := userIdentityDb.UserIdentityUpdateBySession(session, v.UserIdentityId, identity, "id_no", "cert_type", "name", "identity") | |||||
if err3 != nil { | |||||
_ = session.Rollback() | |||||
return err3 | |||||
} | |||||
newUserIdentityIds = append(newUserIdentityIds, utils.IntToStr(v.UserIdentityId)) | |||||
} | |||||
} | |||||
//3、删除需要删除的身份信息 | |||||
for _, v := range userIdentityIds { | |||||
if !utils.InArr(utils.IntToStr(v), newUserIdentityIds) { | |||||
_, err = session.Where("id = ?", v).Delete(model.UserIdentity{}) | |||||
if err != nil { | |||||
_ = session.Rollback() | |||||
return | |||||
} | |||||
_, err = session.Where("user_identity_id = ?", v).Delete(model.SelfSupportForUserFaceInfo{}) | |||||
if err != nil { | |||||
_ = session.Rollback() | |||||
return | |||||
} | |||||
} | |||||
} | |||||
return session.Commit() | |||||
} | |||||
func FactoryUserDelete(req md.FactoryUserDeleteReq) (err error) { | |||||
//1、删除 user_identity | |||||
var userIdentities []model.UserIdentity | |||||
err = db.Db.Where("enterprise_id =?", req.EnterpriseId).In("uid", req.Uids).Find(&userIdentities) | |||||
if err != nil { | |||||
return | |||||
} | |||||
var userIdentityIds []int | |||||
for _, v := range userIdentities { | |||||
userIdentityIds = append(userIdentityIds, v.Id) | |||||
} | |||||
_, err = db.Db.Where("enterprise_id =?", req.EnterpriseId).In("uid", req.Uids).Delete(model.UserIdentity{}) | |||||
if err != nil { | |||||
return | |||||
} | |||||
//2、删除 factory_identity_with_user_identity | |||||
_, err = db.Db.In("user_identity_id", userIdentityIds).Delete(model.FactoryIdentityWithUserIdentity{}) | |||||
if err != nil { | |||||
return | |||||
} | |||||
return | |||||
} | |||||
func FactoryWorkerList(req md.FactoryWorkerListReq) (resp []md.FactoryWorkerListResp, count int64, err error) { | |||||
sess := db.Db.Where("user_identity.enterprise_id =?", req.EnterpriseId). | |||||
And("user_identity.identity =?", enum2.UserIdentityForFactory) | |||||
if req.Name != "" { | |||||
sess.And("user_identity.name like ?", "%"+req.Name+"%") | |||||
} | |||||
if req.IdNo != "" { | |||||
sess.And("user_identity.id_no like ?", "%"+req.IdNo+"%") | |||||
} | |||||
if req.Phone != "" { | |||||
sess.And("user.phone like ?", "%"+req.Phone+"%") | |||||
} | |||||
var m []*db.UserIdentityWithFactoryIdentity | |||||
count, err = sess. | |||||
Join("LEFT", "user", "user_identity.uid = user.id"). | |||||
Join("LEFT", "factory_identity_with_user_identity", "user_identity.id = factory_identity_with_user_identity.user_identity_id"). | |||||
Join("LEFT", "factory_identity", "factory_identity_with_user_identity.factory_identity_id = factory_identity.id"). | |||||
Limit(req.Limit, (req.Page-1)*req.Limit).FindAndCount(&m) | |||||
if err != nil { | |||||
return nil, 0, err | |||||
} | |||||
for _, v := range m { | |||||
resp = append(resp, md.FactoryWorkerListResp{ | |||||
UserIdentityId: v.UserIdentity.Id, | |||||
IdNo: v.UserIdentity.IdNo, | |||||
CertType: v.UserIdentity.CertType, | |||||
Phone: v.User.Phone, | |||||
Name: v.UserIdentity.Name, | |||||
FactoryIdentityId: v.FactoryIdentity.Id, | |||||
FactoryIdentity: v.FactoryIdentity.Name, | |||||
CreateAt: v.FactoryIdentity.CreateAt, | |||||
UpdateAt: v.FactoryIdentity.UpdateAt, | |||||
}) | |||||
} | |||||
return | |||||
} | |||||
func FactoryWorkerUpdate(req md.FactoryWorkerUpdateReq) (err error) { | |||||
//1、修改 `user_identity` | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(0) | |||||
userIdentity, err := userIdentityDb.GetUserIdentity(req.UserIdentityId) | |||||
if err != nil { | |||||
return | |||||
} | |||||
if userIdentity == nil { | |||||
return errors.New("未查询到对应记录") | |||||
} | |||||
userIdentity.IdNo = req.IdNo | |||||
userIdentity.CertType = req.CertType | |||||
userIdentity.Name = req.Name | |||||
_, err = userIdentityDb.UserIdentityUpdate(req.UserIdentityId, userIdentity, "id_no", "name", "cert_type") | |||||
if err != nil { | |||||
return | |||||
} | |||||
//2、更新 factory_identity_with_user_identity | |||||
factoryIdentityWithUserIdentityDb := db.FactoryIdentityWithUserIdentityDb{} | |||||
factoryIdentityWithUserIdentityDb.Set() | |||||
info, err := factoryIdentityWithUserIdentityDb.GetFactoryIdentityWithUserIdentity(req.UserIdentityId) | |||||
if err != nil { | |||||
return | |||||
} | |||||
if info != nil { | |||||
info.FactoryIdentityId = req.FactoryIdentityId | |||||
_, err = factoryIdentityWithUserIdentityDb.UpdateFactoryIdentityWithUserIdentity(info, "factory_identity_id") | |||||
if err != nil { | |||||
return | |||||
} | |||||
} else { | |||||
_, err = factoryIdentityWithUserIdentityDb.AddFactoryIdentityWithUserIdentity(&model.FactoryIdentityWithUserIdentity{ | |||||
UserIdentityId: userIdentity.Id, | |||||
FactoryIdentityId: req.FactoryIdentityId, | |||||
CreateAt: time.Now().Format("2006-01-02 15:04:05"), | |||||
UpdateAt: time.Now().Format("2006-01-02 15:04:05"), | |||||
}) | |||||
if err != nil { | |||||
return | |||||
} | |||||
} | |||||
return | |||||
} | |||||
func FactoryWorkerDelete(req md.FactoryWorkerDeleteReq) (err error) { | |||||
//1、删除 user_identity | |||||
_, err = db.Db.Where("enterprise_id =?", req.EnterpriseId).In("id", req.UserIdentityIds).Delete(model.UserIdentity{}) | |||||
if err != nil { | |||||
return | |||||
} | |||||
//2、删除 factory_identity_with_user_identity | |||||
_, err = db.Db.In("user_identity_id", req.UserIdentityIds).Delete(model.FactoryIdentityWithUserIdentity{}) | |||||
if err != nil { | |||||
return | |||||
} | |||||
return | |||||
} | |||||
func FactoryOrdList(req md.FactoryOrdListReq) (resp []md.FactoryOrdListResp, count int64, err error) { | |||||
sess := db.Db.Desc("factory_ord.id") | |||||
if req.EnterpriseId != 0 { | |||||
sess.And("factory_ord.enterprise_id =?", req.EnterpriseId) | |||||
} | |||||
if req.StartDate != "" { | |||||
sess.And("factory_ord.gmt_payment >= ?", req.StartDate) | |||||
} | |||||
if req.EndDate != "" { | |||||
sess.And("factory_ord.gmt_payment <= ?", req.EndDate) | |||||
} | |||||
if req.OrderStatus != 0 { | |||||
sess.And("factory_ord.order_status = ?", req.OrderStatus) | |||||
} | |||||
if req.OutTradeNo != "" { | |||||
sess.And("factory_ord.out_order_no like ?", "%"+req.OutTradeNo+"%") | |||||
} | |||||
if req.TerminalId != "" { | |||||
sess.And("factory_ord.terminal_id like ?", "%"+req.TerminalId+"%") | |||||
} | |||||
if req.TradeNo != "" { | |||||
sess.And("factory_ord.trade_no like ?", "%"+req.TradeNo+"%") | |||||
} | |||||
if req.Name != "" { | |||||
sess.And("user_identity.name like ?", "%"+req.Name+"%") | |||||
} | |||||
if req.Phone != "" { | |||||
sess.And("user.phone like ?", "%"+req.Phone+"%") | |||||
} | |||||
if req.ShopName != "" { | |||||
sess.And("factory_device.name like ?", "%"+req.ShopName+"%") | |||||
} | |||||
var m []*db.FactoryOrdWithUserIdentity | |||||
count, err = sess. | |||||
Join("LEFT", "user_identity", "factory_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "factory_device", "factory_ord.terminal_id = factory_device.terminal_id"). | |||||
Limit(req.Limit, (req.Page-1)*req.Limit).Desc("factory_ord.create_at").FindAndCount(&m) | |||||
if err != nil { | |||||
return nil, 0, err | |||||
} | |||||
for _, v := range m { | |||||
resp = append(resp, md.FactoryOrdListResp{ | |||||
EnterpriseId: v.Enterprise.Id, | |||||
EnterpriseName: v.Enterprise.Name, | |||||
Uid: v.User.Id, | |||||
UserIdentityId: v.UserIdentity.Id, | |||||
UserIdentityName: v.UserIdentity.Name, | |||||
OutTradeNo: v.FactoryOrd.OutOrderNo, | |||||
TradeNo: v.FactoryOrd.TradeNo, | |||||
OrderStatus: v.FactoryOrd.OrderStatus, | |||||
Phone: v.User.Phone, | |||||
GmtPayment: v.FactoryOrd.GmtPayment, | |||||
TerminalId: v.FactoryOrd.TerminalId, | |||||
ShopName: v.FactoryDevice.Name, | |||||
TotalAmount: v.FactoryOrd.TotalAmount, | |||||
ReceiptAmount: v.FactoryOrd.ReceiptAmount, | |||||
BuyerPayAmount: v.FactoryOrd.BuyerPayAmount, | |||||
SubsidyAmount: v.FactoryOrd.SubsidyAmount, | |||||
ServiceFee: v.FactoryOrd.ServiceFee, | |||||
TradeChannel: v.FactoryOrd.TradeChannel, | |||||
}) | |||||
} | |||||
return | |||||
} | |||||
func FactoryOrdListExport(req md.FactoryOrdListReq) (resp []md.FactoryOrdListResp, err error) { | |||||
sess := db.Db.Desc("factory_ord.id") | |||||
if req.EnterpriseId != 0 { | |||||
sess.And("factory_ord.enterprise_id =?", req.EnterpriseId) | |||||
} | |||||
if req.StartDate != "" { | |||||
sess.And("factory_ord.gmt_payment >= ?", req.StartDate) | |||||
} | |||||
if req.EndDate != "" { | |||||
sess.And("factory_ord.gmt_payment <= ?", req.EndDate) | |||||
} | |||||
if req.OrderStatus != 0 { | |||||
sess.And("factory_ord.order_status = ?", req.OrderStatus) | |||||
} | |||||
if req.OutTradeNo != "" { | |||||
sess.And("factory_ord.out_order_no like ?", "%"+req.OutTradeNo+"%") | |||||
} | |||||
if req.TerminalId != "" { | |||||
sess.And("factory_ord.terminal_id like ?", "%"+req.TerminalId+"%") | |||||
} | |||||
if req.TradeNo != "" { | |||||
sess.And("factory_ord.trade_no like ?", "%"+req.TradeNo+"%") | |||||
} | |||||
if req.Name != "" { | |||||
sess.And("user_identity.name like ?", "%"+req.Name+"%") | |||||
} | |||||
if req.Phone != "" { | |||||
sess.And("user.phone like ?", "%"+req.Phone+"%") | |||||
} | |||||
if req.ShopName != "" { | |||||
sess.And("factory_device.name like ?", "%"+req.ShopName+"%") | |||||
} | |||||
var m []*db.FactoryOrdWithUserIdentity | |||||
err = sess. | |||||
Join("LEFT", "user_identity", "factory_ord.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "enterprise", "enterprise.id = user_identity.enterprise_id"). | |||||
Join("LEFT", "user", "user.id = user_identity.uid"). | |||||
Join("LEFT", "factory_device", "factory_ord.terminal_id = factory_device.terminal_id"). | |||||
Desc("factory_ord.create_at").Find(&m) | |||||
if err != nil { | |||||
return nil, err | |||||
} | |||||
if err != nil { | |||||
return nil, err | |||||
} | |||||
for _, v := range m { | |||||
resp = append(resp, md.FactoryOrdListResp{ | |||||
EnterpriseId: v.Enterprise.Id, | |||||
EnterpriseName: v.Enterprise.Name, | |||||
Uid: v.User.Id, | |||||
UserIdentityId: v.UserIdentity.Id, | |||||
UserIdentityName: v.UserIdentity.Name, | |||||
OutTradeNo: v.FactoryOrd.OutOrderNo, | |||||
TradeNo: v.FactoryOrd.TradeNo, | |||||
OrderStatus: v.FactoryOrd.OrderStatus, | |||||
Phone: v.User.Phone, | |||||
GmtPayment: v.FactoryOrd.GmtPayment, | |||||
TerminalId: v.FactoryOrd.TerminalId, | |||||
ShopName: v.FactoryDevice.Name, | |||||
TotalAmount: v.FactoryOrd.TotalAmount, | |||||
ReceiptAmount: v.FactoryOrd.ReceiptAmount, | |||||
BuyerPayAmount: v.FactoryOrd.BuyerPayAmount, | |||||
SubsidyAmount: v.FactoryOrd.SubsidyAmount, | |||||
ServiceFee: v.FactoryOrd.ServiceFee, | |||||
TradeChannel: v.FactoryOrd.TradeChannel, | |||||
}) | |||||
} | |||||
return | |||||
} |
@@ -0,0 +1,203 @@ | |||||
package svc | |||||
import ( | |||||
"applet/app/admin/md" | |||||
"applet/app/db" | |||||
"applet/app/db/model" | |||||
"applet/app/enum" | |||||
"applet/app/utils" | |||||
"errors" | |||||
"fmt" | |||||
"time" | |||||
) | |||||
func DeleteFactoryIdentity(id int) (err error) { | |||||
session := db.Db.NewSession() | |||||
defer session.Close() | |||||
session.Begin() | |||||
//1、删除 `role` | |||||
factoryIdentityDb := db.FactoryIdentityDb{} | |||||
factoryIdentityDb.Set(id) | |||||
_, err = factoryIdentityDb.FactoryIdentityDeleteBySession(session, id) | |||||
if err != nil { | |||||
_ = session.Rollback() | |||||
return | |||||
} | |||||
//2、删除 `factory_identity_with_user_identity` | |||||
factoryIdentityWithUserIdentityDb := db.FactoryIdentityWithUserIdentityDb{} | |||||
factoryIdentityWithUserIdentityDb.Set() | |||||
_, err = factoryIdentityWithUserIdentityDb.FactoryIdentityWithUserIdentityDeleteForRoleBySession(session, id) | |||||
if err != nil { | |||||
_ = session.Rollback() | |||||
return | |||||
} | |||||
return session.Commit() | |||||
} | |||||
//func RoleBindPermissionGroup(req md.RoleBindPermissionGroupReq) (err error) { | |||||
// session := db.Db.NewSession() | |||||
// defer session.Close() | |||||
// session.Begin() | |||||
// //1、查询 `role` | |||||
// roleDb := db.RoleDb{} | |||||
// roleDb.Set(req.RoleId) | |||||
// role, err := roleDb.GetRole() | |||||
// if err != nil { | |||||
// return | |||||
// } | |||||
// if role == nil { | |||||
// return errors.New("未查询到相应记录") | |||||
// } | |||||
// | |||||
// //1、删除 `role_permission_group` | |||||
// rolePermissionGroupDb := db.RolePermissionGroupDb{} | |||||
// rolePermissionGroupDb.Set() | |||||
// _, err = rolePermissionGroupDb.RolePermissionGroupDeleteForRoleBySession(session, req.RoleId) | |||||
// if err != nil { | |||||
// _ = session.Rollback() | |||||
// return | |||||
// } | |||||
// | |||||
// //2、新增 `role_permission_group`` | |||||
// var mm []*model.RolePermissionGroup | |||||
// now := time.Now() | |||||
// for _, v := range req.PermissionIds { | |||||
// mm = append(mm, &model.RolePermissionGroup{ | |||||
// RoleId: role.Id, | |||||
// GroupId: v, | |||||
// CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
// UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
// }) | |||||
// } | |||||
// _, err = rolePermissionGroupDb.BatchAddRolePermissionGroupBySession(session, mm) | |||||
// if err != nil { | |||||
// _ = session.Rollback() | |||||
// return | |||||
// } | |||||
// | |||||
// return session.Commit() | |||||
//} | |||||
func BindUserFactoryIdentity(req md.BindFactoryIdentityReq) (err error) { | |||||
session := db.Db.NewSession() | |||||
defer session.Close() | |||||
session.Begin() | |||||
//1、查询 `role` | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(0) | |||||
role, err := userIdentityDb.GetUserIdentity(req.UserIdentitiesId) | |||||
if err != nil { | |||||
return | |||||
} | |||||
if role == nil { | |||||
return errors.New("未查询到相应记录") | |||||
} | |||||
//2、删除 `factory_identity_with_user_identity` | |||||
factoryIdentityWithUserIdentityDb := db.FactoryIdentityWithUserIdentityDb{} | |||||
factoryIdentityWithUserIdentityDb.Set() | |||||
_, err = factoryIdentityWithUserIdentityDb.FactoryIdentityWithUserIdentityDeleteForRoleBySession(session, req.FactoryIdentityId) | |||||
if err != nil { | |||||
_ = session.Rollback() | |||||
return | |||||
} | |||||
//3、新增 `删除 `factory_identity_with_user_identity`` | |||||
now := time.Now() | |||||
_, err = factoryIdentityWithUserIdentityDb.AddFactoryIdentityWithUserIdentityBySession(session, &model.FactoryIdentityWithUserIdentity{ | |||||
UserIdentityId: req.UserIdentitiesId, | |||||
FactoryIdentityId: req.FactoryIdentityId, | |||||
CreateAt: now.Format("2006-01-02 15:04:05"), | |||||
UpdateAt: now.Format("2006-01-02 15:04:05"), | |||||
}) | |||||
if err != nil { | |||||
_ = session.Rollback() | |||||
return | |||||
} | |||||
return session.Commit() | |||||
} | |||||
func FactoryInfo(enterpriseId int) (err error, resp md.FactoryInfoResp) { | |||||
//1、查询`enterprise` | |||||
enterpriseDb := db.EnterpriseDb{} | |||||
enterpriseDb.Set() | |||||
enterprise, err := enterpriseDb.GetEnterprise(enterpriseId) | |||||
if err != nil { | |||||
return | |||||
} | |||||
resp.Name = enterprise.Name | |||||
resp.Memo = enterprise.Memo | |||||
resp.Kind = enum.EnterpriseKind(enterprise.Kind).String() | |||||
resp.Mode = enum.EnterpriseMode(enterprise.Mode).String() | |||||
resp.Pvd = enum.EnterprisePvd(enterprise.Pvd).String() | |||||
resp.State = enum.EnterpriseState(enterprise.State).String() | |||||
//2、统计 "用户"、 "工人" 数量 | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(0) | |||||
resp.WorkerNum, err = userIdentityDb.CountUserIdentityForEnterprise(enterpriseId, enum.UserIdentityForFactory) | |||||
if err != nil { | |||||
return | |||||
} | |||||
//userDb := db.UserDb{} | |||||
//userDb.Set() | |||||
//resp.UserNum, err = userDb.CountUserForEnterprise(enterpriseId) | |||||
//if err != nil { | |||||
// return | |||||
//} | |||||
//3、统计 订单数据 | |||||
now := time.Now() | |||||
today := now.AddDate(0, 0, +1).Format("2006-01-02") //今日 | |||||
thisMonth := time.Date(now.Year(), now.Month(), 1, 0, 0, 0, 0, now.Location()).Format("2006-01-02") //本月 | |||||
sql1 := fmt.Sprintf("SELECT SUM(total_amount) AS this_month_consume_amount FROM factory_ord where gmt_payment >= '%s' and gmt_payment <= '%s'", thisMonth, today) | |||||
sql2 := fmt.Sprintf("SELECT count(*) AS this_month_order_num FROM factory_ord where gmt_payment >= '%s' and gmt_payment <= '%s'", thisMonth, today) | |||||
sql3 := fmt.Sprintf("SELECT SUM(service_fee) AS this_month_service_amount FROM factory_ord where gmt_payment >= '%s' and gmt_payment <= '%s'", thisMonth, today) | |||||
sql4 := fmt.Sprintf("SELECT SUM(receipt_amount) AS this_month_receipt_amount FROM factory_ord where gmt_payment >= '%s' and gmt_payment <= '%s'", thisMonth, today) | |||||
mapArr1, err := db.QueryNativeString(db.Db, sql1) | |||||
if err != nil { | |||||
return | |||||
} | |||||
if mapArr1 == nil { | |||||
resp.ThisMonthConsumeAmount = 0 | |||||
} else { | |||||
resp.ThisMonthConsumeAmount = utils.StrToFloat64(mapArr1[0]["this_month_consume_amount"]) | |||||
} | |||||
mapArr2, err := db.QueryNativeString(db.Db, sql2) | |||||
if err != nil { | |||||
return | |||||
} | |||||
if mapArr2 == nil { | |||||
resp.ThisMonthOrderNum = 0 | |||||
} else { | |||||
resp.ThisMonthOrderNum = utils.StrToFloat64(mapArr2[0]["this_month_order_num"]) | |||||
} | |||||
mapArr3, err := db.QueryNativeString(db.Db, sql3) | |||||
if err != nil { | |||||
return | |||||
} | |||||
if mapArr3 == nil { | |||||
resp.ThisMonthServiceAmount = 0 | |||||
} else { | |||||
resp.ThisMonthServiceAmount = utils.StrToFloat64(mapArr3[0]["this_month_service_amount"]) | |||||
} | |||||
mapArr4, err := db.QueryNativeString(db.Db, sql4) | |||||
if err != nil { | |||||
return | |||||
} | |||||
if mapArr4 == nil { | |||||
resp.ThisMonthReceiptAmount = 0 | |||||
} else { | |||||
resp.ThisMonthReceiptAmount = utils.StrToFloat64(mapArr4[0]["receipt_amount"]) | |||||
} | |||||
return | |||||
} |
@@ -11,6 +11,59 @@ import ( | |||||
"github.com/gin-gonic/gin" | "github.com/gin-gonic/gin" | ||||
) | ) | ||||
func FactoryOrderList(c *gin.Context) { | |||||
var req md.FactoryOrderListReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
list, total, err := svc.FactoryOrderList(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
tradeAmountTotal, err := svc.FactoryOrderStatistic(req) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, map[string]interface{}{ | |||||
"list": list, | |||||
"total": total, | |||||
"trade_amount_total": tradeAmountTotal, | |||||
"order_status_list": []map[string]interface{}{ | |||||
{ | |||||
"name": enum.FactoryOrdOrderStatus.String(enum.FactoryOrdOrderStatusForSuccess), | |||||
"value": enum.FactoryOrdOrderStatusForSuccess, | |||||
}, | |||||
{ | |||||
"name": enum.FactoryOrdOrderStatus.String(enum.FactoryOrdOrderStatusForRefund), | |||||
"value": enum.FactoryOrdOrderStatusForRefund, | |||||
}, | |||||
{ | |||||
"name": enum.FactoryOrdOrderStatus.String(enum.FactoryOrdOrderStatusForClose), | |||||
"value": enum.FactoryOrdOrderStatusForClose, | |||||
}, | |||||
}, | |||||
"trade_channel_list": []map[string]interface{}{ | |||||
{ | |||||
"name": enum.FactoryOrdTradeChannel.String(enum.FactoryOrdTradeChannelForAli), | |||||
"value": enum.FactoryOrdTradeChannelForAli, | |||||
}, | |||||
{ | |||||
"name": enum.FactoryOrdTradeChannel.String(enum.FactoryOrdTradeChannelForWx), | |||||
"value": enum.FactoryOrdTradeChannelForWx, | |||||
}, | |||||
}, | |||||
}, nil) | |||||
return | |||||
} | |||||
func SelfSupportForSchoolOrderList(c *gin.Context) { | func SelfSupportForSchoolOrderList(c *gin.Context) { | ||||
var req md.SelfSupportForSchoolOrderListReq | var req md.SelfSupportForSchoolOrderListReq | ||||
err := c.ShouldBindJSON(&req) | err := c.ShouldBindJSON(&req) | ||||
@@ -137,6 +137,25 @@ func UserInfo(c *gin.Context) { | |||||
} | } | ||||
} | } | ||||
if v.Enterprise.Pvd == enum.EnterprisePvdForAllPayment && v.Enterprise.Mode == enum.EnterpriseModeForFactory { | |||||
//TODO::工厂 | |||||
sMDate := utils.GetFirstDateOfMonth(now).Format("2006-01-02 15:04:05") | |||||
eMDate := utils.GetLastDateOfMonth(now).Format("2006-01-02 15:04:05") | |||||
sTDate, eTDate := utils.GetDateTimeRangeStr("today") | |||||
monthStatistic, err2 := svc2.FactoryUserIdentityOrderStatistic(v.UserIdentity.Id, sMDate, eMDate, "total_amount") | |||||
if err2 != nil { | |||||
e.OutErr(c, e.ERR, err2.Error()) | |||||
return | |||||
} | |||||
dayStatistic, err2 := svc2.FactoryUserIdentityOrderStatistic(v.UserIdentity.Id, sTDate, eTDate, "total_amount") | |||||
if err2 != nil { | |||||
e.OutErr(c, e.ERR, err2.Error()) | |||||
return | |||||
} | |||||
tmp["month_statistic"] = monthStatistic | |||||
tmp["day_statistic"] = dayStatistic | |||||
} | |||||
identityList = append(identityList, tmp) | identityList = append(identityList, tmp) | ||||
} | } | ||||
@@ -287,6 +287,52 @@ func SaveSelfSupportForSchoolUserIdentity(c *gin.Context) { | |||||
return | return | ||||
} | } | ||||
func SaveFactoryUserIdentity(c *gin.Context) { | |||||
var req md.SaveFactoryUserIdentityReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
user := svc.GetUser(c) | |||||
if req.CertType == 0 { | |||||
req.CertType = enum.UserIdentityCertTypeForIdCard | |||||
} | |||||
//1、判断当前身份是否已绑定 | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(user.Id) | |||||
isHasUserIdentity, err := userIdentityDb.UserIdentityExist(req.EnterpriseId, req.IdNo, req.CertType) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if isHasUserIdentity == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "当前身份信息不存在") | |||||
return | |||||
} else { | |||||
if isHasUserIdentity.Uid != 0 && isHasUserIdentity.Uid != user.Id { | |||||
e.OutErr(c, e.ERR, "当前身份信息已被绑定使用") | |||||
return | |||||
} | |||||
//2、修改身份信息 | |||||
isHasUserIdentity.Uid = user.Id | |||||
isHasUserIdentity.Name = req.Name | |||||
isHasUserIdentity.State = enum.UserIdentityStateForNormal | |||||
_, err = userIdentityDb.UserIdentityUpdate(isHasUserIdentity.Id, isHasUserIdentity, "uid", "name", "state") | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func SaveNursingHomeUserIdentity(c *gin.Context) { | func SaveNursingHomeUserIdentity(c *gin.Context) { | ||||
var req md.SaveNursingHomeUserIdentityReq | var req md.SaveNursingHomeUserIdentityReq | ||||
err := c.ShouldBindJSON(&req) | err := c.ShouldBindJSON(&req) | ||||
@@ -482,6 +528,42 @@ func UpdateSelfSupportForSchoolUserIdentity(c *gin.Context) { | |||||
return | return | ||||
} | } | ||||
func UpdateFactoryUserIdentity(c *gin.Context) { | |||||
var req md.UpdateFactoryUserIdentityReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = validate.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
user := svc.GetUser(c) | |||||
//1、查询当前身份是否存在 | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(user.Id) | |||||
userIdentity, err := userIdentityDb.GetUserIdentity(req.UserIdentityId) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
if userIdentity == nil { | |||||
e.OutErr(c, e.ERR_NO_DATA, "当前身份信息不存在") | |||||
return | |||||
} | |||||
//2、修改身份信息 | |||||
userIdentity.Name = req.Name | |||||
userIdentity.IdNo = req.IdNo | |||||
_, err = userIdentityDb.UserIdentityUpdate(userIdentity.Id, userIdentity, "id_no", "name") | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM, err.Error()) | |||||
return | |||||
} | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
func UpdateNursingHomeUserIdentity(c *gin.Context) { | func UpdateNursingHomeUserIdentity(c *gin.Context) { | ||||
var req md.UpdateNursingHomeUserIdentityReq | var req md.UpdateNursingHomeUserIdentityReq | ||||
err := c.ShouldBindJSON(&req) | err := c.ShouldBindJSON(&req) | ||||
@@ -574,6 +656,13 @@ func DeleteUserIdentity(c *gin.Context) { | |||||
return | return | ||||
} | } | ||||
break | break | ||||
case enum.UserIdentityForFactory: | |||||
err1 := svc.DeleteUserIdentityForFactory(userIdentity.Id) | |||||
if err1 != nil { | |||||
e.OutErr(c, e.ERR, err1.Error()) | |||||
return | |||||
} | |||||
break | |||||
case enum.UserIdentityForNursingHome: | case enum.UserIdentityForNursingHome: | ||||
err1 := svc.DeleteUserIdentityForNursingHome(userIdentity.Id) | err1 := svc.DeleteUserIdentityForNursingHome(userIdentity.Id) | ||||
if err1 != nil { | if err1 != nil { | ||||
@@ -135,3 +135,12 @@ type NursingHomeMyReserveRespList struct { | |||||
LunchTotal int `json:"lunch_total" label:"午餐-总计"` | LunchTotal int `json:"lunch_total" label:"午餐-总计"` | ||||
DinnerTotal int `json:"dinner_total" label:"晚餐-总计"` | DinnerTotal int `json:"dinner_total" label:"晚餐-总计"` | ||||
} | } | ||||
type FactoryOrderListReq struct { | |||||
UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | |||||
Limit int `json:"limit"` | |||||
Page int `json:"page" ` | |||||
OrderStatus int `json:"order_status" ` | |||||
StartDate string `json:"start_date" ` | |||||
EndDate string `json:"end_date" ` | |||||
} |
@@ -28,6 +28,13 @@ type SaveSelfSupportForSchoolUserIdentityReq struct { | |||||
ClassId int `json:"class_id" label:"班级id"` | ClassId int `json:"class_id" label:"班级id"` | ||||
} | } | ||||
type SaveFactoryUserIdentityReq struct { | |||||
EnterpriseId int `json:"enterprise_id" binding:"required" label:"企业id"` | |||||
Name string `json:"name" binding:"required" label:"姓名"` | |||||
IdNo string `json:"id_no" binding:"required" label:"身份证号码"` | |||||
CertType int `json:"cert_type" label:"证件类型(1:身份证 2:学工号 3:护照)"` | |||||
} | |||||
type UpdateCentralKitchenForSchoolUserIdentityReq struct { | type UpdateCentralKitchenForSchoolUserIdentityReq struct { | ||||
IdNo string `json:"id_no" label:"身份证号"` | IdNo string `json:"id_no" label:"身份证号"` | ||||
Name string `json:"name" label:"姓名"` | Name string `json:"name" label:"姓名"` | ||||
@@ -44,6 +51,12 @@ type UpdateSelfSupportForSchoolUserIdentityReq struct { | |||||
UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | ||||
} | } | ||||
type UpdateFactoryUserIdentityReq struct { | |||||
IdNo string `json:"id_no" label:"证件号证号"` | |||||
Name string `json:"name" label:"姓名"` | |||||
UserIdentityId int `json:"user_identity_id" label:"用户身份id"` | |||||
} | |||||
type UpdateNursingHomeUserIdentityReq struct { | type UpdateNursingHomeUserIdentityReq struct { | ||||
IdNo string `json:"id_no" label:"身份证号"` | IdNo string `json:"id_no" label:"身份证号"` | ||||
Name string `json:"name" label:"姓名"` | Name string `json:"name" label:"姓名"` | ||||
@@ -0,0 +1,61 @@ | |||||
package svc | |||||
import ( | |||||
"applet/app/customer/md" | |||||
"applet/app/db" | |||||
"applet/app/db/model" | |||||
"applet/app/utils" | |||||
"fmt" | |||||
) | |||||
func FactoryOrderList(req md.FactoryOrderListReq) (m []model.FactoryOrd, total int64, err error) { | |||||
sess := db.Db.Desc("id").Where("user_identity_id =?", req.UserIdentityId).Limit(req.Limit, (req.Page-1)*req.Limit) | |||||
if req.OrderStatus != 0 { | |||||
sess.And("order_status = ?", req.OrderStatus) | |||||
} | |||||
if req.StartDate != "" { | |||||
sess.And("create_at >= ?", req.StartDate) | |||||
} | |||||
if req.EndDate != "" { | |||||
sess.And("create_at <= ?", req.EndDate) | |||||
} | |||||
total, err = sess.FindAndCount(&m) | |||||
if err != nil { | |||||
return | |||||
} | |||||
return | |||||
} | |||||
func FactoryOrderStatistic(req md.FactoryOrderListReq) (total float64, err error) { | |||||
var sql = fmt.Sprintf("SELECT SUM(total_amount) AS trade_amount_total FROM factory_ord where user_identity_id = '%d'", req.UserIdentityId) | |||||
if req.OrderStatus != 0 { | |||||
sql += fmt.Sprintf(" and order_status = %d", req.OrderStatus) | |||||
} | |||||
if req.StartDate != "" { | |||||
sql += fmt.Sprintf(" and create_at >= '%s'", req.StartDate) | |||||
} | |||||
if req.EndDate != "" { | |||||
sql += fmt.Sprintf(" and create_at <= '%s'", req.EndDate) | |||||
} | |||||
mapArr1, err := db.QueryNativeString(db.Db, sql) | |||||
if err != nil { | |||||
return | |||||
} | |||||
if mapArr1 != nil { | |||||
total = utils.StrToFloat64(mapArr1[0]["trade_amount_total"]) | |||||
} | |||||
return | |||||
} | |||||
func FactoryUserIdentityOrderStatistic(userIdentityId int, sDate, eDate, column string) (total float64, err error) { | |||||
var sql = fmt.Sprintf("SELECT SUM(%s) AS total FROM factory_ord where user_identity_id = '%d' and gmt_payment >= '%s' and gmt_payment <= '%s'", | |||||
column, userIdentityId, sDate, eDate) | |||||
mapArr1, err := db.QueryNativeString(db.Db, sql) | |||||
if err != nil { | |||||
return | |||||
} | |||||
if mapArr1 != nil { | |||||
total = utils.StrToFloat64(mapArr1[0]["total"]) | |||||
} | |||||
return | |||||
} |
@@ -33,10 +33,10 @@ func SupportOrderStatistic(req md.SelfSupportForSchoolOrderListReq) (total float | |||||
sql += fmt.Sprintf(" and order_status = %d", req.OrderStatus) | sql += fmt.Sprintf(" and order_status = %d", req.OrderStatus) | ||||
} | } | ||||
if req.StartDate != "" { | if req.StartDate != "" { | ||||
sql += fmt.Sprintf(" and create_at = %s", req.StartDate) | |||||
sql += fmt.Sprintf(" and create_at >= '%s'", req.StartDate) | |||||
} | } | ||||
if req.EndDate != "" { | if req.EndDate != "" { | ||||
sql += fmt.Sprintf(" and create_at <= %s", req.StartDate) | |||||
sql += fmt.Sprintf(" and create_at <= '%s'", req.EndDate) | |||||
} | } | ||||
mapArr1, err := db.QueryNativeString(db.Db, sql) | mapArr1, err := db.QueryNativeString(db.Db, sql) | ||||
if err != nil { | if err != nil { | ||||
@@ -114,6 +114,25 @@ func DeleteUserIdentityForSelfSupportForWorker(userIdentityId int) (err error) { | |||||
return | return | ||||
} | } | ||||
func DeleteUserIdentityForFactory(userIdentityId int) (err error) { | |||||
//1、删除 user_identity(将`state`变成"冻结"状态) | |||||
userIdentityDb := db.UserIdentityDb{} | |||||
userIdentityDb.Set(0) | |||||
identity, err := userIdentityDb.GetUserIdentity(userIdentityId) | |||||
if err != nil { | |||||
return err | |||||
} | |||||
identity.State = enum.UserIdentityStateForFreeze | |||||
updateAffected, err := userIdentityDb.UserIdentityUpdate(userIdentityId, identity, "state") | |||||
if err != nil { | |||||
return err | |||||
} | |||||
if updateAffected <= 0 { | |||||
return errors.New("删除用户信息数据失败") | |||||
} | |||||
return | |||||
} | |||||
func DeleteUserIdentityForNursingHome(userIdentityId int) (err error) { | func DeleteUserIdentityForNursingHome(userIdentityId int) (err error) { | ||||
//1、删除 user_identity(将`state`变成"冻结"状态) | //1、删除 user_identity(将`state`变成"冻结"状态) | ||||
userIdentityDb := db.UserIdentityDb{} | userIdentityDb := db.UserIdentityDb{} | ||||
@@ -0,0 +1,103 @@ | |||||
package db | |||||
import ( | |||||
"applet/app/db/model" | |||||
"applet/app/utils/logx" | |||||
"reflect" | |||||
"xorm.io/xorm" | |||||
) | |||||
type FactoryDevice struct { | |||||
Db *xorm.Engine `json:"db"` | |||||
TerminalId string `json:"terminal_id"` | |||||
} | |||||
func (factoryDeviceDb *FactoryDevice) Set(terminalId string) { // set方法 | |||||
factoryDeviceDb.Db = Db | |||||
factoryDeviceDb.TerminalId = terminalId | |||||
} | |||||
func (factoryDeviceDb *FactoryDevice) GetFactoryDeviceById(id int) (m *model.FactoryDevice, err error) { | |||||
m = new(model.FactoryDevice) | |||||
has, err := factoryDeviceDb.Db.Where("id =?", id).Get(m) | |||||
if err != nil { | |||||
return nil, logx.Error(err) | |||||
} | |||||
if has == false { | |||||
return nil, nil | |||||
} | |||||
return m, nil | |||||
} | |||||
func (factoryDeviceDb *FactoryDevice) GetFactoryDevice() (m *model.FactoryDevice, err error) { | |||||
m = new(model.FactoryDevice) | |||||
has, err := factoryDeviceDb.Db.Where("terminal_id =?", factoryDeviceDb.TerminalId).Get(m) | |||||
if err != nil { | |||||
return nil, logx.Error(err) | |||||
} | |||||
if has == false { | |||||
return nil, nil | |||||
} | |||||
return m, nil | |||||
} | |||||
func (factoryDeviceDb *FactoryDevice) FactoryDeviceInsert(m *model.FactoryDevice) (int, error) { | |||||
_, err := factoryDeviceDb.Db.InsertOne(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return m.Id, nil | |||||
} | |||||
func (factoryDeviceDb *FactoryDevice) FactoryDeviceInsertBySession(session *xorm.Session, m *model.FactoryDevice) (int, error) { | |||||
_, err := session.InsertOne(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return m.Id, nil | |||||
} | |||||
func (factoryDeviceDb *FactoryDevice) BatchAddFactoryDevices(mm []*model.FactoryDevice) (int64, error) { | |||||
affected, err := factoryDeviceDb.Db.Insert(mm) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return affected, nil | |||||
} | |||||
func (factoryDeviceDb *FactoryDevice) FactoryDeviceDeleteById(id interface{}) (int64, error) { | |||||
if reflect.TypeOf(id).Kind() == reflect.Slice { | |||||
return Db.In("id", id).Delete(model.FactoryDevice{}) | |||||
} else { | |||||
return Db.Where("id = ?", id).Delete(model.FactoryDevice{}) | |||||
} | |||||
} | |||||
func (factoryDeviceDb *FactoryDevice) FactoryDeviceDelete() (int64, error) { | |||||
return Db.Where("terminal_id = ?", factoryDeviceDb.TerminalId).Delete(model.FactoryDevice{}) | |||||
} | |||||
func (factoryDeviceDb *FactoryDevice) FactoryDeviceUpdate(m *model.FactoryDevice, forceColums ...string) (int64, error) { | |||||
var ( | |||||
affected int64 | |||||
err error | |||||
) | |||||
if forceColums != nil { | |||||
affected, err = factoryDeviceDb.Db.Where("terminal_id=?", factoryDeviceDb.TerminalId).Cols(forceColums...).Update(m) | |||||
} else { | |||||
affected, err = factoryDeviceDb.Db.Where("terminal_id=?", factoryDeviceDb.TerminalId).Update(m) | |||||
} | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return affected, nil | |||||
} | |||||
type FactoryDeviceWithEnterprise struct { | |||||
model.FactoryDevice `xorm:"extends"` | |||||
model.Enterprise `xorm:"extends"` | |||||
} | |||||
func (FactoryDeviceWithEnterprise) TableName() string { | |||||
return "factory_device" | |||||
} |
@@ -0,0 +1,111 @@ | |||||
package db | |||||
import ( | |||||
"applet/app/db/model" | |||||
"applet/app/utils/logx" | |||||
"reflect" | |||||
"xorm.io/xorm" | |||||
) | |||||
type FactoryIdentityDb struct { | |||||
Db *xorm.Engine `json:"db"` | |||||
EnterpriseId int `json:"enterprise_id"` | |||||
} | |||||
func (factoryIdentityDb *FactoryIdentityDb) Set(enterpriseId int) { // set方法 | |||||
factoryIdentityDb.Db = Db | |||||
factoryIdentityDb.EnterpriseId = enterpriseId | |||||
} | |||||
func (factoryIdentityDb *FactoryIdentityDb) FindFactoryIdentity(page, limit int) (list *[]model.FactoryIdentity, count int64, err error) { | |||||
var m []model.FactoryIdentity | |||||
if count, err = factoryIdentityDb.Db.Where("enterprise_id = ?", factoryIdentityDb.EnterpriseId).Desc("id").Limit(limit, (page-1)*limit).FindAndCount(&m); err != nil { | |||||
return nil, 0, logx.Error(err) | |||||
} | |||||
return &m, count, nil | |||||
} | |||||
func (factoryIdentityDb *FactoryIdentityDb) GetFactoryIdentity(id int) (m *model.FactoryIdentity, err error) { | |||||
m = new(model.FactoryIdentity) | |||||
has, err := factoryIdentityDb.Db.Where("id = ?", id).Get(m) | |||||
if err != nil { | |||||
return nil, logx.Error(err) | |||||
} | |||||
if has == false { | |||||
return nil, nil | |||||
} | |||||
return m, nil | |||||
} | |||||
func (factoryIdentityDb *FactoryIdentityDb) GetFactoryIdentityByName(name string) (m *model.FactoryIdentity, err error) { | |||||
m = new(model.FactoryIdentity) | |||||
has, err := factoryIdentityDb.Db.Where("name = ?", name).Get(m) | |||||
if err != nil { | |||||
return nil, logx.Error(err) | |||||
} | |||||
if has == false { | |||||
return nil, nil | |||||
} | |||||
return m, nil | |||||
} | |||||
func (factoryIdentityDb *FactoryIdentityDb) UpdateFactoryIdentity(m *model.FactoryIdentity, columns ...string) (int64, error) { | |||||
affected, err := factoryIdentityDb.Db.Where("id =?", m.Id).Cols(columns...).Update(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return affected, nil | |||||
} | |||||
func (factoryIdentityDb *FactoryIdentityDb) FactoryIdentityDeleteBySession(session *xorm.Session, id interface{}) (int64, error) { | |||||
if reflect.TypeOf(id).Kind() == reflect.Slice { | |||||
return session.In("id", id).Delete(model.FactoryIdentity{}) | |||||
} else { | |||||
return session.Where("id = ?", id).Delete(model.FactoryIdentity{}) | |||||
} | |||||
} | |||||
func (factoryIdentityDb *FactoryIdentityDb) FactoryIdentityInsert(m *model.FactoryIdentity) (int, error) { | |||||
_, err := factoryIdentityDb.Db.InsertOne(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return m.Id, nil | |||||
} | |||||
func (factoryIdentityDb *FactoryIdentityDb) FindUserIdentityWithFactoryIdentity(userIdentityId int) (list []*UserIdentityWithFactoryIdentity, total int64, err error) { | |||||
total, err = factoryIdentityDb.Db.Where("user_identity.id =?", userIdentityId). | |||||
Join("LEFT", "factory_identity_with_user_identity", "factory_identity_with_user_identity.user_identity_id = user_identity.id"). | |||||
Join("LEFT", "factory_identity", "factory_identity.id = factory_identity_with_user_identity.factory_identity_id"). | |||||
FindAndCount(&list) | |||||
return | |||||
} | |||||
type UserIdentityWithFactoryIdentity struct { | |||||
model.UserIdentity `xorm:"extends"` | |||||
model.User `xorm:"extends"` | |||||
model.FactoryIdentityWithUserIdentity `xorm:"extends"` | |||||
model.FactoryIdentity `xorm:"extends"` | |||||
} | |||||
func (UserIdentityWithFactoryIdentity) TableName() string { | |||||
return "user_identity" | |||||
} | |||||
func (factoryIdentityDb *FactoryIdentityDb) FindFactoryIdentityWithUserIdentity(factoryIdentityId int) (list []*FactoryIdentityWithUserIdentity, total int64, err error) { | |||||
total, err = factoryIdentityDb.Db.Where("factory_identity.id =?", factoryIdentityId). | |||||
Join("LEFT", "factory_identity_with_user_identity", "factory_identity_with_user_identity.factory_identity_id = factory_identity.id"). | |||||
Join("LEFT", "user_identity", "user_identity.id = factory_identity_with_user_identity.user_identity_id"). | |||||
FindAndCount(&list) | |||||
return | |||||
} | |||||
type FactoryIdentityWithUserIdentity struct { | |||||
model.FactoryIdentity `xorm:"extends"` | |||||
model.UserIdentity `xorm:"extends"` | |||||
model.FactoryIdentityWithUserIdentity `xorm:"extends"` | |||||
} | |||||
func (FactoryIdentityWithUserIdentity) TableName() string { | |||||
return "factory_identity" | |||||
} |
@@ -0,0 +1,68 @@ | |||||
package db | |||||
import ( | |||||
"applet/app/db/model" | |||||
"applet/app/utils/logx" | |||||
"reflect" | |||||
"xorm.io/xorm" | |||||
) | |||||
type FactoryIdentityWithUserIdentityDb struct { | |||||
Db *xorm.Engine `json:"db"` | |||||
} | |||||
func (factoryIdentityWithUserIdentityDb *FactoryIdentityWithUserIdentityDb) Set() { // set方法 | |||||
factoryIdentityWithUserIdentityDb.Db = Db | |||||
} | |||||
func (factoryIdentityWithUserIdentityDb *FactoryIdentityWithUserIdentityDb) FactoryIdentityWithUserIdentityDeleteForRoleBySession(session *xorm.Session, factoryIdentityId interface{}) (int64, error) { | |||||
if reflect.TypeOf(factoryIdentityId).Kind() == reflect.Slice { | |||||
return session.In("factory_identity_id", factoryIdentityId).Delete(model.FactoryIdentityWithUserIdentity{}) | |||||
} else { | |||||
return session.Where("factory_identity_id = ?", factoryIdentityId).Delete(model.FactoryIdentityWithUserIdentity{}) | |||||
} | |||||
} | |||||
func (factoryIdentityWithUserIdentityDb *FactoryIdentityWithUserIdentityDb) BatchAddFactoryIdentityWithUserIdentityBySession(session *xorm.Session, mm []*model.FactoryIdentityWithUserIdentity) (int64, error) { | |||||
affected, err := session.Insert(mm) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return affected, nil | |||||
} | |||||
func (factoryIdentityWithUserIdentityDb *FactoryIdentityWithUserIdentityDb) AddFactoryIdentityWithUserIdentityBySession(session *xorm.Session, m *model.FactoryIdentityWithUserIdentity) (int, error) { | |||||
_, err := session.InsertOne(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return m.Id, nil | |||||
} | |||||
func (factoryIdentityWithUserIdentityDb *FactoryIdentityWithUserIdentityDb) AddFactoryIdentityWithUserIdentity(m *model.FactoryIdentityWithUserIdentity) (int, error) { | |||||
_, err := factoryIdentityWithUserIdentityDb.Db.InsertOne(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return m.Id, nil | |||||
} | |||||
func (factoryIdentityWithUserIdentityDb *FactoryIdentityWithUserIdentityDb) GetFactoryIdentityWithUserIdentity(userIdentityId int) (m *model.FactoryIdentityWithUserIdentity, err error) { | |||||
m = new(model.FactoryIdentityWithUserIdentity) | |||||
has, err := factoryIdentityWithUserIdentityDb.Db.Where("user_identity_id = ?", userIdentityId).Get(m) | |||||
if err != nil { | |||||
return nil, logx.Error(err) | |||||
} | |||||
if has == false { | |||||
return nil, nil | |||||
} | |||||
return m, nil | |||||
} | |||||
func (factoryIdentityWithUserIdentityDb *FactoryIdentityWithUserIdentityDb) UpdateFactoryIdentityWithUserIdentity(m *model.FactoryIdentityWithUserIdentity, columns ...string) (int64, error) { | |||||
affected, err := factoryIdentityWithUserIdentityDb.Db.Where("id =?", m.Id).Cols(columns...).Update(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return affected, nil | |||||
} |
@@ -0,0 +1,115 @@ | |||||
package db | |||||
import ( | |||||
"applet/app/db/model" | |||||
"applet/app/utils/logx" | |||||
"reflect" | |||||
"xorm.io/xorm" | |||||
) | |||||
type FactoryOrd struct { | |||||
Db *xorm.Engine `json:"db"` | |||||
OutOrderNo string `json:"user_identity_id"` | |||||
} | |||||
func (factoryOrdOrdDb *FactoryOrd) Set(outOrderNo string) { // set方法 | |||||
factoryOrdOrdDb.Db = Db | |||||
factoryOrdOrdDb.OutOrderNo = outOrderNo | |||||
} | |||||
func (factoryOrdOrdDb *FactoryOrd) GetFactoryOrdById(id int) (m *model.FactoryOrd, err error) { | |||||
m = new(model.FactoryOrd) | |||||
has, err := factoryOrdOrdDb.Db.Where("id =?", id).Get(m) | |||||
if err != nil { | |||||
return nil, logx.Error(err) | |||||
} | |||||
if has == false { | |||||
return nil, nil | |||||
} | |||||
return m, nil | |||||
} | |||||
func (factoryOrdOrdDb *FactoryOrd) GetFactoryOrd() (m *model.FactoryOrd, err error) { | |||||
m = new(model.FactoryOrd) | |||||
has, err := factoryOrdOrdDb.Db.Where("out_order_no =?", factoryOrdOrdDb.OutOrderNo).Get(m) | |||||
if err != nil { | |||||
return nil, logx.Error(err) | |||||
} | |||||
if has == false { | |||||
return nil, nil | |||||
} | |||||
return m, nil | |||||
} | |||||
func (factoryOrdOrdDb *FactoryOrd) FactoryOrdInsert(m *model.FactoryOrd) (int, error) { | |||||
_, err := factoryOrdOrdDb.Db.InsertOne(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return m.Id, nil | |||||
} | |||||
func (factoryOrdOrdDb *FactoryOrd) FactoryOrdInsertBySession(session *xorm.Session, m *model.FactoryOrd) (int, error) { | |||||
_, err := session.InsertOne(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return m.Id, nil | |||||
} | |||||
func (factoryOrdOrdDb *FactoryOrd) BatchAddFactoryOrds(mm []*model.FactoryOrd) (int64, error) { | |||||
affected, err := factoryOrdOrdDb.Db.Insert(mm) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return affected, nil | |||||
} | |||||
func (factoryOrdOrdDb *FactoryOrd) FactoryOrdDeleteById(id interface{}) (int64, error) { | |||||
if reflect.TypeOf(id).Kind() == reflect.Slice { | |||||
return Db.In("id", id).Delete(model.FactoryOrd{}) | |||||
} else { | |||||
return Db.Where("id = ?", id).Delete(model.FactoryOrd{}) | |||||
} | |||||
} | |||||
func (factoryOrdOrdDb *FactoryOrd) FactoryOrdDelete() (int64, error) { | |||||
return Db.Where("out_order_no = ?", factoryOrdOrdDb.OutOrderNo).Delete(model.FactoryOrd{}) | |||||
} | |||||
func (factoryOrdOrdDb *FactoryOrd) FactoryOrdUpdate(m *model.FactoryOrd, forceColums ...string) (int64, error) { | |||||
var ( | |||||
affected int64 | |||||
err error | |||||
) | |||||
if forceColums != nil { | |||||
affected, err = factoryOrdOrdDb.Db.Where("out_order_no=?", factoryOrdOrdDb.OutOrderNo).Cols(forceColums...).Update(m) | |||||
} else { | |||||
affected, err = factoryOrdOrdDb.Db.Where("out_order_no=?", factoryOrdOrdDb.OutOrderNo).Update(m) | |||||
} | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return affected, nil | |||||
} | |||||
type FactoryOrdWithUserIdentity struct { | |||||
model.FactoryOrd `xorm:"extends"` | |||||
model.UserIdentity `xorm:"extends"` | |||||
model.Enterprise `xorm:"extends"` | |||||
model.User `xorm:"extends"` | |||||
model.FactoryDevice `xorm:"extends"` | |||||
} | |||||
func (FactoryOrdWithUserIdentity) TableName() string { | |||||
return "factory_ord" | |||||
} | |||||
type FactoryOrdWithUserIdentityV2 struct { | |||||
model.FactoryOrd `xorm:"extends"` | |||||
model.Enterprise `xorm:"extends"` | |||||
} | |||||
func (FactoryOrdWithUserIdentityV2) TableName() string { | |||||
return "factory_ord" | |||||
} |
@@ -0,0 +1,45 @@ | |||||
package db | |||||
import ( | |||||
"applet/app/db/model" | |||||
"applet/app/utils/logx" | |||||
"xorm.io/xorm" | |||||
) | |||||
type FactorySetDb struct { | |||||
Db *xorm.Engine `json:"db"` | |||||
EnterpriseId int `json:"enterprise_id"` | |||||
} | |||||
func (factorySetDb *FactorySetDb) Set(enterpriseId int) { // set方法 | |||||
factorySetDb.Db = Db | |||||
factorySetDb.EnterpriseId = enterpriseId | |||||
} | |||||
func (factorySetDb *FactorySetDb) GetFactorySet() (m *model.FactorySet, err error) { | |||||
m = new(model.FactorySet) | |||||
has, err := factorySetDb.Db.Where("enterprise_id =?", factorySetDb.EnterpriseId).Get(m) | |||||
if err != nil { | |||||
return nil, logx.Error(err) | |||||
} | |||||
if has == false { | |||||
return nil, nil | |||||
} | |||||
return m, nil | |||||
} | |||||
func (factorySetDb *FactorySetDb) FactorySetInsert(m *model.FactorySet) (int, error) { | |||||
_, err := factorySetDb.Db.InsertOne(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return m.Id, nil | |||||
} | |||||
func (factorySetDb *FactorySetDb) FactorySetUpdate(m *model.FactorySet, columns ...string) (int64, error) { | |||||
affected, err := factorySetDb.Db.Where("enterprise_id =?", factorySetDb.EnterpriseId).Cols(columns...).Update(m) | |||||
if err != nil { | |||||
return 0, err | |||||
} | |||||
return affected, nil | |||||
} |
@@ -102,6 +102,15 @@ func (userDb *UserDb) DeleteUser(id interface{}) (int64, error) { | |||||
} | } | ||||
} | } | ||||
//func (userDb *UserDb) CountUserForEnterprise(enterpriseId int) (total int64, err error) { | |||||
// var m model.User | |||||
// total, err = userDb.Db.Where("enterprise_id =? ", enterpriseId).Count(&m) | |||||
// if err != nil { | |||||
// return | |||||
// } | |||||
// return | |||||
//} | |||||
type UserWithUserIdentity struct { | type UserWithUserIdentity struct { | ||||
model.User `xorm:"extends"` | model.User `xorm:"extends"` | ||||
model.UserIdentity `xorm:"extends"` | model.UserIdentity `xorm:"extends"` | ||||
@@ -0,0 +1,11 @@ | |||||
package model | |||||
type FactoryDevice struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
Name string `json:"name" xorm:"not null default '' comment('档口名称') VARCHAR(255)"` | |||||
TerminalId string `json:"terminal_id" xorm:"not null default '' comment('设备编号') unique VARCHAR(255)"` | |||||
EnterpriseId int `json:"enterprise_id" xorm:"not null default 0 comment('校企id') INT(11)"` | |||||
Memo string `json:"memo" xorm:"not null default '' comment('备注信息') VARCHAR(255)"` | |||||
CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
} |
@@ -0,0 +1,16 @@ | |||||
package model | |||||
type FactoryIdentity struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
EnterpriseId int `json:"enterprise_id" xorm:"not null default 0 comment('所属单位id') INT(11)"` | |||||
Name string `json:"name" xorm:"not null default '' comment('名称') VARCHAR(255)"` | |||||
State int `json:"state" xorm:"not null default 1 comment('状态(1:正常 2:冻结)') TINYINT(1)"` | |||||
Memo string `json:"memo" xorm:"not null default '' comment('备注') VARCHAR(255)"` | |||||
IsSubsidy int `json:"is_subsidy" xorm:"not null default 0 comment('是否优惠补贴(0:否 1:是)') TINYINT(1)"` | |||||
SubsidyAmount string `json:"subsidy_amount" xorm:"not null default 0.00 comment('补贴金额') DECIMAL(8,2)"` | |||||
LeastPayAmount string `json:"least_pay_amount" xorm:"not null default 0.00 comment('最少支付金额') DECIMAL(8,2)"` | |||||
IsLimitConsumeNum int `json:"is_limit_consume_num" xorm:"not null default 0 comment('是否限制消费次数') TINYINT(1)"` | |||||
LimitConsumeNum int `json:"'limit_consume_num'" xorm:"default 0 comment('限制消费次数/日') TINYINT(1)"` | |||||
CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
} |
@@ -0,0 +1,9 @@ | |||||
package model | |||||
type FactoryIdentityWithUserIdentity struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
UserIdentityId int `json:"user_identity_id" xorm:"not null default 0 comment('用户身份id') INT(11)"` | |||||
FactoryIdentityId int `json:"factory_identity_id" xorm:"not null default 0 comment('工厂身份id') INT(11)"` | |||||
CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
} |
@@ -0,0 +1,27 @@ | |||||
package model | |||||
type FactoryOrd struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
EnterpriseId int `json:"enterprise_id" xorm:"not null default 0 comment('所属单位id') INT(11)"` | |||||
Uid int `json:"uid" xorm:"not null default 0 comment('用户id') INT(11)"` | |||||
UserIdentityId int `json:"user_identity_id" xorm:"not null default 0 comment('用户身份id') INT(11)"` | |||||
OutOrderNo string `json:"out_order_no" xorm:"not null default '' comment('外部订单号,设备端产生') VARCHAR(255)"` | |||||
TradeNo string `json:"trade_no" xorm:"not null default '' comment('第三方交易号,支付宝,微信,ISV渠道等') VARCHAR(255)"` | |||||
BuyerId string `json:"buyer_id" xorm:"not null default '' comment('渠道买家标识') CHAR(100)"` | |||||
TerminalId string `json:"terminal_id" xorm:"not null default '' comment('设备编号') CHAR(100)"` | |||||
TradeChannel string `json:"trade_channel" xorm:"not null default '' comment('交易渠道') CHAR(100)"` | |||||
StoreId string `json:"store_id" xorm:"not null default '' comment('门店编号') CHAR(100)"` | |||||
MerchantId string `json:"merchant_id" xorm:"not null default '' comment('商户编码') CHAR(100)"` | |||||
GmtPayment string `json:"gmt_payment" xorm:"not null default '' comment('支付成功时间') CHAR(100)"` | |||||
OrderStatus int `json:"order_status" xorm:"not null default 1 comment('交易状态 (1:支付成功 2:已退款 3:已关闭)') TINYINT(1)"` | |||||
Subject string `json:"subject" xorm:"not null default '' comment('订单主题') CHAR(50)"` | |||||
TotalAmount string `json:"total_amount" xorm:"not null default 0.00 comment('订单总金额') DECIMAL(8,2)"` | |||||
DiscountAmount string `json:"discount_amount" xorm:"not null default 0.00 comment('支付宝平台优惠金额') DECIMAL(8,2)"` | |||||
MdiscountAmount string `json:"mdiscount_amount" xorm:"not null default 0.00 comment('支付宝商家优惠金额') DECIMAL(8,2)"` | |||||
ReceiptAmount string `json:"receipt_amount" xorm:"not null default 0.00 comment('实收金额') DECIMAL(8,2)"` | |||||
BuyerPayAmount string `json:"buyer_pay_amount" xorm:"not null default 0.00 comment('买家支付金额') DECIMAL(8,2)"` | |||||
SubsidyAmount string `json:"subsidy_amount" xorm:"not null default 0.00 comment('补贴金额') DECIMAL(8,2)"` | |||||
ServiceFee string `json:"service_fee" xorm:"not null default 0.00 comment('服务费用') DECIMAL(8,2)"` | |||||
CreateAt string `json:"create_at" xorm:"not null pk default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
} |
@@ -0,0 +1,10 @@ | |||||
package model | |||||
type FactorySet struct { | |||||
Id int `json:"id" xorm:"not null pk autoincr INT(11)"` | |||||
EnterpriseId int `json:"enterprise_id" xorm:"not null default 0 comment('所属单位id') INT(11)"` | |||||
IsOpenNaturalCustomer int `json:"is_open_natural_customer" xorm:"not null default 0 comment('开启自然顾客(1:开启 2:关闭)') TINYINT(1)"` | |||||
NaturalCustomerServiceFee string `json:"natural_customer_service_fee" xorm:"not null default 0.00 comment('自然顾客服务费') DECIMAL(8,2)"` | |||||
CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` | |||||
} |
@@ -50,6 +50,7 @@ type EnterprisePvd int32 | |||||
const ( | const ( | ||||
EnterprisePvdForOnlinePayment = 1 | EnterprisePvdForOnlinePayment = 1 | ||||
EnterprisePvdForFaceScanPayment = 2 | EnterprisePvdForFaceScanPayment = 2 | ||||
EnterprisePvdForAllPayment = 3 | |||||
) | ) | ||||
func (gt EnterprisePvd) String() string { | func (gt EnterprisePvd) String() string { | ||||
@@ -58,6 +59,8 @@ func (gt EnterprisePvd) String() string { | |||||
return "在线支付" | return "在线支付" | ||||
case EnterprisePvdForFaceScanPayment: | case EnterprisePvdForFaceScanPayment: | ||||
return "刷脸支付" | return "刷脸支付" | ||||
case EnterprisePvdForAllPayment: | |||||
return "刷脸/刷码/扫码支付" | |||||
default: | default: | ||||
return "未知" | return "未知" | ||||
} | } | ||||
@@ -0,0 +1,40 @@ | |||||
package enum | |||||
type FactoryOrdOrderStatus int32 | |||||
const ( | |||||
FactoryOrdOrderStatusForSuccess = 1 | |||||
FactoryOrdOrderStatusForRefund = 2 | |||||
FactoryOrdOrderStatusForClose = 3 | |||||
) | |||||
func (gt FactoryOrdOrderStatus) String() string { | |||||
switch gt { | |||||
case FactoryOrdOrderStatusForSuccess: | |||||
return "支付成功" | |||||
case FactoryOrdOrderStatusForRefund: | |||||
return "已退款" | |||||
case FactoryOrdOrderStatusForClose: | |||||
return "已关闭" | |||||
default: | |||||
return "未知" | |||||
} | |||||
} | |||||
type FactoryOrdTradeChannel string | |||||
const ( | |||||
FactoryOrdTradeChannelForAli = "alipay" | |||||
FactoryOrdTradeChannelForWx = "wechat" | |||||
) | |||||
func (gt FactoryOrdTradeChannel) String() string { | |||||
switch gt { | |||||
case FactoryOrdTradeChannelForAli: | |||||
return "支付宝" | |||||
case FactoryOrdTradeChannelForWx: | |||||
return "微信" | |||||
default: | |||||
return "未知" | |||||
} | |||||
} |
@@ -10,6 +10,7 @@ const ( | |||||
UserIdentityForSelfSupportForTeacher = 5 | UserIdentityForSelfSupportForTeacher = 5 | ||||
UserIdentityForSelfSupportForWorker = 6 | UserIdentityForSelfSupportForWorker = 6 | ||||
UserIdentityForNursingHome = 7 | UserIdentityForNursingHome = 7 | ||||
UserIdentityForFactory = 8 | |||||
) | ) | ||||
func (gt UserIdentity) String() string { | func (gt UserIdentity) String() string { | ||||
@@ -28,6 +29,8 @@ func (gt UserIdentity) String() string { | |||||
return "自营-工作人员" | return "自营-工作人员" | ||||
case UserIdentityForNursingHome: | case UserIdentityForNursingHome: | ||||
return "养老院-普通用户" | return "养老院-普通用户" | ||||
case UserIdentityForFactory: | |||||
return "工厂-普通用户" | |||||
default: | default: | ||||
return "未知" | return "未知" | ||||
} | } | ||||
@@ -104,9 +104,12 @@ func rFinanceManage(r *gin.RouterGroup) { | |||||
} | } | ||||
func rDeviceManage(r *gin.RouterGroup) { | func rDeviceManage(r *gin.RouterGroup) { | ||||
r.POST("/save", hdl2.DeviceSave) //设备管理-编辑/新增 | |||||
r.POST("/list", hdl2.DeviceList) //设备管理-列表 | |||||
r.DELETE("/delete/:device_sn", hdl2.DeviceDelete) //设备管理-删除 | |||||
r.POST("/save", hdl2.DeviceSave) //设备管理-编辑/新增 | |||||
r.POST("/list", hdl2.DeviceList) //设备管理-列表 | |||||
r.DELETE("/delete/:device_sn", hdl2.DeviceDelete) //设备管理-删除 | |||||
r.POST("/factory/save", hdl2.FactoryDeviceSave) //工厂设备管理-编辑/新增 | |||||
r.POST("/factory/list", hdl2.FactoryDeviceList) //工厂设备管理-列表 | |||||
r.DELETE("/factory/delete/:terminal_id", hdl2.FactoryDeviceDelete) //工厂设备管理-删除 | |||||
} | } | ||||
func rDataStatistics(r *gin.RouterGroup) { | func rDataStatistics(r *gin.RouterGroup) { | ||||
@@ -253,6 +256,31 @@ func rEnterpriseManage(r *gin.RouterGroup) { | |||||
//r.POST("/nursingHome/statisticsExport", hdl2.NursingHomeDataStatisticsExport) //"养老院-数据统计"-导出 | //r.POST("/nursingHome/statisticsExport", hdl2.NursingHomeDataStatisticsExport) //"养老院-数据统计"-导出 | ||||
//r.POST("/nursingHome/statisticsList", hdl2.NursingHomeDataStatisticsList) //"养老院-数据统计"-列表 | //r.POST("/nursingHome/statisticsList", hdl2.NursingHomeDataStatisticsList) //"养老院-数据统计"-列表 | ||||
//r.DELETE("/nursingHome/statisticsDelete/:id", hdl2.NursingHomeDataStatisticsDelete) //"养老院-数据统计"-删除 | //r.DELETE("/nursingHome/statisticsDelete/:id", hdl2.NursingHomeDataStatisticsDelete) //"养老院-数据统计"-删除 | ||||
rFactory := r.Group("/factory") //工厂 | |||||
{ | |||||
rFactory.POST("/factoryIdentityList", hdl.FactoryIdentityList) //身份列表 | |||||
rFactory.POST("/addFactoryIdentity", hdl.AddFactoryIdentity) //添加身份 | |||||
rFactory.POST("/updateFactoryIdentityState", hdl.UpdateFactoryIdentityState) //修改身份状态 | |||||
rFactory.POST("/updateFactoryIdentity", hdl.UpdateFactoryIdentity) //修改身份 | |||||
rFactory.DELETE("/deleteFactoryIdentity/:id", hdl.DeleteFactoryIdentity) //删除身份 | |||||
rFactory.POST("/bindFactoryIdentity", hdl.BindUserFactoryIdentity) //绑定身份 | |||||
rFactory.GET("/getBasic", hdl.GetBasicFactory) //获取基础设置 | |||||
rFactory.POST("/setBasic", hdl.SetBasicFactory) //设置基础设置 | |||||
rFactory.POST("/userUpdate", hdl.FactoryUserUpdate) //用户编辑 | |||||
rFactory.POST("/userDelete", hdl.FactoryUserDelete) //用户删除 | |||||
rFactory.POST("/downloadTemplateExcel", hdl.FactoryDownloadTemplateExcel) //下载表格模板 | |||||
rFactory.POST("/importUserIdentity", hdl.FactoryImportUserIdentity) //导入员工 | |||||
rFactory.POST("/workersList", hdl.FactoryWorkerList) //员工列表 | |||||
rFactory.POST("/workerUpdate", hdl.FactoryWorkerUpdate) //员工编辑 | |||||
rFactory.POST("/workerDelete", hdl.FactoryWorkerDelete) //员工删除 | |||||
rFactory.POST("/workerAdd", hdl.FactoryWorkerAdd) //员工新增 | |||||
rFactory.POST("/ordList", hdl.FactoryOrdList) //订单列表 | |||||
rFactory.Any("/ordListExport", hdl.FactoryOrdListExport) //订单列表-导出 | |||||
} | |||||
} | } | ||||
func rRole(r *gin.RouterGroup) { | func rRole(r *gin.RouterGroup) { | ||||
@@ -13,6 +13,7 @@ func CustomerInit(r *gin.RouterGroup) { | |||||
rCentralKitchenForSchoolOrder(r.Group("/order/centralKitchenForSchool")) | rCentralKitchenForSchoolOrder(r.Group("/order/centralKitchenForSchool")) | ||||
rNursingHomeOrder(r.Group("/order/nursingHome")) | rNursingHomeOrder(r.Group("/order/nursingHome")) | ||||
rSelfSupportForSchoolOrder(r.Group("/order/selfSupportForSchool")) | rSelfSupportForSchoolOrder(r.Group("/order/selfSupportForSchool")) | ||||
rFactoryOrder(r.Group("/order/factory")) | |||||
rSelfSupportForSchool(r.Group("/selfSupportForSchool")) | rSelfSupportForSchool(r.Group("/selfSupportForSchool")) | ||||
rUserIdentity(r.Group("/userIdentity")) | rUserIdentity(r.Group("/userIdentity")) | ||||
rTest(r.Group("/test")) | rTest(r.Group("/test")) | ||||
@@ -52,6 +53,8 @@ func CustomerInit(r *gin.RouterGroup) { | |||||
r.POST("enterprise/selfSupportForSchool/saveUserIdentity", hdl.SaveSelfSupportForSchoolUserIdentity) //"自营-学校"新增身份信息 | r.POST("enterprise/selfSupportForSchool/saveUserIdentity", hdl.SaveSelfSupportForSchoolUserIdentity) //"自营-学校"新增身份信息 | ||||
r.POST("enterprise/factory/saveUserIdentity", hdl.SaveFactoryUserIdentity) //"工厂"新增身份信息 | |||||
r.POST("enterprise/nursingHome/saveUserIdentity", hdl.SaveNursingHomeUserIdentity) //"养老院"新增身份信息 | r.POST("enterprise/nursingHome/saveUserIdentity", hdl.SaveNursingHomeUserIdentity) //"养老院"新增身份信息 | ||||
r.GET("enterprise/nursingHome/package", hdl.NursingHomePackage) //"养老院"获取套餐 | r.GET("enterprise/nursingHome/package", hdl.NursingHomePackage) //"养老院"获取套餐 | ||||
r.GET("enterprise/nursingHome/myReserve", hdl.NursingHomeMyReserve) //"养老院"我的预定 | r.GET("enterprise/nursingHome/myReserve", hdl.NursingHomeMyReserve) //"养老院"我的预定 | ||||
@@ -107,6 +110,11 @@ func rSelfSupportForSchoolOrder(r *gin.RouterGroup) { | |||||
r.POST("/debtRepay", hdl.SelfSupportForSchoolOrderDebtRepay) // 自营学校-支付欠款订单 | r.POST("/debtRepay", hdl.SelfSupportForSchoolOrderDebtRepay) // 自营学校-支付欠款订单 | ||||
} | } | ||||
func rFactoryOrder(r *gin.RouterGroup) { | |||||
r.Use(mw.Auth) //检测登录状态 | |||||
r.POST("/list", hdl.FactoryOrderList) // 自营学校-订单列表 | |||||
} | |||||
func rSelfSupportForSchool(r *gin.RouterGroup) { //自营学校 | func rSelfSupportForSchool(r *gin.RouterGroup) { //自营学校 | ||||
r.Use(mw.Auth) //检测登录状态 | r.Use(mw.Auth) //检测登录状态 | ||||
r.GET("/educateSceneTokenQuery", selfSupportForSchoolhdl.EducateSceneTokenQuery) // 自营学校-查询刷脸用户开通详细信息 | r.GET("/educateSceneTokenQuery", selfSupportForSchoolhdl.EducateSceneTokenQuery) // 自营学校-查询刷脸用户开通详细信息 | ||||
@@ -122,5 +130,6 @@ func rUserIdentity(r *gin.RouterGroup) { //用户身份 | |||||
r.DELETE("/deleteUserIdentity/:id", hdl.DeleteUserIdentity) // 删除身份信息 | r.DELETE("/deleteUserIdentity/:id", hdl.DeleteUserIdentity) // 删除身份信息 | ||||
r.POST("/updateCentralKitchenForSchoolUserIdentity", hdl.UpdateCentralKitchenForSchoolUserIdentity) // 修改"央厨-学校"学生身份信息 | r.POST("/updateCentralKitchenForSchoolUserIdentity", hdl.UpdateCentralKitchenForSchoolUserIdentity) // 修改"央厨-学校"学生身份信息 | ||||
r.POST("/updateSelfSupportForSchoolUserIdentity", hdl.UpdateSelfSupportForSchoolUserIdentity) // 修改"自营-学校"学生身份信息 | r.POST("/updateSelfSupportForSchoolUserIdentity", hdl.UpdateSelfSupportForSchoolUserIdentity) // 修改"自营-学校"学生身份信息 | ||||
r.POST("/updateFactoryUserIdentity", hdl.UpdateFactoryUserIdentity) // 修改"工厂"身份信息 | |||||
r.POST("/updateNursingHomeUserIdentity", hdl.UpdateNursingHomeUserIdentity) // 修改"养老院"身份信息 | r.POST("/updateNursingHomeUserIdentity", hdl.UpdateNursingHomeUserIdentity) // 修改"养老院"身份信息 | ||||
} | } |
@@ -40,6 +40,7 @@ require ( | |||||
github.com/golang/protobuf v1.5.2 // indirect | github.com/golang/protobuf v1.5.2 // indirect | ||||
github.com/golang/snappy v0.0.4 // indirect | github.com/golang/snappy v0.0.4 // indirect | ||||
github.com/gookit/color v1.3.6 // indirect | github.com/gookit/color v1.3.6 // indirect | ||||
github.com/jinzhu/copier v0.4.0 // indirect | |||||
github.com/josharian/intern v1.0.0 // indirect | github.com/josharian/intern v1.0.0 // indirect | ||||
github.com/json-iterator/go v1.1.12 // indirect | github.com/json-iterator/go v1.1.12 // indirect | ||||
github.com/kr/text v0.2.0 // indirect | github.com/kr/text v0.2.0 // indirect | ||||