Decouple aftersales customers from company management

This commit is contained in:
Frudrax Cheng
2026-05-28 10:29:17 +08:00
parent 2aab9203a0
commit d1d189528c
5 changed files with 35 additions and 28 deletions
+26 -12
View File
@@ -79,7 +79,32 @@ func TestAftersalesService_Create_GeneratesYYMMDDNNSerial(t *testing.T) {
assert.Equal(t, user.ID, *order.TechnicianID)
database.DB.Unscoped().Delete(order)
database.DB.Unscoped().Where("company_name = ?", "AftersalesSerialCo").Delete(&models.Company{})
}
func TestAftersalesService_Create_DoesNotCreateManagedCompany(t *testing.T) {
user := seedTechnician(t, "aftersales_no_company_tech")
defer database.DB.Unscoped().Delete(&user)
companyName := "AftersalesCustomerOnlyCo"
database.DB.Unscoped().Where("company_name = ?", companyName).Delete(&models.Company{})
svc := AftersalesService{}
order, err := svc.Create(models.CreateAftersalesOrderDTO{
CompanyName: companyName,
CompanyAddress: "客户现场地址",
ContactName: "王五",
ContactPhone: "13800001235",
ServiceType: "software",
IssueDescription: "售后客户问题",
}, user.ID)
assert.NoError(t, err)
assert.NotNil(t, order)
defer database.DB.Unscoped().Delete(order)
var count int64
database.DB.Model(&models.Company{}).Where("company_name = ?", companyName).Count(&count)
assert.Equal(t, int64(0), count)
}
func TestAftersalesService_Create_SerialIncrementsWithinDay(t *testing.T) {
@@ -105,7 +130,6 @@ func TestAftersalesService_Create_SerialIncrementsWithinDay(t *testing.T) {
database.DB.Unscoped().Delete(first)
database.DB.Unscoped().Delete(second)
database.DB.Unscoped().Where("company_name = ?", "SeqCo").Delete(&models.Company{})
}
func TestAftersalesService_SubmitForConfirmation_OwnerOnly(t *testing.T) {
@@ -116,7 +140,6 @@ func TestAftersalesService_SubmitForConfirmation_OwnerOnly(t *testing.T) {
order := createOrderFor(t, owner, "13800003000")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
@@ -141,7 +164,6 @@ func TestAftersalesService_SubmitForConfirmation_RejectsClosed(t *testing.T) {
order := createOrderFor(t, owner, "13800004000")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
@@ -163,7 +185,6 @@ func TestAftersalesService_PublicQuery_MasksPhoneAndSetsScannedAt(t *testing.T)
order := createOrderFor(t, owner, "13800005000")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
view, err := svc.PublicQuery(order.SerialNumber)
@@ -186,7 +207,6 @@ func TestAftersalesService_CustomerConfirm_Authorize(t *testing.T) {
order := createOrderFor(t, owner, "13800006789")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
_, _ = svc.SubmitForConfirmation(order.SerialNumber, models.SubmitForConfirmationDTO{
@@ -217,7 +237,6 @@ func TestAftersalesService_CustomerConfirm_AuthorizeRejectsEmptySignature(t *tes
order := createOrderFor(t, owner, "13800007777")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
_, _ = svc.SubmitForConfirmation(order.SerialNumber, models.SubmitForConfirmationDTO{
@@ -239,7 +258,6 @@ func TestAftersalesService_CustomerConfirm_AuthorizeRejectsInvalidSignature(t *t
order := createOrderFor(t, owner, "13800007788")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
_, _ = svc.SubmitForConfirmation(order.SerialNumber, models.SubmitForConfirmationDTO{
@@ -271,7 +289,6 @@ func TestAftersalesService_CustomerConfirm_RejectRequiresReason(t *testing.T) {
order := createOrderFor(t, owner, "13800008877")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
_, _ = svc.SubmitForConfirmation(order.SerialNumber, models.SubmitForConfirmationDTO{
@@ -293,7 +310,6 @@ func TestAftersalesService_CustomerConfirm_RejectIncrementsCount(t *testing.T) {
order := createOrderFor(t, owner, "13800008888")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
_, _ = svc.SubmitForConfirmation(order.SerialNumber, models.SubmitForConfirmationDTO{
@@ -328,7 +344,6 @@ func TestAftersalesService_CustomerConfirm_RejectsWrongStatus(t *testing.T) {
order := createOrderFor(t, owner, "13800009999")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
// 未提交客户确认,工单仍是 created,应该拒绝
@@ -345,7 +360,6 @@ func TestAftersalesService_ForceClose_AdminOverride(t *testing.T) {
order := createOrderFor(t, owner, "13800001111")
defer database.DB.Unscoped().Delete(order)
defer database.DB.Unscoped().Where("company_name = ?", order.CompanyName).Delete(&models.Company{})
svc := AftersalesService{}
updated, err := svc.ForceClose(order.SerialNumber)