AuthClubServiceImpl.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. package com.caimei.service.auth.impl;
  2. import com.caimei.mapper.cmMapper.*;
  3. import com.caimei.model.ResponseJson;
  4. import com.caimei.model.po.ClubUserPo;
  5. import com.caimei.model.vo.*;
  6. import com.caimei.service.auth.AuthClubService;
  7. import com.caimei.utils.Md5Util;
  8. import com.caimei.utils.SmsUtils;
  9. import com.github.pagehelper.PageHelper;
  10. import com.github.pagehelper.PageInfo;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.stereotype.Service;
  14. import javax.annotation.Resource;
  15. import java.util.*;
  16. /**
  17. * Description
  18. *
  19. * @author : Aslee
  20. * @date : 2021/5/11
  21. */
  22. @Slf4j
  23. @Service
  24. public class AuthClubServiceImpl implements AuthClubService {
  25. @Resource
  26. private ClubMapper clubMapper;
  27. @Resource
  28. private AuthMapper authMapper;
  29. @Resource
  30. private ShopMapper shopMapper;
  31. @Resource
  32. private AuthProductMapper authProductMapper;
  33. @Resource
  34. private DoctorMapper doctorMapper;
  35. @Override
  36. public ResponseJson<PageInfo<ClubVo>> getClubList(Integer authUserId, String authParty, Integer pageNum, Integer pageSize) {
  37. if (null == authUserId) {
  38. return ResponseJson.error("参数异常,请输入供应商用户id", null);
  39. }
  40. PageHelper.startPage(pageNum, pageSize);
  41. List<ClubVo> clubList = clubMapper.getClubList(authUserId, authParty);
  42. PageInfo<ClubVo> pageData = new PageInfo<>(clubList);
  43. return ResponseJson.success(pageData);
  44. }
  45. @Override
  46. public ResponseJson<PageInfo<ClubUserVo>> getClubUserList(Integer authUserId, String mobile, String name, Integer status, Integer pageNum, Integer pageSize) {
  47. PageHelper.startPage(pageNum, pageSize);
  48. List<ClubUserVo> clubUserList = clubMapper.getClubUserList(authUserId, mobile, name, status);
  49. PageInfo<ClubUserVo> pageData = new PageInfo<>(clubUserList);
  50. return ResponseJson.success(pageData);
  51. }
  52. @Override
  53. public ResponseJson<PageInfo<WxClubListVo>> getWxClubList(Integer authUserId, String appId, String lngAndLat, String authParty, Integer provinceId,
  54. Integer cityId, Integer townId, Integer pageNum, Integer pageSize) {
  55. if (null == authUserId && StringUtils.isNotEmpty(appId)) {
  56. authUserId = shopMapper.getUserIdByAppId(appId);
  57. }
  58. log.info("查询机构数据,经纬度:" + lngAndLat);
  59. Double lng = null;
  60. Double lat = null;
  61. if (StringUtils.isNotEmpty(lngAndLat)) {
  62. String[] split = lngAndLat.split(",");
  63. lng = Double.parseDouble(split[0]);
  64. lat = Double.parseDouble(split[1]);
  65. }
  66. PageHelper.startPage(pageNum, pageSize);
  67. List<WxClubListVo> clubList = clubMapper.getWxClubList(authUserId, authParty, provinceId, cityId, townId, lng, lat);
  68. PageInfo<WxClubListVo> pageData = new PageInfo<>(clubList);
  69. return ResponseJson.success(pageData);
  70. }
  71. @Override
  72. public ResponseJson submitFeedback(Integer clubUserId, String content) {
  73. if (null == clubUserId) {
  74. return ResponseJson.error("参数异常,请输入机构用户id");
  75. }
  76. if (StringUtils.isEmpty(content)) {
  77. return ResponseJson.error("参数异常,请输入反馈内容");
  78. }
  79. clubMapper.insertFeedback(clubUserId, content);
  80. return ResponseJson.success("提交成功");
  81. }
  82. @Override
  83. public ResponseJson<WxClubDetailsVo> getWxClubDetails(Integer authId) {
  84. if (null == authId) {
  85. return ResponseJson.error("参数异常,请输入机构id", null);
  86. }
  87. WxClubDetailsVo clubDetail = clubMapper.getClubDetails(authId);
  88. if (null == clubDetail) {
  89. return ResponseJson.error("机构不存在", null);
  90. }
  91. // 轮播图列表
  92. List<String> bannerList = authMapper.getBannerList(clubDetail.getAuthId());
  93. clubDetail.setBannerList(bannerList);
  94. // 授权设备列表
  95. List<WxProductListVo> wxProductList = authProductMapper.getClubProductList(authId);
  96. clubDetail.setProductList(wxProductList);
  97. // 操作医师列表
  98. List<WxDoctorListVo> doctorList = doctorMapper.getWxDoctorList(null, authId, 1, null);
  99. doctorList.forEach(doctor->{
  100. List<String> tagList = doctorMapper.getTagList(doctor.getDoctorId());
  101. doctor.setTagList(tagList);
  102. });
  103. clubDetail.setDoctorList(doctorList);
  104. // 增加扫码次数
  105. authMapper.addScanCount(authId);
  106. return ResponseJson.success(clubDetail);
  107. }
  108. @Override
  109. public ResponseJson<WxShopVo> getWxShopInfo(Integer authUserId, String appId) {
  110. if (null == authUserId && StringUtils.isNotEmpty(appId)) {
  111. authUserId = shopMapper.getUserIdByAppId(appId);
  112. }
  113. WxShopVo shop = shopMapper.getWxShopInfo(authUserId);
  114. if (null == shop) {
  115. return ResponseJson.error("供应商不存在", null);
  116. }
  117. return ResponseJson.success(shop);
  118. }
  119. @Override
  120. public ResponseJson saveClubUser(Integer clubUserId, Integer authUserId, String mobile) {
  121. // 是否为添加操作
  122. boolean insertFlag = null == clubUserId;
  123. // 构建机构用户
  124. ClubUserPo clubUser = new ClubUserPo();
  125. clubUser.setAuthUserId(authUserId);
  126. clubUser.setMobile(mobile);
  127. if (insertFlag) {
  128. // 根据手机号校验该机构下是否已添加该机构用户
  129. WxClubUserVo wxClubUser = clubMapper.getWxClubUser(mobile, null, authUserId, null, null);
  130. if (null != wxClubUser) {
  131. return ResponseJson.error("该用户已存在,请勿重复添加");
  132. }
  133. clubUser.setAddTime(new Date());
  134. String md5Password = Md5Util.md5("rzt123456");
  135. clubUser.setPassword(md5Password);
  136. clubUser.setStatus(1);
  137. clubMapper.insertClubUser(clubUser);
  138. // 获取供应商名称
  139. ShopFormVo shop = shopMapper.getShopByUserId(authUserId);
  140. String shopName = "";
  141. if (null == shop) {
  142. return ResponseJson.error("供应商不存在");
  143. } else {
  144. shopName = shop.getShopName();
  145. }
  146. String content = "("+ shopName +")您认证通登录密码为:rzt123456,请勿泄漏于他人。【采美网提供技术支持】";
  147. Boolean sendSms = SmsUtils.sendSms(1, mobile, content);
  148. if (!sendSms) {
  149. log.info("供应商添加机构用户-密码发送失败,手机号:" + mobile);
  150. return ResponseJson.error("发送失败,请确认手机号无误");
  151. } else {
  152. log.info("供应商添加机构用户-密码发送成功,手机号:" + mobile);
  153. }
  154. //认证通1.7.7ROSS挑战赛挑战赛活动开启期间新增用户短信发送
  155. smsRossRound(authUserId,mobile);
  156. } else {
  157. clubUser.setId(clubUserId);
  158. clubMapper.updateClubUser(clubUser);
  159. }
  160. return ResponseJson.success("保存机构用户成功");
  161. }
  162. /**
  163. * 认证通1.7.7ROSS挑战赛挑战赛活动开启期间新增用户短信发送
  164. * @param authUserId
  165. */
  166. public void smsRossRound(Integer authUserId,String mobile){
  167. //获取手机号码
  168. // List<RossChallengeRoundVo> roundByAuthUserID = authMapper.getRoundByAuthUserID(authUserId);
  169. // List<ClubUserVo> clubUserList = clubMapper.getClubUserList(authUserId, null, null, null);
  170. //如果活动已经开始了,则用户报名成功后向用户发送短信
  171. if(null!=authUserId){
  172. ChallengeActivityVo activityTime = authMapper.getActivityTime(authUserId);
  173. //判断活动是否开启
  174. if(null!=activityTime &&null!=authUserId&&null!=activityTime.getStatus()&&activityTime.getStatus()==1){
  175. //获取供应商名称
  176. String authParty=authMapper.getAuthparty(authUserId);
  177. if(authUserId==12){
  178. authParty="西班牙ROSS";
  179. }
  180. //短信类型:1通知短信,2验证码短信,3营销短信
  181. Integer type=3;
  182. String conn="[" + authParty + "]尊敬的会员,ROSS视频挑战赛报名通道已开启,点此【http://f6d.cn/Fgp6r】进入ROSS认证通,了解详情";
  183. if(StringUtils.isNotEmpty(mobile)){
  184. Boolean aBoolean = SmsUtils.sendSms(type, mobile, conn);
  185. if(aBoolean){
  186. log.info("挑战赛短信发送成功"+mobile);
  187. }else{
  188. log.info("挑战赛短信发送失败"+mobile);
  189. }
  190. }
  191. }
  192. }
  193. }
  194. @Override
  195. public ResponseJson deleteClubUser(Integer clubUserId) {
  196. clubMapper.deleteClubUser(clubUserId);
  197. return ResponseJson.success("删除机构用户成功");
  198. }
  199. @Override
  200. public ResponseJson updateStatus(Integer clubUserId, Integer status) {
  201. clubMapper.updateStatus(clubUserId, status);
  202. return ResponseJson.success("修改成功");
  203. }
  204. @Override
  205. public ResponseJson resetClubUserPassword(Integer clubUserId) {
  206. if (clubUserId == null) {
  207. return ResponseJson.error("请输入机构用户id");
  208. }
  209. String newPassword = "rzt123456";
  210. String md5Password = Md5Util.md5(newPassword);
  211. clubMapper.updateClubUserPassword(clubUserId, md5Password);
  212. WxClubUserVo clubUser = clubMapper.getWxClubUser(null, null, null, null, clubUserId);
  213. String mobile = clubUser.getMobile();
  214. // 获取供应商名称
  215. ShopFormVo shop = shopMapper.getShopByUserId(clubUser.getAuthUserId());
  216. String shopName = "";
  217. if (null == shop) {
  218. return ResponseJson.error("供应商不存在");
  219. } else {
  220. shopName = shop.getShopName();
  221. }
  222. String content = "("+ shopName +")您认证通登录密码为:rzt123456,请勿泄漏于他人。【采美网提供技术支持】";
  223. Boolean sendSms = SmsUtils.sendSms(1, mobile, content);
  224. if (!sendSms) {
  225. log.info("机构用户重置密码发送失败,手机号:" + mobile);
  226. return ResponseJson.error("发送失败,请确认手机号无误");
  227. } else {
  228. log.info("机构用户重置密码发送成功,手机号:" + mobile);
  229. }
  230. return ResponseJson.success("密码重置成功");
  231. }
  232. @Override
  233. public ResponseJson<List<WxClubListVo>> getWxStarClubList(Integer authUserId) {
  234. List<WxClubListVo> starClubList = clubMapper.getWxStarClubList(authUserId);
  235. return ResponseJson.success(starClubList);
  236. }
  237. @Override
  238. public ResponseJson saveBindAuth(Integer authId,String authParty,Integer authUserId,Integer clubUserId){
  239. clubMapper.saveBindAuth(authId,authParty,authUserId,clubUserId);
  240. return ResponseJson.success("绑定机构成功");
  241. }
  242. }