fengjin
2023-09-19 2bd9debe1829fdce93c62028aa97716a1cb2defe
一帕拉功能(一边想四月里大哥一边写的)
1 文件已重命名
23个文件已修改
11个文件已添加
1161 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionInspectionDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionReportDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionUserDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisTokenManager.java 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/TokenManager.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionUserFeign.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityUnionService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Constant.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionInspectionApi.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorLaborDynamicApi.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionReportApi.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionUserApi.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/bootstrap.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/pom.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/Authorization.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/CurrentUser.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionInspectionApi.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionReportApi.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionUserApi.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UsersMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionUser.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Users.java 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/AuthorizationInterceptor.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/CurrentUserMethodArgumentResolver.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionUserService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/AccessUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MonitorUtil.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MvcConfig.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionInspectionDto.java
@@ -97,7 +97,7 @@
    /**
     * 是否小程序
     */
    @ApiModelProperty(value = "是否小程序 1是 0否")
    @ApiModelProperty(value = "是否小程序 1是 0否(后台) 3H5")
    private Integer isApplets;
    @ApiModelProperty(value = "分页-当前页数", example = "1")
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionReportDto.java
@@ -94,7 +94,7 @@
    /**
     * 是否小程序
     */
    @ApiModelProperty(value = "是否小程序 1是 0否")
    @ApiModelProperty(value = "是否小程序或h5 1是 0否")
    private Integer isApplets;
    /**
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionUserDto.java
@@ -160,5 +160,11 @@
    @ApiModelProperty(value = " 认证图片地址(base_64)")
    private String authenticatedUrlBase;
    /**
     * 进入方式
     */
    @ApiModelProperty(value = "进入方式 1小程序 3H5")
    private Integer isApplets;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisTokenManager.java
New file
@@ -0,0 +1,170 @@
package com.panzhihua.common.redis;
import com.panzhihua.common.utlis.JWTTokenUtil;
import com.panzhihua.common.redis.TokenManager;
import com.panzhihua.common.utlis.Constant;
import io.jsonwebtoken.Claims;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.script.DigestUtils;
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/**
 * 通过Redis存储和验证token的实现类
 */
