package com.caimei.service.auth.impl; import com.caimei.mapper.cmMapper.*; import com.caimei.model.ResponseJson; import com.caimei.model.po.ClubUserPo; import com.caimei.model.vo.*; import com.caimei.service.auth.AuthClubService; import com.caimei.utils.Md5Util; import com.caimei.utils.SmsUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; /** * Description * * @author : Aslee * @date : 2021/5/11 */ @Slf4j @Service public class AuthClubServiceImpl implements AuthClubService { @Resource private ClubMapper clubMapper; @Resource private AuthMapper authMapper; @Resource private ShopMapper shopMapper; @Resource private AuthProductMapper authProductMapper; @Resource private DoctorMapper doctorMapper; @Override public ResponseJson> getClubList(Integer authUserId, String authParty, Integer pageNum, Integer pageSize) { if (null == authUserId) { return ResponseJson.error("参数异常,请输入供应商用户id", null); } PageHelper.startPage(pageNum, pageSize); List clubList = clubMapper.getClubList(authUserId, authParty); PageInfo pageData = new PageInfo<>(clubList); return ResponseJson.success(pageData); } @Override public ResponseJson> getClubUserList(Integer authUserId, String mobile, String name, Integer status, Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum, pageSize); List clubUserList = clubMapper.getClubUserList(authUserId, mobile, name, status); PageInfo pageData = new PageInfo<>(clubUserList); return ResponseJson.success(pageData); } @Override public ResponseJson> getWxClubList(Integer authUserId, String appId, String lngAndLat, String authParty, Integer provinceId, Integer cityId, Integer townId, Integer pageNum, Integer pageSize) { if (null == authUserId && StringUtils.isNotEmpty(appId)) { authUserId = shopMapper.getUserIdByAppId(appId); } log.info("查询机构数据,经纬度:" + lngAndLat); Double lng = null; Double lat = null; if (StringUtils.isNotEmpty(lngAndLat)) { String[] split = lngAndLat.split(","); lng = Double.parseDouble(split[0]); lat = Double.parseDouble(split[1]); } PageHelper.startPage(pageNum, pageSize); List clubList = clubMapper.getWxClubList(authUserId, authParty, provinceId, cityId, townId, lng, lat); PageInfo pageData = new PageInfo<>(clubList); return ResponseJson.success(pageData); } @Override public ResponseJson submitFeedback(Integer clubUserId, String content) { if (null == clubUserId) { return ResponseJson.error("参数异常,请输入机构用户id"); } if (StringUtils.isEmpty(content)) { return ResponseJson.error("参数异常,请输入反馈内容"); } clubMapper.insertFeedback(clubUserId, content); return ResponseJson.success("提交成功"); } @Override public ResponseJson getWxClubDetails(Integer authId) { if (null == authId) { return ResponseJson.error("参数异常,请输入机构id", null); } WxClubDetailsVo clubDetail = clubMapper.getClubDetails(authId); if (null == clubDetail) { return ResponseJson.error("机构不存在", null); } // 轮播图列表 List bannerList = authMapper.getBannerList(clubDetail.getAuthId()); clubDetail.setBannerList(bannerList); // 授权设备列表 List wxProductList = authProductMapper.getClubProductList(authId); clubDetail.setProductList(wxProductList); // 操作医师列表 List doctorList = doctorMapper.getWxDoctorList(null, authId, 1, null); doctorList.forEach(doctor->{ List tagList = doctorMapper.getTagList(doctor.getDoctorId()); doctor.setTagList(tagList); }); clubDetail.setDoctorList(doctorList); // 增加扫码次数 authMapper.addScanCount(authId); return ResponseJson.success(clubDetail); } @Override public ResponseJson getWxShopInfo(Integer authUserId, String appId) { if (null == authUserId && StringUtils.isNotEmpty(appId)) { authUserId = shopMapper.getUserIdByAppId(appId); } WxShopVo shop = shopMapper.getWxShopInfo(authUserId); if (null == shop) { return ResponseJson.error("供应商不存在", null); } return ResponseJson.success(shop); } @Override public ResponseJson saveClubUser(Integer clubUserId, Integer authUserId, String mobile) { // 是否为添加操作 boolean insertFlag = null == clubUserId; // 构建机构用户 ClubUserPo clubUser = new ClubUserPo(); clubUser.setAuthUserId(authUserId); clubUser.setMobile(mobile); if (insertFlag) { // 根据手机号校验该机构下是否已添加该机构用户 WxClubUserVo wxClubUser = clubMapper.getWxClubUser(mobile, null, authUserId, null, null); if (null != wxClubUser) { return ResponseJson.error("该用户已存在,请勿重复添加"); } clubUser.setAddTime(new Date()); String md5Password = Md5Util.md5("rzt123456"); clubUser.setPassword(md5Password); clubUser.setStatus(1); clubMapper.insertClubUser(clubUser); // 获取供应商名称 ShopFormVo shop = shopMapper.getShopByUserId(authUserId); String shopName = ""; if (null == shop) { return ResponseJson.error("供应商不存在"); } else { shopName = shop.getShopName(); } String content = "("+ shopName +")您认证通登录密码为:rzt123456,请勿泄漏于他人。【采美网提供技术支持】"; Boolean sendSms = SmsUtils.sendSms(1, mobile, content); if (!sendSms) { log.info("供应商添加机构用户-密码发送失败,手机号:" + mobile); return ResponseJson.error("发送失败,请确认手机号无误"); } else { log.info("供应商添加机构用户-密码发送成功,手机号:" + mobile); } //认证通1.7.7ROSS挑战赛挑战赛活动开启期间新增用户短信发送 smsRossRound(authUserId,mobile); } else { clubUser.setId(clubUserId); clubMapper.updateClubUser(clubUser); } return ResponseJson.success("保存机构用户成功"); } /** * 认证通1.7.7ROSS挑战赛挑战赛活动开启期间新增用户短信发送 * @param authUserId */ public void smsRossRound(Integer authUserId,String mobile){ //获取手机号码 // List roundByAuthUserID = authMapper.getRoundByAuthUserID(authUserId); // List clubUserList = clubMapper.getClubUserList(authUserId, null, null, null); //如果活动已经开始了,则用户报名成功后向用户发送短信 if(null!=authUserId){ ChallengeActivityVo activityTime = authMapper.getActivityTime(authUserId); //判断活动是否开启 if(null!=activityTime &&null!=authUserId&&null!=activityTime.getStatus()&&activityTime.getStatus()==1){ //获取供应商名称 String authParty=authMapper.getAuthparty(authUserId); if(authUserId==12){ authParty="西班牙ROSS"; } //短信类型:1通知短信,2验证码短信,3营销短信 Integer type=3; String conn="[" + authParty + "]尊敬的会员,ROSS视频挑战赛报名通道已开启,点此【http://f6d.cn/Fgp6r】进入ROSS认证通,了解详情"; if(StringUtils.isNotEmpty(mobile)){ Boolean aBoolean = SmsUtils.sendSms(type, mobile, conn); if(aBoolean){ log.info("挑战赛短信发送成功"+mobile); }else{ log.info("挑战赛短信发送失败"+mobile); } } } } } @Override public ResponseJson deleteClubUser(Integer clubUserId) { clubMapper.deleteClubUser(clubUserId); return ResponseJson.success("删除机构用户成功"); } @Override public ResponseJson updateStatus(Integer clubUserId, Integer status) { clubMapper.updateStatus(clubUserId, status); return ResponseJson.success("修改成功"); } @Override public ResponseJson resetClubUserPassword(Integer clubUserId) { if (clubUserId == null) { return ResponseJson.error("请输入机构用户id"); } String newPassword = "rzt123456"; String md5Password = Md5Util.md5(newPassword); clubMapper.updateClubUserPassword(clubUserId, md5Password); WxClubUserVo clubUser = clubMapper.getWxClubUser(null, null, null, null, clubUserId); String mobile = clubUser.getMobile(); // 获取供应商名称 ShopFormVo shop = shopMapper.getShopByUserId(clubUser.getAuthUserId()); String shopName = ""; if (null == shop) { return ResponseJson.error("供应商不存在"); } else { shopName = shop.getShopName(); } String content = "("+ shopName +")您认证通登录密码为:rzt123456,请勿泄漏于他人。【采美网提供技术支持】"; Boolean sendSms = SmsUtils.sendSms(1, mobile, content); if (!sendSms) { log.info("机构用户重置密码发送失败,手机号:" + mobile); return ResponseJson.error("发送失败,请确认手机号无误"); } else { log.info("机构用户重置密码发送成功,手机号:" + mobile); } return ResponseJson.success("密码重置成功"); } @Override public ResponseJson> getWxStarClubList(Integer authUserId) { List starClubList = clubMapper.getWxStarClubList(authUserId); return ResponseJson.success(starClubList); } @Override public ResponseJson saveBindAuth(Integer authId,String authParty,Integer authUserId,Integer clubUserId){ clubMapper.saveBindAuth(authId,authParty,authUserId,clubUserId); return ResponseJson.success("绑定机构成功"); } }