package api import ( "yunyan/comm" "yunyan/pb" "yunyan/utils/license" ) // 批量重置License状态 func (this *apiComp) BatchResetLicenseStatus(session comm.IUserSession, req *pb.ApiBatchResetLicenseStatusReq) (resp *pb.ApiBatchResetLicenseStatusResp, errdata *pb.ErrorData) { resp = &pb.ApiBatchResetLicenseStatusResp{} for _, code := range req.Licenses { if err := this.resetOneLicense(code); err != nil { resp.FailCount++ } else { resp.SuccessCount++ } } return } // resetOneLicense 重置单条 License 到初始状态(复用逻辑,供单条和批量共享) func (this *apiComp) resetOneLicense(licenseCode string) error { pid, err := license.ProductID(licenseCode) if err != nil { err = nil pid = uint16(45058) } model, err := this.module.model.factoryDevic(uint32(pid), licenseCode) if err != nil { return err } wasActivated := model.Uid != "" if wasActivated { if err = this.module.model.deluserdevice(model.Uid); err != nil { return err } } model.Status = 0 model.Uid = "" model.Devicemac = "" model.Usedtime = 0 if err = this.module.model.updatefactoryDevic(uint32(pid), model); err != nil { return err } if wasActivated && model.Productid > 0 { _ = this.module.model.decrProductStatActivated(model.Productid) } return nil }