seal.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package seal
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_mobile_admin/models/tables/seal"
  6. "hongze/hongze_mobile_admin/utils"
  7. "strings"
  8. "time"
  9. )
  10. //添加用印
  11. func AddSeal(userId int, userName, use, companyName, creditCode, serviceType, sealType, remark, fileUrl string) (sealInfo *seal.Seal, err error) {
  12. useList := []string{"销售合同", "渠道合同", "付款通知函", "招投标", "战略合作协议"}
  13. serviceTypeList := []string{"新增业务", "续约业务", "补充协议"}
  14. sealTypeList := []string{"合同章", "公章", "法人章"}
  15. if !strings.Contains(strings.Join(useList, ","), use) {
  16. err = errors.New("用印用途异常")
  17. return
  18. }
  19. if !strings.Contains(strings.Join(serviceTypeList, ","), serviceType) {
  20. err = errors.New("业务类型异常")
  21. return
  22. }
  23. if !strings.Contains(strings.Join(sealTypeList, ","), sealType) {
  24. err = errors.New("加盖印章类型异常")
  25. return
  26. }
  27. sealCode, err := seal.GetSealCode()
  28. if err != nil {
  29. return
  30. }
  31. sealInfo = &seal.Seal{
  32. Code: sealCode,
  33. UserId: userId,
  34. UserName: userName,
  35. Use: use,
  36. CompanyName: companyName,
  37. CreditCode: creditCode,
  38. ServiceType: serviceType,
  39. SealType: sealType,
  40. Status: "待提交",
  41. Remark: remark,
  42. FileUrl: fileUrl,
  43. ModifyTime: time.Now(),
  44. CreateTime: time.Now(),
  45. }
  46. err = seal.AddSeal(sealInfo)
  47. return
  48. }
  49. //修改用印
  50. func Edit(sealId, userId int, userName, use, companyName, creditCode, serviceType, sealType, remark, fileUrl string) (sealInfo *seal.Seal, err error) {
  51. useList := []string{"销售合同", "渠道合同", "付款通知函", "招投标", "战略合作协议"}
  52. serviceTypeList := []string{"新增业务", "续约业务", "补充协议"}
  53. sealTypeList := []string{"合同章", "公章", "法人章"}
  54. if !strings.Contains(strings.Join(useList, ","), use) {
  55. err = errors.New("用印用途异常")
  56. return
  57. }
  58. if !strings.Contains(strings.Join(serviceTypeList, ","), serviceType) {
  59. err = errors.New("业务类型异常")
  60. return
  61. }
  62. if !strings.Contains(strings.Join(sealTypeList, ","), sealType) {
  63. err = errors.New("加盖印章类型异常")
  64. return
  65. }
  66. //查询当前合同信息
  67. sealInfo, err = seal.GetSealInfoById(sealId)
  68. if err != nil {
  69. if err.Error() == utils.ErrNoRow() {
  70. err = errors.New(fmt.Sprint("根据用印编号:", sealId, " 找不到该用印"))
  71. }
  72. return
  73. }
  74. if sealInfo.UserId != userId {
  75. err = errors.New("当前账号无操作权限")
  76. return
  77. }
  78. ignoreStatus := []string{"待提交", "已撤回", "已驳回"}
  79. if !strings.Contains(strings.Join(ignoreStatus, ","), sealInfo.Status) {
  80. err = errors.New("用印状态异常,不允许修改,当前用印状态:" + sealInfo.Status)
  81. return
  82. }
  83. //sealId,userId int, userName, use, companyName, creditCode, serviceType, sealType, remark, fileUrl string
  84. sealInfo.Use = use
  85. sealInfo.CompanyName = companyName
  86. sealInfo.CreditCode = creditCode
  87. sealInfo.ServiceType = serviceType
  88. sealInfo.SealType = sealType
  89. sealInfo.Remark = remark
  90. sealInfo.FileUrl = fileUrl
  91. sealInfo.ModifyTime = time.Now()
  92. sealInfo.Status = "待提交" //用印状态
  93. err = sealInfo.Update([]string{"Use", "CompanyName", "CreditCode", "ServiceType", "SealType", "Remark", "FileUrl", "ModifyTime", "Status"})
  94. return
  95. }