tangxiaobao
2021-08-05 d769a8683ea6f2ecbc451da71ca3079c6765a99d
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -19,9 +19,9 @@
import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
import com.panzhihua.common.model.vos.user.UserPhoneVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.ClazzUtils;
import com.panzhihua.common.utlis.IdCard;
import com.panzhihua.common.utlis.IdCardUtil;
import com.panzhihua.common.utlis.*;
import com.panzhihua.service_community.dao.ComActActSignDAO;
import com.panzhihua.service_community.dao.ComEldersAuthHistoryRecordMapper;
import com.panzhihua.service_community.dao.ComMngPopulationDAO;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.*;
@@ -35,10 +35,7 @@
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -84,7 +81,13 @@
    @Resource
    public ComMngPopulationDAO comMngPopulationDAO;
    @Resource
    private ComActActSignDAO comActActSignDAO;
    @Resource
    public ComEldersAuthUserService comEldersAuthUserService;
    @Resource
    private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
    @Resource
    private ComActEasyPhotoActivityService comActEasyPhotoActivityService;
    /**
     * 新增社区活动
@@ -255,7 +258,7 @@
     * @return 详情
     */
    @PostMapping("detailactivity")
    public R detailActivity(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
    public R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "userId",required = false) Long userId) {
        ComActActivityVO comActActivityVO = comActActivityService.inforActivity(id, userId);
        if (ObjectUtils.isEmpty(comActActivityVO)) {
            return R.fail("活动不存在");
@@ -272,7 +275,7 @@
        }
        ActivitySignVO activitySignVO = new ActivitySignVO();
        activitySignVO.setActivityId(id);
        R r = comActActivityService.listActivitySign(activitySignVO);
        R r = comActActivityService.listActivitySigns(activitySignVO);
        if (R.isOk(r)) {
            List<ActivitySignVO> activitySignVOS = JSONArray.parseArray(JSONArray.toJSONString( r.getData()),ActivitySignVO.class);
            if (!ObjectUtils.isEmpty(activitySignVOS)) {
@@ -307,7 +310,7 @@
    }
    /**
     * 活动报名名单
     * 分页活动报名名单
     *
     * @param activitySignVO 查询参数
     * @return 报名人员集合
@@ -315,6 +318,17 @@
    @PostMapping("listactivitysign")
    public R listActivitySign(@RequestBody ActivitySignVO activitySignVO) {
        return comActActivityService.listActivitySign(activitySignVO);
    }
    /**
     * 活动报名名单
     *
     * @param activitySignVO 查询参数
     * @return 报名人员集合
     */
    @PostMapping("listactivitysigns")
    public R listActivitySigns(@RequestBody ActivitySignVO activitySignVO) {
        return comActActivityService.listActivitySigns(activitySignVO);
    }
    /**
@@ -360,18 +374,25 @@
     */
    @PostMapping("putdynamic")
    public R putDynamic(@RequestBody ComActDynVO comActDynVO) {
        ComActDynDO comActDynDO = new ComActDynDO();
        Long id = comActDynVO.getId();
        BeanUtils.copyProperties(comActDynVO, comActDynDO);
        ComActDynDO comActDynDO = comActDynService.getById(comActDynVO.getId());
        if(comActDynDO == null){
            return R.fail("未查到社区动态记录");
        }
//        Long id = comActDynVO.getId();
        Integer isTopping = comActDynVO.getIsTopping();
        boolean b = isTopping.intValue() == 1;
        boolean b = isTopping.equals(1);
        if(b){
            ComActDynDO comActDynDO1 = comActDynService.getById(id);
            Integer status = comActDynDO1.getStatus();
            if (status.intValue()==0) {
                return R.fail("该动态还未发布");
            Integer status = comActDynDO.getStatus();
            if (status.equals(0)) {
                return R.fail("待发布的社区动态不可置顶");
            }
        }
//        if(StringUtils.isEmpty(comActDynVO.getCover())){
//            comActDynVO.setCover(comActDynDO.getCover());
//        }
        BeanUtils.copyProperties(comActDynVO, comActDynDO);
        boolean update = comActDynService.updateById(comActDynDO);
        if (update) {
//            最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
@@ -552,6 +573,15 @@
    @PostMapping("addeasyphoto")
    public R addEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
        return comActEasyPhotoService.addEasyPhoto(comActEasyPhotoVO);
    }
    /**
     * 查询随手拍是否有活动
     * @return  活动详情
     */
    @PostMapping("getEasyPhotoActivity")
    public R getEasyPhotoActivity(@RequestParam("communityId") Long communityId) {
        return comActEasyPhotoActivityService.getEasyPhotoActivity(communityId);
    }
    /**
@@ -1577,6 +1607,7 @@
    }
    @PostMapping("/eldersauth/addByFamilyUser")
    @Transactional(rollbackFor = Exception.class)
    R addByFamilyUser(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO){
        ComEldersAuthUserDO authUserDO = comEldersAuthUserService.getById(eldersAuthAddByFamilyDTO.getFamilyUserId());
@@ -1584,35 +1615,63 @@
            return R.fail("未查询到老人信息");
        }
        Integer age = IdcardUtil.getAgeByIdCard(authUserDO.getIdCard());
        if(age>=80){
            Long loginUserId = eldersAuthAddByFamilyDTO.getUserId();
            EldersAuthDO eldersAuthDO = new EldersAuthDO();
            eldersAuthDO.setSumitUserId(loginUserId);
            eldersAuthDO.setCreateBy(loginUserId);
            eldersAuthDO.setCreateAt(new Date());
            eldersAuthDO.setIdCard(authUserDO.getIdCard());
            eldersAuthDO.setAuthUserName(authUserDO.getName());
            eldersAuthDO.setVideoUrl(eldersAuthAddByFamilyDTO.getVideoUrl());
            eldersAuthDO.setFamilyUserId(authUserDO.getId());
            eldersAuthDO.setAge(IdcardUtil.getAgeByIdCard(authUserDO.getIdCard()));
            //根据身份证查询出籍贯 出生日期
            //String domicile = IdCard.domicile(eldersAuthDO.getIdCard());
            String domicile = eldersAuthService.queryDomicile(eldersAuthDO.getIdCard());
            if(StringUtils.isEmpty(domicile)){
                domicile = "暂无";
            }
            Date birthDay = IdCard.birthDay(eldersAuthDO.getIdCard());
            eldersAuthDO.setDomicile(domicile);
            eldersAuthDO.setBirthDay(birthDay);
            int add = eldersAuthService.getBaseMapper().insert(eldersAuthDO);
            if(add==1){
                return R.ok(eldersAuthDO.getId());
            }
        }else{
            return R.fail("家庭成员年龄还未达到80");
        Long elderId = authUserDO.getId();
        boolean canReAuthThisMonth = comEldersAuthUserService.checkReAuthAgain(elderId);
        if(!canReAuthThisMonth){
            return R.fail("当月已认证,不能再次进行认证");
        }
        String idCard = authUserDO.getIdCard();
        Long loginUserId = eldersAuthAddByFamilyDTO.getUserId();
        EldersAuthDO eldersAuthDO = new EldersAuthDO();
        eldersAuthDO.setSumitUserId(loginUserId);
        eldersAuthDO.setCreateBy(loginUserId);
        eldersAuthDO.setCreateAt(new Date());
        eldersAuthDO.setIdCard(idCard);
        eldersAuthDO.setAuthUserName(authUserDO.getName());
        eldersAuthDO.setVideoUrl(eldersAuthAddByFamilyDTO.getVideoUrl());
        eldersAuthDO.setFamilyUserId(authUserDO.getId());
        eldersAuthDO.setAge(IdcardUtil.getAgeByIdCard(idCard));
        //根据身份证查询出籍贯 出生日期
        //String domicile = IdCard.domicile(eldersAuthDO.getIdCard());
        String domicile = eldersAuthService.queryDomicile(eldersAuthDO.getIdCard());
        if(StringUtils.isEmpty(domicile)){
            domicile = "暂无";
        }
        Date birthDay = IdCard.birthDay(idCard);
        eldersAuthDO.setDomicile(domicile);
        eldersAuthDO.setBirthDay(birthDay);
        int add = eldersAuthService.getBaseMapper().insert(eldersAuthDO);
        if(add==1){
            //设置认证成功
            Long familyUserId = eldersAuthDO.getFamilyUserId();
            ComEldersAuthUserDO comEldersAuthUserDO = new ComEldersAuthUserDO();
            comEldersAuthUserDO.setId(familyUserId);
            comEldersAuthUserDO.setIsAuth(1);
            boolean updated = comEldersAuthUserService.updateById(comEldersAuthUserDO);
            if(!updated){
                throw  new ServiceException("添加认证失败,更新认证状态");
            }
            //认证成功  添加认证记录
            List<ComEldersAuthHistoryRecordDO> authHistoryRecordDOList = comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>()
                    .lambda().eq(ComEldersAuthHistoryRecordDO::getIdCard,idCard).ge(ComEldersAuthHistoryRecordDO::getCreateAt, DateUtils.getFirstDayOfMonth()));
            if(authHistoryRecordDOList.isEmpty()){
                ComEldersAuthHistoryRecordDO authHistoryRecordDO = new ComEldersAuthHistoryRecordDO();
                authHistoryRecordDO.setUserId(eldersAuthAddByFamilyDTO.getFamilyUserId());
                authHistoryRecordDO.setAuthId(eldersAuthDO.getId());
                BeanUtils.copyProperties(eldersAuthDO,authHistoryRecordDO);
                authHistoryRecordDO.setId(null);
                authHistoryRecordDO.setBrithday(AgeUtils.getAgeFormatBirthday(IdcardUtil.getBirthByIdCard(idCard)));
                authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(idCard));
                authHistoryRecordDO.setIsAuth(1);
                authHistoryRecordDO.setDomicile(domicile);
                comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO);
            }
            return R.ok(eldersAuthDO.getId());
        }
        return R.fail();
    }
@@ -1645,8 +1704,21 @@
            if (R.isOk(r1)) {
                log.info("新增用户报名党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
            }
        }
            //用户高龄认证反馈,推送订阅消息给用户
            Map<String,String> map = comActActSignDAO.getUserOpenId(eldersAuthDO.getSumitUserId());
            if(map != null){
                String openid = map.get("openid");
                try {
                    WxXCXTempSend util = new WxXCXTempSend();
                    String accessToken = util.getAppAccessToken();
                    WxUtil.sendSubscribeRZSH(openid,accessToken,"高龄认证"
                            ,DateUtils.format(eldersAuthDO.getCreateAt(),DateUtils.ymdhms_format),eldersAuthFeedbackAddDTO.getFeedBack());
                }catch (Exception e){
                    log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage());
                }
            }
        }
        return addR;
    }
@@ -1660,4 +1732,84 @@
    R eldersAuthQuery(@RequestBody PageEldersAuthDTO pageEldersAuthDTO){
        return eldersAuthService.queryExportData(pageEldersAuthDTO);
    }
    /**
     * 设置社区认证方式
     * @param communityId 社区ID
     * @param type 核验类型(1.视频认证 2.人脸核验)
     * @return
     */
    @PostMapping("/elders/setCommunityAuthType")
    R setCommunityAuthType(@RequestParam("communityId")Long communityId,@RequestParam("type") Integer type){
        return eldersAuthService.setCommunityAuthType(communityId, type);
    }
    /**
     * 随手拍活动定时任务
     * @return  执行结果
     */
    @PostMapping("timeTaskEasyPhotoActivity")
    public R timeTaskEasyPhotoActivity(){
        return comActEasyPhotoActivityService.timeTaskEasyPhotoActivity();
    }
    /**
     * 社区随手拍列表统计
     * @param communityId   社区id
     * @return  统计结果
     */
    @GetMapping("easyphoto/statistics")
    public R easyPhotoStatistics(@RequestParam("communityId")Long communityId) {
        return comActEasyPhotoService.easyPhotoStatistics(communityId);
    }
    /**
     * 综治后台-查询社区列表
     * @return  社区列表
     */
    @GetMapping("/eventgrid/community/list")
    public R getCommunityLists(){
        return comActService.getCommunityLists();
    }
    /**
     * 随手拍发放奖励
     * @param grantRewardDTO    请求参数
     * @return  发放结果
     */
    @PostMapping("/easyphoto/grantReward")
    public R grantReward(@RequestBody GrantRewardDTO grantRewardDTO) {
        return comActEasyPhotoService.grantReward(grantRewardDTO);
    }
    /**
     * 获取最新活动和用户最新收益
     * @param userId    用户id
     * @param communityId   社区id
     * @return  最新活动和用户最新收益
     */
    @PostMapping("easyphoto/getUserReward")
    public R getUserReward(@RequestParam("userId") Long userId,@RequestParam("communityId") Long communityId) {
        return comActEasyPhotoService.getUserReward(userId,communityId);
    }
    /**
     * 读取用户随手拍奖励
     * @param userId    用户id
     * @return  读取结果
     */
    @PostMapping("easyphoto/readUserReward")
    public R readUserReward(@RequestParam("userId") Long userId,@RequestParam("communityId") Long communityId) {
        return comActEasyPhotoService.readUserReward(userId,communityId);
    }
    /**
     * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户
     */
    @PostMapping("timedTaskActivityNotice")
    public R timedTaskActivityNotice(){
        return comActActivityService.timedTaskActivityNotice();
    }
}