k94314517
2025-07-01 520433f6d88c1f4c1a2d31ca950f2309da2d4a9a
git ch
已修改4个文件
142 ■■■■ 文件已修改
server/platform/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/api/common/PublicController.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyOnServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/resources/application.yml
@@ -11,7 +11,7 @@
#  application:
#  name: doumeemes
  profiles:
    active: dev
    active: pro
  # JSON返回配置
  jackson:
server/service/src/main/java/com/doumee/api/common/PublicController.java
@@ -4,16 +4,23 @@
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.aliyun.ALiYunUtil;
import com.doumee.core.utils.aliyun.ProgressModel;
import com.doumee.dao.business.model.InterfaceLog;
import com.doumee.service.business.InsuranceApplyService;
import com.doumee.service.business.InterfaceLogService;
import com.jzq.common.bean.sign.NotifyDataReq;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,10 +34,7 @@
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.UUID;
import java.util.*;
/**
 * @author Eva.Caesar Liu
@@ -46,6 +50,49 @@
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private InsuranceApplyService insuranceApplyService;
    @Autowired
    public InterfaceLogService interfaceLogService = null;
    @ApiOperation("君子签签约回调通知")
    @PostMapping("/signNotify")
    public void updateStatus(@RequestParam Map<String,String> req, HttpServletResponse response) {
        Map<String, Object> context = new HashMap<>();
        context.put("success",true);
        InterfaceLog log=new InterfaceLog();
        log.setType(1);
        log.setCreateDate(new Date());
        log.setIsdeleted(0);
        log.setRequest(JSONObject.toJSONString(req));
        log.setName("君子签签约回调通知");
        log.setUrl(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode());
        try {
            String appKey = systemDictDataBiz.queryByCode(Constants.SIGN,Constants.SIGN_APPKEY).getCode();
            String appSecret  = systemDictDataBiz.queryByCode(Constants.SIGN,Constants.SIGN_APPSECRET).getCode();
            if(!StringUtils.equals(appKey,req.get("appkey"))){
                throw  new BusinessException(com.doumee.core.constants.ResponseStatus.BAD_REQUEST.getCode(),"appkey不匹配");
            }
            String sign = DigestUtils.sha1Hex("data"+ req.get("data")+"method"+req.get("method")+"version"+req.get("version")+"timestamp"+req.get("timestamp")
                    +"appKey"+appKey+"appSecret"+appSecret);
            if(!StringUtils.equals(sign,req.get("sign"))){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"验签不通过");
            }
            NotifyDataReq data   = JSONObject.parseObject(req.get("data"), NotifyDataReq.class);
            String r =  insuranceApplyService.dealSignResult(data);
            log.setRepose(r);
        }catch (Exception e){
            log.setRepose("处理异常;"+e.getMessage());
            context.put("success",false);
            context.put("msg","处理发生异常");
            throw  e;
        }finally {
            interfaceLogService.create(log);
        }
        writerJson(response, context);
    }
    @ApiOperation(value = "上传", notes = "上传", httpMethod = "POST", position = 6)
    @ApiImplicitParams({
@@ -340,4 +387,5 @@
        writerJson(response, context);
        return;
    }
}
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyOnServiceImpl.java
@@ -701,9 +701,14 @@
            //本月新增投保企业
            insuranceApplyDataVO.setMonthAddInsuranceCompanyNum(Objects.nonNull(monthAddInsuranceCompanyNum)?monthAddInsuranceCompanyNum:Constants.ZERO);
            //直保保单数量
            insuranceApplyDataVO.setZbInsuranceNum(insuranceApplyList.stream().filter(i -> Constants.equalsInteger(i.getSolutionType(), Constants.ZERO)).collect(Collectors.toList()).size());
            insuranceApplyDataVO.setZbInsuranceNum(insuranceApplyList.stream().filter(i -> Constants.equalsInteger(i.getSolutionType(), Constants.ZERO)
                            &&(Constants.equalsInteger(i.getStatus(), Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
                    || Constants.equalsInteger(i.getStatus(), Constants.InsuranceApplyStatus.WTB_DONE.getKey())))
                    .collect(Collectors.toList()).size());
            //委托保保单数量
            insuranceApplyDataVO.setWtbInsuranceNum(insuranceApplyList.stream().filter(i -> Constants.equalsInteger(i.getSolutionType(), Constants.ONE)).collect(Collectors.toList()).size());
            insuranceApplyDataVO.setWtbInsuranceNum(insuranceApplyList.stream().filter(i -> Constants.equalsInteger(i.getSolutionType(), Constants.ONE)
                    &&(Constants.equalsInteger(i.getStatus(), Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
                    || Constants.equalsInteger(i.getStatus(), Constants.InsuranceApplyStatus.WTB_DONE.getKey()))).collect(Collectors.toList()).size());
        }
            //合计总费用
@@ -993,13 +998,18 @@
        DataListVO dataListVOA = new DataListVO();
        dataListVOA.setDataFirst("不在保");
        dataListVOA.setDataSecond(
                applyDetailJoinMapper.selectJoinCount( new MPJLambdaWrapper<ApplyDetail>()
                applyDetailJoinMapper.selectJoinList(ApplyDetail.class, new MPJLambdaWrapper<ApplyDetail>()
                        .select(ApplyDetail::getMemberId)
                                .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyDetail::getApplyId)
                                .eq(ApplyDetail::getIsdeleted, Constants.ZERO)
                                .eq(InsuranceApply::getIsdeleted, Constants.ZERO)
                                .in(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
                                .eq(InsuranceApply::getCompanyId,loginUserInfo.getCompanyId())
                                .apply("  t.END_TIME < now() ")).toString()
                                .apply("  t.END_TIME < now() ")
                        .groupBy(ApplyDetail::getMemberId)
                ).size()+""
        );
        dataListVOList.add(dataListVOA);
@@ -1008,13 +1018,14 @@
        DataListVO dataListVOB = new DataListVO();
        dataListVOB.setDataFirst("保障中");
        dataListVOB.setDataSecond(
                applyDetailJoinMapper.selectJoinCount( new MPJLambdaWrapper<ApplyDetail>()
                applyDetailJoinMapper.selectJoinList(ApplyDetail.class, new MPJLambdaWrapper<ApplyDetail>()
                .select(ApplyDetail::getMemberId)
                        .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyDetail::getApplyId)
                        .eq(ApplyDetail::getIsdeleted, Constants.ZERO)
                        .eq(InsuranceApply::getIsdeleted, Constants.ZERO)
                        .in(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
                        .eq(InsuranceApply::getCompanyId,loginUserInfo.getCompanyId())
                        .apply("  t.END_TIME >= now() ")).toString()
                        .apply("  t.END_TIME >= now() ").groupBy(ApplyDetail::getMemberId)).size()+""
        );
        dataListVOList.add(dataListVOB);
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -229,27 +229,27 @@
        LoginUserInfo loginUserInfo =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        //企业人员查看本企业数据
        if(loginUserInfo.getType().equals(Constants.ONE)){
            queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId())
                    .select( " ( select count(1) from apply_detail a inner join insurance_apply b on a.APPLY_ID = b.id  where a.member_id = t.id and b.company_id = "+loginUserInfo.getCompanyId()+"  and b.status in (" +
                            " "+Constants.InsuranceApplyStatus.WTB_DONE.getKey()+","+Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()+" ) " +
                            " and  a.end_time >= now() ) ", Member::getValidNum )
                    .select( " ( select count(1) from apply_detail a inner join insurance_apply b on a.APPLY_ID = b.id  where a.member_id = t.id and b.company_id = "+loginUserInfo.getCompanyId()+"  and b.status in (" +
                            " "+Constants.InsuranceApplyStatus.WTB_DONE.getKey()+","+Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()+" ) " +
                            " and a.end_time < now() ) ", Member::getInvalidNum );
            queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
//                    .select( " ( select count(1) from apply_detail a inner join insurance_apply b on a.APPLY_ID = b.id  where a.member_id = t.id and b.company_id = "+loginUserInfo.getCompanyId()+"  and b.status in (" +
//                            " "+Constants.InsuranceApplyStatus.WTB_DONE.getKey()+","+Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()+" ) " +
//                            " and  a.end_time >= now() ) ", Member::getValidNum )
//
//                    .select( " ( select count(1) from apply_detail a inner join insurance_apply b on a.APPLY_ID = b.id  where a.member_id = t.id and b.company_id = "+loginUserInfo.getCompanyId()+"  and b.status in (" +
//                            " "+Constants.InsuranceApplyStatus.WTB_DONE.getKey()+","+Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()+" ) " +
//                            " and a.end_time < now() ) ", Member::getInvalidNum );
        }else{
            if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){
                queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList());
            }else{
                queryWrapper.eq(InsuranceApply::getCompanyId, -1);
            }
            queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,InsuranceApply::getCompanyId, pageWrap.getModel().getCompanyId())
                    .select( " ( select count(1) from apply_detail a inner join insurance_apply b on a.APPLY_ID = b.id  where a.member_id = t.id and b.status in (" +
                            " "+Constants.InsuranceApplyStatus.WTB_DONE.getKey()+","+Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()+" ) " +
                            " and  a.end_time >= now() ) ", Member::getValidNum )
                    .select( " ( select count(1) from apply_detail a inner join insurance_apply b on a.APPLY_ID = b.id  where a.member_id = t.id and b.status in (" +
                            " "+Constants.InsuranceApplyStatus.WTB_DONE.getKey()+","+Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()+" ) " +
                            " and a.end_time < now() ) ", Member::getInvalidNum );
            queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,InsuranceApply::getCompanyId, pageWrap.getModel().getCompanyId());
//                    .select( " ( select count(1) from apply_detail a inner join insurance_apply b on a.APPLY_ID = b.id  where a.member_id = t.id and b.status in (" +
//                            " "+Constants.InsuranceApplyStatus.WTB_DONE.getKey()+","+Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()+" ) " +
//                            " and  a.end_time >= now() ) ", Member::getValidNum )
//                    .select( " ( select count(1) from apply_detail a inner join insurance_apply b on a.APPLY_ID = b.id  where a.member_id = t.id and b.status in (" +
//                            " "+Constants.InsuranceApplyStatus.WTB_DONE.getKey()+","+Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()+" ) " +
//                            " and a.end_time < now() ) ", Member::getInvalidNum );
        }
        queryWrapper.selectAll(Member.class)
                .and(StringUtils.isNotBlank(memberQueryDTO.getKeywords()),
@@ -268,6 +268,7 @@
         queryWrapper.orderByAsc(Member::getName);
        PageData<Member> pageData = PageData.from(memberJoinMapper.selectJoinPage(page,Member.class, queryWrapper));
        this.getValidNum(pageData,loginUserInfo);
        Integer sn = 0;
        for (Member member:pageData.getRecords()) {
            sn = sn + 1;
@@ -280,6 +281,36 @@
        return pageData;
    }
    public void getValidNum(PageData<Member> pageData,LoginUserInfo loginUserInfo){
        List<Integer> listId = pageData.getRecords().stream().map(i->i.getId()).collect(Collectors.toList());
        if(CollectionUtils.isNotEmpty(listId)){
            Integer companyId = null;
            if(Objects.nonNull(loginUserInfo.getType())&&Constants.equalsInteger(loginUserInfo.getType(),Constants.ONE)){
                companyId = loginUserInfo.getShowCompany().getId();
            }
            List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
                    new MPJLambdaWrapper<ApplyDetail>()
                            .select(ApplyDetail::getMemberId,ApplyDetail::getStartTime,ApplyDetail::getEndTime,ApplyDetail::getId)
                            .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
                            .in(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
                            .in(ApplyDetail::getMemberId,listId)
                            .eq(Objects.nonNull(companyId)
                                    ,InsuranceApply::getCompanyId,companyId)
            );
            if(CollectionUtils.isNotEmpty(applyDetailList)){
                for (Member member:pageData.getRecords()) {
                    member.setInvalidNum(applyDetailList.stream().filter(i->Constants.equalsInteger(i.getMemberId(),member.getId())&&i.getEndTime().getTime()<System.currentTimeMillis()).collect(Collectors.toList()).size());
                    member.setValidNum(
                            applyDetailList.stream().filter(i->Constants.equalsInteger(i.getMemberId(),member.getId())&&i.getEndTime().getTime()>=System.currentTimeMillis()).collect(Collectors.toList()).size()
                    );
                }
            }
        }
    }
    @Override
    public long count(Member member) {
        QueryWrapper<Member> wrapper = new QueryWrapper<>(member);