company_renewal.go 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "hongze/hz_crm_api/models"
  6. "hongze/hz_crm_api/models/company"
  7. "hongze/hz_crm_api/utils"
  8. "time"
  9. )
  10. //公司未续约操作
  11. type CompanyRenewalController struct {
  12. BaseAuthController
  13. }
  14. // @Title 新建归因
  15. // @Description 新建归因接口
  16. // @Param request body company.CompanyAscribeAddReq true "type json string"
  17. // @Success 200 {object} "保存成功"
  18. // @router /company_ascribe/add [post]
  19. func (this *CompanyRenewalController) CompanyAscribeAdd() {
  20. br := new(models.BaseResponse).Init()
  21. defer func() {
  22. this.Data["json"] = br
  23. this.ServeJSON()
  24. }()
  25. sysUser := this.SysUser
  26. if sysUser == nil {
  27. br.Msg = "请登录"
  28. br.ErrMsg = "请登录,SysUser Is Empty"
  29. br.Ret = 408
  30. return
  31. }
  32. var req company.CompanyAscribeAddReq
  33. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  34. if err != nil {
  35. br.Msg = "参数解析异常!"
  36. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  37. return
  38. }
  39. ascribeContent := req.AscribeContent
  40. var condition string
  41. var pars []interface{}
  42. condition += " AND ascribe_content = ? "
  43. pars = append(pars, ascribeContent)
  44. total, err := company.GetCompanyAscribeCount(condition, pars)
  45. if err != nil {
  46. br.Msg = "新建失败"
  47. br.ErrMsg = "获取失败,GetCompanyAscribeCount Err:" + err.Error()
  48. return
  49. }
  50. if total > 0 {
  51. br.Msg = "此归因已存在"
  52. return
  53. }
  54. item := new(company.CompanyAscribe)
  55. item.AscribeContent = ascribeContent
  56. item.AdminId = sysUser.AdminId
  57. item.CreateTime = time.Now()
  58. item.ModifyTime = time.Now()
  59. newId, err := company.AddCompanyAscribe(item)
  60. if err != nil {
  61. br.Msg = "新建失败"
  62. br.ErrMsg = "新建失败,Err:" + err.Error()
  63. return
  64. }
  65. detail := new(company.CompanyAscribeResp)
  66. detail.CompanyAscribeId = int(newId)
  67. detail.AscribeContent = ascribeContent
  68. resp := new(company.CompanyAscribeDetailResp)
  69. resp.Detail = detail
  70. br.Ret = 200
  71. br.Success = true
  72. br.Data = resp
  73. br.Msg = "新建成功"
  74. }
  75. // @Title 归因列表接口
  76. // @Description 归因列表接口
  77. // @Param KeyWord query string true "搜索关键词"
  78. // @Success 200 {object} company.CompanyAscribeListResp
  79. // @router /company_ascribe/list [get]
  80. func (this *CompanyRenewalController) CompanyAscribeList() {
  81. br := new(models.BaseResponse).Init()
  82. defer func() {
  83. this.Data["json"] = br
  84. this.ServeJSON()
  85. }()
  86. sysUser := this.SysUser
  87. if sysUser == nil {
  88. br.Msg = "请登录"
  89. br.ErrMsg = "请登录,SysUser Is Empty"
  90. return
  91. }
  92. keyWord := this.GetString("KeyWord")
  93. var condition string
  94. var pars []interface{}
  95. if keyWord != "" {
  96. condition += ` AND ascribe_content LIKE '%` + keyWord + `%' ORDER BY create_time DESC `
  97. }
  98. list, err := company.GetCompanyAscribeList(condition, pars, 0, 0)
  99. if err != nil {
  100. br.Msg = "获取失败"
  101. br.ErrMsg = "获取失败,Err:" + err.Error()
  102. return
  103. }
  104. resp := new(company.CompanyAscribeListResp)
  105. if len(list) == 0 {
  106. list = make([]*company.CompanyAscribeResp, 0)
  107. }
  108. resp.List = list
  109. br.Ret = 200
  110. br.Success = true
  111. br.Msg = "获取成功"
  112. br.Data = resp
  113. }
  114. // @Title 添加未续约备注
  115. // @Description 添加未续约备注接口
  116. // @Param request body company.CompanyNoRenewedNoteReq true "type json string"
  117. // @Success 200 {object} "保存成功"
  118. // @router /company_no_renewed_note/add [post]
  119. func (this *CompanyRenewalController) CompanyNoRenewedNoteAdd() {
  120. br := new(models.BaseResponse).Init()
  121. defer func() {
  122. this.Data["json"] = br
  123. this.ServeJSON()
  124. }()
  125. sysUser := this.SysUser
  126. if sysUser == nil {
  127. br.Msg = "请登录"
  128. br.ErrMsg = "请登录,SysUser Is Empty"
  129. br.Ret = 408
  130. return
  131. }
  132. var req company.CompanyNoRenewedNoteReq
  133. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  134. if err != nil {
  135. br.Msg = "参数解析异常!"
  136. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  137. return
  138. }
  139. content := req.Content
  140. companyId := req.CompanyId
  141. productId := req.ProductId
  142. if companyId < 1 {
  143. br.Msg = "公司ID错误!"
  144. return
  145. }
  146. if productId != 1 && productId != 2 {
  147. br.Msg = "ProductId错误!"
  148. return
  149. }
  150. item := new(company.CompanyNoRenewedNote)
  151. item.Content = content
  152. item.CompanyId = companyId
  153. item.AdminId = sysUser.AdminId
  154. item.ProductId = productId
  155. item.CreateTime = time.Now()
  156. item.ModifyTime = time.Now()
  157. err = company.AddCompanyNoRenewedNote(item)
  158. if err != nil {
  159. br.Msg = "新建失败"
  160. br.ErrMsg = "新建失败,Err:" + err.Error()
  161. return
  162. }
  163. br.Ret = 200
  164. br.Success = true
  165. br.Msg = "新建成功"
  166. }
  167. // @Title 未续约备注列表
  168. // @Description 未续约备注列表接口
  169. // @Param CompanyId query int true "公司ID"
  170. // @Param ProductId query int true "产品ID 1:FICC ,2:权益"
  171. // @Success 200 {object} company.CompanyAscribeListResp
  172. // @router /company_no_renewed_note/list [get]
  173. func (this *CompanyRenewalController) CompanyNoRenewedNoteList() {
  174. br := new(models.BaseResponse).Init()
  175. defer func() {
  176. this.Data["json"] = br
  177. this.ServeJSON()
  178. }()
  179. sysUser := this.SysUser
  180. if sysUser == nil {
  181. br.Msg = "请登录"
  182. br.ErrMsg = "请登录,SysUser Is Empty"
  183. return
  184. }
  185. companyId, _ := this.GetInt("CompanyId")
  186. productId, _ := this.GetInt("ProductId")
  187. if companyId < 1 {
  188. br.Msg = "公司ID错误!"
  189. return
  190. }
  191. if productId != 1 && productId != 2 {
  192. br.Msg = "ProductId错误!"
  193. return
  194. }
  195. var condition string
  196. var pars []interface{}
  197. condition += ` AND company_id = ? AND product_id = ? ORDER BY create_time DESC `
  198. pars = append(pars, companyId, productId)
  199. list, err := company.GetCompanyNoRenewedNoteList(condition, pars, 0, 0)
  200. if err != nil {
  201. br.Msg = "获取失败"
  202. br.ErrMsg = "获取失败,Err:" + err.Error()
  203. return
  204. }
  205. resp := new(company.CompanyNoRenewedNoteListResp)
  206. if len(list) == 0 {
  207. list = make([]*company.CompanyNoRenewedNoteResp, 0)
  208. }
  209. resp.List = list
  210. br.Ret = 200
  211. br.Success = true
  212. br.Msg = "获取成功"
  213. br.Data = resp
  214. }
  215. // @Title 通过归因添加确认不续约
  216. // @Description 通过归因添加确认不续约接口
  217. // @Param request body company.CompanyNoRenewedNoteReq true "type json string"
  218. // @Success 200 {object} "保存成功"
  219. // @router /company_no_renewed_ascribe/add [post]
  220. func (this *CompanyRenewalController) CompanyNoRenewedAscribeAdd() {
  221. br := new(models.BaseResponse).Init()
  222. defer func() {
  223. this.Data["json"] = br
  224. this.ServeJSON()
  225. }()
  226. sysUser := this.SysUser
  227. if sysUser == nil {
  228. br.Msg = "请登录"
  229. br.ErrMsg = "请登录,SysUser Is Empty"
  230. br.Ret = 408
  231. return
  232. }
  233. //内容仅权益管理员账号可以修改
  234. if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_RAI_ADMIN {
  235. br.Msg = "仅管理员可修改!"
  236. return
  237. }
  238. var req company.CompanyNoRenewedAscribeReq
  239. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  240. if err != nil {
  241. br.Msg = "参数解析异常!"
  242. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  243. return
  244. }
  245. content := req.Content
  246. companyId := req.CompanyId
  247. productId := req.ProductId
  248. companyAscribeId := req.CompanyAscribeId
  249. if content == "" {
  250. br.Msg = "内容不能为空!"
  251. return
  252. }
  253. if companyId < 1 {
  254. br.Msg = "公司ID错误!"
  255. return
  256. }
  257. if productId != 1 && productId != 2 {
  258. if companyId < 1 {
  259. br.Msg = "ProductId错误!"
  260. return
  261. }
  262. }
  263. detail, err := company.GetCompanyAscribeDetail(companyAscribeId)
  264. if err != nil {
  265. br.Msg = "新建失败"
  266. br.ErrMsg = "新建失败,GetCompanyAscribeDetail Err:" + err.Error()
  267. return
  268. }
  269. var condition string
  270. var pars []interface{}
  271. condition += ` AND company_id = ? AND product_id = ? ORDER BY create_time DESC `
  272. pars = append(pars, companyId, productId)
  273. total, err := company.GetCompanyNoRenewedAscribeCount(condition, pars)
  274. if err != nil {
  275. br.Msg = "新建失败"
  276. br.ErrMsg = "新建失败,GetCompanyNoRenewedAscribeCount Err:" + err.Error()
  277. return
  278. }
  279. item := new(company.CompanyNoRenewedAscribe)
  280. item.CompanyAscribeId = companyAscribeId
  281. item.AscribeContent = detail.AscribeContent
  282. item.Content = content
  283. item.ProductId = productId
  284. item.CompanyId = companyId
  285. item.AdminId = sysUser.AdminId
  286. item.CreateTime = time.Now()
  287. item.ModifyTime = time.Now()
  288. itemLog := new(company.CompanyNoRenewedAscribeLog)
  289. itemLog.CompanyAscribeId = companyAscribeId
  290. itemLog.AscribeContent = detail.AscribeContent
  291. itemLog.Content = content
  292. itemLog.ProductId = productId
  293. itemLog.CompanyId = companyId
  294. itemLog.AdminId = sysUser.AdminId
  295. itemLog.CreateTime = time.Now()
  296. itemLog.ModifyTime = time.Now()
  297. if total == 0 {
  298. err = company.AddCompanyNoRenewedAscribe(item, itemLog)
  299. } else {
  300. err = company.UpdateCompanyNoRenewedAscribe(item, itemLog)
  301. }
  302. if err != nil {
  303. br.Msg = "新建失败"
  304. br.ErrMsg = "新建失败,Err:" + err.Error()
  305. return
  306. }
  307. br.Ret = 200
  308. br.Success = true
  309. br.Msg = "新建成功"
  310. }
  311. // @Title 确认归因不续约详情接口
  312. // @Description 确认归因不续约详情接口
  313. // @Param CompanyId query int true "公司ID"
  314. // @Param ProductId query int true "产品ID 1:FICC ,2:权益"
  315. // @Success 200 {object} company.CompanyAscribeListResp
  316. // @router /company_no_renewed_ascribe/detail [get]
  317. func (this *CompanyRenewalController) CompanyNoRenewedAscribeAddDetail() {
  318. br := new(models.BaseResponse).Init()
  319. defer func() {
  320. this.Data["json"] = br
  321. this.ServeJSON()
  322. }()
  323. sysUser := this.SysUser
  324. if sysUser == nil {
  325. br.Msg = "请登录"
  326. br.ErrMsg = "请登录,SysUser Is Empty"
  327. return
  328. }
  329. companyId, _ := this.GetInt("CompanyId")
  330. productId, _ := this.GetInt("ProductId")
  331. if companyId < 1 {
  332. br.Msg = "公司ID错误!"
  333. return
  334. }
  335. if productId != 1 && productId != 2 {
  336. br.Msg = "ProductId错误!"
  337. return
  338. }
  339. resp := new(company.CompanyNoRenewedAscribeDetailResp)
  340. detail, err := company.GetCompanyNoRenewedAscribeDetail(companyId, productId)
  341. if err != nil {
  342. br.Msg = "获取失败"
  343. br.ErrMsg = "获取失败,Err:" + err.Error()
  344. return
  345. }
  346. resp.Detail = detail
  347. br.Ret = 200
  348. br.Success = true
  349. br.Msg = "获取成功"
  350. br.Data = resp
  351. }
  352. // @Title 合同通过归因添加确认不续约
  353. // @Description 合同通过归因添加确认不续约接口
  354. // @Param request body company.CompanyNoRenewedNoteReq true "type json string"
  355. // @Success 200 {object} "保存成功"
  356. // @router /company_contract_no_renewed_ascribe/add [post]
  357. func (this *CompanyRenewalController) CompanyContractNoRenewedAscribeAdd() {
  358. br := new(models.BaseResponse).Init()
  359. defer func() {
  360. this.Data["json"] = br
  361. this.ServeJSON()
  362. }()
  363. sysUser := this.SysUser
  364. if sysUser == nil {
  365. br.Msg = "请登录"
  366. br.ErrMsg = "请登录,SysUser Is Empty"
  367. br.Ret = 408
  368. return
  369. }
  370. //内容仅权益管理员账号可以修改
  371. if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_RAI_ADMIN {
  372. br.Msg = "仅管理员可修改!"
  373. return
  374. }
  375. var req company.CompanyContractNoRenewedAscribeReq
  376. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  377. if err != nil {
  378. br.Msg = "参数解析异常!"
  379. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  380. return
  381. }
  382. content := req.Content
  383. companyAscribeId := req.CompanyAscribeId
  384. companyContractId := req.CompanyContractId
  385. if content == "" {
  386. br.Msg = "内容不能为空!"
  387. return
  388. }
  389. contractInfo, err := company.GetCompanyContractDetailByCompanyContractId(companyContractId)
  390. if err != nil {
  391. br.Msg = "获取合同失败"
  392. br.ErrMsg = "获取合同失败,Err:" + err.Error()
  393. return
  394. }
  395. companyId := contractInfo.CompanyId //公司ID
  396. productId := contractInfo.ProductId //权益还是FICC
  397. detail, err := company.GetCompanyAscribeDetail(companyAscribeId)
  398. if err != nil {
  399. br.Msg = "新建失败"
  400. br.ErrMsg = "新建失败,GetCompanyAscribeDetail Err:" + err.Error()
  401. return
  402. }
  403. var condition string
  404. var pars []interface{}
  405. condition += ` AND company_id = ? AND product_id = ? AND company_contract_id = ? `
  406. pars = append(pars, companyId, productId, companyContractId)
  407. total, err := company.GetCompanyContractNoRenewedAscribeCount(condition, pars)
  408. if err != nil {
  409. br.Msg = "新建失败"
  410. br.ErrMsg = "新建失败,GetCompanyContractNoRenewedAscribeCount Err:" + err.Error()
  411. return
  412. }
  413. item := new(company.CompanyContractNoRenewedAscribe)
  414. item.CompanyAscribeId = companyAscribeId
  415. item.AscribeContent = detail.AscribeContent
  416. item.Content = content
  417. item.ProductId = productId
  418. item.CompanyId = companyId
  419. item.CompanyContractId = companyContractId
  420. item.AdminId = sysUser.AdminId
  421. item.CreateTime = time.Now()
  422. item.ModifyTime = time.Now()
  423. itemLog := new(company.CompanyContractNoRenewedAscribeLog)
  424. itemLog.CompanyAscribeId = companyAscribeId
  425. itemLog.AscribeContent = detail.AscribeContent
  426. itemLog.Content = content
  427. itemLog.ProductId = productId
  428. itemLog.CompanyId = companyId
  429. itemLog.CompanyContractId = companyContractId
  430. itemLog.AdminId = sysUser.AdminId
  431. itemLog.CreateTime = time.Now()
  432. itemLog.ModifyTime = time.Now()
  433. if total == 0 {
  434. err = company.AddCompanyContractNoRenewedAscribe(item, itemLog)
  435. } else {
  436. err = company.UpdateCompanyContractNoRenewedAscribe(item, itemLog)
  437. }
  438. if err != nil {
  439. br.Msg = "新建失败"
  440. br.ErrMsg = "新建失败,Err:" + err.Error()
  441. return
  442. }
  443. br.Ret = 200
  444. br.Success = true
  445. br.Msg = "新建成功"
  446. }
  447. // @Title 合同确认归因不续约详情接口
  448. // @Description 合同确认归因不续约详情接口
  449. // @Param CompanyContractId query int true "合同ID"
  450. // @Success 200 {object} company.CompanyAscribeListResp
  451. // @router /company_contract_no_renewed_ascribe/detail [get]
  452. func (this *CompanyRenewalController) CompanyContractNoRenewedAscribeAddDetail() {
  453. br := new(models.BaseResponse).Init()
  454. defer func() {
  455. this.Data["json"] = br
  456. this.ServeJSON()
  457. }()
  458. sysUser := this.SysUser
  459. if sysUser == nil {
  460. br.Msg = "请登录"
  461. br.ErrMsg = "请登录,SysUser Is Empty"
  462. return
  463. }
  464. companyContractId, _ := this.GetInt("CompanyContractId")
  465. if companyContractId < 1 {
  466. br.Msg = "合同ID错误!"
  467. return
  468. }
  469. resp := new(company.CompanyContractNoRenewedAscribeDetailResp)
  470. detail, err := company.GetCompanyContractNoRenewedAscribeDetail(companyContractId)
  471. if err != nil {
  472. br.Msg = "获取失败"
  473. br.ErrMsg = "获取失败,Err:" + err.Error()
  474. return
  475. }
  476. resp.Detail = detail
  477. br.Ret = 200
  478. br.Success = true
  479. br.Msg = "获取成功"
  480. br.Data = resp
  481. }
  482. func init12123() {
  483. var condition string
  484. var pars []interface{}
  485. list, e := company.GetCompanyNoRenewedAscribeList(condition, pars, 0, 0)
  486. if e != nil && e.Error() != utils.ErrNoRow() {
  487. fmt.Println(e)
  488. return
  489. }
  490. for _, v := range list {
  491. pars = make([]interface{}, 0)
  492. condition = " AND company_id = ? "
  493. pars = append(pars, v.CompanyId)
  494. companyContractList, e := company.GetCompanyContractList(condition, pars)
  495. if e != nil && e.Error() != utils.ErrNoRow() {
  496. fmt.Println(e)
  497. return
  498. }
  499. for _, vC := range companyContractList {
  500. item := new(company.CompanyContractNoRenewedAscribe)
  501. item.CompanyAscribeId = v.CompanyAscribeId
  502. item.AscribeContent = v.AscribeContent
  503. item.Content = v.Content
  504. item.ProductId = v.ProductId
  505. item.CompanyId = v.CompanyId
  506. item.CompanyContractId = vC.CompanyContractId
  507. item.AdminId = v.AdminId
  508. item.CreateTime = utils.StrTimeToTime(v.CreateTime)
  509. item.ModifyTime = utils.StrTimeToTime(v.CreateTime)
  510. itemLog := new(company.CompanyContractNoRenewedAscribeLog)
  511. itemLog.CompanyAscribeId = v.CompanyAscribeId
  512. itemLog.AscribeContent = v.AscribeContent
  513. itemLog.Content = v.Content
  514. itemLog.ProductId = v.ProductId
  515. itemLog.CompanyId = v.CompanyId
  516. itemLog.CompanyContractId = vC.CompanyContractId
  517. itemLog.AdminId = v.AdminId
  518. itemLog.CreateTime = utils.StrTimeToTime(v.CreateTime)
  519. itemLog.ModifyTime = utils.StrTimeToTime(v.CreateTime)
  520. err := company.AddCompanyContractNoRenewedAscribe(item, itemLog)
  521. fmt.Println(err)
  522. }
  523. }
  524. return
  525. }
  526. func init879() {
  527. companyContractList, e := models.GetIncrementalCompanyListByOperationRecordMerge879()
  528. if e != nil && e.Error() != utils.ErrNoRow() {
  529. fmt.Println(e)
  530. return
  531. }
  532. fmt.Println(len(companyContractList))
  533. //return
  534. for _, v := range companyContractList {
  535. item := new(company.CompanyContractNoRenewedAscribe)
  536. item.CompanyContractId = v.CompanyContractId
  537. item.ProductId = v.ProductId
  538. item.CompanyId = v.CompanyId
  539. item.CreateTime = time.Now()
  540. item.ModifyTime = time.Now()
  541. itemLog := new(company.CompanyContractNoRenewedAscribeLog)
  542. itemLog.AscribeContent = v.AscribeContent
  543. itemLog.Content = v.Content
  544. itemLog.ProductId = v.ProductId
  545. itemLog.CompanyId = v.CompanyId
  546. itemLog.CompanyContractId = v.CompanyContractId
  547. itemLog.CreateTime = time.Now()
  548. itemLog.ModifyTime = time.Now()
  549. err := company.AddCompanyContractNoRenewedAscribe(item, itemLog)
  550. fmt.Println(err)
  551. }
  552. return
  553. }