feat:完善信息
This commit is contained in:
@ -60,7 +60,7 @@ func (a *Account) Register(c *gin.Context) {
|
||||
api.APIResponse(err, data)(c)
|
||||
}
|
||||
|
||||
func (a *Account) BindMobile() {
|
||||
func (a *Account) BindMobile(c *gin.Context) {
|
||||
//account.NewOther()().BindMobile()
|
||||
}
|
||||
|
||||
@ -72,6 +72,6 @@ func (a *Account) Logout(c *gin.Context) {
|
||||
if handle != nil {
|
||||
session = handle.(*service.SessionEnterprise)
|
||||
}
|
||||
err := account2.NewLogout()(session, api.GetLocal()(c).(uint64)).Launch()
|
||||
err := account2.NewLogout()(session).Launch()
|
||||
api.APIResponse(err)(c)
|
||||
}
|
||||
|
25
app/api/enterprise/api/identity.go
Normal file
25
app/api/enterprise/api/identity.go
Normal file
@ -0,0 +1,25 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"SciencesServer/app/api/enterprise/controller/identity"
|
||||
"SciencesServer/app/basic/api"
|
||||
"SciencesServer/app/service"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type Identity struct{}
|
||||
|
||||
func (*Identity) Expert(c *gin.Context) {
|
||||
form := &struct {
|
||||
Name string `json:"name" form:"name"`
|
||||
Mobile string `json:"mobile" form:"mobile"`
|
||||
api.PageForm
|
||||
}{}
|
||||
if err := api.Bind(form)(c); err != nil {
|
||||
api.APIFailure(err.(error))(c)
|
||||
return
|
||||
}
|
||||
data, err := identity.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)).
|
||||
Expert(form.Name, form.Mobile, form.Page, form.PageSize)
|
||||
api.APIResponse(err, data)(c)
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
package api
|
||||
|
||||
type Tenant struct{}
|
@ -42,7 +42,7 @@ func (a *User) Detail(c *gin.Context) {
|
||||
api.APIResponse(err, data)(c)
|
||||
}
|
||||
|
||||
func (a *Tenant) SettledCompany(c *gin.Context) {
|
||||
func (a *User) SettledCompany(c *gin.Context) {
|
||||
form := &struct {
|
||||
userSettledForm
|
||||
}{}
|
||||
@ -57,7 +57,7 @@ func (a *Tenant) SettledCompany(c *gin.Context) {
|
||||
api.APIResponse(err)(c)
|
||||
}
|
||||
|
||||
func (a *Tenant) SettledExpert(c *gin.Context) {
|
||||
func (a *User) SettledExpert(c *gin.Context) {
|
||||
form := &struct {
|
||||
userSettledForm
|
||||
config.IdentityForExpert
|
||||
@ -67,12 +67,13 @@ func (a *Tenant) SettledExpert(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
err := user2.NewSettled()(api.GetSession()(c).(*service.SessionEnterprise)).Expert(&user2.SettledParams{
|
||||
ID: form.Convert(), Area: form.Area, Introduce: form.Introduce, Industry: form.Industry, Keywords: form.Keywords,
|
||||
ID: form.Convert(), Area: form.Area, Introduce: form.Introduce, Industry: form.Industry,
|
||||
Keywords: form.Keywords,
|
||||
}, &form.IdentityForExpert)
|
||||
api.APIResponse(err)(c)
|
||||
}
|
||||
|
||||
func (a *Tenant) SettledResearch(c *gin.Context) {
|
||||
func (a *User) SettledResearch(c *gin.Context) {
|
||||
form := &struct {
|
||||
userSettledForm
|
||||
config.IdentityForResearch
|
||||
@ -88,7 +89,7 @@ func (a *Tenant) SettledResearch(c *gin.Context) {
|
||||
api.APIResponse(err)(c)
|
||||
}
|
||||
|
||||
func (a *Tenant) SettledLaboratory(c *gin.Context) {
|
||||
func (a *User) SettledLaboratory(c *gin.Context) {
|
||||
form := &struct {
|
||||
userSettledForm
|
||||
config.IdentityForLaboratory
|
||||
@ -117,7 +118,7 @@ func (a *User) SwitchIdentity(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (a *User) Back(c *gin.Context) {
|
||||
data, err := user2.NewBack()(api.GetSession()(c).(*service.SessionEnterprise)).List()
|
||||
data, err := user2.NewBank()(api.GetSession()(c).(*service.SessionEnterprise)).List()
|
||||
api.APIResponse(err, data)
|
||||
}
|
||||
|
||||
@ -128,11 +129,11 @@ func (a *User) BackBind(c *gin.Context) {
|
||||
api.APIFailure(err.(error))(c)
|
||||
return
|
||||
}
|
||||
err := user2.NewBack()(api.GetSession()(c).(*service.SessionEnterprise)).Bind(&user2.BackParams{
|
||||
err := user2.NewBank()(api.GetSession()(c).(*service.SessionEnterprise)).Bind(&user2.BankParams{
|
||||
Name: form.Name,
|
||||
IDCard: form.IDCard,
|
||||
BackCard: form.BackCard,
|
||||
BackName: form.BackName,
|
||||
BankCard: form.BackCard,
|
||||
BankName: form.BackName,
|
||||
}, form.Captcha)
|
||||
api.APIResponse(err)
|
||||
}
|
||||
@ -144,6 +145,6 @@ func (a *User) BackUnbind(c *gin.Context) {
|
||||
api.APIFailure(err.(error))(c)
|
||||
return
|
||||
}
|
||||
err := user2.NewBack()(api.GetSession()(c).(*service.SessionEnterprise)).Unbind(form.Convert())
|
||||
err := user2.NewBank()(api.GetSession()(c).(*service.SessionEnterprise)).Unbind(form.Convert())
|
||||
api.APIResponse(err)
|
||||
}
|
||||
|
@ -8,18 +8,19 @@ import (
|
||||
|
||||
type Logout struct {
|
||||
*service.SessionEnterprise
|
||||
local uint64
|
||||
}
|
||||
|
||||
type LogoutHandle func(enterprise *service.SessionEnterprise, local uint64) *Logout
|
||||
type LogoutHandle func(enterprise *service.SessionEnterprise) *Logout
|
||||
|
||||
func (c *Logout) Launch() error {
|
||||
service.Publish(config.EventForRedisHashDestroy, config.RedisKeyForAccount, utils.UintToString(c.UID))
|
||||
if c.UID > 0 {
|
||||
service.Publish(config.EventForRedisHashDestroy, config.RedisKeyForAccount, utils.UintToString(c.UID))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewLogout() LogoutHandle {
|
||||
return func(enterprise *service.SessionEnterprise, local uint64) *Logout {
|
||||
return &Logout{enterprise, local}
|
||||
return func(enterprise *service.SessionEnterprise) *Logout {
|
||||
return &Logout{enterprise}
|
||||
}
|
||||
}
|
||||
|
@ -13,8 +13,8 @@ func (c *Config) Basic() {
|
||||
}
|
||||
|
||||
// Config 配置信息
|
||||
func (c *Config) Config() {
|
||||
|
||||
func (c *Config) Config() map[string]interface{} {
|
||||
return config2.SystemConfig
|
||||
}
|
||||
|
||||
// Identity 身份信息
|
||||
|
@ -1,7 +1,9 @@
|
||||
package identity
|
||||
|
||||
import (
|
||||
"SciencesServer/app/api/enterprise/model"
|
||||
"SciencesServer/app/api/manage/controller"
|
||||
model2 "SciencesServer/app/common/model"
|
||||
"SciencesServer/app/service"
|
||||
)
|
||||
|
||||
@ -12,12 +14,46 @@ type Instance struct {
|
||||
|
||||
type InstanceHandle func(enterprise *service.SessionEnterprise, local string) *Instance
|
||||
|
||||
type (
|
||||
// InstanceForExpert 专家信息
|
||||
InstanceForExpert struct {
|
||||
*model.UserManageForExpert
|
||||
ID string `json:"id"`
|
||||
}
|
||||
)
|
||||
|
||||
// Expert 专家列表
|
||||
func (c *Instance) Expert(name, mobile string, page, pageSize int) (*controller.ReturnPages, error) {
|
||||
return nil, nil
|
||||
mUserManage := model.NewUserManage()
|
||||
|
||||
where := make([]*model2.ModelWhere, 0)
|
||||
|
||||
if name != "" {
|
||||
where = append(where, model2.NewWhereLike("m.name", name))
|
||||
}
|
||||
if mobile != "" {
|
||||
where = append(where, model2.NewWhereLike("u.mobile", mobile))
|
||||
}
|
||||
var count int64
|
||||
|
||||
out, err := mUserManage.Expert(page, pageSize, &count, where...)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
list := make([]*InstanceForExpert, 0)
|
||||
|
||||
for _, v := range out {
|
||||
mUserManage.ID = v.ID
|
||||
list = append(list, &InstanceForExpert{
|
||||
UserManageForExpert: v, ID: mUserManage.GetEncodeID(),
|
||||
})
|
||||
}
|
||||
return &controller.ReturnPages{Data: list, Count: count}, nil
|
||||
}
|
||||
|
||||
func NewIdentity() InstanceHandle {
|
||||
func NewInstance() InstanceHandle {
|
||||
return func(enterprise *service.SessionEnterprise, local string) *Instance {
|
||||
return &Instance{
|
||||
SessionEnterprise: enterprise,
|
||||
|
@ -9,37 +9,37 @@ import (
|
||||
"errors"
|
||||
)
|
||||
|
||||
type Back struct {
|
||||
type Bank struct {
|
||||
*service.SessionEnterprise
|
||||
}
|
||||
|
||||
type BackHandle func(enterprise *service.SessionEnterprise) *Back
|
||||
type BankHandle func(enterprise *service.SessionEnterprise) *Bank
|
||||
|
||||
type (
|
||||
// BackInfo 银行卡信息
|
||||
BackInfo struct {
|
||||
// BankInfo 银行卡信息
|
||||
BankInfo struct {
|
||||
ID string `json:"id"`
|
||||
*model2.UserManageBank
|
||||
}
|
||||
// BackParams 银行卡参数信息
|
||||
BackParams struct {
|
||||
Name, IDCard, BackCard, BackName string
|
||||
// BankParams 银行卡参数信息
|
||||
BankParams struct {
|
||||
Name, IDCard, BankCard, BankName string
|
||||
}
|
||||
)
|
||||
|
||||
// checkIDCard 验证身份证号
|
||||
func (c *BackParams) checkIDCard() bool {
|
||||
func (c *BankParams) checkIDCard() bool {
|
||||
return utils.ValidateIDCard(c.IDCard)
|
||||
}
|
||||
|
||||
// checkBankCard 验证银行卡号
|
||||
func (c *BackParams) checkBankCard() bool {
|
||||
func (c *BankParams) checkBankCard() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// List 列表信息
|
||||
func (c *Back) List() ([]*BackInfo, error) {
|
||||
mUserManageBack := model.NewUserManageBank()
|
||||
func (c *Bank) List() ([]*BankInfo, error) {
|
||||
mUserManageBank := model.NewUserManageBank()
|
||||
|
||||
out := make([]*model2.UserManageBank, 0)
|
||||
|
||||
@ -47,19 +47,19 @@ func (c *Back) List() ([]*BackInfo, error) {
|
||||
Where: model2.NewWhere("uid", c.ManageUID),
|
||||
Order: model2.NewOrder("is_default", model2.OrderModeToDesc),
|
||||
}}
|
||||
if err := model2.Find(mUserManageBack.UserManageBank, &out, where...); err != nil {
|
||||
if err := model2.Find(mUserManageBank.UserManageBank, &out, where...); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
list := make([]*BackInfo, 0)
|
||||
list := make([]*BankInfo, 0)
|
||||
|
||||
for _, v := range out {
|
||||
list = append(list, &BackInfo{ID: v.GetEncodeID(), UserManageBank: v})
|
||||
list = append(list, &BankInfo{ID: v.GetEncodeID(), UserManageBank: v})
|
||||
}
|
||||
return list, nil
|
||||
}
|
||||
|
||||
// Bind 绑定
|
||||
func (c *Back) Bind(params *BackParams, captcha string) error {
|
||||
func (c *Bank) Bind(params *BankParams, captcha string) error {
|
||||
pass, err := handle.NewCaptcha().Validate(&handle.CaptchaSms{
|
||||
Mobile: c.Mobile, Captcha: captcha,
|
||||
})
|
||||
@ -75,48 +75,48 @@ func (c *Back) Bind(params *BackParams, captcha string) error {
|
||||
if !params.checkBankCard() {
|
||||
return errors.New("银行卡信息错误")
|
||||
}
|
||||
mUserManageBack := model.NewUserManageBank()
|
||||
mUserManageBank := model.NewUserManageBank()
|
||||
|
||||
var count int64
|
||||
|
||||
if err = model2.Count(mUserManageBack.UserManageBank, &count, model2.NewWhere("back_card", params.BackCard)); err != nil {
|
||||
if err = model2.Count(mUserManageBank.UserManageBank, &count, model2.NewWhere("bank_card", params.BankCard)); err != nil {
|
||||
return err
|
||||
} else if count > 0 {
|
||||
return errors.New("当前银行卡已被注册")
|
||||
}
|
||||
mUserManageBack.UID = c.ManageUID
|
||||
mUserManageBack.Name = params.Name
|
||||
mUserManageBack.IDCard = params.IDCard
|
||||
mUserManageBack.BankCard = params.BackCard
|
||||
mUserManageBack.BackName = params.BackName
|
||||
mUserManageBank.UID = c.ManageUID
|
||||
mUserManageBank.Name = params.Name
|
||||
mUserManageBank.IDCard = params.IDCard
|
||||
mUserManageBank.BankCard = params.BankCard
|
||||
mUserManageBank.BankName = params.BankName
|
||||
|
||||
if err = model2.Count(mUserManageBack.UserManageBank, &count, model2.NewWhere("uid", c.ManageUID)); err != nil {
|
||||
if err = model2.Count(mUserManageBank.UserManageBank, &count, model2.NewWhere("uid", c.ManageUID)); err != nil {
|
||||
return err
|
||||
} else if count <= 0 {
|
||||
mUserManageBack.IsDefault = model2.UserManageBankDefaultForYes
|
||||
mUserManageBank.IsDefault = model2.UserManageBankDefaultForYes
|
||||
}
|
||||
return model2.Create(mUserManageBack.UserManageBank)
|
||||
return model2.Create(mUserManageBank.UserManageBank)
|
||||
}
|
||||
|
||||
// Unbind 解绑,直接删除
|
||||
func (c *Back) Unbind(id uint64) error {
|
||||
mUserManageBack := model.NewUserManageBank()
|
||||
mUserManageBack.ID = id
|
||||
func (c *Bank) Unbind(id uint64) error {
|
||||
mUserManageBank := model.NewUserManageBank()
|
||||
mUserManageBank.ID = id
|
||||
|
||||
isExist, err := model2.FirstField(mUserManageBack.UserManageBank, []string{"id", "uid"})
|
||||
isExist, err := model2.FirstField(mUserManageBank.UserManageBank, []string{"id", "uid"})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
} else if !isExist {
|
||||
return errors.New("操作错误,绑定信息不存在")
|
||||
} else if mUserManageBack.UID != c.ManageUID {
|
||||
} else if mUserManageBank.UID != c.ManageUID {
|
||||
return errors.New("无权限操作")
|
||||
}
|
||||
return model2.Delete(mUserManageBack)
|
||||
return model2.Delete(mUserManageBank)
|
||||
}
|
||||
|
||||
func NewBack() BackHandle {
|
||||
return func(enterprise *service.SessionEnterprise) *Back {
|
||||
return &Back{enterprise}
|
||||
func NewBank() BankHandle {
|
||||
return func(enterprise *service.SessionEnterprise) *Bank {
|
||||
return &Bank{enterprise}
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,50 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"SciencesServer/app/basic/config"
|
||||
"SciencesServer/app/common/model"
|
||||
"SciencesServer/serve/orm"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type UserManage struct {
|
||||
*model.UserManage
|
||||
}
|
||||
|
||||
type (
|
||||
// UserManageForExpert 专家信息
|
||||
UserManageForExpert struct {
|
||||
ID uint64 `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Mobile string `json:"mobile"`
|
||||
}
|
||||
)
|
||||
|
||||
// Expert 专家数据
|
||||
func (m *UserManage) Expert(page, pageSize int, count *int64, where ...*model.ModelWhere) ([]*UserManageForExpert, error) {
|
||||
query := orm.GetDB().Table(m.TableName()+" AS m").
|
||||
Select(strings.Join([]string{"m.id", "m.name", "u.mobile"}, ",")).
|
||||
Joins(fmt.Sprintf("LEFT JOIN %s AS u ON m.uid = u.uuid", model.NewUserInstance().TableName())).
|
||||
Where("m.is_deleted = ?", model.DeleteStatusForNot).
|
||||
Where("m.identity = ?", config.TenantUserIdentityForExpert)
|
||||
|
||||
out := make([]*UserManageForExpert, 0)
|
||||
|
||||
if len(where) > 0 {
|
||||
for _, v := range where {
|
||||
query = query.Where(v.Condition, v.Value)
|
||||
}
|
||||
}
|
||||
if err := query.Count(count).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := query.Order("m.id " + model.OrderModeToDesc).Offset((page - 1) * pageSize).Limit(pageSize).Scan(&out).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// LastChooseInfo 最后一次选中的信息
|
||||
func (m *UserManage) LastChooseInfo(uid uint64) error {
|
||||
_, err := model.FirstField(m.UserManage, []string{"id", "tenant_id", "uuid", "identity"},
|
||||
|
@ -1,64 +0,0 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"SciencesServer/config"
|
||||
"SciencesServer/lib"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type Upload struct{}
|
||||
|
||||
/**
|
||||
* @apiDefine Upload 上传管理
|
||||
*/
|
||||
|
||||
/**
|
||||
* @api {post} /api/upload 上传接口
|
||||
* @apiVersion 1.0.0
|
||||
* @apiName Upload
|
||||
* @apiGroup Upload
|
||||
*
|
||||
* @apiHeader {string} x-token token
|
||||
*
|
||||
* @apiParam {File} file 文件信息
|
||||
*
|
||||
* @apiSuccess (200) {Number} code 成功响应状态码!
|
||||
* @apiSuccess (200) {String} msg 成功提示
|
||||
* @apiSuccess (200) {Object} data 具体信息
|
||||
* @apiSuccess (200) {Number} data.url 文件访问地址
|
||||
* @apiSuccess (200) {String} data.filepath 文件地址
|
||||
* @apiSuccess (200) {String} data.filename 文件名称
|
||||
*
|
||||
* @apiSuccessExample {json} Success response:
|
||||
* HTTPS 200 OK
|
||||
* {
|
||||
* "code": 200
|
||||
* "msg": "ok"
|
||||
* "data":{
|
||||
* "url": "http://192.168.99.185:8010/upload/20210401/ad228811386cb8cd089a9d668d2885cd.png",
|
||||
* "filepath": "/upload/20210401/ad228811386cb8cd089a9d668d2885cd.png",
|
||||
* "filename": "8251863448d7ed13393bf0aae2211272.jpg"
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
func (a *Upload) Upload(c *gin.Context) {
|
||||
file, err := c.FormFile("file")
|
||||
|
||||
if err != nil {
|
||||
APIFailure(err)(c)
|
||||
return
|
||||
}
|
||||
resp := new(lib.UploadHandle)
|
||||
|
||||
if resp, err = lib.Upload(config.SettingInfo.Upload.Path, config.SettingInfo.Upload.Exts, config.SettingInfo.Upload.Size,
|
||||
config.SettingInfo.Upload.Rename).Handle()(file, config.SettingInfo.Domain); err != nil {
|
||||
APIFailure(err)(c)
|
||||
return
|
||||
}
|
||||
if err = c.SaveUploadedFile(file, resp.RelativePath); err != nil {
|
||||
APIFailure(err)(c)
|
||||
return
|
||||
}
|
||||
APISuccess(resp)(c)
|
||||
}
|
13
app/api/website/controller/config.go
Normal file
13
app/api/website/controller/config.go
Normal file
@ -0,0 +1,13 @@
|
||||
package controller
|
||||
|
||||
import "SciencesServer/app/service"
|
||||
|
||||
type Config struct{ *service.Session }
|
||||
|
||||
type ConfigHandle func(session *service.Session) *Config
|
||||
|
||||
func NewConfig() ConfigHandle {
|
||||
return func(session *service.Session) *Config {
|
||||
return &Config{Session: session}
|
||||
}
|
||||
}
|
19
app/api/website/controller/index.go
Normal file
19
app/api/website/controller/index.go
Normal file
@ -0,0 +1,19 @@
|
||||
package controller
|
||||
|
||||
import "SciencesServer/app/service"
|
||||
|
||||
type Index struct {
|
||||
*service.Session
|
||||
local string
|
||||
}
|
||||
|
||||
type IndexHandle func(session *service.Session, local string) *Index
|
||||
|
||||
func NewIndex() IndexHandle {
|
||||
return func(session *service.Session, local string) *Index {
|
||||
return &Index{
|
||||
Session: session,
|
||||
local: local,
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user