k94314517
2024-07-22 1941e9fc342b3a2cb6d32e9658ad46f29f50a5df
代码提交
已修改19个文件
195 ■■■■ 文件已修改
server/admin/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCaseInfoResponse.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductNewsInfoResponse.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTRealcaseInfoResponse.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTVideoInfoResponse.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/web/response/AccountResponse.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/UsersService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/ApiController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/CustomerApi.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/PersonnelApi.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/admin/src/main/resources/application.yml
@@ -1,6 +1,6 @@
# 项目信息配置
project:
  name: 访客系统
  name: 志邦业绩数字化赋能后台系统
  version: 1.0.0
  env: development
#  env: production
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCaseInfoResponse.java
@@ -16,7 +16,7 @@
    /**
     * 收藏量
     */
    private String collectCount;
    private Integer collectCount;
    /**
     * 主图
     */
@@ -42,6 +42,6 @@
    /**
     * 浏览量
     */
    private String viewCount;
    private Integer viewCount;
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTCollectInfoResponse.java
@@ -14,7 +14,7 @@
    /**
     * 收藏数
     */
    private String collectCount;
    private Integer collectCount;
    /**
     * 内容ID
     */
@@ -50,6 +50,6 @@
    /**
     * 查看数
     */
    private String viewCount;
    private Integer viewCount;
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductInfoResponse.java
@@ -16,7 +16,7 @@
     * 详情页轮播图列表(多视角图)
     */
    private String[] bannerImgList;
    private String collectCount;
    private Integer collectCount;
    /**
     * 详情页富文本(全屋定制遍历spaceList的富文本)
     */
@@ -41,7 +41,7 @@
    private List<ZTSpaceInfoResponse> spaceList;
    private String subtitle;
    private String title;
    private String viewCount;
    private Integer viewCount;
    private String downloadCount;
    private String isTop;
    private String orgId;
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTProductNewsInfoResponse.java
@@ -16,7 +16,7 @@
     * 详情页轮播图列表(多视角图)
     */
    private String[] bannerImgList;
    private String collectCount;
    private Integer collectCount;
    /**
     * 详情页富文本(全屋定制遍历spaceList的富文本)
     */
@@ -41,7 +41,7 @@
    private List<ZTSpaceInfoResponse> spaceList;
    private String subtitle;
    private String title;
    private String viewCount;
    private Integer viewCount;
    private String downloadCount;
    private String isTop;
    private String orgId;
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTRealcaseInfoResponse.java
@@ -14,7 +14,7 @@
public class ZTRealcaseInfoResponse implements Serializable {
    private String caseInfo;
    private String collectCount;
    private Integer collectCount;
    /**
     * 主图
     */
@@ -36,7 +36,7 @@
     * 标题
     */
    private String title;
    private String viewCount;
    private Integer viewCount;
    private String contentCategory;
    private String intro;
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTVideoInfoResponse.java
@@ -16,7 +16,7 @@
    /**
     * 收藏数量
     */
    private long collectCount;
    private Integer collectCount;
    /**
     * 封面图
     */
@@ -58,5 +58,5 @@
    /**
     * 浏览数量
     */
    private String viewCount;
    private Integer viewCount;
}
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTZbDecoInfoResponse.java
@@ -11,7 +11,7 @@
@Data
public class ZTZbDecoInfoResponse implements Serializable {
    private String author;
    private long collectCount;
    private Integer collectCount;
    /**
     * 内容
     */
@@ -46,5 +46,5 @@
     * 标题
     */
    private String title;
    private String viewCount;
    private Integer viewCount;
}
server/service/src/main/java/com/doumee/config/Jwt/JwtTokenUtil.java
@@ -21,11 +21,14 @@
import com.doumee.dao.business.model.Member;
import io.jsonwebtoken.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/**
@@ -47,6 +50,8 @@
public class JwtTokenUtil {
    //Header 名称
    public static final String HEADER_KEY = "token";
    //Header 名称
    public static final String BUSINESS_HEADER_KEY = "business_token";
    //取值名称
    public static final String UserId_Name = "AppUserId";
    //取值名称
@@ -65,6 +70,24 @@
        return generateToken(jwtPayLoad.getUserId(), expirationDate, jwtPayLoad.toMap());
    }
    /**
     * 生成token,根据userId和默认过期时间
     */
    public static String generateTokenForZb(Long userId,String userType,String userInfo,RedisTemplate<String,Object> redisTemplate) {
        Long expiredSeconds = getExpireSeconds();
        final Date expirationDate = new Date(System.currentTimeMillis() + expiredSeconds * 1000);
        return generateTokenZb(userId,userType,userInfo, expirationDate,redisTemplate);
    }
    public static String generateTokenZb(Long userId, String userType,String userInfo, Date expiredDate,RedisTemplate<String,Object> redisTemplate) {
        String tokenKey =  UUID.randomUUID() + "_" + userId;
        redisTemplate.opsForValue().set(userType + "_" +tokenKey,userInfo);
        return tokenKey;
    }
    /**
     * 验证token是否失效
     */
