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.AliyunSmsUtil; import com.caimei.utils.CodeUtil; 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 clubName, Integer pageNum, Integer pageSize) { if (null == authUserId) { return ResponseJson.error("参数异常,请输入供应商用户id", null); } PageHelper.startPage(pageNum, pageSize); List clubList = clubMapper.getClubList(authUserId, clubName); 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) { if (null == authUserId) { return ResponseJson.error("参数异常,请输入供应商用户id", null); } 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 clubName, 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, clubName, 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); 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()); clubUser.setPassword("rzt123456"); clubUser.setStatus(1); clubMapper.insertClubUser(clubUser); String content = "您认证通登录密码为:rzt123456"; Boolean sendSms = SmsUtils.sendSms(11, mobile, content); if (!sendSms) { log.info("供应商添加机构用户-密码发送失败,手机号:" + mobile); return ResponseJson.error("发送失败,请确认手机号无误"); } else { log.info("供应商添加机构用户-密码发送成功,手机号:" + mobile); } } else { clubUser.setId(clubUserId); clubMapper.updateClubUser(clubUser); } return ResponseJson.success("保存机构用户成功"); } @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(); String content = "您认证通登录密码为:" + newPassword; Boolean sendSms = SmsUtils.sendSms(11, mobile, content); if (!sendSms) { log.info("机构用户重置密码发送失败,手机号:" + mobile); return ResponseJson.error("发送失败,请确认手机号无误"); } else { log.info("机构用户重置密码发送成功,手机号:" + mobile); } return ResponseJson.success("密码重置成功"); } }