feat: update aftersales service types and serial format

This commit is contained in:
Frudrax Cheng
2026-05-28 09:12:01 +08:00
parent 6a48b0624f
commit da02be0a4f
3 changed files with 16 additions and 15 deletions
+6 -6
View File
@@ -55,7 +55,7 @@ func createOrderFor(t *testing.T, user models.User, phone string) *models.Afters
return order
}
func TestAftersalesService_Create_GeneratesYYMMNNSerial(t *testing.T) {
func TestAftersalesService_Create_GeneratesYYMMDDNNSerial(t *testing.T) {
user := seedTechnician(t, "aftersales_create_tech")
defer database.DB.Unscoped().Delete(&user)
@@ -72,7 +72,7 @@ func TestAftersalesService_Create_GeneratesYYMMNNSerial(t *testing.T) {
assert.NoError(t, err)
assert.NotNil(t, order)
assert.True(t, strings.HasPrefix(order.SerialNumber, "zjbf-sh-"))
assert.Len(t, order.SerialNumber, len("zjbf-sh-")+6, "default serial should be 6 digits (YYMMNN)")
assert.Len(t, order.SerialNumber, len("zjbf-sh-")+8, "default serial should be 8 digits (YYMMDDNN)")
assert.Equal(t, WorkOrderStatusCreated, order.WorkOrderStatus)
assert.Equal(t, AuthorizationStatusPending, order.AuthorizationStatus)
assert.NotNil(t, order.TechnicianID)
@@ -82,25 +82,25 @@ func TestAftersalesService_Create_GeneratesYYMMNNSerial(t *testing.T) {
database.DB.Unscoped().Where("company_name = ?", "AftersalesSerialCo").Delete(&models.Company{})
}
func TestAftersalesService_Create_SerialIncrementsWithinMonth(t *testing.T) {
func TestAftersalesService_Create_SerialIncrementsWithinDay(t *testing.T) {
user := seedTechnician(t, "aftersales_seq_tech")
defer database.DB.Unscoped().Delete(&user)
svc := AftersalesService{}
first, err := svc.Create(models.CreateAftersalesOrderDTO{
CompanyName: "SeqCo", CompanyAddress: "addr", ContactName: "A", ContactPhone: "13800002000",
ServiceType: "other", IssueDescription: "issue 1",
ServiceType: "maintenance", IssueDescription: "issue 1",
}, user.ID)
assert.NoError(t, err)
second, err := svc.Create(models.CreateAftersalesOrderDTO{
CompanyName: "SeqCo", CompanyAddress: "addr", ContactName: "A", ContactPhone: "13800002000",
ServiceType: "other", IssueDescription: "issue 2",
ServiceType: "maintenance", IssueDescription: "issue 2",
}, user.ID)
assert.NoError(t, err)
assert.NotEqual(t, first.SerialNumber, second.SerialNumber)
// 第二单的序号应大于第一单(按递增)
// 第二单的序号应大于第一单(按递增)
assert.True(t, second.SerialNumber > first.SerialNumber)
database.DB.Unscoped().Delete(first)