server/service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -65,27 +65,26 @@
                HandlerMethod handlerMethod = (HandlerMethod) handler;
                Class<?> beanType = handlerMethod.getBeanType();
//                Method method = handlerMethod.getMethod();
                Boolean checkFlag = false;
                // 有 @LoginRequired 注解,需要登录认证 客户端使用
                if (beanType.isAnnotationPresent(LoginRequired.class) || handlerMethod.hasMethodAnnotation(LoginRequired.class)) {
                    //获取token
                    String token = request.getHeader(JwtTokenUtil.HEADER_KEY);  // 从 http 请求头中取出 token
                    if (StringUtils.isNotBlank(token)) {
                        checkLogin(request,response);
                    } else {
                if ((beanType.isAnnotationPresent(LoginRequired.class) || handlerMethod.hasMethodAnnotation(LoginRequired.class))) {
                    String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
                    if(StringUtils.isBlank(token)){
                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"未登录");
                    }
                    if (StringUtils.isNotBlank(token)) {
                        checkFlag = checkLogin(request,response,token);
                    }
                    // 有 @UserLoginRequired 注解,需要登录认证 内部人员使用
                } else if(beanType.isAnnotationPresent(UserLoginRequired.class) || handlerMethod.hasMethodAnnotation(UserLoginRequired.class)){
                        //ERP 业务注解
                        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
                        if (StringUtils.isNotBlank(token)) {
                            checkPersonnelLogin(request,response);
                        } else {
                            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"未登录");
                        }
                }
                if(beanType.isAnnotationPresent(UserLoginRequired.class) || handlerMethod.hasMethodAnnotation(UserLoginRequired.class)){
                    String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
                    if(StringUtils.isBlank(token)){
                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"未登录");
                    }
                    if (StringUtils.isNotBlank(token)) {
                        checkFlag = checkPersonnelLogin(request,response,token);
                    }
                }
                return true;
            }
@@ -94,12 +93,9 @@
    }
    public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response){
        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
    public Boolean checkLogin(HttpServletRequest request, HttpServletResponse response,String token){
        try {
            //获取账号ID
            Long memberId = JwtTokenUtil.getJwtPayLoad(token).getUserId();
            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.CUSTOMER+"_"+memberId);
            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.CUSTOMER+"_"+token);
            if(StringUtils.isNotBlank(tokenRedis)){
                if(!tokenRedis.equals(token)){
                    throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
@@ -107,7 +103,8 @@
            }else{
                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
            }
            Member member = dao.queryForObject(" select  *  from `member` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Member.class),memberId );
            Long memberId = getTokenId(token);
            Member member = dao.queryForObject(" select  *  from `member` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Member.class),memberId);
            if(Objects.isNull(member)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY);
            }
@@ -125,12 +122,9 @@
        }
    }
    public Boolean checkPersonnelLogin(HttpServletRequest request, HttpServletResponse response){
        String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
    public Boolean checkPersonnelLogin(HttpServletRequest request, HttpServletResponse response,String token){
        try {
            //获取账号ID
            Long userId = JwtTokenUtil.getJwtPayLoad(token).getUserId();
            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.BUSINESS+"_"+userId);
            String tokenRedis = (String) redisTemplate.opsForValue().get(ZTConstants.BUSINESS+"_"+token);
            if(StringUtils.isNotBlank(tokenRedis)){
                if(!tokenRedis.equals(token)){
                    throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
@@ -138,6 +132,7 @@
            }else{
                throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"长时间未操作,请重新登录");
            }
            Long userId = getTokenId(token);
            Users users = dao.queryForObject(" select  *  from `users` where id  = ?  limit 1  ", new BeanPropertyRowMapper<>(Users.class),userId);
            if(Objects.isNull(users)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY);
@@ -161,5 +156,14 @@
        return new RestTemplate();
    }
    public Long getTokenId(String token){
        try {
            Integer lastIndex = token.lastIndexOf("_")+1;
            Long tokenId = Long.valueOf(token.substring(0,lastIndex));
            return tokenId;
        }catch (Exception e){
            throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"未登录");
        }
    }
}
server/service/src/main/java/com/doumee/dao/web/response/AccountResponse.java
@@ -24,6 +24,9 @@
    @ApiModelProperty(value = "微信sessionKey")
    private String sessionKey;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "用户信息 - 客户端")
    private Member member;
