12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097 |
- package controllers
- import (
- "encoding/json"
- "fmt"
- "github.com/rdlucklib/rdluck_tools/paging"
- "hongze/hz_crm_api/models"
- "hongze/hz_crm_api/models/company"
- "hongze/hz_crm_api/models/system"
- "hongze/hz_crm_api/services"
- "hongze/hz_crm_api/utils"
- "strconv"
- "strings"
- "time"
- )
- func (this *CompanyController) CompanyShare() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req company.CompanyShareReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.CompanyId <= 0 {
- br.Msg = "参数异常!"
- br.ErrMsg = "CompanyId:" + strconv.Itoa(req.CompanyId)
- return
- }
- if req.IsShare < 0 {
- br.Msg = "参数异常!"
- br.ErrMsg = "IsShare:" + strconv.Itoa(req.IsShare)
- return
- }
-
- companyItem, err := company.GetCompanyById(req.CompanyId)
- if err != nil {
- br.Msg = "查找客户失败"
- br.ErrMsg = "查找客户失败,Err:" + err.Error()
- return
- }
-
- updateCol := make([]string, 0)
- companyItem.IsShare = req.IsShare
- updateCol = append(updateCol, "IsShare")
- if req.IsShare == 0 {
- companyItem.ShareSeller = ""
- companyItem.ShareSellerId = 0
- updateCol = append(updateCol, "ShareSeller", "ShareSellerId")
- }
- err = companyItem.Update(updateCol)
- if err != nil {
- br.Msg = "修改客户信息失败"
- br.ErrMsg = "修改客户信息失败,Err:" + err.Error()
- return
- }
-
-
-
-
-
-
-
- br.Ret = 200
- br.Success = true
- br.Msg = "设置成功"
- }
- func (this *CompanyController) CompanyShareList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- sellerIds := this.GetString("SellerId")
- originalSellerIds := this.GetString("OriginalSellerId")
- keyword := this.GetString("Keyword")
-
- sortParam := this.GetString("SortParam")
- listParam, _ := this.GetInt("ListParam")
- sortType := this.GetString("SortType")
- var total int
- page := paging.GetPaging(currentIndex, pageSize, total)
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = paging.StartIndex(currentIndex, pageSize)
- var condition string
- var pars []interface{}
- if keyword != "" {
- companyIdStr, err := company.GetCompanyIdByKeyWord(keyword)
- if err != nil {
- br.Msg = "获取客户信息失败"
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
- return
- }
- if companyIdStr != "" {
- condition += ` AND (a.company_name LIKE '%` + keyword + `%' OR a.credit_code LIKE '%` + keyword + `%' OR a.company_id IN(` + companyIdStr + `)) `
- } else {
- condition += ` AND (a.company_name LIKE '%` + keyword + `%' OR a.credit_code LIKE '%` + keyword + `%' ) `
- }
- }
-
- groupId := 0
- if utils.RunMode == "release" {
- groupId = 37
- } else {
- groupId = 61
- }
- roleTypeCode := sysUser.RoleTypeCode
- productId := services.GetProductId(roleTypeCode)
-
- {
-
- if roleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_FINANCE {
-
- if roleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
- condition += ` AND b.product_id=? `
- pars = append(pars, productId)
- } else {
- condition += ` AND b.product_id=? `
- pars = append(pars, productId)
- }
- if sysUser.Authority == 2 && roleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
- groupIdStr, sellerIdStr, err := services.GetFiccChildGroupIdsByGroupIds(sysUser.GroupId)
- if err != nil {
- br.Msg = "获取销售分组信息失败!"
- br.ErrMsg = "获取销售分组信息失败!Err:" + err.Error()
- return
- }
- if sysUser.GroupId == groupId {
- if sellerIdStr != "" {
- condition += ` AND a.share_seller_id IN (` + sellerIdStr + `) `
- }
- } else {
- if groupIdStr != "" {
- condition += ` AND b.group_id IN (` + groupIdStr + `) `
- }
- }
- } else if sysUser.Authority == 4 || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
- if sysUser.GroupId == groupId {
- sellerIdStr, err := services.GetFiccSellerIdsByGroupId(sysUser.GroupId)
- if err != nil {
- br.Msg = "获取销售分组信息失败!"
- br.ErrMsg = "获取销售分组信息失败!Err:" + err.Error()
- return
- }
- if sellerIdStr != "" {
- condition += ` AND a.share_seller_id IN (` + sellerIdStr + `) `
- }
- } else {
- condition += ` AND b.group_id=? `
- pars = append(pars, sysUser.GroupId)
- }
- } else if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && sysUser.AdminId != 66 && sysUser.AdminId != 15 && roleTypeCode != utils.ROLE_TYPE_CODE_FICC_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_RAI_ADMIN {
- if sysUser.GroupId == groupId {
- condition += ` AND a.share_seller_id=? `
- pars = append(pars, sysUser.AdminId)
- } else {
- condition += ` AND b.seller_id=? `
- pars = append(pars, sysUser.AdminId)
- }
- }
- }
- }
- if listParam == 0 {
- if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM {
-
- if sysUser.GroupId != groupId {
- listParam = 3
- if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER {
- condition += ` AND b.seller_id = ? `
- pars = append(pars, sysUser.AdminId)
- }
- } else {
- condition += ` AND a.is_share=1 `
- }
- } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN {
-
- listParam = 2
- }
- }
- if listParam == 1 {
- condition += ` AND a.share_seller_id > 0 AND a.is_share=1 `
- } else if listParam == 2 {
- condition += ` AND a.share_seller_id = 0 AND a.is_share=1 `
- } else if listParam == 3 {
- condition += ` AND a.is_share=0 and b.status="正式"`
- }
- if sellerIds != "" {
- condition += ` AND a.share_seller_id IN (` + sellerIds + `) `
- }
- if originalSellerIds != "" {
- condition += ` AND b.seller_id IN (` + originalSellerIds + `) `
- }
- total, err := company.GetShareCompanyListCount(condition, pars)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据总数失败,Err:" + err.Error()
- return
- }
- sortStr := ``
- if sortParam != "" && sortType != "" {
- if sortParam == "expireDay" {
- if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
- if sortType == "asc" {
- sortStr = " ORDER BY min_end_date"
- } else {
- sortStr = " ORDER BY max_end_date"
- }
- } else {
- sortStr = " ORDER BY b.end_date "
- }
- } else if sortParam == "createTime" {
- sortStr = " ORDER BY a.created_time "
- } else if sortParam == "viewTotal" {
- if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
- sortStr = " ORDER BY all_view_total"
- } else {
- sortStr = " ORDER BY b.view_total "
- }
- } else if sortParam == "viewTime" {
- if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
- if sortType == "asc" {
- sortStr = " ORDER BY min_last_view_time"
- } else {
- sortStr = " ORDER BY max_last_view_time"
- }
- } else {
- sortStr = " ORDER BY b.last_view_time "
- }
- } else if sortParam == "roadShowTotal" {
- sortStr = " ORDER BY b.road_show_total "
- } else if sortParam == "formalTime" {
- sortStr = " ORDER BY b.formal_time "
- } else if sortParam == "freezeTime" {
- sortStr = " ORDER BY b.freeze_time "
- } else if sortParam == "lossTime" {
- sortStr = " ORDER BY b.loss_time "
- } else if sortParam == "todoCreateTime" {
- sortStr = " ORDER BY b.todo_create_time "
- } else if sortParam == "todoApproveTime" {
- sortStr = " ORDER BY b.todo_approve_time "
- } else if sortParam == "tryOutDay" {
- if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
- sortStr = " ORDER BY all_try_out_day_total "
- } else {
- sortStr = " ORDER BY b.try_out_day_total "
- }
- } else if sortParam == "lastServiceTime" {
-
- sortStr = ` ORDER BY last_service_time `
- } else if sortParam == "serviceTimes" {
-
- sortStr = ` ORDER BY service_times `
- } else {
- br.Msg = "获取失败"
- br.ErrMsg = "排序字段传入数据异常:" + sortParam
- return
- }
- sortStr += fmt.Sprintf(` %s`, sortType)
- } else {
- if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
- sortStr = " ORDER BY sort_status asc, all_view_total desc, a.created_time "
- } else {
- sortStr = " ORDER BY sort_status asc, b.view_total desc, a.created_time "
- }
- sortStr += " DESC "
- }
- list, err := company.GetShareCompanyList(condition, sortStr, pars, startSize, pageSize)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
-
- companyIds := make([]int, 0)
- companyIdSlice := make([]string, 0)
- for _, v := range list {
- companyIds = append(companyIds, v.CompanyId)
- companyIdSlice = append(companyIdSlice, strconv.Itoa(v.CompanyId))
- }
-
- companyIdStr := strings.Join(companyIdSlice, ",")
- companyProductTotalList, _ := company.GetCountProductByCompanyIds(companyIdStr)
- companyProductTotalMap := make(map[int]*company.CompanyProductTotalSlice)
- for _, companyProductTotal := range companyProductTotalList {
- companyProductTotalMap[companyProductTotal.CompanyId] = companyProductTotal
- }
- lenList := len(list)
-
- companyProductMap := make(map[string]*company.CompanyProduct)
- var companyProductCondition string
- var companyProductPars []interface{}
- companyProductList, err := company.GetCompanyProductsByCompanyIds(companyIdStr, companyProductCondition, companyProductPars)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取客户产品数据失败,Err:" + err.Error()
- return
- }
- for _, companyProduct := range companyProductList {
- key := fmt.Sprint(companyProduct.CompanyId, "_", companyProduct.ProductId)
- companyProductMap[key] = companyProduct
- }
-
-
- for i := 0; i < lenList; i++ {
- item := list[i]
-
- if companyProductTotal, ok := companyProductTotalMap[int(item.CompanyId)]; ok {
- if companyProductTotal.Total > 1 {
- list[i].IsShared = true
- }
- }
- var expireDay string
- itemStatus := item.Status
- if itemStatus != "" {
- if !strings.Contains(item.Status, "/") {
- if itemStatus == utils.COMPANY_STATUS_FOREVER {
- expireDay = "-"
- } else if itemStatus == utils.COMPANY_STATUS_TRY_OUT || itemStatus == utils.COMPANY_STATUS_FORMAL {
- if item.StartDate != "" && item.EndDate != "" {
- endDateTime, _ := time.Parse(utils.FormatDate, item.EndDate)
- endDateTime = endDateTime.AddDate(0, 0, 1)
- sub := endDateTime.Sub(time.Now())
- if sub < 0 {
- sub = 0
- }
- expireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
- } else {
- expireDay = "-"
- }
- } else if itemStatus == utils.COMPANY_STATUS_LOSE {
- expireDay = "-"
- } else if itemStatus == utils.COMPANY_STATUS_FREEZE {
- if item.StartDate != "" && item.EndDate != "" {
- endDateTime, _ := time.Parse(utils.FormatDate, item.EndDate)
- endDateTime = endDateTime.AddDate(0, 0, 0)
- sub := endDateTime.Sub(time.Now())
- if sub < 0 {
- sub = 0
- }
- expireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
- } else {
- expireDay = "-"
- }
- } else {
- expireDay = "-"
- }
- } else {
- tmpStatusArr := strings.Split(item.Status, "/")
- ficcStatus := tmpStatusArr[0]
- raiStatus := tmpStatusArr[1]
- var ficcEndDate, tryEndDate string
- var ficcExpireDay, tryExpireDay string
- if item.EndDate != "" {
- endDateArr := strings.Split(item.EndDate, "/")
- if len(endDateArr) == 1 {
- ficcEndDate = endDateArr[0]
- } else if len(endDateArr) > 1 {
- ficcEndDate = endDateArr[0]
- tryEndDate = endDateArr[1]
- }
- if ficcStatus == utils.COMPANY_STATUS_FOREVER {
- ficcExpireDay = "-"
- } else if ficcStatus == utils.COMPANY_STATUS_TRY_OUT || ficcStatus == utils.COMPANY_STATUS_FORMAL {
- if ficcEndDate != "" {
- endDateTime, _ := time.Parse(utils.FormatDate, ficcEndDate)
- endDateTime = endDateTime.AddDate(0, 0, 1)
- sub := endDateTime.Sub(time.Now())
- if sub < 0 {
- sub = 0
- }
- ficcExpireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
- } else {
- ficcExpireDay = "-"
- }
- } else if ficcStatus == utils.COMPANY_STATUS_LOSE {
- ficcExpireDay = "-"
- } else if ficcStatus == utils.COMPANY_STATUS_FREEZE {
- if item.StartDate != "" && item.EndDate != "" {
- endDateTime, _ := time.Parse(utils.FormatDate, ficcEndDate)
- endDateTime = endDateTime.AddDate(0, 0, 0)
- sub := endDateTime.Sub(time.Now())
- if sub < 0 {
- sub = 0
- }
- ficcExpireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
- } else {
- ficcExpireDay = "-"
- }
- } else {
- ficcExpireDay = "-"
- }
- if raiStatus == utils.COMPANY_STATUS_FOREVER {
- tryExpireDay = "-"
- } else if raiStatus == utils.COMPANY_STATUS_TRY_OUT || raiStatus == utils.COMPANY_STATUS_FORMAL {
- if tryEndDate != "" {
- endDateTime, _ := time.Parse(utils.FormatDate, tryEndDate)
- endDateTime = endDateTime.AddDate(0, 0, 1)
- sub := endDateTime.Sub(time.Now())
- if sub < 0 {
- sub = 0
- }
- tryExpireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
- } else {
- tryExpireDay = "-"
- }
- } else if raiStatus == utils.COMPANY_STATUS_LOSE {
- tryExpireDay = "-"
- } else if raiStatus == utils.COMPANY_STATUS_FREEZE {
- if item.StartDate != "" && item.EndDate != "" {
- endDateTime, _ := time.Parse(utils.FormatDate, tryEndDate)
- endDateTime = endDateTime.AddDate(0, 0, 0)
- sub := endDateTime.Sub(time.Now())
- if sub < 0 {
- sub = 0
- }
- tryExpireDay = fmt.Sprintf("%v", int(sub.Hours()/24))
- } else {
- tryExpireDay = "-"
- }
- } else {
- tryExpireDay = "-"
- }
- }
- expireDay = ficcExpireDay + "/" + tryExpireDay
- }
- }
- list[i].ExpireDay = expireDay
-
- btnItem := new(company.ButtonPermission)
- if item.CompanyId != 1 {
-
-
-
-
- btnItem = services.GetShareCompanyPermissionButton(roleTypeCode, itemStatus, item.ProductId, item, sysUser)
- }
- list[i].BtnItem = btnItem
- if item.FreezeStartDate != "" && item.FreezeEndDate != "" && item.Status == utils.COMPANY_STATUS_FREEZE {
- freezeEndDate, _ := time.Parse(utils.FormatDate, item.FreezeEndDate)
- if time.Now().Before(freezeEndDate) {
- expireDays := freezeEndDate.Sub(time.Now()).Hours() / 24
- list[i].FreezeExpireDays = int(expireDays) + 1
- }
- }
- ficcKey := fmt.Sprint(item.CompanyId, "_", 1)
-
- if tmpCompanyProduct, ok := companyProductMap[ficcKey]; ok {
-
- item.FiccPackageType = tmpCompanyProduct.PackageType
-
- item.FiccTryOutDay = tmpCompanyProduct.TryOutDayTotal
-
- item.FiccView = tmpCompanyProduct.ViewTotal
- if !tmpCompanyProduct.LastViewTime.IsZero() {
-
- item.FiccLastViewTime = tmpCompanyProduct.LastViewTime.Format(utils.FormatDateTime)
- }
- }
-
- raiKey := fmt.Sprint(item.CompanyId, "_", 2)
- if tmpCompanyProduct, ok := companyProductMap[raiKey]; ok {
-
- item.RaiView = tmpCompanyProduct.ViewTotal
-
- item.RaiTryOutDay = tmpCompanyProduct.TryOutDayTotal
- if !tmpCompanyProduct.LastViewTime.IsZero() {
-
- item.RaiLastViewTime = tmpCompanyProduct.LastViewTime.Format(utils.FormatDateTime)
- }
- }
- }
- companyLists := make([]*company.CompanyListItem, 0)
-
- if list == nil {
- companyLists = make([]*company.CompanyListItem, 0)
- } else {
- for _, v := range list {
-
-
- tmpStatus := v.Status
- if v.IsShare == 1 {
- tmpStatus = v.Status + "(共享)"
- } else {
- if v.BtnItem.BtnModifySeller == true {
- v.BtnItem.BtnModifySeller = false
- }
- }
- if v.IsShare == 1 && v.BtnItem.BtnModifySeller == true {
-
- v.BtnItem.BtnShare = true
- }
- companyList := &company.CompanyListItem{
- CompanyId: v.CompanyId,
- CompanyName: v.CompanyName,
- CreditCode: v.CreditCode,
- CompanyCode: v.CompanyCode,
- StartDate: v.StartDate,
- EndDate: v.EndDate,
- LoseReason: v.LoseReason,
- RenewalReason: v.RenewalReason,
- FreezeReason: v.FreezeReason,
- LossTime: v.LossTime,
- Status: tmpStatus,
- CompanyType: v.CompanyType,
- ApproveStatus: v.ApproveStatus,
- SellerName: v.SellerName,
- SellerId: v.SellerId,
- SellerIds: v.SellerIds,
- ExpireDay: v.ExpireDay,
- FreezeTime: v.FreezeTime,
- GroupId: v.GroupId,
- GroupIds: v.GroupIds,
- DepartmentId: v.DepartmentId,
- IndustryName: v.IndustryName,
- IsSuspend: v.IsSuspend,
- CreatedTime: v.CreatedTime,
- Source: v.Source,
- Province: v.Province,
- City: v.City,
- Address: v.Address,
- Reasons: v.Reasons,
- FreezeStartDate: v.FreezeStartDate,
- FreezeEndDate: v.FreezeEndDate,
- FreezeExpireDays: v.FreezeExpireDays,
- BtnItem: v.BtnItem,
- ProductId: v.ProductId,
- FormalTime: v.FormalTime,
- IsShared: v.IsShared,
- RegionType: v.RegionType,
- FiccPackageType: v.FiccPackageType,
- FiccLastViewTime: v.FiccLastViewTime,
- RaiLastViewTime: v.RaiLastViewTime,
-
-
-
-
- FiccView: v.FiccView,
- RaiView: v.RaiView,
- FiccTryOutDay: v.FiccTryOutDay,
- RaiTryOutDay: v.RaiTryOutDay,
- AllViewTotal: v.AllViewTotal,
- RoadShowTotal: v.RoadShowTotal,
- TryStageSlice: v.TryStageSlice,
- Deadline: v.Deadline,
- WeekViewActive: v.WeekViewActive,
- IsShare: v.IsShare,
- ShareSeller: v.ShareSeller,
- ShareSellerId: v.ShareSellerId,
- LastServiceTime: v.LastServiceTime,
- ServiceTimes: v.ServiceTimes,
- }
- companyLists = append(companyLists, companyList)
- }
- }
- if companyLists == nil {
- companyLists = make([]*company.CompanyListItem, 0)
- }
- var isShareGroup bool
- if sysUser.GroupId == groupId {
- isShareGroup = true
- }
- page = paging.GetPaging(currentIndex, pageSize, total)
- resp := new(company.CompanyListResp)
- resp.List = companyLists
- resp.IsShareGroup = isShareGroup
- resp.Status = listParam
- resp.Paging = page
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
- func (this *CompanyController) MoveShareSeller() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req company.MoveShareSellerReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.CompanyId <= 0 {
- br.Msg = "参数异常!"
- br.ErrMsg = "CompanyId:" + strconv.Itoa(req.CompanyId)
- return
- }
- if req.SellsId <= 0 {
- br.Msg = "参数异常!"
- br.ErrMsg = "SellsId:" + strconv.Itoa(req.SellsId)
- return
- }
- seller, err := system.GetSysAdminById(req.SellsId)
- if err != nil {
- br.Msg = "获取销售信息失败"
- br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
- return
- }
-
- companyItem, err := company.GetCompanyById(req.CompanyId)
- if err != nil {
- br.Msg = "查找客户失败"
- br.ErrMsg = "查找客户失败,Err:" + err.Error()
- return
- }
-
- updateCol := make([]string, 0)
- companyItem.ShareSeller = seller.RealName
- companyItem.ShareSellerId = seller.AdminId
- updateCol = append(updateCol, "ShareSeller", "ShareSellerId")
- err = companyItem.Update(updateCol)
- if err != nil {
- br.Msg = "修改客户信息失败"
- br.ErrMsg = "修改客户信息失败,Err:" + err.Error()
- return
- }
-
-
-
-
-
-
-
-
-
- br.Ret = 200
- br.Success = true
- br.Msg = "分配成功"
- }
- func (this *CompanyController) CompanyShareAddRemark() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req company.RemarkReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.CompanyId <= 0 {
- br.Msg = "参数缺失"
- br.ErrMsg = "参数缺失,客户编号未传!"
- return
- }
- if req.Remark == "" {
- br.Msg = "参数缺失"
- br.ErrMsg = "参数缺失,备注说明未传!"
- return
- }
- var productId int
- groupFicc := []string{
- utils.ROLE_TYPE_CODE_FICC_SELLER, utils.ROLE_TYPE_CODE_FICC_TEAM, utils.ROLE_TYPE_CODE_FICC_GROUP,
- utils.ROLE_TYPE_CODE_FICC_DEPARTMENT, utils.ROLE_TYPE_CODE_FICC_ADMIN,
- }
- groupRai := []string{
- utils.ROLE_TYPE_CODE_RAI_SELLER, utils.ROLE_TYPE_CODE_RAI_GROUP, utils.ROLE_TYPE_CODE_RAI_GROUP,
- utils.ROLE_TYPE_CODE_RAI_DEPARTMENT, utils.ROLE_TYPE_CODE_RAI_ADMIN,
- }
- if utils.InArrayByStr(groupFicc, sysUser.RoleTypeCode) {
- productId = 1
- }
- if utils.InArrayByStr(groupRai, sysUser.RoleTypeCode) {
- productId = 2
- }
- if productId == 0 {
- br.Msg = "该角色不可添加备注"
- return
- }
- companyProduct, err := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, productId)
- if err != nil {
- br.Msg = "查询客户异常"
- br.ErrMsg = "查询客户异常,Err:" + err.Error()
- }
- remark := company.CompanyProductRemark{
- CompanyId: companyProduct.CompanyId,
- ProductId: companyProduct.ProductId,
- ProductName: companyProduct.ProductName,
- Remark: req.Remark,
- CreateTime: time.Now(),
- SysUserId: sysUser.AdminId,
- SysRealName: sysUser.RealName,
- }
- err = company.AddCompanyRemark(&remark)
- if err != nil {
- br.Msg = "操作失败"
- br.ErrMsg = "新增共享客户备注失败, Err: " + err.Error()
- return
- }
- go func() {
- approveContent := req.Remark
- remark := "新增备注"
- operation := "add_remark"
- _ = services.AddCompanyOperationRecord(req.CompanyId, companyProduct.SellerId, sysUser.AdminId, companyProduct.ProductId, sysUser.AdminId, companyProduct.CompanyName,
- companyProduct.ProductName, sysUser.RealName, remark, operation, approveContent, sysUser.RealName, "", companyProduct.Status)
- }()
- br.Ret = 200
- br.Success = true
- br.Msg = "编辑成功"
- }
- func (this *CompanyController) CompanyShareMark() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- var req company.CompanyMarkReq
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- if req.CompanyServiceRecordId <= 0 {
- br.Msg = "参数缺失"
- br.ErrMsg = "参数缺失,备注ID未传!"
- return
- }
- err = company.UpdateCompanyServiceRecordMark(req.CompanyServiceRecordId, req.Status)
- if err != nil {
- br.Msg = "操作失败"
- br.ErrMsg = "新增共享客户备注失败, Err: " + err.Error()
- return
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "编辑成功"
- }
- func (this *CompanyController) CompanyShareListByCity() {
- br := new(models.BaseResponse).Init()
- defer func() {
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- pageSize, _ := this.GetInt("PageSize")
- currentIndex, _ := this.GetInt("CurrentIndex")
- keyword := this.GetString("Keyword")
- province := this.GetString("Province")
- city := this.GetString("City")
-
-
-
-
- var total int
- page := paging.GetPaging(currentIndex, pageSize, total)
- var startSize int
- if pageSize <= 0 {
- pageSize = utils.PageSize20
- }
- if currentIndex <= 0 {
- currentIndex = 1
- }
- startSize = paging.StartIndex(currentIndex, pageSize)
- var condition string
- var pars []interface{}
- if keyword != "" {
- companyIdStr, err := company.GetCompanyIdByKeyWord(keyword)
- if err != nil {
- br.Msg = "获取客户信息失败"
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
- return
- }
- if companyIdStr != "" {
- condition += ` AND (a.company_name LIKE '%` + keyword + `%' OR a.credit_code LIKE '%` + keyword + `%' OR a.company_id IN(` + companyIdStr + `)) `
- } else {
- condition += ` AND (a.company_name LIKE '%` + keyword + `%' OR a.credit_code LIKE '%` + keyword + `%' ) `
- }
- }
- condition += ` AND a.is_share=1 `
- if province != "" {
- var provinceSql string
- slice := strings.Split(province, ",")
- for _, v := range slice {
- provinceSql += "'" + v + "'" + ","
- }
- provinceSql = strings.TrimRight(provinceSql, ",")
- condition += ` AND a.province IN (` + provinceSql + `) `
- }
- if city != "" {
- var citySql string
- slice := strings.Split(city, ",")
- for _, v := range slice {
- citySql += "'" + v + "'" + ","
- }
- citySql = strings.TrimRight(citySql, ",")
- condition += ` AND a.city IN (` + citySql + `) `
- }
- total, err := company.GetShareCompanyListCount(condition, pars)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据总数失败,Err:" + err.Error()
- return
- }
- sortStr := ` `
-
-
-
-
-
- list, err := company.GetShareCompanyList(condition, sortStr, pars, startSize, pageSize)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
- return
- }
-
- companyIds := make([]int, 0)
- companyIdSlice := make([]string, 0)
- for _, v := range list {
- companyIds = append(companyIds, v.CompanyId)
- companyIdSlice = append(companyIdSlice, strconv.Itoa(v.CompanyId))
- }
-
- companyIdStr := strings.Join(companyIdSlice, ",")
- companyProductTotalList, _ := company.GetCountProductByCompanyIds(companyIdStr)
- companyProductTotalMap := make(map[int]*company.CompanyProductTotalSlice)
- for _, companyProductTotal := range companyProductTotalList {
- companyProductTotalMap[companyProductTotal.CompanyId] = companyProductTotal
- }
-
- companyProductMap := make(map[string]*company.CompanyProduct)
- var companyProductCondition string
- var companyProductPars []interface{}
- companyProductList, err := company.GetCompanyProductsByCompanyIds(companyIdStr, companyProductCondition, companyProductPars)
- if err != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取客户产品数据失败,Err:" + err.Error()
- return
- }
- for _, companyProduct := range companyProductList {
- key := fmt.Sprint(companyProduct.CompanyId, "_", companyProduct.ProductId)
- companyProductMap[key] = companyProduct
- }
- companyLists := make([]*company.CompanyListItem, 0)
-
- if list == nil {
- companyLists = make([]*company.CompanyListItem, 0)
- } else {
- for _, v := range list {
-
-
- tmpStatus := v.Status
- if v.IsShare == 1 {
- tmpStatus = v.Status + "(共享)"
- }
- companyList := &company.CompanyListItem{
- CompanyId: v.CompanyId,
- CompanyName: v.CompanyName,
- CreditCode: v.CreditCode,
- CompanyCode: v.CompanyCode,
- StartDate: v.StartDate,
- EndDate: v.EndDate,
- LoseReason: v.LoseReason,
- RenewalReason: v.RenewalReason,
- FreezeReason: v.FreezeReason,
- LossTime: v.LossTime,
- Status: tmpStatus,
- CompanyType: v.CompanyType,
- ApproveStatus: v.ApproveStatus,
- SellerName: v.SellerName,
- SellerId: v.SellerId,
- SellerIds: v.SellerIds,
- ExpireDay: v.ExpireDay,
- FreezeTime: v.FreezeTime,
- GroupId: v.GroupId,
- GroupIds: v.GroupIds,
- DepartmentId: v.DepartmentId,
- IndustryName: v.IndustryName,
- IsSuspend: v.IsSuspend,
- CreatedTime: v.CreatedTime,
- Source: v.Source,
- Province: v.Province,
- City: v.City,
- Address: v.Address,
- Reasons: v.Reasons,
- FreezeStartDate: v.FreezeStartDate,
- FreezeEndDate: v.FreezeEndDate,
- FreezeExpireDays: v.FreezeExpireDays,
- BtnItem: v.BtnItem,
- ProductId: v.ProductId,
- FormalTime: v.FormalTime,
- IsShared: v.IsShared,
- RegionType: v.RegionType,
- FiccPackageType: v.FiccPackageType,
- FiccLastViewTime: v.FiccLastViewTime,
- RaiLastViewTime: v.RaiLastViewTime,
-
-
-
-
- FiccView: v.FiccView,
- RaiView: v.RaiView,
- FiccTryOutDay: v.FiccTryOutDay,
- RaiTryOutDay: v.RaiTryOutDay,
- AllViewTotal: v.AllViewTotal,
- RoadShowTotal: v.RoadShowTotal,
- TryStageSlice: v.TryStageSlice,
- Deadline: v.Deadline,
- WeekViewActive: v.WeekViewActive,
- IsShare: v.IsShare,
- ShareSeller: v.ShareSeller,
- ShareSellerId: v.ShareSellerId,
- LastServiceTime: v.LastServiceTime,
- ServiceTimes: v.ServiceTimes,
- }
- companyLists = append(companyLists, companyList)
- }
- }
- if companyLists == nil {
- companyLists = make([]*company.CompanyListItem, 0)
- }
- page = paging.GetPaging(currentIndex, pageSize, total)
- resp := new(company.CompanyListResp)
- resp.List = companyLists
- resp.Paging = page
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
|