Initial commit

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:57:10 +08:00
co-authored by Claude Opus 5
commit 8679200f41
1897 changed files with 257900 additions and 0 deletions
@@ -0,0 +1,221 @@
package officialwebsiteser
import (
"time"
"91porn-server/common/stderr"
officialwebsitemod "91porn-server/models/v/officialWebsitemod"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// ─────────────────────────────────────────
// Service functions
// ─────────────────────────────────────────
func ListRecruitForm(req *RecruitFormListReq) (int64, []officialwebsitemod.RecruitForm, error) {
filter, err := req.Query()
if err != nil {
return 0, nil, err
}
mod := &officialwebsitemod.RecruitForm{}
total, err := mod.Count(filter)
if err != nil {
return 0, nil, err
}
list, err := mod.FindMany(filter, req.FindOptions())
if err != nil {
return 0, nil, err
}
return total, list, nil
}
func CreateRecruitForm(req *ModifyRecruitFormReq) (officialwebsitemod.RecruitForm, error) {
data := req.toMod()
if err := data.Create(); err != nil {
return officialwebsitemod.RecruitForm{}, err
}
return data, nil
}
func UpdateRecruitForm(req *ModifyRecruitFormReq) (resp CountResp, err error) {
if req == nil || req.ID == "" {
return
}
id, parseErr := primitive.ObjectIDFromHex(req.ID)
if parseErr != nil || isNilObjectID(id) {
err = stderr.ErrParamError
return
}
mod := &officialwebsitemod.RecruitForm{}
if err = mod.FindOne(officialwebsitemod.M{"_id": id}); err != nil {
return
}
var update officialwebsitemod.M
if update, err = req.toM(); err != nil || update == nil {
return
}
resp.Count, err = mod.Update(officialwebsitemod.M{"_id": id}, update)
return
}
func DeleteRecruitForm(req *DeleteRecruitFormReq) (data DeleteRecruitFormResp, err error) {
if req == nil {
err = stderr.CodeEmptyData
return
}
var id primitive.ObjectID
if id, err = primitive.ObjectIDFromHex(req.ID); err != nil {
return
}
if isNilObjectID(id) {
err = stderr.ErrParamError
return
}
mod := &officialwebsitemod.RecruitForm{}
data.Count, err = mod.Delete(officialwebsitemod.M{"_id": id})
return
}
// ─────────────────────────────────────────
// Mutation (Modify) types
// ─────────────────────────────────────────
type ModifyRecruitFormReq struct {
ID string `json:"id" form:"id"`
Name *string `json:"name"`
Sex *int `json:"sex"`
Age *int `json:"age"`
Country *string `json:"country"`
Address *string `json:"address"`
Contact *[]officialwebsitemod.ContactInfo `json:"contact"`
Description *string `json:"description"`
}
// ─────────────────────────────────────────
// Delete types
// ─────────────────────────────────────────
type DeleteRecruitFormReq struct {
ID string `json:"id" form:"id"`
}
type DeleteRecruitFormResp struct {
Count int64 `json:"count"`
}
// ─────────────────────────────────────────
// toMod — ModifyRecruitFormReq → model struct
// ─────────────────────────────────────────
func (req *ModifyRecruitFormReq) toMod() officialwebsitemod.RecruitForm {
if req == nil {
return officialwebsitemod.RecruitForm{}
}
data := officialwebsitemod.RecruitForm{
Name: stringOrZero(req.Name),
Sex: intOrZero(req.Sex),
Age: intOrZero(req.Age),
Country: stringOrZero(req.Country),
Address: stringOrZero(req.Address),
Description: stringOrZero(req.Description),
}
if req.Contact != nil {
data.Contact = *req.Contact
}
return data
}
// ─────────────────────────────────────────
// toM — ModifyRecruitFormReq → officialwebsitemod.M
// ─────────────────────────────────────────
func (req *ModifyRecruitFormReq) toM() (officialwebsitemod.M, error) {
if req == nil {
return nil, stderr.CodeEmptyData
}
set := officialwebsitemod.M{}
if req.Name != nil {
set["name"] = *req.Name
}
if req.Sex != nil {
set["sex"] = *req.Sex
}
if req.Age != nil {
set["age"] = *req.Age
}
if req.Country != nil {
set["country"] = *req.Country
}
if req.Address != nil {
set["address"] = *req.Address
}
if req.Contact != nil {
set["contact"] = *req.Contact
}
if req.Description != nil {
set["description"] = *req.Description
}
if len(set) == 0 {
return nil, nil
}
set["updatedAt"] = time.Now().UTC()
return officialwebsitemod.M{"$set": set}, nil
}
// ─────────────────────────────────────────
// List types
// ─────────────────────────────────────────
type RecruitFormListReq struct {
PageReq
ID *string `form:"id"`
Name *string `form:"name"`
Sex *int `form:"sex"`
Age *int `form:"age"`
Country *string `form:"country"`
Address *string `form:"address"`
Contact *string `form:"contact"`
Description *string `form:"description"`
CreatedAt *time.Time `form:"createdAt"`
UpdatedAt *time.Time `form:"updatedAt"`
DeletedAt *time.Time `form:"deletedAt"`
}
func (r *RecruitFormListReq) Query() (officialwebsitemod.M, error) {
filter := officialwebsitemod.M{}
if err := parseObjectIDFilter(filter, "_id", r.ID); err != nil {
return nil, err
}
if r.Name != nil {
filter["name"] = *r.Name
}
if r.Sex != nil {
filter["sex"] = *r.Sex
}
if r.Age != nil {
filter["age"] = *r.Age
}
if r.Country != nil {
filter["country"] = *r.Country
}
if r.Address != nil {
filter["address"] = *r.Address
}
if err := parseJSONFilter(filter, "contact", r.Contact, &[]officialwebsitemod.ContactInfo{}); err != nil {
return nil, err
}
if r.Description != nil {
filter["description"] = *r.Description
}
if r.CreatedAt != nil {
filter["createdAt"] = *r.CreatedAt
}
if r.UpdatedAt != nil {
filter["updatedAt"] = *r.UpdatedAt
}
if r.DeletedAt != nil {
filter["deletedAt"] = *r.DeletedAt
}
return filter, nil
}