server/service/src/main/java/com/doumee/service/business/UsersService.java
@@ -7,6 +7,7 @@
import com.doumee.dao.business.model.Users;
import com.doumee.dao.web.reqeust.ContentShareImgDto;
import com.doumee.dao.web.reqeust.EditUsersRequest;
import com.doumee.dao.web.reqeust.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
import org.springframework.web.multipart.MultipartFile;
@@ -121,4 +122,6 @@
    String getContentShareImg(Users loginUserInfo, ContentShareImgDto param);
    ZTBaseRequst logOff(Long userId);
    AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest);
}
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -275,7 +275,7 @@
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"获取openid失败!请联系管理员");
            }
//            String openId = code;
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId));
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).isNotNull("phone"));
            Users users = new Users();
            if(StringUtils.isBlank(iamId)){
                users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
@@ -535,8 +535,6 @@
    }
    @Override
    public ZTBaseRequst logOff(Long memberId){
        Member member = memberMapper.selectById(memberId);
@@ -555,6 +553,7 @@
        ztBaseRequst.setOpenId(member.getOpenid());
        ztBaseRequst.setToken(member.getToken());
        memberMapper.update(new UpdateWrapper<Member>().lambda()
                .set(Member::getOpenid,null)
                .set(Member::getPhone,null)
                .set(Member::getEditDate,new Date())
                .eq(Member::getId,member.getId())
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -1,6 +1,7 @@
package com.doumee.service.business.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.hutool.core.date.DateUnit;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
@@ -34,6 +35,7 @@
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.EditUsersRequest;
import com.doumee.dao.web.reqeust.ContentShareImgDto;
import com.doumee.dao.web.reqeust.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.UsersService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -362,9 +364,10 @@
//        }
//        smsEmailMapper.updateById(model);
        //创建token
        JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
        String token = JwtTokenUtil.generateToken(payLoad);
        redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
//        JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
//        String token = JwtTokenUtil.generateToken(payLoad);
//        redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
        String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,"",redisTemplate);
        AccountResponse accountResponse = new AccountResponse();
        accountResponse.setToken(token);
        accountResponse.setUsers(users);
@@ -384,6 +387,7 @@
            accountResponse.setSessionKey(session.getSessionKey());
            Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getOpenid,openId).last("limit 1"));
            if(Objects.isNull(users)){
                accountResponse.setSessionKey(session.getSessionKey());
                return accountResponse;
            }
            if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
