diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/personappletlogin/PersonAppletLoginController.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/personappletlogin/PersonAppletLoginController.java new file mode 100644 index 0000000..8d64c91 --- /dev/null +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/controller/personappletlogin/PersonAppletLoginController.java @@ -0,0 +1,45 @@ +package com.xinelu.applet.controller.personappletlogin; + + +import com.xinelu.applet.service.personappletlogin.PersonAppletLoginService; +import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.AjaxResult; +import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @Description 护理员微信小程序登录注册控制器 + * @Author zh + * @Date 2023-03-30 + */ +@RestController +@RequestMapping("/nurseApplet/personLogin") +public class PersonAppletLoginController extends BaseController { + + @Resource + private PersonAppletLoginService personAppletLoginService; + + /** + * 护理员根据登录凭证获取用户的登录信息 + * + * @param loginCode 登录凭证 + * @param phoneCode 手机号凭证 + * @return 微信用户登录信息 + */ + @GetMapping("/getPersonWeChatUserInfo") + public AjaxResult appletLogin(@RequestParam("loginCode") String loginCode, @Param("phoneCode") String phoneCode) { + if (StringUtils.isBlank(loginCode)) { + return AjaxResult.error("登录凭证编码不能为空!"); + } + if (StringUtils.isBlank(phoneCode)) { + return AjaxResult.error("获取手机号凭证不存在"); + } + return personAppletLoginService.personAppletLogin(loginCode, phoneCode); + } +} \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nursemanagepersonwechatinfo/NurseManagePersonWechatInfoMapper.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nursemanagepersonwechatinfo/NurseManagePersonWechatInfoMapper.java new file mode 100644 index 0000000..1b51098 --- /dev/null +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/nursemanagepersonwechatinfo/NurseManagePersonWechatInfoMapper.java @@ -0,0 +1,71 @@ +package com.xinelu.applet.mapper.nursemanagepersonwechatinfo; + + +import com.xinelu.manage.domain.nursemanagepersonwechatinfo.NurseManagePersonWechatInfo; + +import java.util.List; + + +/** + * 护理站管理人员微信个人信息Mapper接口 + * + * @author xinyilu + * @date 2023-04-03 + */ +public interface NurseManagePersonWechatInfoMapper { + /** + * 查询护理站管理人员微信个人信息 + * + * @param id 护理站管理人员微信个人信息主键 + * @return 护理站管理人员微信个人信息 + */ + NurseManagePersonWechatInfo selectNurseManagePersonWechatInfoById(Long id); + + /** + * 查询护理站管理人员微信个人信息列表 + * + * @param nurseManagePersonWechatInfo 护理站管理人员微信个人信息 + * @return 护理站管理人员微信个人信息集合 + */ + List selectNurseManagePersonWechatInfoList(NurseManagePersonWechatInfo nurseManagePersonWechatInfo); + + /** + * 新增护理站管理人员微信个人信息 + * + * @param nurseManagePersonWechatInfo 护理站管理人员微信个人信息 + * @return 结果 + */ + int insertNurseManagePersonWechatInfo(NurseManagePersonWechatInfo nurseManagePersonWechatInfo); + + /** + * 修改护理站管理人员微信个人信息 + * + * @param nurseManagePersonWechatInfo 护理站管理人员微信个人信息 + * @return 结果 + */ + int updateNurseManagePersonWechatInfo(NurseManagePersonWechatInfo nurseManagePersonWechatInfo); + + /** + * 删除护理站管理人员微信个人信息 + * + * @param id 护理站管理人员微信个人信息主键 + * @return 结果 + */ + int deleteNurseManagePersonWechatInfoById(Long id); + + /** + * 批量删除护理站管理人员微信个人信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteNurseManagePersonWechatInfoByIds(Long[] ids); + + /** + * 查询护理站管理人员微信个人信息 + * + * @param phone 护理站管理手机号 + * @return 护理站管理人员微信个人信息 + */ + NurseManagePersonWechatInfo selectNurseManagePersonWechatInfoByPhone(String phone); +} \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/personappletlogin/PersonAppletLoginMapper.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/personappletlogin/PersonAppletLoginMapper.java new file mode 100644 index 0000000..f5b5a1e --- /dev/null +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/mapper/personappletlogin/PersonAppletLoginMapper.java @@ -0,0 +1,31 @@ +package com.xinelu.applet.mapper.personappletlogin; + + +import com.xinelu.applet.vo.personappletlogin.PersonAppletVO; +import com.xinelu.applet.vo.personappletlogin.UserAndRole; + +import java.util.List; + +/** + * 护理员登录Mapper接口 + * + * @author zh + * @date 2023-02-24 + */ +public interface PersonAppletLoginMapper { + /** + * 查询用户信息 + * + * @param phone 手机号 + * @return SysUser + */ + List selectSysUser(String phone); + + /** + * 根据手机号查询护理员信息 + * + * @param phone 手机号 + * @return int + **/ + PersonAppletVO getNurseStationPersonByPhone(String phone); +} \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/personappletlogin/Impl/PersonAppletLoginServiceImpl.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/personappletlogin/Impl/PersonAppletLoginServiceImpl.java new file mode 100644 index 0000000..5562b62 --- /dev/null +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/personappletlogin/Impl/PersonAppletLoginServiceImpl.java @@ -0,0 +1,231 @@ +package com.xinelu.applet.service.personappletlogin.Impl; + + +import com.xinelu.applet.mapper.nursemanagepersonwechatinfo.NurseManagePersonWechatInfoMapper; +import com.xinelu.applet.mapper.personappletlogin.PersonAppletLoginMapper; +import com.xinelu.applet.service.personappletlogin.PersonAppletLoginService; +import com.xinelu.applet.utils.AppletAccessTokenUtil; +import com.xinelu.applet.vo.personappletlogin.PersonAppletVO; +import com.xinelu.applet.vo.personappletlogin.UserAndRole; +import com.xinelu.common.config.NurseAppletChatConfig; +import com.xinelu.common.constant.Constants; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.entity.AppletLoginVO; +import com.xinelu.common.entity.AppletPhoneVO; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.AppletChatUtil; +import com.xinelu.manage.domain.nursemanagepersonwechatinfo.NurseManagePersonWechatInfo; +import com.xinelu.manage.mapper.nursestationperson.NurseStationPersonMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Description 护理员微信小程序登录注册业务层实现类 + * @Author zh + * @Date 2023-03-30 + * @Version 1.0 + */ +@Slf4j +@Service +public class PersonAppletLoginServiceImpl implements PersonAppletLoginService { + @Resource + private RedisTemplate redisTemplate; + @Resource + private NurseAppletChatConfig nurseAppletChatConfig; + @Resource + private AppletAccessTokenUtil appletAccessTokenUtil; + @Resource + private NurseStationPersonMapper nurseStationPersonMapper; + @Resource + private PersonAppletLoginMapper personAppletLoginMapper; + @Resource + private NurseManagePersonWechatInfoMapper nurseManagePersonWechatInfoMapper; + + /** + * 返回成功状态码 + */ + private static final int SUCCESS_CODE = 0; + + /** + * 获取微信小程序access_token错误码 + */ + private static final int ERROR_ACCESS_CODE = 40001; + + /** + * 返回成功状态码 + */ + private static final String OK = "ok"; + + /** + * 根据登录凭证获取用户的登录信息 + * + * @param loginCode 登录凭证 + * @return 微信用户登录信息 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public AjaxResult personAppletLogin(String loginCode, String phoneCode) { + //根据code获取用户的微信unionId以及openId等信息 + AppletLoginVO appletLoginInfo = AppletChatUtil.getAppletLoginInfo(nurseAppletChatConfig.getAppletId(), nurseAppletChatConfig.getSecret(), loginCode, nurseAppletChatConfig.getGrantType()); + if (Objects.isNull(appletLoginInfo)) { + return AjaxResult.error("获取微信小程序用户信息失败"); + } + if (Objects.nonNull(appletLoginInfo.getErrcode()) && appletLoginInfo.getErrcode() != SUCCESS_CODE) { + return AjaxResult.error("获取微信小程序用户信息失败,失败信息为:" + appletLoginInfo.getErrmsg()); + } + //获取微信accessToken,从Redis中取出accessToken + String accessToken; + String accessTokenKey = Constants.NURSE_STATION_PERSON_APPLET_ACCESS_TOKEN + "accessToken"; + Object object = redisTemplate.opsForValue().get(accessTokenKey); + if (Objects.isNull(object)) { + accessToken = appletAccessTokenUtil.getPersonAppletAccessToken(); + } else { + accessToken = (String) object; + } + //获取用户手机号 + AppletPhoneVO appletPhoneInfo = AppletChatUtil.getAppletPhoneInfo(phoneCode, accessToken); + if (Objects.isNull(appletPhoneInfo)) { + return AjaxResult.error("获取用户手机号失败"); + } + if (Objects.nonNull(appletPhoneInfo.getErrcode()) && appletPhoneInfo.getErrcode() == ERROR_ACCESS_CODE) { + //当前Redis缓存中的access_token无效直接删除 + if (Objects.nonNull(object)) { + redisTemplate.delete(accessTokenKey); + accessToken = appletAccessTokenUtil.getPersonAppletAccessToken(); + appletPhoneInfo = AppletChatUtil.getAppletPhoneInfo(phoneCode, accessToken); + if (Objects.isNull(appletPhoneInfo)) { + return AjaxResult.error("获取用户手机号失败"); + } + if (Objects.nonNull(appletPhoneInfo.getErrcode()) && appletPhoneInfo.getErrcode() == ERROR_ACCESS_CODE) { + return AjaxResult.error("登录失败!"); + } + } + } + if (StringUtils.isNotBlank(appletPhoneInfo.getErrmsg()) && !OK.equals(appletPhoneInfo.getErrmsg())) { + return AjaxResult.error("获取用户手机号失败,失败信息为:" + appletPhoneInfo.getErrmsg()); + } + PersonAppletVO personAppletVO = getPersonApplet(appletPhoneInfo, appletLoginInfo); + return AjaxResult.success(personAppletVO); + } + + /** + * 护理站管理人员微信个人信息对象 + * + * @param phone 护理员手机号 + * @param openid 用户的信息 + * @param sysUser 管理员信息 + */ + private void getNurseManagePersonWechat(String phone, String openid, List sysUser) { + //护理站管理人员微信个人信息对象 + NurseManagePersonWechatInfo nurseManagePersonWechat = nurseManagePersonWechatInfoMapper.selectNurseManagePersonWechatInfoByPhone(phone); + NurseManagePersonWechatInfo nurseManagePersonWechatInfo = new NurseManagePersonWechatInfo(); + if (Objects.isNull(nurseManagePersonWechat)) { + nurseManagePersonWechatInfo.setOpenid(openid); + nurseManagePersonWechatInfo.setPhone(phone); + nurseManagePersonWechatInfo.setNurseStationId(StringUtils.isBlank(sysUser.get(0).getNurseStationIds()) ? "" : sysUser.get(0).getNurseStationIds()); + nurseManagePersonWechatInfo.setUserId(Objects.isNull(sysUser.get(0).getUserId()) ? null : sysUser.get(0).getUserId()); + nurseManagePersonWechatInfo.setCreateTime(LocalDateTime.now()); + int count = nurseManagePersonWechatInfoMapper.insertNurseManagePersonWechatInfo(nurseManagePersonWechatInfo); + if (count <= 0) { + throw new ServiceException("新增护理站管理人员微信个人信息失败,请联系管理员!"); + } + } + if (Objects.nonNull(nurseManagePersonWechat)) { + nurseManagePersonWechatInfo.setId(Objects.isNull(nurseManagePersonWechat.getId()) ? null : nurseManagePersonWechat.getId()); + nurseManagePersonWechatInfo.setOpenid(openid); + nurseManagePersonWechatInfo.setPhone(phone); + nurseManagePersonWechatInfo.setNurseStationId(StringUtils.isBlank(sysUser.get(0).getNurseStationIds()) ? "" : sysUser.get(0).getNurseStationIds()); + nurseManagePersonWechatInfo.setUserId(Objects.isNull(sysUser.get(0).getUserId()) ? null : sysUser.get(0).getUserId()); + int update = nurseManagePersonWechatInfoMapper.updateNurseManagePersonWechatInfo(nurseManagePersonWechatInfo); + if (update <= 0) { + throw new ServiceException("新增护理站管理人员微信个人信息失败,请联系管理员!"); + } + } + } + + /** + * 护理员登录接口方法抽取 + * + * @param appletPhoneInfo 微信用户信息 + * @param appletLoginInfo 手机号信息 + * @return 登录标识 + */ + private PersonAppletVO getPersonApplet(AppletPhoneVO appletPhoneInfo, AppletLoginVO appletLoginInfo) { + PersonAppletVO appletParent = new PersonAppletVO(); + String phone = StringUtils.isBlank(appletPhoneInfo.getPhoneInfo().getPhoneNumber()) ? "" : appletPhoneInfo.getPhoneInfo().getPhoneNumber(); + String openid = StringUtils.isBlank(appletLoginInfo.getOpenid()) ? "" : appletLoginInfo.getOpenid(); + PersonAppletVO nurseStationPerson = personAppletLoginMapper.getNurseStationPersonByPhone(phone); + List sysUser = personAppletLoginMapper.selectSysUser(phone); + //说明当前用户角色即是:护理员又是护理站运营人员 + if (Objects.nonNull(nurseStationPerson) && CollectionUtils.isNotEmpty(sysUser)) { + //更新用户的openid等微信标识信息 + this.updateNurseStationPerson(appletParent, nurseStationPerson, openid); + appletParent.setPersonRoleLoginFlag(Constants.PERSON_ROLE_NAME); + //护理站管理人员微信个人信息对象 + List roleKeyList = sysUser.stream().filter(Objects::nonNull).map(UserAndRole::getRoleKey).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(roleKeyList) && (String.join((","), roleKeyList).contains(Constants.STATION_ROLE_NAME))) { + this.getNurseManagePersonWechat(phone, openid, sysUser); + appletParent.setPersonRoleLoginFlag(Constants.STATION_AND_PERSON_ROLE_NAME); + } + } + //说明当前用户角色即是:护理员 + if (Objects.nonNull(nurseStationPerson) && Objects.isNull(sysUser)) { + //更新用户的openid等微信标识信息 + this.updateNurseStationPerson(appletParent, nurseStationPerson, openid); + appletParent.setPersonRoleLoginFlag(Constants.PERSON_ROLE_NAME); + } + //说明当前用户角色即是:护理站运营人员 + if (Objects.isNull(nurseStationPerson) && Objects.nonNull(sysUser)) { + List roleKeyList = sysUser.stream().filter(Objects::nonNull).map(UserAndRole::getRoleKey).collect(Collectors.toList()); + appletParent.setPersonRoleLoginFlag(Constants.NOT_ROLE_NAME); + if (CollectionUtils.isNotEmpty(roleKeyList) && (String.join((","), roleKeyList).contains(Constants.STATION_ROLE_NAME))) { + this.getNurseManagePersonWechat(phone, openid, sysUser); + appletParent.setPersonRoleLoginFlag(Constants.STATION_ROLE_NAME); + } + appletParent.setPhone(phone); + } + //说明当前用户角色即是:即不是护理员又是不是护理站运营人员 + if (Objects.isNull(nurseStationPerson) && Objects.isNull(sysUser)) { + appletParent.setPhone(phone); + appletParent.setPersonRoleLoginFlag(Constants.NOT_ROLE_NAME); + } + //当前用户角色只要包含护理员,那么将护理员的信息返回给前端 + if (Objects.nonNull(nurseStationPerson)) { + appletParent.setNurseStationId(Objects.isNull(nurseStationPerson.getNurseStationId()) ? null : nurseStationPerson.getNurseStationId()); + appletParent.setNurseStationPersonId(Objects.isNull(nurseStationPerson.getNurseStationPersonId()) ? null : nurseStationPerson.getNurseStationPersonId()); + appletParent.setNursePersonName(StringUtils.isBlank(nurseStationPerson.getNursePersonName()) ? "" : nurseStationPerson.getNursePersonName()); + } + return appletParent; + } + + /** + * 修改护理人员信息 + * + * @param appletParent 护理员信息 + * @param nurseStationPerson 护理员信息 + * @param openid 护理员信息 + */ + private void updateNurseStationPerson(PersonAppletVO appletParent, PersonAppletVO nurseStationPerson, String openid) { + appletParent.setId(nurseStationPerson.getNurseStationPersonId()); + appletParent.setNurseStationPersonId(nurseStationPerson.getNurseStationPersonId()); + appletParent.setOpenid(openid); + appletParent.setPhone(StringUtils.isBlank(nurseStationPerson.getPhone()) ? "" : nurseStationPerson.getPhone()); + appletParent.setUpdateTime(LocalDateTime.now()); + int updateCount = nurseStationPersonMapper.updateNurseStationPerson(appletParent); + if (updateCount <= 0) { + throw new ServiceException("修改护理人员信息失败,请联系管理员!"); + } + } +} + + diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/personappletlogin/PersonAppletLoginService.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/personappletlogin/PersonAppletLoginService.java new file mode 100644 index 0000000..5d1bd1b --- /dev/null +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/service/personappletlogin/PersonAppletLoginService.java @@ -0,0 +1,21 @@ +package com.xinelu.applet.service.personappletlogin; + +import com.xinelu.common.core.domain.AjaxResult; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @Description 护理员微信小程序登录注册业务层 + * @Author zh + * @Date 2023-03-30 + */ +public interface PersonAppletLoginService { + + /** + * 护理员根据登录凭证获取用户的登录信息 + * + * @param loginCode 登录凭证 + * @param phoneCode 手机号凭证 + * @return 微信用户登录信息 + */ + AjaxResult personAppletLogin(@RequestParam("loginCode") String loginCode, String phoneCode); +} \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/utils/AppletAccessTokenUtil.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/utils/AppletAccessTokenUtil.java new file mode 100644 index 0000000..8cdaa33 --- /dev/null +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/utils/AppletAccessTokenUtil.java @@ -0,0 +1,98 @@ +package com.xinelu.applet.utils; + +import com.xinelu.common.config.AppletChatConfig; +import com.xinelu.common.config.NurseAppletChatConfig; +import com.xinelu.common.constant.Constants; +import com.xinelu.common.entity.AppletAccessToken; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.AppletChatUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +/** + * @Description 获取小程序AccessToken公共方法 + * @Author 纪寒 + * @Date 2023-02-27 18:02:05 + * @Version 1.0 + */ +@Component +public class AppletAccessTokenUtil { + + @Resource + private RedisTemplate redisTemplate; + @Resource + private AppletChatConfig appletChatConfig; + @Resource + private NurseAppletChatConfig nurseAppletChatConfig; + /** + * 返回成功状态码 + */ + private static final int SUCCESS_CODE = 0; + + /** + * 获取小程序AccessToken方法 + * + * @return 小程序的AccessToken + */ + public String getAppletAccessToken() { + String accessToken; + String accessTokenKey = Constants.NURSE_STATION_APPLET_ACCESS_TOKEN + "accessToken"; + //从Redis中取出accessToken + Object object = redisTemplate.opsForValue().get(accessTokenKey); + if (Objects.isNull(object)) { + //没有,获取accessToken + AppletAccessToken appletAccessToken = AppletChatUtil.getAppletAccessToken(appletChatConfig.getAppletId(), appletChatConfig.getSecret()); + if (Objects.isNull(appletAccessToken)) { + throw new ServiceException("获取微信小程序accessToken信息失败"); + } + if (Objects.nonNull(appletAccessToken.getErrcode()) && appletAccessToken.getErrcode() != SUCCESS_CODE) { + throw new ServiceException("获取微信小程序accessToken信息失败,失败信息为:" + appletAccessToken.getErrmsg(), 201); + } + if (StringUtils.isBlank(appletAccessToken.getAccessToken())) { + throw new ServiceException("accessToken信息为空"); + } + //存入Redis中 + redisTemplate.opsForValue().set(accessTokenKey, appletAccessToken.getAccessToken(), 3600, TimeUnit.SECONDS); + accessToken = appletAccessToken.getAccessToken(); + } else { + accessToken = (String) object; + } + return accessToken; + } + + /** + * 护理员小程序获取小程序AccessToken方法 + * + * @return 小程序的AccessToken + */ + public String getPersonAppletAccessToken() { + String accessToken; + String accessTokenKey = Constants.NURSE_STATION_PERSON_APPLET_ACCESS_TOKEN + "accessToken"; + //从Redis中取出accessToken + Object object = redisTemplate.opsForValue().get(accessTokenKey); + if (Objects.isNull(object)) { + //没有,获取accessToken + AppletAccessToken appletAccessToken = AppletChatUtil.getAppletAccessToken(nurseAppletChatConfig.getAppletId(), nurseAppletChatConfig.getSecret()); + if (Objects.isNull(appletAccessToken)) { + throw new ServiceException("获取微信小程序accessToken信息失败"); + } + if (Objects.nonNull(appletAccessToken.getErrcode()) && appletAccessToken.getErrcode() != SUCCESS_CODE) { + throw new ServiceException("获取微信小程序accessToken信息失败,失败信息为:" + appletAccessToken.getErrmsg(), 201); + } + if (StringUtils.isBlank(appletAccessToken.getAccessToken())) { + throw new ServiceException("accessToken信息为空"); + } + //存入Redis中 + redisTemplate.opsForValue().set(accessTokenKey, appletAccessToken.getAccessToken(), 3600, TimeUnit.SECONDS); + accessToken = appletAccessToken.getAccessToken(); + } else { + accessToken = (String) object; + } + return accessToken; + } +} \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/personappletlogin/PersonAppletVO.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/personappletlogin/PersonAppletVO.java new file mode 100644 index 0000000..d204082 --- /dev/null +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/personappletlogin/PersonAppletVO.java @@ -0,0 +1,29 @@ +package com.xinelu.applet.vo.personappletlogin; + +import com.xinelu.manage.domain.nursestationperson.NurseStationPerson; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * 护理员登录Controller + * + * @author zhangheng + * @date 2022-09-06 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PersonAppletVO extends NurseStationPerson implements Serializable { + private static final long serialVersionUID = 2758774902139122051L; + + /** + * 护理员角色标识标识 + */ + private String personRoleLoginFlag; + + /** + * 护理员id + */ + private Long nurseStationPersonId; +} diff --git a/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/personappletlogin/UserAndRole.java b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/personappletlogin/UserAndRole.java new file mode 100644 index 0000000..c782f57 --- /dev/null +++ b/xinelu-nurse-applet/src/main/java/com/xinelu/applet/vo/personappletlogin/UserAndRole.java @@ -0,0 +1,29 @@ +package com.xinelu.applet.vo.personappletlogin; + + +import com.xinelu.common.core.domain.entity.SysUser; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * 角色表 + * + * @author ZH + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class UserAndRole extends SysUser implements Serializable { + private static final long serialVersionUID = -6758998426533404299L; + + /** + * 角色名称 + */ + private String roleName; + + /** + * 角色权限 + */ + private String roleKey; +} \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/resources/mapper/applet/nursemanagepersonwechatinfo/NurseManagePersonWechatInfoMapper.xml b/xinelu-nurse-applet/src/main/resources/mapper/applet/nursemanagepersonwechatinfo/NurseManagePersonWechatInfoMapper.xml new file mode 100644 index 0000000..f46a386 --- /dev/null +++ b/xinelu-nurse-applet/src/main/resources/mapper/applet/nursemanagepersonwechatinfo/NurseManagePersonWechatInfoMapper.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + select id, + nurse_station_id, + user_id, + openid, + unionid, + phone, + create_by, + create_time, + update_by, + update_time + from nurse_manage_person_wechat_info + + + + + + + + insert into nurse_manage_person_wechat_info + + nurse_station_id, + + user_id, + + openid, + + unionid, + + phone, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{nurseStationId}, + + #{userId}, + + #{openid}, + + #{unionid}, + + #{phone}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update nurse_manage_person_wechat_info + + nurse_station_id = + #{nurseStationId}, + + user_id = + #{userId}, + + openid = + #{openid}, + + unionid = + #{unionid}, + + phone = + #{phone}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from nurse_manage_person_wechat_info + where id = #{id} + + + + delete from nurse_manage_person_wechat_info where id in + + #{id} + + + + + \ No newline at end of file diff --git a/xinelu-nurse-applet/src/main/resources/mapper/applet/personappletlogin/PersonAppletLoginMapper.xml b/xinelu-nurse-applet/src/main/resources/mapper/applet/personappletlogin/PersonAppletLoginMapper.xml new file mode 100644 index 0000000..d7dbdb5 --- /dev/null +++ b/xinelu-nurse-applet/src/main/resources/mapper/applet/personappletlogin/PersonAppletLoginMapper.xml @@ -0,0 +1,55 @@ + + + + + + + + \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursemanagepersonwechatinfo/NurseManagePersonWechatInfo.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursemanagepersonwechatinfo/NurseManagePersonWechatInfo.java new file mode 100644 index 0000000..97f3b4c --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/nursemanagepersonwechatinfo/NurseManagePersonWechatInfo.java @@ -0,0 +1,86 @@ +package com.xinelu.manage.domain.nursemanagepersonwechatinfo; + + +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseDomain; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.io.Serializable; + +/** + * 护理站管理人员微信个人信息对象 nurse_manage_person_wechat_info + * + * @author xinyilu + * @date 2023-04-03 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "护理站管理人员微信个人信息对象", description = "nurse_manage_person_wechat_info") +public class NurseManagePersonWechatInfo extends BaseDomain implements Serializable { + private static final long serialVersionUID = 3468614608277422287L; + /** + * 主键id + */ + private Long id; + + /** + * 护理机构表id + */ + @ApiModelProperty(value = "护理机构表id") + @Excel(name = "护理机构表id") + private String nurseStationId; + + /** + * 护理机构管理人员用户表id + */ + @ApiModelProperty(value = "护理机构管理人员用户表id") + @Excel(name = "护理机构管理人员用户表id") + private Long userId; + + /** + * 微信openid + */ + @ApiModelProperty(value = "微信openid") + @Excel(name = "微信openid") + private String openid; + + /** + * 微信unionid + */ + @ApiModelProperty(value = "微信unionid") + @Excel(name = "微信unionid") + private String unionid; + + /** + * 手机号 + */ + @ApiModelProperty(value = "手机号") + @Excel(name = "手机号") + private String phone; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("nurseStationId", getNurseStationId()) + .append("userId", getUserId()) + .append("openid", getOpenid()) + .append("unionid", getUnionid()) + .append("phone", getPhone()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file