package service import ( "log" "strconv" "time" "app.yhyue.com/moapp/jybase/common" "bp.jydev.jianyu360.cn/BaseService/userCenter/entity" userCenter "bp.jydev.jianyu360.cn/BaseService/userCenter/rpc/usercenter" ) type EntService struct{} //创建企业用户 /* 根据统一社会信用代码判断 查询是否已存在该企业 若无该企业 创建新企业 存在该企业 老企业更新 */ const ( EXAMINEINGMSG = "该机构正在审核中,无法提交认证申请" APPROVEDMSG = "该机构已完成认证,无法提交认证申请" OKMSG = "提交成功" ) //return error_code error_msg status entid func (this *EntService) CreateEnt(data *userCenter.EntAuthReq) (int64, string, int64, int64) { if data.Name == "" || data.Phone == "" || data.CreditCode == "" { return entity.ErrorCode, "参数异常", entity.ErrorCode, 0 } organType, _ := strconv.Atoi(data.OrganizationType) authType, _ := strconv.Atoi(data.ComPanyType) entinfo := &entity.EntInfo{ Name: data.Name, //企业名称 Phone: data.Phone, //注册人手机号 Code: data.CreditCode, //统一社会信用代码 Createtime: time.Now().Format("2006-01-02 15:04:05"), Organization_type: organType, //机构类型 1投标企业 2招标采购单位 3厂商 4招标代理机构 5经销商 6服务提供商 7其他 Auth_type: authType, // 认证类型 1-事业单位 0-企业 License: data.Business, //营业执照 Official_letter: data.OfficialLetter, //认证公函 Linkman_phone: data.AuthPhone, //联系人手机号 Linkman_name: data.AuthName, //联系人姓名 AreaNumber: data.AreaNumber, // Frozen_status: 1, Auth_status: 0, Audit_status: 1, Mysql: entity.Mysql, } //存在统一社会信用代码 r := entity.Mysql.SelectBySql(`select id,audit_status,auth_status,name,phone from entniche_info where code =?`, data.CreditCode) if r != nil && len(*r) > 0 { for _, v := range *r { id, _ := v["id"].(int64) audit_status, _ := v["audit_status"].(int64) auth_status, _ := v["auth_status"].(int64) ent_name, _ := v["name"].(string) phone, _ := v["phone"].(string) if audit_status == 1 { return entity.ErrorCode, EXAMINEINGMSG, entity.ErrorCode, 0 } if auth_status == 1 { //已认证 list := entity.Mysql.SelectBySql(`select * from entniche_user where ent_id =? and phone =?`, id, entinfo.Phone) if len(*list) <= 0 { return entity.ErrorCode, APPROVEDMSG, entity.ErrorCode, 0 } // if ent_name != entinfo.Name { //企业名称不同、统一社会信用代码相同 return entity.ErrorCode, APPROVEDMSG, entity.ErrorCode, 0 } } entinfo.Id = int(id) entinfo.Phone = phone //更换注册人手机号为管理员手机号 if entinfo.Update() { return entity.SuccessCode, OKMSG, 1, int64(entinfo.Id) } } } //不存在统一社会信用代码 r = entity.Mysql.SelectBySql(`select id,audit_status,auth_status,name,phone from entniche_info where id =?`, data.EntId) if r != nil && len(*r) > 0 { for _, v := range *r { id, _ := v["id"].(int64) audit_status, _ := v["audit_status"].(int64) auth_status, _ := v["auth_status"].(int64) ent_name, _ := v["name"].(string) phone, _ := v["phone"].(string) //该企业下员工 可以重新认证 if ent_name != entinfo.Name { //企业名称不同 创建全新企业 if ok, entid := entinfo.Add(); ok { return entity.SuccessCode, OKMSG, 1, entid } } if audit_status == 1 { return entity.ErrorCode, EXAMINEINGMSG, entity.ErrorCode, 0 } if auth_status == 1 { //已认证 list := entity.Mysql.SelectBySql(`select * from entniche_user where ent_id =? and phone =?`, id, entinfo.Phone) if len(*list) <= 0 { return entity.ErrorCode, APPROVEDMSG, entity.ErrorCode, 0 } } entinfo.Id = int(id) entinfo.Phone = phone //更换注册人手机号为管理员手机号 if entinfo.Update() { return entity.SuccessCode, OKMSG, 1, int64(entinfo.Id) } } } if ok, id := entinfo.Add(); ok { return entity.SuccessCode, OKMSG, 1, id } return entity.ErrorCode, "", entity.ErrorCode, 0 } //机构审核 func (this *EntService) Examinet(data *userCenter.ExamineReq) (int64, string, int64) { if data.EntId == 0 || data.ExamineId == "" { return -1, "参数异常", 0 } info := &entity.Examine{ ExamineId: data.ExamineId, EntId: data.EntId, Reason: data.Reason, AuthType: data.AuthType, AuditUser: data.AuditUser, Mysql: entity.Mysql, ResourceLib: entity.ResourceLib, } if info.EntExamine() { return 1, "", 0 } //修改状态 return -1, "修改失败", -1 } //企业列表 func (this *EntService) EntList(data *userCenter.EntListReq) (int64, string, *userCenter.EntData) { info := &entity.List{ Name: data.Name, AuthStatus: data.AuthStatus, PageNum: data.PageNum, PageSize: data.PageSize, CreditCode: data.CreditCode, CreateStartTime: data.CreateStartTime, CreateEndTime: data.CreateEndTime, ValidStartTime: data.ValidStartTime, ValidEndTime: data.ValidEndTime, FrozenStatus: data.FrozenStatus, RegPhone: data.RegPhone, AuthPhone: data.AuthPhone, Mysql: entity.Mysql, } r, count := info.List() pageSize := common.If(data.PageSize != "", data.PageSize, "10").(string) i_pageSize, _ := strconv.Atoi(pageSize) list := []*userCenter.EntList{} for _, v := range *r { log.Println(v) list = append(list, &userCenter.EntList{ Id: common.Int64All(v["id"]), //机构id ComPanyType: common.Int64All(v["comPanyType"]), // 机构性质 1企业 2党政机关事业单位及其他 Name: common.ObjToString(v["name"]), //机构名称 OrganizationType: common.Int64All(v["organizationType"]), //机构类型 1企业 2党政机关事业单位及其他 Createtime: common.ObjToString(v["createTime"]), //创建时间 ValidTime: common.ObjToString(v["validTime"]), //有效截至日期 AuthStatus: common.Int64All(v["authStatus"]), //认证状态 FrozenStatus: common.Int64All(v["frozenStatus"]), }) } return 0, "", &userCenter.EntData{ Count: count, PageSize: int64(i_pageSize), List: list, } } //审核列表 func (this *EntService) ExamineList(data *userCenter.ExamineListReq) (int64, string, *userCenter.ExamineListData) { info := &entity.ExamineList{ Name: data.Name, AuthPhone: data.AuthPhone, RegPhone: data.RegPhone, AuthType: data.AuthType, //审核状态 1:待审核 2:审核通过 3:审核不通过 AuthStartTime: data.AuthStartTime, //申请开始时间 AuthEndTime: data.AuthEndTime, //申请结束时间 PageNum: data.PageNum, //页码 PageSize: data.PageSize, //每页展示条数 Mysql: entity.Mysql, } r, count := info.List() pageSize := common.If(data.PageSize != "", data.PageSize, "10").(string) i_pageSize, _ := strconv.Atoi(pageSize) list := []*userCenter.ExamineList{} for _, v := range *r { list = append(list, &userCenter.ExamineList{ Id: common.Int64All(v["id"]), EntId: common.Int64All(v["entId"]), ComPanyType: common.Int64All(v["companyType"]), // 机构性质 1企业 2党政机关事业单位及其他 Name: common.ObjToString(v["name"]), //机构名称 CreditCode: common.ObjToString(v["creditCode"]), //统一社会信用代码 AuthPhone: common.ObjToString(v["authPhone"]), //联系人手机号 ApplyTime: common.ObjToString(v["authTime"]), //申请时间戳 AuthType: common.Int64All(v["authStatus"]), //审核状态 RegPhone: common.ObjToString(v["regPhone"]), }) } return 0, "", &userCenter.ExamineListData{ Count: count, PageSize: int64(i_pageSize), List: list, } } func (this *EntService) CheckEnt(data *userCenter.CheckEntReq) (int64, int64, string, int64) { info := &entity.CheckEnt{ EntId: data.EntId, Mysql: entity.Mysql, } authStatus, frozenStatus, msg := info.Check() return authStatus, frozenStatus, msg, common.Int64All(common.If(msg == "", entity.SuccessCode, entity.ErrorCode)) } //企业信息 func (this *EntService) Info(data *userCenter.CheckEntReq) (int64, string, *userCenter.EntInfoData) { info := &entity.CheckEnt{ EntId: data.EntId, Mysql: entity.Mysql, } rdata := info.Info() entInfoData := &userCenter.EntInfoData{ Name: rdata.Name, OrganizationType: rdata.OrganizationType, CreditCode: rdata.CreditCode, CompanyType: rdata.CompanyType, AreaNumber: rdata.AreaNumber, Business: rdata.Business, OfficialLetter: rdata.OfficialLetter, AuthStartTime: rdata.AuthStartTime, AuthEndTime: rdata.AuthEndTime, ForzenStatus: rdata.ForzenStatus, AuthState: rdata.AuthState, ContactPerson: rdata.ContactPerson, ContactPhone: rdata.ContactPhone, AuthType: rdata.AuthType, } return 0, "", entInfoData } func (this *EntService) UpdateEnt(data *userCenter.EntUpdateReq) (int64, string, int64) { info := &entity.UpdateEnt{ EntId: data.EntId, UpdateType: data.UpdateType, Mysql: entity.Mysql, ResourceLib: entity.ResourceLib, } status, msg := info.UpdateEnt() return 0, msg, status } func (this *EntService) ExamineInfo(data *userCenter.CheckExamineReq) (int64, string, *userCenter.EntInfoData) { info := &entity.ExamineInfo{ ExamineId: data.ExamineId, Mysql: entity.Mysql, } rdata := info.Info() entInfoData := &userCenter.EntInfoData{ Name: rdata.Name, OrganizationType: rdata.OrganizationType, CreditCode: rdata.CreditCode, CompanyType: rdata.CompanyType, AreaNumber: rdata.AreaNumber, Business: rdata.Business, OfficialLetter: rdata.OfficialLetter, AuthState: rdata.AuthState, ContactPerson: rdata.ContactPerson, ContactPhone: rdata.ContactPhone, RegPhone: rdata.RegPhone, AuthTime: rdata.AuthTime, AuthReason: rdata.AuthReason, AuditUser: rdata.AuditUser, AuditTime: rdata.AuditTime, } return 0, "", entInfoData }