RegisterApi.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. package com.caimei365.user.controller;
  2. import com.caimei365.user.idempotent.Idempotent;
  3. import com.caimei365.user.idempotent.IpSave;
  4. import com.caimei365.user.model.ResponseJson;
  5. import com.caimei365.user.model.dto.*;
  6. import com.caimei365.user.model.vo.ClubTemporaryVo;
  7. import com.caimei365.user.service.RegisterService;
  8. import io.swagger.annotations.Api;
  9. import io.swagger.annotations.ApiImplicitParam;
  10. import io.swagger.annotations.ApiOperation;
  11. import lombok.RequiredArgsConstructor;
  12. import org.apache.commons.lang.StringUtils;
  13. import org.springframework.http.HttpHeaders;
  14. import org.springframework.web.bind.annotation.*;
  15. /**
  16. * 注册Api
  17. *
  18. * @author : Charles
  19. * @date : 2021/3/10
  20. */
  21. @Api(tags = "注册Api")
  22. @RestController
  23. @RequiredArgsConstructor
  24. @RequestMapping("/user/register")
  25. public class RegisterApi {
  26. private final RegisterService registerService;
  27. /**
  28. * 检查手机号是否可以注册
  29. * <p>
  30. * spi旧接口:/seller/club/check
  31. *
  32. * @param bindMobile 手机号
  33. */
  34. @ApiOperation("检查手机号是否可以注册")
  35. @ApiImplicitParam(required = true, name = "bindMobile", value = "手机号或邮箱")
  36. @IpSave(saveName = "检查手机号是否可以注册",saveParams = true)
  37. @GetMapping("/check")
  38. public ResponseJson registerCheck(String bindMobile) {
  39. return registerService.registerCheck(bindMobile);
  40. }
  41. /**
  42. * 检查手机号是否可以注册 -- 组织
  43. * <p>
  44. * spi旧接口:/seller/club/check
  45. *
  46. * @param bindMobile 手机号
  47. * @param organizeId 组织Id
  48. */
  49. @ApiOperation("检查手机号是否可以注册 -- 组织")
  50. @ApiImplicitParam(required = true, name = "bindMobile", value = "手机号")
  51. @IpSave(saveName = "检查手机号是否可以注册 -- 组织",saveParams = true)
  52. @GetMapping("/organizeCheck")
  53. public ResponseJson registerMobile(String bindMobile, Integer organizeId) {
  54. return registerService.registerMobile(bindMobile, organizeId);
  55. }
  56. /**
  57. * 普通机构入驻(注册)
  58. * <p>
  59. * spi旧接口:/club/common
  60. *
  61. * @param clubRegisterDto ClubRegisterDto{
  62. * source 注册来源: 0网站 1小程序
  63. * userName 用户名
  64. * bindMobile 企业绑定手机号
  65. * password 密码
  66. * unionId 微信unionId
  67. * nickName 微信昵称
  68. * avatarUrl 微信头像(旧:headimgurl)
  69. * passWordConfirm 用户确认密码
  70. * smsCode 短信验证码(旧:activationCode)
  71. * isAgreed 是否同意勾选同意协议,1是,其他否
  72. * insideFLag 内外部协销标记 0内部协销,1外部协销
  73. * }
  74. * @param headers HttpHeaders
  75. */
  76. @ApiOperation("注册普通机构")
  77. @Idempotent(prefix = "idempotent_club", keys = {"#clubRegisterDto"}, expire = 5)
  78. @IpSave(saveName = "注册普通机构",saveParams = true)
  79. @PostMapping("/club")
  80. public ResponseJson clubRegister(ClubRegisterDto clubRegisterDto, @RequestHeader HttpHeaders headers) {
  81. return registerService.clubRegister(clubRegisterDto, headers);
  82. }
  83. /**
  84. * 分销人员生成特殊机构(注册)
  85. * <p>
  86. * spi旧接口:/club/common
  87. *
  88. * @param clubRegisterDto ClubRegisterDto{
  89. * name 机构名称
  90. * userName 联系人
  91. * bindMobile 企业绑定手机号
  92. * }
  93. * @param headers HttpHeaders
  94. */
  95. @ApiOperation("分销人员生成特殊机构")
  96. @Idempotent(prefix = "idempotent_distributionClub", keys = {"#distributionClubRegisterDto"}, expire = 5)
  97. // @IpSave(saveName = "分销人员生成特殊机构",saveParams = true)
  98. @PostMapping("/distributionClub")
  99. public ResponseJson distributionClubRegister(ClubRegisterDto clubRegisterDto, @RequestHeader HttpHeaders headers) {
  100. return registerService.distributionClubRegister(clubRegisterDto, headers);
  101. }
  102. /**
  103. * 组织普通机构 注册校验
  104. * @param bindMobile
  105. * @param smsCode
  106. * @param password
  107. * @param passWordConfirm
  108. * @return
  109. */
  110. @ApiOperation("组织普通机构")
  111. @GetMapping("/accountInfo")
  112. public ResponseJson accountInfo(String bindMobile, String smsCode, String password, String passWordConfirm) {
  113. return registerService.accountInfo(bindMobile, smsCode, password, passWordConfirm);
  114. }
  115. /**
  116. * 组织普通机构注册
  117. * @param organizeRegisterDto
  118. * @param headers
  119. * @return
  120. */
  121. @ApiOperation("组织普通机构注册")
  122. @PostMapping("/accountRegister")
  123. public ResponseJson accountRegister(OrganizeRegisterDto organizeRegisterDto, @RequestHeader HttpHeaders headers) {
  124. return registerService.accountRegister(organizeRegisterDto, headers);
  125. }
  126. /**
  127. * 普通机构升级会员机构
  128. * <p>
  129. * spi旧接口:/club/upgrade
  130. *
  131. * @param upgradeDto ClubUpgradeDto:{
  132. * clubId 机构ID
  133. * userId 用户ID
  134. * name 机构名称
  135. * shortName 机构简称
  136. * contractEmail 邮箱(contractEmail1)
  137. * contractPhone 固定电话
  138. * linkMan 联系人(linkMan1)
  139. * provinceId 省Id
  140. * cityId 市Id
  141. * townId 县区Id
  142. * address 地址
  143. * shopPhoto 门头照(headpic)
  144. * businessLicense 营业执照(businessLicenseImage)
  145. * socialCreditCode 统一社会信用代码(socialCreditCode)
  146. * firstClubType 一级分类:医美=1和生美=2
  147. * secondClubType 医美的二级分类:诊所=1、门诊=2、医院=3。 生美没有二级分类
  148. * department 医美分类下的门诊和医院则需要填写科室
  149. * medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
  150. * mainProduct 主打项目(mainpro)
  151. * fax 传真
  152. * profile 公司简介
  153. * }
  154. * @param headers HttpHeaders
  155. */
  156. @ApiOperation("普通机构升级会员机构")
  157. @PostMapping("/club/upgrade")
  158. public ResponseJson clubUpgrade(ClubUpgradeDto upgradeDto, @RequestHeader HttpHeaders headers) {
  159. return registerService.clubUpgrade(upgradeDto, headers);
  160. }
  161. /**
  162. * 协销拉机构上线(用户点击注册)
  163. * <p>
  164. * spi旧接口:/seller/club/register
  165. *
  166. * @param online 暂存数据id
  167. * @param headers HttpHeaders
  168. */
  169. @ApiOperation("协销拉机构上线(机构注册)")
  170. @ApiImplicitParam(required = true, name = "id", value = "暂存机构数据id")
  171. @Idempotent(prefix = "idempotent_club", keys = {"#userOnlineDto"}, expire = 5)
  172. @PostMapping("/club/online")
  173. public ResponseJson<Integer> clubOnline(OnlineDto online, @RequestHeader HttpHeaders headers) {
  174. Integer id = online.getId();
  175. if (id == null) {
  176. return ResponseJson.error("参数异常", null);
  177. }
  178. return registerService.clubOnline(id, headers);
  179. }
  180. /**
  181. * 供应商注册
  182. * <p>
  183. * spi旧接口:supplier/appletsRegistered
  184. *
  185. * @param shopRegisterDto ShopRegisterDto{
  186. * source 注册来源: 0网站 1小程序
  187. * name 组织名称
  188. * shortName 供应商公司简称(sname)
  189. * bindMobile 企业绑定手机号
  190. * email 邮箱
  191. * password 密码
  192. * linkMan 联系人
  193. * provinceId 省(provinceID)
  194. * cityId 市(cityID)
  195. * townId 所在县区Id(townID)
  196. * address 地址
  197. * socialCreditCode 统一社会信用代码
  198. * businessLicense 营业执照(businessLicenseImage)
  199. * firstShopType 医疗=1和非医疗=2
  200. * secondShopType 医疗的二级分类 一类器械=1、二类器械 =2、三类器械=3、其他=4 /// 1和非医疗没有二级分类
  201. * mainProduct 主打项目(mainpro)
  202. * mainProductDesc 主打系列商品说明
  203. * passWordConfirm 用户确认密码
  204. * shopDesc 公司介绍
  205. * website 官网网址
  206. * wxOfficialAccount 微信公众号
  207. * wxApplets 微信小程序
  208. * smsCode 短信验证码(旧:activationCode)
  209. * isAgreed 是否同意勾选同意协议,1是,其他否
  210. * whichStep 注册步数: PC(0),小程序(1,2,3)
  211. * }
  212. * @param headers HttpHeaders
  213. */
  214. @ApiOperation("供应商注册")
  215. @Idempotent(prefix = "idempotent_shop", keys = {"#shopRegisterDto"}, expire = 5)
  216. @PostMapping("/shop")
  217. public ResponseJson shopRegister(ShopRegisterDto shopRegisterDto, @RequestHeader HttpHeaders headers) {
  218. String passWordConfirm = shopRegisterDto.getPassWordConfirm();
  219. String smsCode = shopRegisterDto.getSmsCode();
  220. Integer isAgreed = shopRegisterDto.getIsAgreed();
  221. Integer whichStep = shopRegisterDto.getWhichStep();
  222. return registerService.shopRegister(shopRegisterDto, passWordConfirm, smsCode, isAgreed, whichStep, headers);
  223. }
  224. /**
  225. * 更新供应商申请信息
  226. * <p>
  227. * spi旧接口:/supplier/updateCompanyInfo
  228. *
  229. * @param shopApplyDto ShopApplyDto
  230. * @param headers HttpHeaders
  231. * @return ShopPo
  232. */
  233. @ApiOperation("更新供应商申请信息")
  234. @PostMapping("/shop/apply")
  235. public ResponseJson updateShopApplyInfo(ShopApplyDto shopApplyDto, @RequestHeader HttpHeaders headers) {
  236. return registerService.updateShopApply(shopApplyDto, headers);
  237. }
  238. /**
  239. * 引导升级后改变guideFlag状态
  240. *
  241. * @param userId 用户Id(userId)
  242. */
  243. @ApiOperation("引导升级后改变guideFlag状态")
  244. @ApiImplicitParam(required = true, name = "userId", value = "用户Id")
  245. @GetMapping("/guide")
  246. public ResponseJson updateGuideFlag(Integer userId) {
  247. return registerService.updateGuideFlag(userId);
  248. }
  249. /**
  250. * @param onlineDto ClubOnlineDto:{
  251. * source 注册来源: 0网站 1小程序
  252. * userId 协销用户ID(userID)
  253. * name 机构名称
  254. * shortName 机构简称(shortName)
  255. * bindMobile 企业绑定手机号
  256. * contractEmail 邮箱(email)
  257. * linkMan 联系人(linkMan1)
  258. * provinceId 省Id
  259. * cityId 市Id
  260. * townId 县区Id
  261. * address 地址
  262. * shopPhoto 门头照(headpic)
  263. * businessLicense 营业执照(businessLicenseImage)
  264. * socialCreditCode 统一社会信用代码(socialCreditCode)
  265. * firstClubType 一级分类:医美=1和生美=2
  266. * secondClubType 医美的二级分类:诊所=1、门诊=2、医院=3。 生美没有二级分类
  267. * department 医美分类下的门诊和医院则需要填写科室
  268. * medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
  269. * mainProduct 主打项目(mainpro)
  270. * isAgreed 是否同意勾选同意协议,1是,其他否
  271. * }
  272. */
  273. @ApiOperation("协销拉机构上线(资料填写)")
  274. @PostMapping("/club/temporary")
  275. public ResponseJson<Integer> clubTemporary(ClubOnlineDto onlineDto) {
  276. if (null == onlineDto.getUserId()) {
  277. return ResponseJson.error("参数异常:用户Id不能为空!", null);
  278. }
  279. if (StringUtils.isBlank(onlineDto.getBindMobile())) {
  280. return ResponseJson.error("参数异常:企业绑定手机号不能为空!", null);
  281. }
  282. if (StringUtils.isBlank(onlineDto.getLinkMan())) {
  283. return ResponseJson.error("参数异常:联系人不能为空!", null);
  284. }
  285. if (null == onlineDto.getIsAgreed() || 1 != onlineDto.getIsAgreed()) {
  286. return ResponseJson.error("请勾选同意协议", null);
  287. }
  288. return registerService.clubTemporary(onlineDto);
  289. }
  290. @ApiOperation("协销拉机构上线(查询暂时数据)")
  291. @GetMapping("/temporary/data")
  292. public ResponseJson<ClubTemporaryVo> temporaryData(Integer id) {
  293. if (id == null) {
  294. return ResponseJson.error("参数异常", null);
  295. }
  296. return registerService.temporaryData(id);
  297. }
  298. @ApiOperation("采美豆开通超级会员")
  299. @GetMapping("/super/beans")
  300. public ResponseJson superVipUpByBeans(Integer userId,Integer packageId, @RequestHeader HttpHeaders headers) {
  301. if (null == userId) {
  302. return ResponseJson.error("参数异常:购买套餐不能为空!", null);
  303. }
  304. if (null == packageId) {
  305. return ResponseJson.error("参数异常:用户id不能为空", null);
  306. }
  307. return registerService.superVipUpByBeans(userId, packageId,headers);
  308. }
  309. @ApiOperation("在线支付开通超级会员")
  310. @GetMapping("/super/pay")
  311. public ResponseJson<Integer> superVipUpByPay(Integer userId,Integer packageId, @RequestHeader HttpHeaders headers) {
  312. if (null == userId) {
  313. return ResponseJson.error("参数异常:购买套餐不能为空!", null);
  314. }
  315. if (null == packageId) {
  316. return ResponseJson.error("参数异常:用户id不能为空", null);
  317. }
  318. return registerService.superVipUpByPay(userId, packageId,headers);
  319. }
  320. }