@Component
public class RedisTokenManager implements TokenManager
{
//    @Resource
    private RedisTemplate<String,String> redis;
//    @Resource
//    private RedisTemplate<String,Object> redis1;
    @Resource
    RedisTemplate<String, Object> redisTemplate;
    @Resource
    private RedisUtils redisUtils;
    @Qualifier("redisTemplate")
    @Autowired
    public void setRedis(RedisTemplate redis) {
        this.redis = redis;
        //泛型设置成Long后必须更改对应的序列化方案
        redis.setKeySerializer(new JdkSerializationRedisSerializer());
    }
    @Override
    public String createToken(String userId, String userRole) {
        //使用uuid作为源token
        String uuid = UUID.randomUUID().toString().replace("-", "");
        String token = DigestUtils.sha1DigestAsHex(uuid + userId + "e23ktjsdf") + "-" + userRole;
        //存储到redis并设置过期时间
        redis.boundValueOps(token).set(String.valueOf(userId), Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
        redis.boundValueOps(String.valueOf(userId)).set(token, Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
        return token;
    }
    public boolean checkToken(String token) {
//        redis.multi(); // 开启事务
//
//        if (StringUtils.isEmpty(token)) {
//            return false;
//        }
//        // 获取Redis服务器的地址
//
//        System.out.println("Redis服务器地址: " + redisTemplate.getConnectionFactory().getConnection());
//
//        // 获取Redis服务器的端口
//        System.out.println("Redis服务器端口: " + redisTemplate.getConnectionFactory().getConnection());
//        Set<String> keys = redisTemplate.keys("*");
//
//        // 打印所有的键(key)
//        for (String key : keys) {
//            System.out.println(key);
//        }
//        Object login_user_info = redisUtils.get("login_user_info");
//        Object userId2 = redisUtils.get("08839375c14aebe729fb0fb25defdea123782abc-2");
////        String userId = redisTemplate.boundValueOps("2").get().toString();
//        Object o = redisTemplate.opsForValue().get("08839375c14aebe729fb0fb25defdea123782abc-2");
//        String s = redis.boundValueOps("2").get();
////        String s = o;
////        Object auxiliaryPoints =redisTemplate.opsForValue().get("auxiliaryPoints");
//
//        if (userId2 == null) {
//            return false;
//        }
//        redis.exec();
//        //如果验证成功,说明此用户进行了一次有效操作,延长token的过期时间
//        redis.boundValueOps(token).expire(Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
//        return true;
        if (StringUtils.isEmpty(token)) {
            return false;
        }
        String userId = redis.boundValueOps(token).get();
        if (userId == null) {
            return false;
        }
        //如果验证成功,说明此用户进行了一次有效操作,延长token的过期时间
        redis.boundValueOps(token).expire(Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
        return true;
    }
    /**
     * 验证花城token
     * @param token
     * @return
     */
    @Override
    public boolean checkHCToken(String token) {
        if (StringUtils.isEmpty(token)) {
            return false;
        }
        // token解析
        Claims claims = JWTTokenUtil.getClaimsFromToken(token);
        if (ObjectUtils.isEmpty(claims)) {
            return false;
        }
        String userId = claims.getSubject();
        if (ObjectUtils.isEmpty(userId))
        {
            return false;
        }
        return true;
    }
    @Override
    public long getUserId(String token) {
        if (token == null) {
            return -1;
        }
        String userId = redis.boundValueOps(token).get();
        return Long.parseLong(userId);
    }
    /**
     * 获取花城e+的 UserId
     * @param token
     * @return
     */
    @Override
    public long getHCUserId(String token) {
        if (token == null) {
            return -1;
        }
        // token解析
        Claims claims = JWTTokenUtil.getClaimsFromToken(token);
        if (ObjectUtils.isEmpty(claims)) {
            return -1;
        }
        String userId = claims.getSubject();
        if (ObjectUtils.isEmpty(userId))
        {
            return -1;
        }
        return Long.parseLong(userId);
    }
    public void deleteToken(String token) {
        redis.delete(token);
    }
    @Override
    public String getTokenByUserId(String userId) {
        return redis.boundValueOps(userId).get();
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/TokenManager.java
New file
@@ -0,0 +1,36 @@
package com.panzhihua.common.redis;
import org.springframework.stereotype.Component;
//@Component
public interface TokenManager {
    /**
     * 创建一个token关联上指定用户
     *
     * @param userId 指定用户的id
     * @return 生成的token
     */
    public String createToken(String userId, String role);
    /**
     * 检查token是否有效
     *
     * @param token
     * @return 是否有效
     */
    public boolean checkToken(String token);
    /**
     * 检查花城token是否有效
     * @param token
     * @return
     */
    public boolean checkHCToken(String token);
    public long getUserId(String token);
    public long getHCUserId(String token);
    public void deleteToken(String token);
    public String getTokenByUserId(String userId);
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionUserFeign.java
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = Constants.SERVICE_EQUIPMENT, contextId = "unionUser", path = "unionUser")
public interface ComEquipmentUnionUserFeign {
@@ -32,4 +33,14 @@
    R authentication(UnionUserDto unionUserDto);
    /**
     * 使用id查找用户
     *
     * @param id
     * @return 总工会户外劳共用户
     */
    @PostMapping("/selectById")
    UnionUserDto  selectById(@RequestParam(value = "id") Long id);
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityUnionService.java
@@ -121,6 +121,17 @@
    @PostMapping("/unionUser/login")
    public R unionUserLogin(@RequestBody LoginUserInfoVO loginUserInfoVO);
    /**
     * 登录(H5)
     *
     * @param phone
     * @return 总工会户外劳共用户
     */
    @GetMapping("/unionUser/loginH5")
    R unionUserLoginH5(@RequestParam(value = "phone") String phone);
    /**
     * 总工会户外劳工站用户认证
     *
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Constant.java
New file
@@ -0,0 +1,76 @@
package com.panzhihua.common.utlis;
public class Constant {
    /**
     * 存储当前登录用户id的字段名
     */
    public static final String CURRENT_USER_ID = "CURRENT_USER_ID";
    /**
     * 存储当前登录用户id的字段名
     */
    public static final String CURRENT_USER_NAME = "CURRENT_USER_NAME";
    /**
     * 存储当前登录用户的角色
     */
    public static final String CURRENT_USER_ROLE = "CURRENT_USER_ROLE";
    /**
     * 存储当前登录用户的deptId
     */
    public static final String CURRENT_USER_DEPT_ID = "CURRENT_USER_DEPT_Id";
    public static final String CURRENT_USER_ORG_ID = "CURRENT_USER_ORG_Id";
    public static final String CURRENT_USER_PHONE = "CURRENT_USER_PHONE";
    /**
     * 存放OpLogContent的header字段
     */
    public static final String OP_LOG_CONTENT = "OP_LOG_CONTENT";
    /**
     * token有效期(小时)
     */
    public static final int TOKEN_EXPIRES_HOUR = 168;
    /**
     * redis存储手机验证码过期时间(10分钟)
     */
    public static final long AUTH_CODE_EXPIRED_SECONDS =  60 * 10;
    /**
     * 验证码长度
     */
    public static final int AUTH_CODE_LENGTH = 6;
    /**
     * 登录用户 redis key
     */
    public static final String LOGIN_TOKEN_KEY = "login_tokens:";
    /**
     * 令牌
     */
    public static final String TOKEN = "token";
    /**
     * 令牌前缀
     */
    public static final String TOKEN_PREFIX = "admin:";
    /**
     * 令牌前缀
     */
    public static final String LOGIN_USER_KEY = "login_user_key";
    /**
     * 存放Authorization的header字段
     */
    public static final String AUTHORIZATION = "Authorization";
    /**
     * 小程序  花城e+token
     */
    public static final String HCAUTHORIZATION = "HCAuthorization";
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
@@ -282,8 +282,8 @@
            defaultHttpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setHeader("Content-Type", "application/json;charset=utf-8");
            httpPost.setHeader("Authorization", headerMap.get("Authorization").toString());
            httpPost.setHeader("Host", headerMap.get("Host").toString());
//            httpPost.setHeader("Authorization", headerMap.get("Authorization").toString());
//            httpPost.setHeader("Host", headerMap.get("Host").toString());
            for (Object key : headerMap.keySet()) {
                httpPost.setHeader(key.toString(), headerMap.get(key).toString());
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionInspectionApi.java
@@ -1,17 +1,16 @@
package com.chuangongzhijia.huacheng_union_applets.api;
import com.panzhihua.common.model.dtos.equipment.UnionInspectionDto;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.service.community.CommunityUnionService;
import com.panzhihua.common.service.user.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@@ -31,10 +30,10 @@
     * @param unionInspectionDto
     * @return 新增结果
     */
    @ApiOperation(value = "新增户外劳工站巡查")
    @PostMapping("/add")
    public R add(@RequestBody UnionInspectionDto unionInspectionDto) {
        return  communityUnionService.add(unionInspectionDto);
        unionInspectionDto.setIsApplets(3);
        return communityUnionService.add(unionInspectionDto);
    }
@@ -44,9 +43,9 @@
     * @param unionInspectionDto
     * @return 动态结果
     */
    @ApiOperation(value = "分页户外劳工站巡查")
    @PostMapping("/query")
    public R query(@RequestBody UnionInspectionDto unionInspectionDto) {
        unionInspectionDto.setIsApplets(3);
        return communityUnionService.query(unionInspectionDto);
    }
}
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorLaborDynamicApi.java
@@ -28,7 +28,6 @@
     * @param unionOutdoorLaborDynamicDto
     * @return 动态结果
     */
    @ApiOperation(value = "分页总工会-户外劳工站-动态")
    @PostMapping("/page")
    R query(@RequestBody UnionOutdoorLaborDynamicDto unionOutdoorLaborDynamicDto) {
        return communityUnionService.unionOutdoorLaborDynamicQuery(unionOutdoorLaborDynamicDto);
@@ -41,12 +40,10 @@
     *            动态 id
     * @return 查找结果
     */
    @ApiOperation(value = "分页总工会-户外劳工站-动态")
    @GetMapping("/{id}")
    R unionOutdoorLaborDynamicDetail(@PathVariable("id") Long id) {
        return communityUnionService.unionOutdoorLaborDynamicDetail(id);
    }
    @ApiOperation(value = "所在地地址下拉列表(攀枝花)", response = ComMngStructAreaDistrictVO.class)
    @PostMapping("listarea")
@@ -54,5 +51,4 @@
        Long cityAdcode = 510400l;
        return communityService.listAreaDistrict(cityAdcode);
    }
}
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionReportApi.java
@@ -4,7 +4,6 @@
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.service.community.CommunityUnionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -28,9 +27,9 @@
     * @param unionReportDto
     * @return 新增结果
     */
    @ApiOperation(value = "户外劳工站上报表")
    @PostMapping("/add")
    public R add(@RequestBody UnionReportDto unionReportDto) {
        unionReportDto.setIsApplets(3);
        return  communityUnionService.unionReportAdd(unionReportDto);
    }
@@ -41,9 +40,9 @@
     * @param unionReportDto
     * @return 动态结果
     */
    @ApiOperation(value = "分页户外劳工站上报表")
    @PostMapping("/query")
    public R query(@RequestBody UnionReportDto unionReportDto) {
        unionReportDto.setIsApplets(3);
        return communityUnionService.unionReportQuery(unionReportDto);
    }
}
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionUserApi.java
@@ -1,25 +1,22 @@
package com.chuangongzhijia.huacheng_union_applets.api;
package com.chuangongzhijia.huachengunion_applets.api;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActDpcVO;
import com.panzhihua.common.service.community.CommunityUnionService;
import com.panzhihua.common.service.user.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.ApiImplicitParam;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@Slf4j
@Api(tags = {"用户相关"})
@RestController
@RequestMapping("/unionUser")
public class UnionUserApi  extends BaseController {
public class UnionUserApi {
    @Resource
    private CommunityUnionService communityUnionService;
@@ -30,13 +27,13 @@
    /**
     * 总工会户外劳登录
     *
     *
     * @return 总工会户外劳共用户
     */
    @ApiOperation(value = "总工会户外劳登录")
    @PostMapping("/login")
    public R login(){
        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId("1588095866109984769").getData();
        return  communityUnionService.unionUserLogin(userInfoByUserId);
    @ApiOperation(value = "总工会户外劳登录(H5)")
    @GetMapping("/login")
    public R login(@RequestParam(value = "phone") String phone){
        return  communityUnionService.unionUserLoginH5(phone);
    }
    /**
@@ -45,9 +42,11 @@
     * @param unionUserDto
     * @return 总工会户外劳共用户
     */
    @ApiOperation(value = "总工会户外劳工站用户认证")
    @PostMapping("/authentication")
    public R authentication(@RequestBody UnionUserDto unionUserDto){
        unionUserDto.setIsApplets(3);
        return  communityUnionService.unionUserAuthentication(unionUserDto);
    }
springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  application:
    name: huacheng_union_applets
    name: huacheng-union-applets
  cloud:
    config:
      discovery:
@@ -36,5 +36,5 @@
  metrics:
    tags:
      application: huacheng_union_applets
      application: huacheng-union-applets
springcloud_k8s_panzhihuazhihuishequ/service_equipment/pom.xml
@@ -23,6 +23,17 @@
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/Authorization.java
New file
@@ -0,0 +1,14 @@
package com.panzhihua.service_equipment.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * 在Controller的方法上使用此注解,该方法在映射时会检查用户是否登录,未登录返回401错误
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Authorization {
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/CurrentUser.java
New file
@@ -0,0 +1,14 @@
package com.panzhihua.service_equipment.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * 在Controller的方法参数中使用此注解,该方法在映射时会注入当前登录的User对象
 */
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface CurrentUser {
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionInspectionApi.java
@@ -3,7 +3,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.panzhihua.common.model.dtos.equipment.UnionInspectionDto;
import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_equipment.annotation.CurrentUser;
import com.panzhihua.service_equipment.model.dos.UnionReport;
import com.panzhihua.service_equipment.service.UnionInspectionService;
import com.panzhihua.service_equipment.service.UnionReportService;
@@ -25,7 +27,6 @@
    private UnionInspectionService unionInspectionService;
    /**
     * 新增户外劳工站巡查
     *
@@ -33,8 +34,19 @@
     * @return 新增结果
     */
    @PostMapping("/add")
    public R add(@RequestBody UnionInspectionDto unionInspectionDto) {
        return  unionInspectionService.add(unionInspectionDto);
    public R add(@RequestBody UnionInspectionDto unionInspectionDto, @CurrentUser UnionUserDto unionUserDto) {
        if (unionInspectionDto.getIsApplets().equals(1)) {
            log.info("小程序进入无需验证");
            return unionInspectionService.add(unionInspectionDto);
        } else {
            log.info("h5或者后台进入");
            if (unionUserDto != null) {
                unionInspectionDto.setCreateUnionUserId(unionUserDto.getId());
                return unionInspectionService.add(unionInspectionDto);
            } else {
                return R.fail("请重新登录");
            }
        }
    }
@@ -45,7 +57,18 @@
     * @return 动态结果
     */
    @PostMapping("/query")
    public R<IPage<UnionReport>> query(@RequestBody UnionInspectionDto unionInspectionDto) {
        return unionInspectionService.query(unionInspectionDto);
    public R<IPage<UnionReport>> query(@RequestBody UnionInspectionDto unionInspectionDto, @CurrentUser UnionUserDto unionUserDto) {
        if (unionInspectionDto.getIsApplets().equals(1)) {
            log.info("小程序进入无需验证");
            return unionInspectionService.query(unionInspectionDto);
        } else {
            log.info("h5或者后台进入");
            if (unionUserDto != null) {
                unionInspectionDto.setCreateUnionUserId(unionUserDto.getId());
                return unionInspectionService.query(unionInspectionDto);
            } else {
                return R.fail("请重新登录");
            }
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionReportApi.java
@@ -2,7 +2,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_equipment.annotation.CurrentUser;
import com.panzhihua.service_equipment.model.dos.UnionReport;
import com.panzhihua.service_equipment.service.UnionReportService;
import lombok.extern.slf4j.Slf4j;
@@ -28,8 +30,19 @@
     * @return 新增结果
     */
    @PostMapping("/add")
    public R add(@RequestBody UnionReportDto unionReportDto) {
        return  unionReportService.add(unionReportDto);
    public R add(@RequestBody UnionReportDto unionReportDto, @CurrentUser UnionUserDto unionUserDto) {
        if (unionReportDto.getIsApplets().equals(1)) {
            log.info("小程序进入无需验证");
            return unionReportService.add(unionReportDto);
        } else {
            log.info("h5或者后台进入");
            if (unionUserDto != null) {
                unionReportDto.setCreateUnionUserId(unionUserDto.getId());
                return unionReportService.add(unionReportDto);
            } else {
                return R.fail("请重新登录");
            }
        }
    }
@@ -40,7 +53,19 @@
     * @return 动态结果
     */
    @PostMapping("/query")
    public R<IPage<UnionReport>> query(@RequestBody UnionReportDto unionReportDto) {
        return unionReportService.query(unionReportDto);
    public R<IPage<UnionReport>> query(@RequestBody UnionReportDto unionReportDto, @CurrentUser UnionUserDto
            unionUserDto) {
        if (unionReportDto.getIsApplets().equals(1)) {
            log.info("小程序进入无需验证");
            return unionReportService.query(unionReportDto);
        } else {
            log.info("h5或者后台进入");
            if (unionUserDto != null) {
                unionReportDto.setCreateUnionUserId(unionUserDto.getId());
                return unionReportService.query(unionReportDto);
            } else {
                return R.fail("请重新登录");
            }
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionUserApi.java
@@ -3,16 +3,15 @@
import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_equipment.annotation.CurrentUser;
import com.panzhihua.service_equipment.model.dos.UnionUser;
import com.panzhihua.service_equipment.service.UnionUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
@Slf4j
@RestController
@@ -33,6 +32,17 @@
         return  userService.login(loginUserInfoVO);
    }
    /**
     * 总工会户外劳登录(H5)
     *
     * @param phone
     * @return 总工会户外劳共用户
     */
    @GetMapping("/loginH5")
    public R<Map<String, Object>> loginH5(@RequestParam(value = "phone") String phone){
        return  userService.loginByUnion(phone);
    }
    /**
     * 总工会户外劳工站用户认证
     *
@@ -40,8 +50,30 @@
     * @return 总工会户外劳共用户
     */
    @PostMapping("/authentication")
    public R authentication(@RequestBody UnionUserDto unionUserDto){
        return  userService.authentication(unionUserDto);
    public R authentication(@RequestBody UnionUserDto unionUserDto, @CurrentUser UnionUserDto unionUser){
        if (unionUserDto.getIsApplets().equals(1)) {
            log.info("小程序进入无需验证");
            return  userService.authentication(unionUserDto);}
        else {
            log.info("h5进入");
            if (unionUser != null) {
                unionUserDto.setId(unionUser.getId());
                return  userService.authentication(unionUserDto);}
            else {
                return R.fail("请重新登录");
            }
        }
    }
    /**
     * 使用id查找用户
     *
     * @param id
     * @return 总工会户外劳共用户
     */
    @GetMapping("/selectById")
    public UnionUserDto  selectById(@RequestParam(value = "id") Long id){
        return  userService.selectById(id);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UsersMapper.java
New file
@@ -0,0 +1,11 @@
package com.panzhihua.service_equipment.dao;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_equipment.model.dos.Users;
import org.apache.ibatis.annotations.Mapper;
@Mapper
@DS("mysql2")
public interface UsersMapper extends BaseMapper<Users> {
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionUser.java
@@ -177,5 +177,8 @@
    @ApiModelProperty(value = " 认证图片地址(base_64)")
    private String authenticatedUrlBase;
    @ApiModelProperty("总工会h5userId")
    private Integer unionH5UserId;
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Users.java
New file
@@ -0,0 +1,222 @@
package com.panzhihua.service_equipment.model.dos;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("users")
public class Users  implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id,用于关联
     */
    @TableField(value = "usersID")
    @ApiModelProperty("主键id,用于关联")
    @TableId(value = "usersID", type = IdType.AUTO)
    private Integer usersID;
    /**
     * 业务id,uuid类型,用于详情查询
     */
    @TableField(value = "serviceID")
    @ApiModelProperty("业务id,uuid类型,用于详情查询")
    private String serviceID;
    @TableField(value = "createTime")
    @ApiModelProperty("创建时间")
    private Date createTime;
    @TableField(value = "updateTime")
    @ApiModelProperty("更新时间")
    private Date updateTime;
    /**
     * 0正常,1删除
     */
    @TableField(value = "deleted")
    @ApiModelProperty("0正常,1删除")
    private Integer deleted;
    /**
     * 记录创建人id, 0默认值
     */
    @TableField(value = "createBy")
    @ApiModelProperty("记录创建人id, 0默认值")
    private Integer createBy;
    /**
     * 记录更新人id(最后一次),0默认值
     */
    @TableField(value = "updateBy")
    @ApiModelProperty("记录更新人id(最后一次),0默认值")
    private Integer updateBy;
    /**
     * 0正常,1冻结
     */
    @TableField(value = "freezeFlag")
    @ApiModelProperty("0正常,1冻结")
    private Integer freezeFlag;
    /**
     * 微信公开ID
     */
    @TableField(value = "openID")
    @ApiModelProperty("微信公开ID")
    private String openID;
    /**
     * 服务号联合ID
     */
    @TableField(value = "unionID")
    @ApiModelProperty("服务号联合ID")
    private String unionID;
    /**
     * 所属工会的rootID
     */
    @TableField(value = "rootID")
    @ApiModelProperty("所属工会的rootID")
    private Integer rootID;
    /**
     * 所属工会ID,游客0,注册(工会的rootID),会员(基层工会ID)
     */
    @TableField(value = "deptID")
    @ApiModelProperty("所属工会ID,游客0,注册(工会的rootID),会员(基层工会ID)")
    private Integer deptID;
    /**
     * 认证名字
     */
    @TableField(value = "uname")
    @ApiModelProperty("认证名字")
    private String uname;
    /**
     * 认证手机
     */
    @TableField(value = "phone")
    @ApiModelProperty("认证手机")
    private String phone;
    /**
     * 0游客,1注册会员,2认证会员 3区块链域外用户
     */
    @TableField(value = "type")
    @ApiModelProperty("0游客,1注册会员,2认证会员,3区块链域外用户")
    private Integer type;
    /**
     * 审核状态,0未认证(默认值),1认证中(待受理),2认证成功(已归档),4待建档,5拒绝
     *
     * @See AuditTypeEnum
     */
    @TableField(value = "audit")
    @ApiModelProperty("审核状态,0未认证(默认值),1认证中(待受理),2认证成功(已归档),4待建档,5拒绝")
    private Integer audit;
    /**
     * 0默认,1农民工
     */
    @TableField(value = "peasantFlag")
    @ApiModelProperty("0默认,1农民工")
    private Integer peasantFlag;
    /**
     * 0默认,1退休职工
     */
    @TableField(value = "retireFlag")
    @ApiModelProperty("0默认,1退休职工")
    private Integer retireFlag;
    /**
     * 卡片类型,0默认,1普通卡,2VIP卡
     */
    @TableField(value = "cardType")
    @ApiModelProperty("卡片类型,0默认,1普通卡,2VIP卡")
    private Integer cardType;
    /**
     * 最后一次审批通过时间戳(unix)
     */
    @TableField(value = "auditTimeSort")
    @ApiModelProperty("最后一次审批通过时间戳(unix)")
    private Integer auditTimeSort;
    /**
     * 认证时间
     */
    @TableField(value = "authenticationTime")
    @ApiModelProperty("认证时间")
    private Date authenticationTime;
    /**
     * 注册用户注册时间
     */
    @TableField(value = "registrationTime")
    @ApiModelProperty("注册用户注册时间")
    private Date registrationTime;
    /**
     * 是否为同步数据(0 否 1是)
     */
    @TableField(value = "syncFlag")
    @ApiModelProperty("是否为同步数据(0 否 1是)")
    private Integer syncFlag;
    /**
     * 省总工会关联ID
     */
    @TableField(value = "memberId")
    @ApiModelProperty("省总工会关联ID")
    private String memberId;
    /**
     * 省总工会关联附属信息ID
     */
    @TableField(value = "memberPropertyId")
    @ApiModelProperty("省总工会关联附属信息ID")
    private String memberPropertyId;
    /**
     * 区块链域外用户工会名称
     */
    @TableField(value = "unionName")
    @ApiModelProperty("区块链域外用户工会名称")
    private String unionName;
    /**
     * 是否区块链注册 默认0否 1已注册
     */
    @TableField(value = "isRegister")
    @ApiModelProperty("是否区块链注册 默认0否 1已注册")
    private Integer isRegister;
    /**
     * 是否是区域外用户 0 默认否 1是
     */
    @TableField(value = "isOutOfArea")
    @ApiModelProperty("是否是区域外用户 0 默认否 1是")
    private Integer isOutOfArea;
    /**
     * 信息来源 0默认本系统注册 1省总平台注册
     */
    @TableField(value = "source")
    @ApiModelProperty("信息来源 0默认本系统注册 1省总平台注册")
    private Integer source;
    /**
     * 是否为新型就业形态劳动者  0否;1是
     */
    @TableField(value = "newEmployment")
    @ApiModelProperty("是否为新型就业形态劳动者  0否;1是")
    private Integer newEmployment;
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/AuthorizationInterceptor.java
New file
@@ -0,0 +1,82 @@
package com.panzhihua.service_equipment.resolvers;
import com.panzhihua.common.redis.TokenManager;
import com.panzhihua.common.utlis.Constant;
import com.panzhihua.service_equipment.annotation.Authorization;
import lombok.extern.slf4j.Slf4j;
import org.apache.catalina.connector.ResponseFacade;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
/**
 * 自定义拦截器,判断此次请求是否有权限
 */
/**
 * 自定义拦截器,判断此次请求是否有权限
 */
@Component
@Slf4j
public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
    @Resource
    private TokenManager manager;
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //如果不是映射到方法直接通过
        if (!(handler instanceof HandlerMethod)) {
            return true;
        }
        HandlerMethod handlerMethod = (HandlerMethod) handler;
        Method method = handlerMethod.getMethod();
        Object bean = handlerMethod.getBean();
        String token;
        //从header中得到token
        String header = request.getHeader(Constant.AUTHORIZATION);
        if (header != null) {
            String[] tokens = request.getHeader(Constant.AUTHORIZATION).split(" ");
            if (tokens.length >= 2) {
                token = request.getHeader(Constant.AUTHORIZATION).split(" ")[1];
            } else {
                token = request.getHeader(Constant.AUTHORIZATION);
            }
        } else {
            token = request.getHeader(Constant.AUTHORIZATION);
        }
        if (manager.checkToken(token)) {
            //如果token验证成功,权限检查通过,将token对应的用户id存在request中,便于之后注入
            request.setAttribute(Constant.CURRENT_USER_ID, manager.getUserId(token));
//            SysUser ss = IUserService.selectData(manager.getUserId(token)+"");
            return true;
        }
        log.info("token{}",token);
//        if(!StringUtils.isEmpty(token))
//        {
        //如果验证token失败,并且方法或类注明了Authorization,返回401错误
        if (method.getAnnotation(Authorization.class) != null ||
                bean.getClass().getAnnotation(Authorization.class) != null) {
            String reponse = "{\"result\": 449, \"message\": \"Overdue token\"}";
            response.setStatus(200);
            response.setCharacterEncoding(StandardCharsets.UTF_8.toString());
            ResponseFacade facade = (ResponseFacade) response;
            facade.setContentLength(reponse.getBytes(StandardCharsets.UTF_8).length);
            facade.getWriter().write(reponse);
            return false;
        }
//        }
        return true;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/CurrentUserMethodArgumentResolver.java
New file
@@ -0,0 +1,59 @@
package com.panzhihua.service_equipment.resolvers;
import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
import com.panzhihua.common.service.community.ComEquipmentUnionUserFeign;
import com.panzhihua.common.utlis.Constant;
import com.panzhihua.service_equipment.annotation.CurrentUser;
import com.panzhihua.service_equipment.model.dos.UnionUser;
import com.panzhihua.service_equipment.service.UnionInspectionService;
import com.panzhihua.service_equipment.service.UnionUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;
/**
 * 增加方法注入,将含有CurrentUser注解的方法参数注入当前登录用户
 */
@Component
public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {
    @Lazy
    @Autowired
    private UnionUserService userService;
//    ComEquipmentUnionUserFeign feignUserService = ComEquipmentUnionUserFeign.getBean(ComEquipmentUnionUserFeign.class);
    @Override
    public boolean supportsParameter(MethodParameter parameter) {
        //如果参数类型是User并且有CurrentUser注解则支持
        if (parameter.getParameterType().isAssignableFrom(UnionUserDto.class) &&
                parameter.hasParameterAnnotation(CurrentUser.class)) {
            return true;
        }
        return false;
    }
    @Override
    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
        //取出鉴权时存入的登录用户Id
        Long currentUserId = (Long) webRequest.getAttribute(Constant.CURRENT_USER_ID, RequestAttributes.SCOPE_REQUEST);
        if (currentUserId != null) {
            //从数据库中查询并返回
            UnionUserDto sysUser=userService.selectById(currentUserId);
            if(sysUser!=null)
            {
                return sysUser;
            }
        }
        return null;
//        throw new MissingServletRequestPartException(Constant.CURRENT_USER_ID);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionUserService.java
@@ -8,6 +8,8 @@
import com.panzhihua.service_equipment.model.dos.UnionReport;
import com.panzhihua.service_equipment.model.dos.UnionUser;
import java.util.Map;
public interface UnionUserService {
@@ -27,4 +29,22 @@
     */
     R authentication(UnionUserDto unionUserDto);
    /**
     * 总工会户外劳登录(h5)
     *
     * @param phone
     * @return 总工会户外劳共用户
     */
     R<Map<String, Object>> loginByUnion(String phone);
    /**
     * 使用id查找用户
     *
     * @param id
     * @return 总工会户外劳共用户
     */
    UnionUserDto  selectById(Long id);
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.java
@@ -5,7 +5,6 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.equipment.UnionInspectionDto;
import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_equipment.dao.UnionInspectionMapper;
import com.panzhihua.service_equipment.dao.UnionUserMapper;
@@ -38,8 +37,15 @@
    public R add(UnionInspectionDto unionInspectionDto) {
        UnionInspection unionInspection = new UnionInspection();
        BeanUtils.copyProperties(unionInspectionDto, unionInspection);
        UnionUser unionUser = unionUserMapper
        UnionUser unionUser=null;
        if (unionInspectionDto.getIsApplets().equals(1))
        {
            unionUser = unionUserMapper
                .selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionInspection.getCreateUserId()));
        }else if (unionInspectionDto.getIsApplets().equals(3)) {
            unionUser = unionUserMapper
                    .selectOne(new QueryWrapper<UnionUser>().eq("id", unionInspection.getCreateUnionUserId()));
        }
        if (unionUser!=null){
            unionInspection.setCreateUnionUserId(unionUser.getId());
            unionInspection.setCreatePhone(unionUser.getPhone());
@@ -66,6 +72,10 @@
            unionOutdoorLaborDynamicQueryWrapper.eq("create_user_id",unionInspectionDto.getCreateUserId()).eq("type",2);
            if (unionInspectionDto.getStatus()!=null)
                unionOutdoorLaborDynamicQueryWrapper.eq("status",unionInspectionDto.getStatus());
        }else if(unionInspectionDto.getIsApplets().equals(3)){
            unionOutdoorLaborDynamicQueryWrapper.eq("create_union_user_id",unionInspectionDto.getCreateUnionUserId()).eq("type",2);
            if (unionInspectionDto.getStatus()!=null)
                unionOutdoorLaborDynamicQueryWrapper.eq("status",unionInspectionDto.getStatus());
        }
        Page pageResult = baseMapper.selectPage(page, unionOutdoorLaborDynamicQueryWrapper);
        pageResult.setTotal(pageResult.getRecords().size());
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.java
@@ -5,15 +5,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
import com.panzhihua.common.model.dtos.grid.PageEasyAppDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.grid.ComActEasyPhotoTypeDetailsVO;
import com.panzhihua.common.model.vos.grid.ComActEasyPhotoVO;
import com.panzhihua.service_equipment.dao.UnionOutdoorLaborDynamicMapper;
import com.panzhihua.service_equipment.model.dos.UnionOutdoorLaborDynamic;
import com.panzhihua.service_equipment.service.UnionOutdoorLaborDynamicService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@Slf4j
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.java
@@ -4,21 +4,17 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
import com.panzhihua.common.model.dtos.equipment.UnionOutdoorSiteDto;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_equipment.dao.UnionOutdoorServiceRangeMapper;
import com.panzhihua.service_equipment.dao.UnionOutdoorSiteMapper;
import com.panzhihua.service_equipment.model.dos.UnionOutdoorLaborDynamic;
import com.panzhihua.service_equipment.model.dos.UnionOutdoorServiceRange;
import com.panzhihua.service_equipment.model.dos.UnionOutdoorSite;
import com.panzhihua.service_equipment.service.UnionOutdoorSiteService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Slf4j
@Service
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.java
@@ -4,24 +4,19 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.equipment.UnionOutdoorSiteDto;
import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoAddDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_equipment.dao.UnionReportMapper;
import com.panzhihua.service_equipment.dao.UnionUserMapper;
import com.panzhihua.service_equipment.model.dos.UnionOutdoorSite;
import com.panzhihua.service_equipment.model.dos.UnionReport;
import com.panzhihua.service_equipment.model.dos.UnionUser;
import com.panzhihua.service_equipment.service.UnionReportService;
import com.panzhihua.service_equipment.service.UnionUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Date;
@Service
@Slf4j
@@ -41,8 +36,15 @@
    public R add(UnionReportDto unionReportDto) {
        UnionReport unionReport = new UnionReport();
        BeanUtils.copyProperties(unionReportDto, unionReport);
        UnionUser unionUser = unionUserMapper
                .selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionReport.getCreateUserId()));
        UnionUser unionUser=null;
        if (unionReportDto.getIsApplets().equals(1))
        {
            unionUser = unionUserMapper
                    .selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionReportDto.getCreateUserId()));
        }else if (unionReportDto.getIsApplets().equals(3)) {
            unionUser = unionUserMapper
                    .selectOne(new QueryWrapper<UnionUser>().eq("id", unionReportDto.getCreateUnionUserId()));
        }
        if (unionUser!=null)
            unionReport.setCreateUnionUserId(unionUser.getId());
        unionReport.setStatus(1);
@@ -64,9 +66,13 @@
        Page page = new Page(unionReportDto.getPageNum(), unionReportDto.getPageSize());
        QueryWrapper<UnionReport> unionOutdoorLaborDynamicQueryWrapper = new QueryWrapper<>();
        if (unionReportDto.getIsApplets().equals(1)){
            unionOutdoorLaborDynamicQueryWrapper.eq("create_user_id",unionReportDto.getCreateUserId());
            if (unionReportDto.getType()!=null)
                unionOutdoorLaborDynamicQueryWrapper.eq("type",unionReportDto.getType());
            unionOutdoorLaborDynamicQueryWrapper.eq("create_user_id",unionReportDto.getCreateUserId()).eq("type",2);
            if (unionReportDto.getStatus()!=null)
                unionOutdoorLaborDynamicQueryWrapper.eq("status",unionReportDto.getStatus());
        }else if(unionReportDto.getIsApplets().equals(3)){
            unionOutdoorLaborDynamicQueryWrapper.eq("create_union_user_id",unionReportDto.getCreateUnionUserId()).eq("type",2);
            if (unionReportDto.getStatus()!=null)
                unionOutdoorLaborDynamicQueryWrapper.eq("status",unionReportDto.getStatus());
        }
        Page pageResult = baseMapper.selectPage(page, unionOutdoorLaborDynamicQueryWrapper);
        pageResult.setTotal(pageResult.getRecords().size());
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java
@@ -6,19 +6,24 @@
import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_equipment.config.AccessUtil;
import com.panzhihua.common.redis.TokenManager;
import com.panzhihua.service_equipment.until.AccessUtil;
import com.panzhihua.service_equipment.dao.UnionAccessMapper;
import com.panzhihua.service_equipment.dao.UnionUserMapper;
import com.panzhihua.service_equipment.dao.UsersMapper;
import com.panzhihua.service_equipment.model.dos.UnionAccess;
import com.panzhihua.service_equipment.model.dos.UnionOutdoorSite;
import com.panzhihua.service_equipment.model.dos.UnionUser;
import com.panzhihua.service_equipment.model.dos.Users;
import com.panzhihua.service_equipment.service.UnionUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
@@ -29,6 +34,12 @@
    @Resource
    private UnionAccessMapper unionAccessMapper;
    @Resource
    private UsersMapper usersMapper;
    @Resource
    private TokenManager tokenManager;
    /**
     * 总工会户外劳登录
@@ -64,6 +75,85 @@
    }
    /**
     * 总工会户外劳登录(h5)
     *
     * @param phone
     * @return 总工会户外劳共用户
     */
    @Override
    public  R<Map<String, Object>> loginByUnion(String phone){
        Map<String, Object> mapUser = new HashMap<>();
        Users users = usersMapper.selectOne(new QueryWrapper<Users>()
                .eq("phone", phone)
                .eq("deleted", 0)
                .eq("freezeFlag", 0)
                .orderByDesc("updateTime")
                .last("limit 1"));
        if (users!=null){
            UnionUser unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("union_h5_user_id", users.getUsersID()));
            if (unionUser!=null){
                String token = tokenManager.getTokenByUserId(unionUser.getId().toString());
//                String token=null;
                if (token == null) {
                    //生成一个token,保存用户登录状态
                    token = tokenManager.createToken(unionUser.getId().toString(), unionUser.getId().toString());
                }
                mapUser.put("token", token);
                mapUser.put("unionUser",unionUser);
                log.info("mapUser{}",mapUser);
                return R.ok(mapUser);
            }
            else {
                unionUser=new UnionUser();
                unionUser.setPhone(users.getPhone());
                unionUser.setDeleteFlag(false);
                unionUser.setCreateAt(LocalDateTime.now());
                unionUser.setUpdateAt(LocalDateTime.now());
                unionUser.setStatus(1);
                unionUser.setNickName(users.getUname());
                unionUser.setUnionH5UserId(users.getUsersID());
                int insert = baseMapper.insert(unionUser);
                if (insert >0){
                    unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("union_h5_user_id", users.getUsersID()));
                    if (unionUser!=null){
                        String token = tokenManager.getTokenByUserId(unionUser.getId().toString());
                        if (token == null) {
                            //生成一个token,保存用户登录状态
                            token = tokenManager.createToken(unionUser.getId().toString(), unionUser.getId().toString());
                        }
                        mapUser.put("token", token);
                        mapUser.put("unionUser",unionUser);
                        log.info("mapUser{}",mapUser);
                        return  R.ok(mapUser);
                    }
                }
            }
            return R.fail("新增用户失败请查看是否在川共之家登录");
        }else {
           log.info("总工会数据库没有人物");
           return  R.fail("数据错误,请先在川共之家登录");
        }
    }
    /**
     * 使用id查找用户
     *
     * @param id
     * @return 总工会户外劳共用户
     */
    @Override
    public UnionUserDto  selectById(Long id){
        UnionUserDto unionUserDto=new UnionUserDto();
        UnionUser unionUser = baseMapper.selectById(id);
        BeanUtils.copyProperties(unionUser, unionUserDto);
        return  unionUserDto;
    }
    /**
     * 总工会户外劳工站用户认证
     *
     * @param unionUserDto
@@ -72,7 +162,11 @@
    @Override
    public R authentication(UnionUserDto unionUserDto){
        UnionUser unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionUserDto.getUserId()));
        UnionUser unionUser=null;
        if (unionUserDto.getIsApplets().equals(1))
            unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionUserDto.getUserId()));
        else
            unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("id", unionUserDto.getId()));
        if (unionUser != null){
            log.info("查询到用户开始认证操作{}",unionUser);
            //设备下发照片代码
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/AccessUtil.java
File was renamed from springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/AccessUtil.java
@@ -1,7 +1,8 @@
package com.panzhihua.service_equipment.config;
package com.panzhihua.service_equipment.until;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.service_equipment.config.AccessConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MonitorUtil.java
New file
@@ -0,0 +1,53 @@
package com.panzhihua.service_equipment.until;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static com.panzhihua.common.utlis.HttpClientUtil.httpPostAndToken;
@Slf4j
@Service
public class MonitorUtil {
    /**
     * 开门
     * @return  返回结果
     * @throws Exception
     */
    public Map getToken() {
        String url="https://openaisc.sctel.com.cn/video-manage/appToken/getToken";
        String accesskey = "96a88ccd5f42458b304ca291e710036d";
        String accessKeySecret = "7b2ef41e0bcf8c94b193c7ec2e10d727";
        long timestamp = new Date().getTime();
        String signtype = "SHA1";
        String params = ""; // 替换为你的请求参数
        String appPolicy = accesskey + accessKeySecret + timestamp + params.substring(0, Math.min(params.length(), 512));
        try {
            Mac sha1Hmac = Mac.getInstance("HmacSHA1");
            SecretKeySpec secretKey = new SecretKeySpec(accessKeySecret.getBytes(StandardCharsets.UTF_8), "HmacSHA 1");
            sha1Hmac.init(secretKey);
            byte[] hashBytes = sha1Hmac.doFinal(appPolicy.getBytes(StandardCharsets.UTF_8));
            String sign = Base64.getEncoder().encodeToString(hashBytes);
            System.out.println("Sign: " + sign);
        } catch (NoSuchAlgorithmException | InvalidKeyException e) {
            e.printStackTrace();
        }
        return null;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MvcConfig.java
New file
@@ -0,0 +1,34 @@
package com.panzhihua.service_equipment.until;
import com.panzhihua.service_equipment.resolvers.AuthorizationInterceptor;
import com.panzhihua.service_equipment.resolvers.CurrentUserMethodArgumentResolver;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.List;
/**
 * 配置类,增加自定义拦截器和解析器
 */
@Configuration
public class MvcConfig implements WebMvcConfigurer {
    @Autowired
    private AuthorizationInterceptor authorizationInterceptor;
    @Autowired
    private CurrentUserMethodArgumentResolver currentUserMethodArgumentResolver;
//
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
       registry.addInterceptor(authorizationInterceptor);
    }
    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
        argumentResolvers.add(currentUserMethodArgumentResolver);
    }
}
springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -335,7 +335,18 @@
                noLoginUrl.add("/api/communitybackstage/comBatteryCommodityOrder/syncCloseOrder");
                noLoginUrl.add("/api/applets/uu/getQRCode");
                noLoginUrl.add("/api/huacheng-applets/uu/getQRCode");
                noLoginUrl.add("/api/huacheng-applets/wx/flower/wxNotify");
                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/query");
                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/add");
                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorLaborDynamic/page");
                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorLaborDynamic/{id}");
                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorSite/page");
                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/{id}");
                noLoginUrl.add("/api/huacheng-union-applets/unionReport/add");
                noLoginUrl.add("/api/huacheng-union-applets/unionReport/query");
                noLoginUrl.add("/api/huacheng-union-applets/unionUser/authentication");
                response.setHeader("Access-Control-Allow-Origin", "*");
                response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
                response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
                if (noLoginUrl.contains(requestURI)) {
                    List<SimpleGrantedAuthority> authorities = new ArrayList<>();
                    authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS));
@@ -348,6 +359,7 @@
                }
            }
        }
        response.addHeader("Access-Control-Allow-Origin","*");
        filterChain.doFilter(safeboxRequestWrapper, response);
    }