123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379 |
- package platform
- import (
- "errors"
- "go-nc/configs/global"
- "go-nc/internal/utils"
- "go-nc/model"
- "go-nc/model/common"
- "strconv"
- "github.com/gin-gonic/gin"
- "github.com/jinzhu/copier"
- )
- // 获取客户列表
- func GetCustomerList(c *gin.Context) {
- type Param struct {
- Name string `json:"name"`
- common.Pagination
- }
- var param Param
- param.Pagination = common.NewPagination()
- if err := c.ShouldBindJSON(¶m); err != nil {
- c.Error(errors.New("缺少参数:" + err.Error()))
- return
- }
- // 查询总记录数
- var total int64
- if err := global.App.DB.Where("name LIKE ? AND user_type = 2", "%"+param.Name+"%").Model(&model.Sys_user{}).Count(&total).Error; err != nil {
- c.Error(err)
- return
- }
- // 使用分页查询
- var dbList []model.Sys_user
- if err := global.App.DB.Where("name LIKE ? AND user_type = 2", "%"+param.Name+"%").
- Limit(param.PageSize).
- Offset((param.Current - 1) * param.PageSize).
- Find(&dbList).Error; err != nil {
- c.Error(err)
- return
- }
- // 序列化
- records := make([]interface{}, len(dbList))
- for i, user := range dbList {
- user.Password = ""
- records[i] = user
- }
- data := common.BuildPagination(records, param.Current, param.PageSize, total)
- c.Set("res_data", data)
- }
- // 添加客户
- func AddCustomer(c *gin.Context) {
- type Param struct {
- Username string `json:"username" validate:"required"` // 账号
- State string `json:"state" validate:"required"` // 状态
- Name string `json:"name" validate:"required"` // 姓名
- Password string `json:"password" validate:"required"` // 密码
- UserType string `json:"userType"`
- // 收获地址
- Phone string `json:"phone" validate:"required"` // 手机
- Email string `json:"email" validate:"required"` // 邮箱
- Addr string `json:"addr" validate:"required"` // 地址
- Zip string `json:"zip" validate:"required"` // 邮编
- Note string `json:"note" validate:"required"` // 备注
- // 短信通知
- Sms string `json:"sms" validate:"required"` // 短信
- SMSSignature string `json:"smsSignature" validate:"required"` // 短信签名
- LoginSms string `json:"loginSms" validate:"required"` // 登录短信模板
- WarnSms string `json:"warnSms" validate:"required"` // 警告模板
- Amount float64 `json:"amount" validate:"required"` // 余额
- // 发票信息
- InvoiceTitle string `json:"invoiceTitle" validate:"required"` // 发票抬头
- InvoiceType string `json:"invoiceType" validate:"required"` // 发票类型
- InvoiceAddr string `json:"invoiceAddr" validate:"required"` // 发票地址
- InvoiceZip string `json:"invoiceZip" validate:"required"` // 发票邮编
- InvoiceEmail string `json:"invoiceEmail" validate:"required"` // 发票邮箱
- // 银行信息
- BankName string `json:"bankName" validate:"required"` // 银行名称
- BankAccount string `json:"bankAccount" validate:"required"` // 银行账号
- BankBranch string `json:"bankBranch" validate:"required"` // 开户支行
- // 营业执照
- BusinessLicense string `json:"businessLicense" validate:"required"` // 营业执照
- // 税务登记复印件
- TaxRegistrationCertificate string `json:"taxRegistrationCertificate" validate:"required"` // 税务登记复印件
- // 一般纳税人认证资格复印件
- TaxpayerQualification string `json:"taxpayerQualification" validate:"required"` // 一般纳税人认证资格复印件
- AmountWarn int64 `json:"amountWarn" validate:"required"` // 余额预警
- ArriveWarn int64 `json:"arriveWarn" validate:"required"` // 达量预警
- ArriveStop int64 `json:"arriveStop" validate:"required"` // 达量停机
- ArriveNetwork int64 `json:"arriveNetwork" validate:"required"` // 达量网络
- ArriveStopOperation string `json:"arriveStopOperation" validate:"required"` // 达量停机操作
- ArriveNetworkOperation string `json:"arriveStopNetwork" validate:"required"` // 达量网络操作
- WarnPhone string `json:"warnPhone" validate:"required"` // 预警手机号
- WarnEmail string `json:"warnEmail" validate:"required"` // 预警邮箱
- }
- var param Param
- if err := c.ShouldBindJSON(¶m); err != nil {
- c.Error(errors.New("缺少参数!" + err.Error()))
- return
- }
- err := utils.ValidateStruct(param)
- if err != nil {
- c.Error(err)
- return
- }
- param.UserType = "2"
- // 创建用户&密码加密
- pwd := utils.EncryptDES_ECB(param.Password, "limingYa")
- param.Password = pwd
- var user model.Sys_user
- copier.Copy(&user, ¶m)
- // 事务操作
- tx := global.App.DB.Begin()
- // 添加用户
- if err := tx.Create(&user).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 添加用户角色关系
- var userRoleList model.Sys_user_role
- userRoleList.UserId = user.Id
- userRoleList.RoleId = 2
- if err := tx.Create(&userRoleList).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 添加用户信息
- var userInfo model.U_customerAccountInfo
- userInfo.UserId = user.Id
- copier.Copy(&userInfo, ¶m)
- if err := tx.Create(&userInfo).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 添加用户预计信息
- var warnUserInfo model.Alert_customer
- copier.Copy(&warnUserInfo, ¶m)
- warnUserInfo.UserId = userInfo.Id
- if err := tx.Create(&warnUserInfo).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 提交
- if err := tx.Commit().Error; err != nil {
- c.Error(err)
- return
- }
- c.Set("res_data", "添加成功!")
- }
- // 修改客户
- func UpdateCustomer(c *gin.Context) {
- type Param struct {
- Username string `json:"username" validate:"required"` // 账号
- State string `json:"state" validate:"required"` // 状态
- Name string `json:"name" validate:"required"` // 姓名
- Password string `json:"password" validate:"required"` // 密码
- UserId int `json:"userId" validate:"required"`
- UserType string `json:"userType"`
- // 收获地址
- Phone string `json:"phone" validate:"required"` // 手机
- Email string `json:"email" validate:"required"` // 邮箱
- Addr string `json:"addr" validate:"required"` // 地址
- Zip string `json:"zip" validate:"required"` // 邮编
- Note string `json:"note" validate:"required"` // 备注
- // 短信通知
- Sms string `json:"sms" validate:"required"` // 短信
- SMSSignature string `json:"smsSignature" validate:"required"` // 短信签名
- LoginSms string `json:"loginSms" validate:"required"` // 登录短信模板
- WarnSms string `json:"warnSms" validate:"required"` // 警告模板
- Amount float64 `json:"amount" validate:"required"` // 余额
- // 发票信息
- InvoiceTitle string `json:"invoiceTitle" validate:"required"` // 发票抬头
- InvoiceType string `json:"invoiceType" validate:"required"` // 发票类型
- InvoiceAddr string `json:"invoiceAddr" validate:"required"` // 发票地址
- InvoiceZip string `json:"invoiceZip" validate:"required"` // 发票邮编
- InvoiceEmail string `json:"invoiceEmail" validate:"required"` // 发票邮箱
- // 银行信息
- BankName string `json:"bankName" validate:"required"` // 银行名称
- BankAccount string `json:"bankAccount" validate:"required"` // 银行账号
- BankBranch string `json:"bankBranch" validate:"required"` // 开户支行
- // 营业执照
- BusinessLicense string `json:"businessLicense" validate:"required"` // 营业执照
- // 税务登记复印件
- TaxRegistrationCertificate string `json:"taxRegistrationCertificate" validate:"required"` // 税务登记复印件
- // 一般纳税人认证资格复印件
- TaxpayerQualification string `json:"taxpayerQualification" validate:"required"` // 一般纳税人认证资格复印件
- AmountWarn int64 `json:"amountWarn" validate:"required"` // 余额预警
- ArriveWarn int64 `json:"arriveWarn" validate:"required"` // 达量预警
- ArriveStop int64 `json:"arriveStop" validate:"required"` // 达量停机
- ArriveNetwork int64 `json:"arriveNetwork" validate:"required"` // 达量网络
- ArriveStopOperation string `json:"arriveStopOperation" validate:"required"` // 达量停机操作
- ArriveNetworkOperation string `json:"arriveStopNetwork" validate:"required"` // 达量网络操作
- WarnPhone string `json:"warnPhone" validate:"required"` // 预警手机号
- WarnEmail string `json:"warnEmail" validate:"required"` // 预警邮箱
- }
- var param Param
- if err := c.ShouldBindJSON(¶m); err != nil {
- c.Error(errors.New("缺少参数!"))
- return
- }
- err := utils.ValidateStruct(param)
- if err != nil {
- c.Error(err)
- return
- }
- // 创建用户&密码加密
- if param.Password != "" {
- pwd := utils.DecryptDES_ECB(param.Password, "")
- param.Password = utils.EncryptDES_ECB(pwd, "limingYa")
- }
- param.UserType = "2"
- var user model.Sys_user
- copier.Copy(&user, ¶m)
- // 事务操作
- tx := global.App.DB.Begin()
- copier.Copy(&user, ¶m)
- if err := tx.Model(&model.Sys_user{}).Where("id = ?", param.UserId).Updates(&user).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 更新用户和角色关系
- // 删除用户角色关系
- // if err := tx.Where("user_id = ?", param.Id).Unscoped().Delete(&model.Sys_user_role{}).Error; err != nil {
- // tx.Rollback()
- // c.Error(err)
- // return
- // }
- // 更新用户信息
- var userInfo model.U_customerAccountInfo
- userInfo.UserId = uint(param.UserId)
- copier.Copy(&userInfo, ¶m)
- if err := tx.Where("user_id = ?", param.UserId).Updates(&userInfo).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 修改预计信息
- var warnUserInfo model.Alert_customer
- warnUserInfo.UserId = userInfo.Id
- copier.Copy(&warnUserInfo, ¶m)
- if err := tx.Where("user_id = ?", param.UserId).Updates(&warnUserInfo).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 提交
- if err := tx.Commit().Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- c.Set("res_data", "修改成功!")
- }
- // 删除客户
- func DeleteCustomer(c *gin.Context) {
- Id := c.Query("id")
- if Id == "" {
- c.Error(errors.New("缺少参数:id"))
- return
- }
- userId, err := strconv.Atoi(Id)
- if err != nil {
- c.Error(err)
- return
- }
- // 事务操作
- tx := global.App.DB.Begin()
- // 删除用户
- var user model.Sys_user
- user.Id = uint(userId)
- if err := tx.Where("id = ?", userId).Unscoped().Delete(&user).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 删除用户角色关系
- var userRoleList model.Sys_user_role
- if err := tx.Where("user_id = ?", Id).Unscoped().Delete(&userRoleList).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 删除用户信息
- var userInfo model.U_customerAccountInfo
- userInfo.UserId = uint(userId)
- if err := tx.Where("user_id = ?", userId).Unscoped().Delete(&userInfo).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 删除预计信息
- var warnUserInfo model.Alert_customer
- warnUserInfo.UserId = uint(userId)
- if err := tx.Where("user_id = ?", userId).Unscoped().Delete(&warnUserInfo).Error; err != nil {
- tx.Rollback()
- c.Error(err)
- return
- }
- // 提交
- if err := tx.Commit().Error; err != nil {
- c.Error(err)
- return
- }
- }
- // 客户详情信息
- func GetCustomerInfo(c *gin.Context) {
- Id := c.Query("id")
- if Id == "" {
- c.Error(errors.New("缺少参数:id"))
- return
- }
- userId, err := strconv.Atoi(Id)
- if err != nil {
- c.Error(err)
- return
- }
- type userAllInfo struct {
- model.Sys_user
- Info model.U_customerAccountInfo `json:"info"`
- RoleName string `json:"roleName"`
- Alert model.Alert_customer `json:"alert"`
- }
- var user model.Sys_user
- if err := global.App.DB.Where("id = ?", userId).First(&user).Error; err != nil {
- c.Error(err)
- return
- }
- // 查询角色
- var role model.Sys_user_role
- if err := global.App.DB.Where("user_id = ?", userId).First(&role).Error; err != nil {
- c.Error(err)
- return
- }
- // 查询角色名称
- var roleInfo model.Sys_role
- if err := global.App.DB.Where("id = ?", role.RoleId).First(&roleInfo).Error; err != nil {
- c.Error(err)
- return
- }
- var userInfo model.U_customerAccountInfo
- if err := global.App.DB.Where("user_id = ?", userId).First(&userInfo).Error; err != nil {
- c.Error(err)
- return
- }
- // 查询预计信息
- var warnUserInfo model.Alert_customer
- global.App.DB.Where("user_id = ?", userId).First(&warnUserInfo)
- user.Password = ""
- resUser := userAllInfo{
- Sys_user: user,
- Info: userInfo,
- RoleName: roleInfo.Name,
- Alert: warnUserInfo,
- }
- c.Set("res_data", resUser)
- }
|