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);