user.util.ts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. import { Provide } from '@midwayjs/decorator';
  2. import { InjectEntityModel } from '@midwayjs/typegoose';
  3. import { ReturnModelType } from '@typegoose/typegoose';
  4. import { FrameworkErrorEnum, ServiceError } from 'free-midway-component';
  5. import { User } from '../../entity/User.entity';
  6. import {
  7. CheckUpdateCardAndPid,
  8. checkPhoneAndPid,
  9. checkOffice,
  10. checkUpkeep,
  11. } from '../../interface/util/user.util.interface';
  12. import { ShopSetting } from '../../entity/ShopSetting.entity';
  13. import { Upkeep } from '../../entity/Upkeep.entity';
  14. @Provide()
  15. export class UserUtilService {
  16. @InjectEntityModel(User)
  17. UserModel: ReturnModelType<typeof User>;
  18. @InjectEntityModel(ShopSetting)
  19. shopModel: ReturnModelType<typeof ShopSetting>;
  20. @InjectEntityModel(Upkeep)
  21. keepModel: ReturnModelType<typeof Upkeep>;
  22. /**
  23. * 检查创建时,是否创建改街道/社区设置
  24. * @param data 参数
  25. */
  26. async checkOffice(data: checkOffice) {
  27. if (data.office) {
  28. // 检查街道/社区
  29. const useran = await this.shopModel.count({ office: data.office });
  30. if (useran > 0) {
  31. throw new ServiceError(
  32. '已有该街道/社区 采购设置!',
  33. FrameworkErrorEnum.BAD_BODY
  34. );
  35. }
  36. }
  37. }
  38. /**
  39. * 检查修改时,是否创建改街道/社区设置
  40. * @param data 参数
  41. */
  42. async checkUpdateOffice(id, data: checkOffice) {
  43. const { office } = data;
  44. if (office) {
  45. // 检查街道/社区
  46. const useran = await this.shopModel.count({
  47. _id: { $ne: id },
  48. office,
  49. });
  50. if (useran > 0) {
  51. throw new ServiceError(
  52. '已有该街道/社区 采购设置!',
  53. FrameworkErrorEnum.BAD_BODY
  54. );
  55. }
  56. }
  57. }
  58. /**
  59. * 检查创建时,检查手机号和姓名
  60. * @param data 参数
  61. */
  62. async checkPhoneAndPid(data: checkPhoneAndPid) {
  63. if (data.tel) {
  64. // 检查手机号
  65. const useran = await this.UserModel.count({ tel: data.tel });
  66. if (useran > 0) {
  67. throw new ServiceError(
  68. '已有用户 使用该手机号!',
  69. FrameworkErrorEnum.BAD_BODY
  70. );
  71. }
  72. }
  73. if (data.name) {
  74. // 检查姓名
  75. const username = await this.UserModel.count({ name: data.name });
  76. if (username > 0) {
  77. throw new ServiceError(
  78. '已有用户 使用该名称!',
  79. FrameworkErrorEnum.BAD_BODY
  80. );
  81. }
  82. }
  83. if (data.openid) {
  84. // 检查opneid
  85. let openidan;
  86. openidan = await this.UserModel.count({
  87. openid: data.openid,
  88. status: '0',
  89. });
  90. if (openidan > 0) {
  91. throw new ServiceError(
  92. '注册成功 管理员审核中!',
  93. FrameworkErrorEnum.BAD_BODY
  94. );
  95. }
  96. openidan = await this.UserModel.count({
  97. openid: data.openid,
  98. status: '1',
  99. });
  100. if (openidan > 0) {
  101. throw new ServiceError(
  102. '已有用户信息 请直接登录!',
  103. FrameworkErrorEnum.BAD_BODY
  104. );
  105. }
  106. }
  107. }
  108. /**
  109. * 检查创建时,检查手机号和姓名
  110. * @param id 当前要修改的数据
  111. * @param data 参数
  112. */
  113. async checkUpdateCardAndPid(id, data: CheckUpdateCardAndPid) {
  114. const { tel, name } = data;
  115. if (tel) {
  116. const useran = await this.UserModel.count({
  117. _id: { $ne: id },
  118. tel,
  119. });
  120. if (useran > 0) {
  121. throw new ServiceError(
  122. '已有用户 使用该手机号!',
  123. FrameworkErrorEnum.BAD_BODY
  124. );
  125. }
  126. }
  127. if (name) {
  128. const username = await this.UserModel.count({
  129. _id: { $ne: id },
  130. name,
  131. });
  132. if (username > 0) {
  133. throw new ServiceError(
  134. '已有用户 使用该名称!',
  135. FrameworkErrorEnum.BAD_BODY
  136. );
  137. }
  138. }
  139. }
  140. // 创建维修检查
  141. async checkUpkeep(data: checkUpkeep) {
  142. // 检查街道/社区
  143. const keepan = await this.keepModel.count({
  144. user: data.user,
  145. supplier: data.supplier,
  146. good: data.good,
  147. spec: data.spec,
  148. order_id: data.order_id,
  149. status: '0',
  150. });
  151. if (keepan > 0) {
  152. throw new ServiceError(
  153. '已有维修申请 请等待维修人员上门或联系您!',
  154. FrameworkErrorEnum.BAD_BODY
  155. );
  156. }
  157. }
  158. }