company_renewal.go 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "hongze/hz_crm_api/models"
  5. "hongze/hz_crm_api/models/company"
  6. "hongze/hz_crm_api/utils"
  7. "time"
  8. )
  9. //公司未续约操作
  10. type CompanyRenewalController struct {
  11. BaseAuthController
  12. }
  13. // @Title 新建归因
  14. // @Description 新建归因接口
  15. // @Param request body company.CompanyAscribeAddReq true "type json string"
  16. // @Success 200 {object} "保存成功"
  17. // @router /company_ascribe/add [post]
  18. func (this *CompanyRenewalController) CompanyAscribeAdd() {
  19. br := new(models.BaseResponse).Init()
  20. defer func() {
  21. this.Data["json"] = br
  22. this.ServeJSON()
  23. }()
  24. sysUser := this.SysUser
  25. if sysUser == nil {
  26. br.Msg = "请登录"
  27. br.ErrMsg = "请登录,SysUser Is Empty"
  28. br.Ret = 408
  29. return
  30. }
  31. var req company.CompanyAscribeAddReq
  32. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  33. if err != nil {
  34. br.Msg = "参数解析异常!"
  35. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  36. return
  37. }
  38. ascribeContent := req.AscribeContent
  39. var condition string
  40. var pars []interface{}
  41. condition += " AND ascribe_content = ? "
  42. pars = append(pars, ascribeContent)
  43. total, err := company.GetCompanyAscribeCount(condition, pars)
  44. if err != nil {
  45. br.Msg = "新建失败"
  46. br.ErrMsg = "获取失败,GetCompanyAscribeCount Err:" + err.Error()
  47. return
  48. }
  49. if total > 0 {
  50. br.Msg = "此归因已存在"
  51. return
  52. }
  53. item := new(company.CompanyAscribe)
  54. item.AscribeContent = ascribeContent
  55. item.AdminId = sysUser.AdminId
  56. item.CreateTime = time.Now()
  57. item.ModifyTime = time.Now()
  58. newId, err := company.AddCompanyAscribe(item)
  59. if err != nil {
  60. br.Msg = "新建失败"
  61. br.ErrMsg = "新建失败,Err:" + err.Error()
  62. return
  63. }
  64. detail := new(company.CompanyAscribeResp)
  65. detail.CompanyAscribeId = int(newId)
  66. detail.AscribeContent = ascribeContent
  67. resp := new(company.CompanyAscribeDetailResp)
  68. resp.Detail = detail
  69. br.Ret = 200
  70. br.Success = true
  71. br.Data = resp
  72. br.Msg = "新建成功"
  73. }
  74. // @Title 归因列表接口
  75. // @Description 归因列表接口
  76. // @Param KeyWord query string true "搜索关键词"
  77. // @Success 200 {object} company.CompanyAscribeListResp
  78. // @router /company_ascribe/list [get]
  79. func (this *CompanyRenewalController) CompanyAscribeList() {
  80. br := new(models.BaseResponse).Init()
  81. defer func() {
  82. this.Data["json"] = br
  83. this.ServeJSON()
  84. }()
  85. sysUser := this.SysUser
  86. if sysUser == nil {
  87. br.Msg = "请登录"
  88. br.ErrMsg = "请登录,SysUser Is Empty"
  89. return
  90. }
  91. keyWord := this.GetString("KeyWord")
  92. var condition string
  93. var pars []interface{}
  94. if keyWord != "" {
  95. condition += ` AND ascribe_content LIKE '%` + keyWord + `%' ORDER BY create_time DESC `
  96. }
  97. list, err := company.GetCompanyAscribeList(condition, pars, 0, 0)
  98. if err != nil {
  99. br.Msg = "获取失败"
  100. br.ErrMsg = "获取失败,Err:" + err.Error()
  101. return
  102. }
  103. resp := new(company.CompanyAscribeListResp)
  104. if len(list) == 0 {
  105. list = make([]*company.CompanyAscribeResp, 0)
  106. }
  107. resp.List = list
  108. br.Ret = 200
  109. br.Success = true
  110. br.Msg = "获取成功"
  111. br.Data = resp
  112. }
  113. // @Title 添加未续约备注
  114. // @Description 添加未续约备注接口
  115. // @Param request body company.CompanyNoRenewedNoteReq true "type json string"
  116. // @Success 200 {object} "保存成功"
  117. // @router /company_no_renewed_note/add [post]
  118. func (this *CompanyRenewalController) CompanyNoRenewedNoteAdd() {
  119. br := new(models.BaseResponse).Init()
  120. defer func() {
  121. this.Data["json"] = br
  122. this.ServeJSON()
  123. }()
  124. sysUser := this.SysUser
  125. if sysUser == nil {
  126. br.Msg = "请登录"
  127. br.ErrMsg = "请登录,SysUser Is Empty"
  128. br.Ret = 408
  129. return
  130. }
  131. var req company.CompanyNoRenewedNoteReq
  132. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  133. if err != nil {
  134. br.Msg = "参数解析异常!"
  135. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  136. return
  137. }
  138. content := req.Content
  139. companyId := req.CompanyId
  140. productId := req.ProductId
  141. if companyId < 1 {
  142. br.Msg = "公司ID错误!"
  143. return
  144. }
  145. if productId != 1 && productId != 2 {
  146. br.Msg = "ProductId错误!"
  147. return
  148. }
  149. item := new(company.CompanyNoRenewedNote)
  150. item.Content = content
  151. item.CompanyId = companyId
  152. item.AdminId = sysUser.AdminId
  153. item.ProductId = productId
  154. item.CreateTime = time.Now()
  155. item.ModifyTime = time.Now()
  156. err = company.AddCompanyNoRenewedNote(item)
  157. if err != nil {
  158. br.Msg = "新建失败"
  159. br.ErrMsg = "新建失败,Err:" + err.Error()
  160. return
  161. }
  162. br.Ret = 200
  163. br.Success = true
  164. br.Msg = "新建成功"
  165. }
  166. // @Title 未续约备注列表
  167. // @Description 未续约备注列表接口
  168. // @Param CompanyId query int true "公司ID"
  169. // @Param ProductId query int true "产品ID 1:FICC ,2:权益"
  170. // @Success 200 {object} company.CompanyAscribeListResp
  171. // @router /company_no_renewed_note/list [get]
  172. func (this *CompanyRenewalController) CompanyNoRenewedNoteList() {
  173. br := new(models.BaseResponse).Init()
  174. defer func() {
  175. this.Data["json"] = br
  176. this.ServeJSON()
  177. }()
  178. sysUser := this.SysUser
  179. if sysUser == nil {
  180. br.Msg = "请登录"
  181. br.ErrMsg = "请登录,SysUser Is Empty"
  182. return
  183. }
  184. companyId, _ := this.GetInt("CompanyId")
  185. productId, _ := this.GetInt("ProductId")
  186. if companyId < 1 {
  187. br.Msg = "公司ID错误!"
  188. return
  189. }
  190. if productId != 1 && productId != 2 {
  191. br.Msg = "ProductId错误!"
  192. return
  193. }
  194. var condition string
  195. var pars []interface{}
  196. condition += ` AND company_id = ? AND product_id = ? ORDER BY create_time DESC `
  197. pars = append(pars, companyId, productId)
  198. list, err := company.GetCompanyNoRenewedNoteList(condition, pars, 0, 0)
  199. if err != nil {
  200. br.Msg = "获取失败"
  201. br.ErrMsg = "获取失败,Err:" + err.Error()
  202. return
  203. }
  204. resp := new(company.CompanyNoRenewedNoteListResp)
  205. if len(list) == 0 {
  206. list = make([]*company.CompanyNoRenewedNoteResp, 0)
  207. }
  208. resp.List = list
  209. br.Ret = 200
  210. br.Success = true
  211. br.Msg = "获取成功"
  212. br.Data = resp
  213. }
  214. // @Title 通过归因添加确认不续约
  215. // @Description 通过归因添加确认不续约接口
  216. // @Param request body company.CompanyNoRenewedNoteReq true "type json string"
  217. // @Success 200 {object} "保存成功"
  218. // @router /company_no_renewed_ascribe/add [post]
  219. func (this *CompanyRenewalController) CompanyNoRenewedAscribeAdd() {
  220. br := new(models.BaseResponse).Init()
  221. defer func() {
  222. this.Data["json"] = br
  223. this.ServeJSON()
  224. }()
  225. sysUser := this.SysUser
  226. if sysUser == nil {
  227. br.Msg = "请登录"
  228. br.ErrMsg = "请登录,SysUser Is Empty"
  229. br.Ret = 408
  230. return
  231. }
  232. //内容仅权益管理员账号可以修改
  233. if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_RAI_ADMIN {
  234. br.Msg = "仅管理员可修改!"
  235. return
  236. }
  237. var req company.CompanyNoRenewedAscribeReq
  238. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  239. if err != nil {
  240. br.Msg = "参数解析异常!"
  241. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  242. return
  243. }
  244. content := req.Content
  245. companyId := req.CompanyId
  246. productId := req.ProductId
  247. companyAscribeId := req.CompanyAscribeId
  248. if content == "" {
  249. br.Msg = "内容不能为空!"
  250. return
  251. }
  252. if companyId < 1 {
  253. br.Msg = "公司ID错误!"
  254. return
  255. }
  256. if productId != 1 && productId != 2 {
  257. if companyId < 1 {
  258. br.Msg = "ProductId错误!"
  259. return
  260. }
  261. }
  262. detail, err := company.GetCompanyAscribeDetail(companyAscribeId)
  263. if err != nil {
  264. br.Msg = "新建失败"
  265. br.ErrMsg = "新建失败,GetCompanyAscribeDetail Err:" + err.Error()
  266. return
  267. }
  268. var condition string
  269. var pars []interface{}
  270. condition += ` AND company_id = ? AND product_id = ? ORDER BY create_time DESC `
  271. pars = append(pars, companyId, productId)
  272. total, err := company.GetCompanyNoRenewedAscribeCount(condition, pars)
  273. if err != nil {
  274. br.Msg = "新建失败"
  275. br.ErrMsg = "新建失败,GetCompanyNoRenewedAscribeCount Err:" + err.Error()
  276. return
  277. }
  278. item := new(company.CompanyNoRenewedAscribe)
  279. item.CompanyAscribeId = companyAscribeId
  280. item.AscribeContent = detail.AscribeContent
  281. item.Content = content
  282. item.ProductId = productId
  283. item.CompanyId = companyId
  284. item.AdminId = sysUser.AdminId
  285. item.CreateTime = time.Now()
  286. item.ModifyTime = time.Now()
  287. itemLog := new(company.CompanyNoRenewedAscribeLog)
  288. itemLog.CompanyAscribeId = companyAscribeId
  289. itemLog.AscribeContent = detail.AscribeContent
  290. itemLog.Content = content
  291. itemLog.ProductId = productId
  292. itemLog.CompanyId = companyId
  293. itemLog.AdminId = sysUser.AdminId
  294. itemLog.CreateTime = time.Now()
  295. itemLog.ModifyTime = time.Now()
  296. if total == 0 {
  297. err = company.AddCompanyNoRenewedAscribe(item, itemLog)
  298. } else {
  299. err = company.UpdateCompanyNoRenewedAscribe(item, itemLog)
  300. }
  301. if err != nil {
  302. br.Msg = "新建失败"
  303. br.ErrMsg = "新建失败,Err:" + err.Error()
  304. return
  305. }
  306. br.Ret = 200
  307. br.Success = true
  308. br.Msg = "新建成功"
  309. }
  310. // @Title 确认归因不续约详情接口
  311. // @Description 确认归因不续约详情接口
  312. // @Param CompanyId query int true "公司ID"
  313. // @Param ProductId query int true "产品ID 1:FICC ,2:权益"
  314. // @Success 200 {object} company.CompanyAscribeListResp
  315. // @router /company_no_renewed_ascribe/detail [get]
  316. func (this *CompanyRenewalController) CompanyNoRenewedAscribeAddDetail() {
  317. br := new(models.BaseResponse).Init()
  318. defer func() {
  319. this.Data["json"] = br
  320. this.ServeJSON()
  321. }()
  322. sysUser := this.SysUser
  323. if sysUser == nil {
  324. br.Msg = "请登录"
  325. br.ErrMsg = "请登录,SysUser Is Empty"
  326. return
  327. }
  328. companyId, _ := this.GetInt("CompanyId")
  329. productId, _ := this.GetInt("ProductId")
  330. if companyId < 1 {
  331. br.Msg = "公司ID错误!"
  332. return
  333. }
  334. if productId != 1 && productId != 2 {
  335. br.Msg = "ProductId错误!"
  336. return
  337. }
  338. resp := new(company.CompanyNoRenewedAscribeDetailResp)
  339. detail, err := company.GetCygxProductInteriorDetail(companyId, productId)
  340. if err != nil {
  341. br.Msg = "获取失败"
  342. br.ErrMsg = "获取失败,Err:" + err.Error()
  343. return
  344. }
  345. resp.Detail = detail
  346. br.Ret = 200
  347. br.Success = true
  348. br.Msg = "获取成功"
  349. br.Data = resp
  350. }