@@ -400,6 +404,7 @@
            redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
            accountResponse.setToken(token);
            getUsersDetail(users);
            accountResponse.setSessionKey(session.getSessionKey());
            accountResponse.setUsers(users);
            return accountResponse;
        } catch (WxErrorException e) {
@@ -408,6 +413,36 @@
        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员");
    }
    @Override
    public AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest){
        try {
            WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxPersonnelService.getUserService().getPhoneNoInfo(
                    wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv());
            //获取手机号
            String phone= userPhoneInfo.getPurePhoneNumber();
            if(Objects.isNull(phone)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未获取到手机号");
            }
            Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
                    .eq(Users::getPhone,phone).last("limit 1"));
            AccountResponse accountResponse = new AccountResponse();
            accountResponse.setPhone(phone);
            if(Objects.isNull(users)){
                return accountResponse;
            }
            accountResponse.setUsers(users);
            //创建token
            JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ZERO);
            String token = JwtTokenUtil.generateToken(payLoad);
            redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
            return accountResponse;
        } catch (Exception e) {
            e.printStackTrace();
        }
        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"更新手机号失败");
    }
    @Override
    public void bindingOpenid(String code,Long userId){
server/web/src/main/java/com/doumee/api/web/ApiController.java
@@ -1,6 +1,8 @@
package com.doumee.api.web;
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Users;
import com.doumee.service.business.MemberService;
@@ -51,6 +53,9 @@
        Object obj = this.getRequest().getAttribute(JwtTokenUtil.UserId_Name);
        return obj != null ? (Long) obj : null;
    }
    protected Long getUserId() {
//        if(isDebug){
//            return 2L;
@@ -61,7 +66,7 @@
    protected Users getLoginUserInfo() {
      Long userId = getUserId();
      if(userId== null){
          return null;
          throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"未登录");
      }
        Users user = usersService.findById(userId);
      return user;
server/web/src/main/java/com/doumee/api/web/CustomerApi.java
@@ -92,6 +92,9 @@
        return  ApiResponse.success(memberService.wxLogin(code,iamId));
    }
    @LoginRequired
    @ApiOperation(value = "获取手机号", notes = "客户端小程序")
    @PostMapping("/getWxMiniPhone")
server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
@@ -3,6 +3,7 @@
import com.doumee.biz.zbom.ZbomCRMService;
import com.doumee.biz.zbom.ZbomZhongTaiService;
import com.doumee.config.annotation.LoginRequired;
import com.doumee.config.annotation.UserLoginRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
@@ -78,9 +79,11 @@
    @UserLoginRequired
    @ApiOperation(value = "获取客户管理授权-列表跳转地址", notes = "获取客户管理授权跳转地址")
    @GetMapping("/getCrmAuthUrl")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "类型 0客户列表 1跳转新增意向客户", required = true)
    })
    public ApiResponse<String> getCrmAuthUrl(@RequestParam Integer type) {
server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
@@ -19,10 +19,7 @@
import com.doumee.dao.business.model.Shop;
import com.doumee.dao.business.model.SmsEmail;
import com.doumee.dao.business.model.Users;
import com.doumee.dao.web.reqeust.EditMemberRequest;
import com.doumee.dao.web.reqeust.EditShopDTO;
import com.doumee.dao.web.reqeust.EditUsersRequest;
import com.doumee.dao.web.reqeust.ContentShareImgDto;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.*;
import io.swagger.annotations.Api;
@@ -35,6 +32,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.Objects;
@@ -88,7 +86,6 @@
    }
    @ApiOperation(value = "手机号验证码登陆", notes = "员工端小程序")
    @GetMapping("/loginByPhone")
    @ApiImplicitParams({
@@ -112,6 +109,14 @@
        return  ApiResponse.success("操作成功");
    }
    @ApiOperation(value = "手机号快捷登录", notes = "客户端小程序")
    @PostMapping("/getWxMiniPhoneLogin")
    public ApiResponse<AccountResponse> getWxMiniPhone(@Valid @RequestBody WxPhoneRequest wxPhoneRequest) {
        return  ApiResponse.success("获取成功",usersService.getWxMiniPhoneLogin(wxPhoneRequest));
    }
    @UserLoginRequired
    @ApiOperation(value = "获取个人信息详情", notes = "员工端小程序")
    @GetMapping("/getUserDetail")
server/web/src/main/resources/application.yml
@@ -1,6 +1,6 @@
# 项目信息配置
project:
  name: 智能会议室小程序端
  name: 志邦业绩数字化赋能小程序
  version: 1.0.0
  env: development
#  env: production