From aab81695882cdc6b490fcf1e427e2827619b80e1 Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Thu, 21 Jan 2021 18:19:19 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DgApplyAmountInfoController.java | 15 ++-- .../controller/DgEfficiencyController.java | 1 - .../controller/DgProcessManageController.java | 40 ++++++++-- .../model/request/ProcessManageRequest.java | 30 +++++++ .../model/request/UpdateUserVisualReq.java | 24 ++++++ .../model/response/DgNoticeListResponse.java | 78 ++++++++++++++++--- .../service/IDgProcessManageService.java | 7 +- .../service/impl/DgEfficiencyServiceImpl.java | 10 +++ .../impl/DgProcessManageServiceImpl.java | 28 ++++++- .../guarantee/DgApplyAmountListMapper.xml | 6 +- .../guarantee/DgAssetsInvestigationMapper.xml | 6 +- .../DgComplianceInvestigationMapper.xml | 6 +- .../guarantee/DgGuaranteeAssignUserMapper.xml | 6 +- .../DgGuaranteeLetterAssignUserMapper.xml | 6 +- .../DgLoanCommitteeConsiderMapper.xml | 6 +- .../mapper/guarantee/DgLoanNoticeMapper.xml | 6 +- .../DgMessageInvestigationMapper.xml | 6 +- .../DgPaymentConfirmationConsiderMapper.xml | 6 +- .../guarantee/DgProcessManageMapper.xml | 1 + .../DgWorkConferenceConsiderMapper.xml | 33 +++++++- .../financial/hrauth/config/WeChatConfig.java | 5 ++ .../controller/UserLoginController.java | 24 +++++- .../hrauth/service/UserLoginService.java | 2 + .../service/impl/UserLoginServiceImpl.java | 48 ++++++++++++ .../hrauth/service/impl/UserServiceImpl.java | 12 +-- .../model/response/PromptSuccess.java | 4 +- .../domain/guarantee/DgProcessManage.java | 5 ++ .../daqing/framework/domain/hrms/Login.java | 31 ++++++++ .../framework/domain/hrms/ext/EmployeeVO.java | 2 +- 29 files changed, 405 insertions(+), 49 deletions(-) create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/ProcessManageRequest.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/UpdateUserVisualReq.java create mode 100644 dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/Login.java diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java index 66ac33a1..92a96cb2 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java @@ -198,12 +198,15 @@ public class DgApplyAmountInfoController implements DgApplyAmountInfoControllerA if(responseResult.getData() != null){ employeeMessage = (List) responseResult.getData(); } - - for (BusinessApplicationListResponse response:list) { - for(LinkedHashMap res : employeeMessage){ - if(response.getPresenterId().equals(res.get("id"))){//如果提单人id相同情况下,就往对象里面赋值 - response.setAccount(JSONObject.toJSONString(res.get("account")).replace("\"","")); - response.setDeptName(JSONObject.toJSONString(res.get("deptName")).replace("\"","")); + System.out.println("employeeMessage==================="+employeeMessage); + + if(employeeMessage!= null){ + for (BusinessApplicationListResponse response:list) { + for(LinkedHashMap res : employeeMessage){ + if(response.getPresenterId().equals(res.get("id"))){//如果提单人id相同情况下,就往对象里面赋值 + response.setAccount(JSONObject.toJSONString(res.get("account")).replace("\"","")); + response.setDeptName(JSONObject.toJSONString(res.get("deptName")).replace("\"","")); + } } } } diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgEfficiencyController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgEfficiencyController.java index 3a6e7b2a..94c4ef82 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgEfficiencyController.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgEfficiencyController.java @@ -94,7 +94,6 @@ public class DgEfficiencyController { return ResponseResult.SUCCESS(dgEfficiencyService.getTodayBusinessCount()); } - @ApiOperation(value = "个人效率记录列表") /** * 首页-通知 * @Param title 标题 diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageController.java index 4ecf3bde..b4ea2d2a 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageController.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageController.java @@ -2,23 +2,27 @@ package com.daqing.financial.guarantee.controller; import com.alibaba.fastjson.JSONObject; +import com.daqing.financial.guarantee.model.request.ProcessManageRequest; +import com.daqing.financial.guarantee.model.request.UpdateUserVisualReq; import com.daqing.financial.guarantee.model.response.BusinessApplicationListResponse; import com.daqing.financial.guarantee.model.response.DgProessManageRes; import com.daqing.financial.guarantee.service.IDgProcessManageService; import com.daqing.framework.domain.guarantee.DgProcessManage; +import com.daqing.framework.domain.hrms.ext.EmployeeVO; +import com.daqing.framework.domain.hrms.ext.UserDeptVO; import com.daqing.framework.model.response.ResponseResult; import com.daqing.framework.util.RedisUtil; import com.daqing.framework.utils.PageUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.stereotype.Controller; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.List; +import java.util.*; /** *

@@ -29,6 +33,7 @@ import java.util.List; * @since 2021-01-15 */ @RestController +@Api(tags = {"流程管理"}) @RequestMapping("/dg-process-manage") public class DgProcessManageController { @@ -61,21 +66,40 @@ public class DgProcessManageController { @ApiOperation(value = "查询审批模板对应的可见人员") public ResponseResult processVisualList(@RequestParam(value = "id") Integer id){ //查询可见范围内的人可见列表 - List list = iDgProcessManageService.processVisualList(id); + List list = iDgProcessManageService.processVisualList(id); return new ResponseResult().SUCCESS(list); } /** * 修改人员可以看到审批模板 - * @param id 流程管理id ids 可见人id + * @param updateUserVisualReq * @return */ - @GetMapping("/updateUserVisual") + @PostMapping("/updateUserVisual") @ApiOperation(value = "修改人员可以看到审批模板") - public ResponseResult updateUserVisual(@RequestParam(value="id") Integer id,@RequestParam(value = "ids") Listids){ + @Transactional + public ResponseResult updateUserVisual(@RequestBody UpdateUserVisualReq updateUserVisualReq){ + Integer id = updateUserVisualReq.getId(); + Listids = updateUserVisualReq.getIds(); //查询可见范围内的人可见列表 Boolean a= iDgProcessManageService.updateUserVisual(id,ids); return new ResponseResult().SUCCESS(a); } + /** + * 修改基础设置 + * @param processManageReq + * @return + */ + @PostMapping("/updateProcessManage") + @ApiOperation(value = "修改基础设置") + @Transactional + public ResponseResult updateProcessManage(@RequestBody ProcessManageRequest processManageReq){ + processManageReq.setUpdateTime(new Date()); + //根据id修改基础设置 + int a= iDgProcessManageService.updateProcessManage(processManageReq); + return a>0 ? ResponseResult.SUCCESS("修改成功!"):ResponseResult.FAIL(40008,"修改失败!"); + + } + } diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/ProcessManageRequest.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/ProcessManageRequest.java new file mode 100644 index 00000000..85c54e75 --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/ProcessManageRequest.java @@ -0,0 +1,30 @@ +package com.daqing.financial.guarantee.model.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + + +/** + * @Author chen + * @DATE 2020/11/16 20:16 + * @Version 1.0 + * 业务申请列表导出 + */ +@Data +public class ProcessManageRequest { + + @ApiModelProperty("流程管理模板id") + private Integer id; + + @ApiModelProperty("图标") + private String iconImg; + + @ApiModelProperty("审批说明") + private String approvalInstructions; + + @ApiModelProperty("更新时间") + private Date updateTime; + +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/UpdateUserVisualReq.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/UpdateUserVisualReq.java new file mode 100644 index 00000000..76191bad --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/UpdateUserVisualReq.java @@ -0,0 +1,24 @@ +package com.daqing.financial.guarantee.model.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + + +/** + * @Author chen + * @DATE 2020/11/16 20:16 + * @Version 1.0 + * 业务申请列表导出 + */ +@Data +public class UpdateUserVisualReq { + + @ApiModelProperty("流程管理模板id") + private Integer id; + + @ApiModelProperty("可见人id") + private List ids; +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgNoticeListResponse.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgNoticeListResponse.java index 67c1f047..d7ef6c0b 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgNoticeListResponse.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgNoticeListResponse.java @@ -1,34 +1,94 @@ package com.daqing.financial.guarantee.model.response; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.metadata.BaseRowModel; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.daqing.framework.utils.excel.ApprovalStatusConverter; +import com.daqing.framework.utils.excel.BusinessStatusConverter; +import com.daqing.framework.utils.excel.OperatingStatusConverter; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.ToString; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @Data @ToString public class DgNoticeListResponse extends BaseRowModel implements Serializable { - /** - * 业务编号 - */ - @ExcelProperty(value = "业务编号",index = 0) @ApiModelProperty(value = "业务编号") private String businessCode; - - /** - * 申请时间 - */ - @ExcelProperty(value = "申请日期",index = 6) @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(value = "申请时间") private Date createTime; + @ApiModelProperty(value = "id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "企业id") + private Integer companyId; + + @ExcelIgnore + @ApiModelProperty(value = "业务id") + private Integer businessId; + + @ExcelIgnore + @ApiModelProperty(value = "角色id") + private Integer roleId; + + @ApiModelProperty(value = "提单人id") + private Integer presenterId; + + @ApiModelProperty(value = "客户名称") + private String name; + + @ApiModelProperty(value = "联系电话") + private String phone; + + @ApiModelProperty(value = "业务类型") + private String businessType; + + @ApiModelProperty(value = "申请额度") + private BigDecimal applyAmount; + + @ApiModelProperty(value = "申请期限") + private String applyTime; + + @ApiModelProperty("审核状态") + private Integer status; + + @ApiModelProperty("业务状态") + private Integer businessStatus; + + @ApiModelProperty("操作状态") + private Integer operatingStatus; + +//--------------工作会需要内容-------------------------- + + @ApiModelProperty("A角") + private Integer aUserId; + + @ApiModelProperty("B角") + private Integer bUserId; + + @ApiModelProperty("法规部领导") + private Integer iUserId; + + @ApiModelProperty("资产部领导") + private Integer assUserId; + + @ApiModelProperty("信息部领导") + private Integer mUserId; +//-------------------结束----------------------------- + + @ApiModelProperty("业务管理模块id") + private Integer modelId; } diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageService.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageService.java index 295ad563..b425a14e 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageService.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageService.java @@ -2,8 +2,11 @@ package com.daqing.financial.guarantee.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.daqing.financial.guarantee.model.request.ProcessManageRequest; import com.daqing.financial.guarantee.model.response.DgProessManageRes; import com.daqing.framework.domain.guarantee.DgProcessManage; +import com.daqing.framework.domain.hrms.ext.EmployeeVO; +import com.daqing.framework.domain.hrms.ext.UserDeptVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -20,7 +23,9 @@ public interface IDgProcessManageService extends IService { List processManageList(String userId); - List processVisualList(Integer id); + List processVisualList(Integer id); Boolean updateUserVisual(@Param("id") Integer id, @Param("ids") List ids); + + int updateProcessManage(@Param("processManageReq")ProcessManageRequest processManageReq); } diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgEfficiencyServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgEfficiencyServiceImpl.java index 33fe9e2c..1d7b11c4 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgEfficiencyServiceImpl.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgEfficiencyServiceImpl.java @@ -687,6 +687,7 @@ public class DgEfficiencyServiceImpl extends ServiceImpl list = new ArrayList(); for (DgNoticeListResponse res : list1) { res.setBusinessCode("您有一个待办任务需办理,评审内容:业务申请:" + res.getBusinessCode()); + res.setModelId(1); list.add(res); } @@ -694,6 +695,7 @@ public class DgEfficiencyServiceImpl extends ServiceImpl list2 = guaranteeAssignUserMapper.selectGuaranteeList(userId, roleIdlist); for (DgNoticeListResponse res : list2) { res.setBusinessCode("您有一个待办任务需办理,评审内容:担保部调查:" + res.getBusinessCode()); + res.setModelId(2); list.add(res); } @@ -701,6 +703,7 @@ public class DgEfficiencyServiceImpl extends ServiceImpl list3 = assetsInvestigationMapper.selectAssetsList(userId, roleIdlist); for (DgNoticeListResponse res : list3) { res.setBusinessCode("您有一个待办任务需办理,评审内容:资产部调查:" + res.getBusinessCode()); + res.setModelId(3); list.add(res); } @@ -708,6 +711,7 @@ public class DgEfficiencyServiceImpl extends ServiceImpl list4 = messageInvestigationMapper.selectMessageList(userId, roleIdlist); for (DgNoticeListResponse res : list4) { res.setBusinessCode("您有一个待办任务需办理,评审内容:信息部调查:" + res.getBusinessCode()); + res.setModelId(4); list.add(res); } @@ -715,6 +719,7 @@ public class DgEfficiencyServiceImpl extends ServiceImpl list5 = complianceInvestigationMapper.selectComplianceList(userId, roleIdlist); for (DgNoticeListResponse res : list5) { res.setBusinessCode("您有一个待办任务需办理,评审内容:合规调查:" + res.getBusinessCode()); + res.setModelId(5); list.add(res); } @@ -722,6 +727,7 @@ public class DgEfficiencyServiceImpl extends ServiceImpl list6 = workConferenceConsiderMapper.selectWorkConferenceList(userId, roleIdlist); for (DgNoticeListResponse res : list6) { res.setBusinessCode("您有一个待办任务需办理,评审内容:工作会:" + res.getBusinessCode()); + res.setModelId(6); list.add(res); } @@ -729,6 +735,7 @@ public class DgEfficiencyServiceImpl extends ServiceImpl list7 = loanCommitteeConsiderMapper.selectLoanCommitteeList(userId, roleIdlist); for (DgNoticeListResponse res : list7) { res.setBusinessCode("您有一个待办任务需办理,评审内容:贷审会:" + res.getBusinessCode()); + res.setModelId(7); list.add(res); } @@ -736,12 +743,14 @@ public class DgEfficiencyServiceImpl extends ServiceImpl list8 = guaranteeLetterAssignUserMapper.selectGuaranteeLetterList(userId, roleIdlist); for (DgNoticeListResponse res : list8) { res.setBusinessCode("您有一个待办任务需办理,评审内容:担保函:" + res.getBusinessCode()); + res.setModelId(8); list.add(res); } //回款确认模块,查询该用户待处理的记录 List list9 = paymentConfirmationConsiderMapper.selectPaymentConfirmationList(userId, roleIdlist); for (DgNoticeListResponse res : list9) { res.setBusinessCode("您有一个待办任务需办理,评审内容:回款确认:" + res.getBusinessCode()); + res.setModelId(9); list.add(res); } @@ -749,6 +758,7 @@ public class DgEfficiencyServiceImpl extends ServiceImpl list10 = loanNoticeMapper.selectLoanNoticeList(userId, roleIdlist); for (DgNoticeListResponse res : list10) { res.setBusinessCode("您有一个待办任务需办理,评审内容:放款通知:" + res.getBusinessCode()); + res.setModelId(10); list.add(res); } return list; diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageServiceImpl.java index ac531fe6..30b6a549 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageServiceImpl.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageServiceImpl.java @@ -1,13 +1,20 @@ package com.daqing.financial.guarantee.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.daqing.financial.guarantee.feign.HrmsFeignService; import com.daqing.financial.guarantee.mapper.DgProcessManageMapper; import com.daqing.financial.guarantee.mapper.DgProcessManageVisualMapper; +import com.daqing.financial.guarantee.model.request.ProcessManageRequest; import com.daqing.financial.guarantee.model.response.DgProessManageRes; import com.daqing.financial.guarantee.service.IDgProcessManageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.daqing.framework.domain.guarantee.DgProcessManage; import com.daqing.framework.domain.guarantee.DgProcessManageVisual; +import com.daqing.framework.domain.hrms.ext.EmployeeVO; +import com.daqing.framework.domain.hrms.ext.UserDeptVO; +import com.daqing.framework.model.response.ResponseResult; +import com.daqing.framework.util.RedisUtil; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,6 +35,9 @@ public class DgProcessManageServiceImpl extends ServiceImpl processManageList(String userId) { @@ -36,14 +46,21 @@ public class DgProcessManageServiceImpl extends ServiceImpl processVisualList(Integer id) { + public List processVisualList(Integer id) { //根据流程管理id查询可见人id List visualUserId = dgProcessManageVisualMapper.processVisualList(id); - return visualUserId; + + Integer[] userIds =visualUserId.toArray(new Integer[visualUserId.size()]); + ResponseResult> listResponseResult = hrmsFeignService.listEmpNameByUserId(userIds); + List dataList = listResponseResult.getData(); + return dataList; } @Override public Boolean updateUserVisual(Integer id, List ids) { + + //查询设置的可见人是否有流程管理页面的权限 + //先根据主键id删除所有对应可见模板员工 dgProcessManageVisualMapper.delete(new QueryWrapper() .eq("process_manage_id",id)); @@ -63,4 +80,11 @@ public class DgProcessManageServiceImpl extends ServiceImpl - select au.id,au.role_id,ai.business_code,au.create_time + select au.id,au.role_id,au.company_id,au.business_id,ai.business_code,ai.business_type,ai.apply_amount,ai.apply_time,au.create_time, + au.status,au.operating_status,cc.name,cc.phone,ps.business_status from dg_guarantee_assign_user au left join dg_apply_amount_info ai on au.business_id = ai.id + left join crms_company_customer ccl on ai.company_id = ccl.id + left join crms_customer cc on cc.id = ccl.customer_id + left JOIN dg_business_process_status ps ON ps.business_id = au.business_id au.role_id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml index ac2a82df..539f437c 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml @@ -87,9 +87,13 @@ + + diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/WeChatConfig.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/WeChatConfig.java index 73153950..a17da549 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/WeChatConfig.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/WeChatConfig.java @@ -54,6 +54,11 @@ public class WeChatConfig implements Serializable { */ private String OPEN_ACCESS_TOKEN_URL="https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code"; + /** + * 小程序登录请求地址 + */ + private String WX_AUTH_URL="https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code"; + /** * 获取用户信息 */ diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java index 5cbae0c3..1687496e 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java @@ -1,5 +1,7 @@ package com.daqing.financial.hrauth.controller; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.daqing.financial.hrauth.UserLoginControllerApi; import com.daqing.financial.hrauth.config.WeChatConfig; import com.daqing.financial.hrauth.feign.HrmsFeignService; @@ -15,12 +17,19 @@ import com.daqing.framework.util.SendUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; @@ -156,8 +165,8 @@ public class UserLoginController implements UserLoginControllerApi { headerImg = URLDecoder.decode(imgUrl,encoder); //account = new String(username.getBytes("GBK"),"iso-8859-1"); log.info("account==========="+account+"headerImg============="+headerImg); - //response.sendRedirect("http://8.129.127.185/dq/index.html#/login?token="+token+"&account="+account+"&headerImg="+headerImg); - response.sendRedirect("http://www.huorantech.cn/dq/index.html#/Dashboard?token="+token+"&account="+account+"&headerImg="+headerImg); + //response.sendRedirect("http://8.129.127.185:8080/dq/index.html#/login?token="+token+"&account="+account+"&headerImg="+headerImg); + response.sendRedirect("https://www.huorantech.cn/dq/index.html#/login?token="+token+"&account="+account+"&headerImg="+headerImg); } }else { userService.weChatBinding(code,response,state); @@ -205,4 +214,15 @@ public class UserLoginController implements UserLoginControllerApi { return result>0 ? ResponseResult.SUCCESS() : ResponseResult.FAIL(55002,"该手机号不存在"); } + /** + * 微信小程序获取openid和session_key授权登录 + * @param code + * @return + */ + @RequestMapping(value = "/wxAuthLogin") + public String wxAuthLogin(String code){ + + return userLoginService.wxAuthLogin(code); + } + } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java index 15c77e90..0f41b478 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java @@ -22,4 +22,6 @@ public interface UserLoginService extends IService { boolean bindPhoneAndOpenId(BindOpenIdRequest bindOpenIdRequest); int isPhoneExist(String mobile); + + String wxAuthLogin(String code); } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java index 2dec6081..7d483c62 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java @@ -1,5 +1,6 @@ package com.daqing.financial.hrauth.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -25,12 +26,21 @@ import com.daqing.framework.util.Md5Util; import com.daqing.framework.util.RedisUtil; import com.daqing.framework.util.SendUtil; import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.*; /** @@ -305,4 +315,42 @@ public class UserLoginServiceImpl extends ServiceImpl return userLoginDao.selectCount(mobile); } + @Override + public String wxAuthLogin(String code) { + System.out.println(code); + System.out.println("来了小程序登录------------------------------------"); + //微信那边的接口,grant_type=authorization_code是固定的 +/* String url="https://api.weixin.qq.com/sns/jscode2session?appid="+APPID+ + "&secret="+SECRET+"&js_code="+ code +"&grant_type=authorization_code";*/ + + String url = weChatConfig.getWX_AUTH_URL(); + System.out.println("url==============="+url); + //发送请求给微信后端 + CloseableHttpClient httpClient= HttpClients.createDefault(); + HttpGet httpGet=new HttpGet(url); + InputStream inputStream=null; + CloseableHttpResponse httpResponse=null; + StringBuilder result=new StringBuilder(); + try { + httpResponse=httpClient.execute(httpGet); + HttpEntity entity=httpResponse.getEntity(); + inputStream=entity.getContent(); + BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream)); + String line=""; + while ((line=bufferedReader.readLine())!=null){ + System.out.println(line); //这里需要使用fastjson来提取一下内容 + JSONObject jsonObject= JSON.parseObject(line); + Login login=new Login(); + login.setOpenid(jsonObject.getString("openid")); + login.setSession_key(jsonObject.getString("session_key")); + result.append(login.getOpenid()+"hello_world"+login.getSession_key()); + System.out.println(result.toString()); + } + } catch (IOException e) { + e.printStackTrace(); + } + + return result.toString(); + } + } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java index a0356ab6..3612b3d7 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java @@ -90,8 +90,8 @@ public class UserServiceImpl extends ServiceImpl imple if(dbUser == null){//openId不存在,返回绑定手机号页面,须另写绑定手机号接口 log.info("dbUser为空,openId不存在,请先绑定手机号哦~~~"); try { - response.sendRedirect("http://www.huorantech.cn/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 - //response.sendRedirect("http://8.129.127.185/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 + response.sendRedirect("https://www.huorantech.cn/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 + //response.sendRedirect("http://8.129.127.185:8080/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 } catch (IOException e) { e.printStackTrace(); } @@ -152,8 +152,8 @@ public class UserServiceImpl extends ServiceImpl imple if (countWeChatId > 0){ try { log.info("微信重复了,我走到了这里............................."); - response.sendRedirect("http://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token+"&message=1"); - //response.sendRedirect("http://8.129.127.185/dq/index.html#/workbench-manpower?token="+token+"&message=1"); + response.sendRedirect("https://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token+"&message=1"); + //response.sendRedirect("http://8.129.127.185:8080/dq/index.html#/workbench-manpower?token="+token+"&message=1"); } catch (IOException e) { e.printStackTrace(); } @@ -163,8 +163,8 @@ public class UserServiceImpl extends ServiceImpl imple if (result){ try { log.info("转发成功---------------------------------------"); - response.sendRedirect("http://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token); - //response.sendRedirect("http://8.129.127.185/dq/index.html#/workbench-manpower?token="+token); + response.sendRedirect("https://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token); + //response.sendRedirect("http://8.129.127.185:8080/dq/index.html#/workbench-manpower?token="+token); }catch (IOException e){ e.printStackTrace(); } diff --git a/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java b/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java index 8a715af9..7c0527b3 100644 --- a/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java +++ b/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java @@ -32,7 +32,7 @@ public class PromptSuccess { public static final String UPLOAD_FILE_PATH = "//usr//local//nginx//html//admin//headImg//"; // linux图片存放路径 - public static final String IMAGE_URL_PATH = "http://www.huorantech.cn/headImg/"; // 数据库/预加载图片路径 + public static final String IMAGE_URL_PATH = "https://www.huorantech.cn/headImg/"; // 数据库/预加载图片路径 //public static final String IMAGE_URL_PATH = "http://8.129.127.185:8080/headImg/"; // 数据库/预加载图片路径 //public static final String IMAGE_URL_PATH = "http://47.107.237.129:8080/headImg/"; // 数据库/预加载图片路径 @@ -40,7 +40,7 @@ public class PromptSuccess { public static final String STATUS_REFUSE = "拒绝"; - public static final String ENCLOSUREFILE_URL_PATH = "http://www.huorantech.cn/enclosureFile/"; // 附件文件存放路径 + public static final String ENCLOSUREFILE_URL_PATH = "https://www.huorantech.cn/enclosureFile/"; // 附件文件存放路径 //public static final String ENCLOSUREFILE_URL_PATH = "http://8.129.127.185:8080/enclosureFile/"; // 附件文件存放路径 //public static final String ENCLOSUREFILE_URL_PATH = "http://47.107.237.129:8080/enclosureFile/"; // 附件文件存放路径 diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManage.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManage.java index 63c181fb..fe6418ad 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManage.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManage.java @@ -44,6 +44,11 @@ public class DgProcessManage implements Serializable { */ private String approvalName; + /** + * 审批说明 + */ + private String approvalInstructions; + /** * 更新时间 */ diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/Login.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/Login.java new file mode 100644 index 00000000..50f9d581 --- /dev/null +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/Login.java @@ -0,0 +1,31 @@ +package com.daqing.framework.domain.hrms; + +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 com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 记录部门信息 + * + * @author gongsj + * @email gongsj@gmail.com + * @date 2020-09-07 17:12:14 + */ +@Data +@TableName("hrms_dept") +public class Login implements Serializable { + private static final long serialVersionUID = 1L; + + private String openid; + + private String session_key; + +} diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/ext/EmployeeVO.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/ext/EmployeeVO.java index 53d75d21..657dab8b 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/ext/EmployeeVO.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/ext/EmployeeVO.java @@ -15,7 +15,7 @@ import java.io.Serializable; public class EmployeeVO implements Serializable{ /** - * 员工id + * 用户id */ @ApiModelProperty("id") private Long id; From a30e4ce6b31e663d93771665fd94c97fdb5c3646 Mon Sep 17 00:00:00 2001 From: river <1376754470@qq.com> Date: Fri, 22 Jan 2021 11:16:15 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmysql=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E5=90=8E=E5=88=86=E7=BB=84=E6=9F=A5=E8=AF=A2=E9=9D=9E=E7=BB=84?= =?UTF-8?q?=E5=90=88=E5=88=97=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/bootstrap.properties | 2 +- .../main/resources/mapper/guarantee/DgEfficiencyMapper.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dq-financial-guarantee/src/main/resources/bootstrap.properties b/dq-financial-guarantee/src/main/resources/bootstrap.properties index 7d37225f..af842f9d 100644 --- a/dq-financial-guarantee/src/main/resources/bootstrap.properties +++ b/dq-financial-guarantee/src/main/resources/bootstrap.properties @@ -1,7 +1,7 @@ #服务名称 spring.application.name=dq-financial-guarantee #配置中心地址 -spring.cloud.nacos.config.server-addr=127.0.0.1:8848 +spring.cloud.nacos.config.server-addr=192.168.31.140:8848 spring.cloud.nacos.config.file-extension=yml #redis配置 spring.redis.host=127.0.0.1 diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgEfficiencyMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgEfficiencyMapper.xml index 27fab062..ac51b77a 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgEfficiencyMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgEfficiencyMapper.xml @@ -39,8 +39,8 @@ AND a.create_time <= #{et.endTime} - GROUP BY business_id - ORDER BY p.create_time ASC + GROUP BY p.business_id + ORDER BY any_value(p.create_time) ASC From 6a48f99f03405c9d90a1c60a78bad5492118d74d Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Thu, 28 Jan 2021 09:46:15 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E5=A4=87=E4=BB=BD=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=8C=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=8E=A5=E5=8F=A3=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DgApplyAmountInfoControllerApi.java | 4 +- .../src/main/resources/bootstrap.properties | 2 +- .../DgApplyAmountInfoController.java | 1 + .../DgBusinessCompanyController.java | 21 +++ .../mapper/DgBusinessCompanyMapper.java | 19 +++ .../request/BusinessApplicationRequest.java | 126 +++++++++++++++ .../BusinessApplicationDetailResponse.java | 12 +- .../service/IDgBusinessCompanyService.java | 17 ++ .../impl/DgApplyAmountInfoServiceImpl.java | 36 +++-- .../impl/DgBusinessCompanyServiceImpl.java | 20 +++ .../service/impl/DgCopyForServiceImpl.java | 1 + .../util/MyBatisPlusCodeGenerator.java | 2 +- .../src/main/resources/bootstrap.properties | 7 +- .../guarantee/DgBusinessCompanyMapper.xml | 33 ++++ .../financial/hrauth/config/WeChatConfig.java | 12 ++ .../controller/UserLoginController.java | 11 +- .../service/impl/UserLoginServiceImpl.java | 5 +- .../hrauth/service/impl/UserServiceImpl.java | 12 +- .../src/main/resources/bootstrap.properties | 2 +- .../hrms/controller/PermissionController.java | 4 +- .../src/main/resources/bootstrap.properties | 2 +- .../model/response/PromptSuccess.java | 12 +- .../domain/guarantee/DgBusinessCompany.java | 145 ++++++++++++++++++ .../src/main/resources/bootstrap.properties | 2 +- .../src/main/resources/jwt.properties | 4 +- 25 files changed, 462 insertions(+), 50 deletions(-) create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgBusinessCompanyController.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgBusinessCompanyMapper.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgBusinessCompanyService.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgBusinessCompanyServiceImpl.java create mode 100644 dq-financial-guarantee/src/main/resources/mapper/guarantee/DgBusinessCompanyMapper.xml create mode 100644 dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java diff --git a/dq-financial-api/src/main/java/com/daqing/financial/guarantee/DgApplyAmountInfoControllerApi.java b/dq-financial-api/src/main/java/com/daqing/financial/guarantee/DgApplyAmountInfoControllerApi.java index c011e7c9..a1d8280e 100644 --- a/dq-financial-api/src/main/java/com/daqing/financial/guarantee/DgApplyAmountInfoControllerApi.java +++ b/dq-financial-api/src/main/java/com/daqing/financial/guarantee/DgApplyAmountInfoControllerApi.java @@ -26,8 +26,8 @@ public interface DgApplyAmountInfoControllerApi { /* @ApiOperation(value = "业务申请") ResponseResult businessApplication(BusinessApplicationRequest businessApplication);*/ - @ApiOperation(value = "上传文件") - ResponseResult uploadFile(MultipartFile[] files)throws IOException; +/* @ApiOperation(value = "上传文件") + ResponseResult uploadFile(MultipartFile[] files)throws IOException;*/ @ApiOperation(value = "删除服务器文件") boolean deleteServerFile(String filePath); diff --git a/dq-financial-crms/src/main/resources/bootstrap.properties b/dq-financial-crms/src/main/resources/bootstrap.properties index 1811a1da..ef21949d 100644 --- a/dq-financial-crms/src/main/resources/bootstrap.properties +++ b/dq-financial-crms/src/main/resources/bootstrap.properties @@ -1,7 +1,7 @@ #服务名称 spring.application.name=dq-financial-crms #配置中心地址 -spring.cloud.nacos.config.server-addr=192.168.31.140:8848 +spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.file-extension=yml #redis配置 spring.redis.host=127.0.0.1 diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java index 92a96cb2..a5c51187 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java @@ -109,6 +109,7 @@ public class DgApplyAmountInfoController implements DgApplyAmountInfoControllerA @PostMapping("/uploadFile")// 浏览器地址栏输入的路径 @ResponseBody public ResponseResult uploadFile(@RequestParam("file")MultipartFile[] files) throws IOException { + System.out.println(" 文件名称: 来了来了"); /** * MultipartFile类是用来接收前台传过来的文件,常用的方法如下: * String getContentType() //获取文件MIME类型 diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgBusinessCompanyController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgBusinessCompanyController.java new file mode 100644 index 00000000..39fcf09f --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgBusinessCompanyController.java @@ -0,0 +1,21 @@ +package com.daqing.financial.guarantee.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 业务关联企业表 前端控制器 + *

+ * + * @author Qyq + * @since 2021-01-27 + */ +@RestController +@RequestMapping("/dg-business-company") +public class DgBusinessCompanyController { + +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgBusinessCompanyMapper.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgBusinessCompanyMapper.java new file mode 100644 index 00000000..d0a3e3d5 --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgBusinessCompanyMapper.java @@ -0,0 +1,19 @@ +package com.daqing.financial.guarantee.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.daqing.framework.domain.guarantee.DgBusinessCompany; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 业务关联企业表 Mapper 接口 + *

+ * + * @author Qyq + * @since 2021-01-27 + */ +@Mapper +public interface DgBusinessCompanyMapper extends BaseMapper { + +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java index 38e76380..f61f9e7e 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java @@ -209,4 +209,130 @@ public class BusinessApplicationRequest implements Serializable { @ApiModelProperty(value = "申请类型:0->员工申请;1->客户申请") private Integer applyType; + /** + * 注册资金(万元) + */ + @ApiModelProperty(value = "注册资金(万元)") + private String registeredCapital; + + /** + * 社会统一代码 + */ + @ApiModelProperty(value = "社会统一代码") + private String socialUnifiedCode; + + /** + * 员工人数 + */ + @ApiModelProperty(value = "员工人数") + private String empNum; + + /** + * 联系人 + */ + @ApiModelProperty(value = "联系人") + private String linkman; + + /** + * 联系人的联系电话 + */ + @ApiModelProperty(value = "联系人的联系电话") + private String linkPhone; + + /** + * 业务来源 + */ + @ApiModelProperty(value = "业务来源") + private String businessSource; + + /** + * 经营范围 + */ + @ApiModelProperty(value = "经营范围") + private String businessScope; + + /** + * 经营地址 + */ + @ApiModelProperty(value = "经营地址") + private String businessAddr; + + /** + * 注册时间 + */ + @ApiModelProperty(value = "注册时间") + private Date registerTime; + + /** + * 注册地址 + */ + @ApiModelProperty(value = "注册地址") + private String registerAddr; + + /** + * 法人-身份证号 + */ + @ApiModelProperty(value = "法人-身份证号") + private String legalIdNumber; + + /** + * 法人-户口所在地 + */ + @ApiModelProperty(value = "法人-户口所在地") + private String legalHukouAddr; + + /** + * 法人-联系电话 + */ + @ApiModelProperty(value = "法人-联系电话") + private String legalPhone; + + /** + * 法人-家庭住址 + */ + @ApiModelProperty(value = "法人-家庭住址") + private String legalHomeAddr; + + /** + * 法人-性别 1、男,0、女 + */ + @ApiModelProperty(value = "法人-性别 1、男,0、女") + private Integer legalGender; + + /** + * 法人-姓名 + */ + @ApiModelProperty(value = "法人-姓名") + private String legalName; + + /** + * 客户编号 + */ + @ApiModelProperty(value = "客户编号") + private String code; + + /** + * 客户类型:1、企业类型,0:个人类型 + */ + @ApiModelProperty(value = "客户类型:1、企业类型,0:个人类型") + private Integer type; + + /** + * 客户名称 + */ + @ApiModelProperty(value = "客户名称") + private String name; + + /** + * 联系地址(指个人的) + */ + @ApiModelProperty(value = "联系地址(指个人的)") + private String addr; + + /** + * 联系电话(指个人或企业的) + */ + @ApiModelProperty(value = "联系电话(指个人或企业的)") + private String phone; + } diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/BusinessApplicationDetailResponse.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/BusinessApplicationDetailResponse.java index e4eaf70c..832c702c 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/BusinessApplicationDetailResponse.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/BusinessApplicationDetailResponse.java @@ -3,6 +3,7 @@ package com.daqing.financial.guarantee.model.response; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.daqing.framework.domain.guarantee.DgApplyAmountInfo; +import com.daqing.framework.domain.guarantee.DgBusinessCompany; import com.daqing.framework.domain.guarantee.DgEnclosureInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -31,8 +32,8 @@ public class BusinessApplicationDetailResponse implements Serializable { /** * 企业详细 */ - @ApiModelProperty(value = "企业详细") - private LinkedHashMap linkedHashMap; +/* @ApiModelProperty(value = "企业详细") + private LinkedHashMap linkedHashMap;*/ /** * 附件详细 @@ -43,8 +44,11 @@ public class BusinessApplicationDetailResponse implements Serializable { /** * 关联人信息列表 */ - @ApiModelProperty(value = "关联人信息列表") - private LinkedHashMap linkedHashMap2; +/* @ApiModelProperty(value = "关联人信息列表") + private LinkedHashMap linkedHashMap2;*/ + + @ApiModelProperty(value = "备份企业详细") + private DgBusinessCompany dgBusinessCompany; diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgBusinessCompanyService.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgBusinessCompanyService.java new file mode 100644 index 00000000..991f6d26 --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgBusinessCompanyService.java @@ -0,0 +1,17 @@ +package com.daqing.financial.guarantee.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.daqing.framework.domain.guarantee.DgBusinessCompany; + +/** + *

+ * 业务关联企业表 服务类 + *

+ * + * @author Qyq + * @since 2021-01-27 + */ +public interface IDgBusinessCompanyService extends IService { + +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java index 3d347757..7ac25c14 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java @@ -31,6 +31,7 @@ import com.daqing.framework.util.RedisUtil; import com.daqing.framework.utils.PageUtils; import com.daqing.framework.utils.excel.ExcelUtil; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -86,6 +87,8 @@ public class DgApplyAmountInfoServiceImpl extends ServiceImpl() + .eq("business_id", dgApplyAmountList.getBusinessId())); //查询附件详细,附件关联业务主键id DgEnclosureInfoResponse dgEnclosureInfo = dgEnclosureInfoMapper.selectByCompanyId(dgApplyAmountList.getBusinessId()); @@ -342,18 +355,10 @@ public class DgApplyAmountInfoServiceImpl extends ServiceImpl) arr1List2.get(12)); dgEnclosureInfo.setMarriageCopyList((List) arr1List2.get(13)); -/* int page=1; - int size=10; - //关联人信息列表展示 - ResponseResult list = crmsFeignService.companyPersonalList(page,size,dgApplyAmountInfo.getCompanyId()); - LinkedHashMap personalList = (LinkedHashMap)list.getData(); - System.out.println("关联人信息列表======================="+personalList);*/ - BusinessApplicationDetailResponse businessApplicationDetail= new BusinessApplicationDetailResponse(); businessApplicationDetail.setDgApplyAmountInfo(dgApplyAmountInfo); businessApplicationDetail.setDgEnclosureInfo(dgEnclosureInfo); - businessApplicationDetail.setLinkedHashMap(linkedList); - //businessApplicationDetail.setLinkedHashMap2(personalList); + businessApplicationDetail.setDgBusinessCompany(dgBusinessCompany); return businessApplicationDetail; } @@ -453,6 +458,13 @@ public class DgApplyAmountInfoServiceImpl extends ServiceImpl().eq("business_id",businessApplication.getBusinessId())); + //修改备份企业信息 + DgBusinessCompany dgBusinessCompany = new DgBusinessCompany(); + BeanUtils.copyProperties(businessApplication,dgBusinessCompany); + System.out.println("dgBusinessCompany============="+dgBusinessCompany); + dgBusinessCompanyMapper.update(dgBusinessCompany,new QueryWrapper() + .eq("business_id",businessApplication.getBusinessId())); + //同时往审核流程进程表新增一条记录 String account = dgApplyAmountInfoController.getAccount(); String departmentId = OrdinaryUtil.getDepartmentId(Integer.parseInt(this.getUserId())); diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgBusinessCompanyServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgBusinessCompanyServiceImpl.java new file mode 100644 index 00000000..4fc86945 --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgBusinessCompanyServiceImpl.java @@ -0,0 +1,20 @@ +package com.daqing.financial.guarantee.service.impl; + +import com.daqing.financial.guarantee.mapper.DgBusinessCompanyMapper; +import com.daqing.financial.guarantee.service.IDgBusinessCompanyService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.daqing.framework.domain.guarantee.DgBusinessCompany; +import org.springframework.stereotype.Service; + +/** + *

+ * 业务关联企业表 服务实现类 + *

+ * + * @author Qyq + * @since 2021-01-27 + */ +@Service +public class DgBusinessCompanyServiceImpl extends ServiceImpl implements IDgBusinessCompanyService { + +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgCopyForServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgCopyForServiceImpl.java index cd2c51ba..96f8061e 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgCopyForServiceImpl.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgCopyForServiceImpl.java @@ -19,6 +19,7 @@ import com.daqing.framework.model.response.PromptSuccess; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.File; import java.io.IOException; import java.util.List; diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java index f852e47d..6a43ebfe 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java @@ -25,7 +25,7 @@ public class MyBatisPlusCodeGenerator { public static final String PACKAGE_NAME = "com.daqing.financial.guarantee"; public static void main(String[] args) { - String[] tables = new String[] {"dg_process_manage_visual","dg_process_manage"};//表名数组 + String[] tables = new String[] {"dg_business_company"};//表名数组 String[] tablePrefixs = new String[] {""};//去掉前缀 executeCode(PACKAGE_NAME,tables,tablePrefixs); } diff --git a/dq-financial-guarantee/src/main/resources/bootstrap.properties b/dq-financial-guarantee/src/main/resources/bootstrap.properties index af842f9d..4dfa4dac 100644 --- a/dq-financial-guarantee/src/main/resources/bootstrap.properties +++ b/dq-financial-guarantee/src/main/resources/bootstrap.properties @@ -1,7 +1,7 @@ #服务名称 spring.application.name=dq-financial-guarantee #配置中心地址 -spring.cloud.nacos.config.server-addr=192.168.31.140:8848 +spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.file-extension=yml #redis配置 spring.redis.host=127.0.0.1 @@ -14,11 +14,6 @@ spring.redis.jedis.pool.max-wait=-1 spring.redis.jedis.pool.max-idle=8 spring.redis.jedis.pool.min-idle=0 -#设置请求头大小 -server.max-http-header-size=102400 - -server.tomcat.max-http-post-size=10MB - #本地测试环境 spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgBusinessCompanyMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgBusinessCompanyMapper.xml new file mode 100644 index 00000000..cf9bbec3 --- /dev/null +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgBusinessCompanyMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/WeChatConfig.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/WeChatConfig.java index a17da549..69ac8777 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/WeChatConfig.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/WeChatConfig.java @@ -43,6 +43,18 @@ public class WeChatConfig implements Serializable { @Value("${wxopen.wechat_binding_redirect_url}") private String weChatBindingRedirectUrl; + /** + * 微信小程序appid + */ + @Value("${wxxcx.appid}") + private String xcxAppid; + + /** + * 微信小程序appsecret + */ + @Value("${wxxcx.appsecret}") + private String xcxAppsecret; + /** * 微信开放平台二维码连接 */ diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java index 1687496e..a10e52bf 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java @@ -165,8 +165,8 @@ public class UserLoginController implements UserLoginControllerApi { headerImg = URLDecoder.decode(imgUrl,encoder); //account = new String(username.getBytes("GBK"),"iso-8859-1"); log.info("account==========="+account+"headerImg============="+headerImg); - //response.sendRedirect("http://8.129.127.185:8080/dq/index.html#/login?token="+token+"&account="+account+"&headerImg="+headerImg); - response.sendRedirect("https://www.huorantech.cn/dq/index.html#/login?token="+token+"&account="+account+"&headerImg="+headerImg); + response.sendRedirect("http://8.129.127.185/dq/index.html#/login?token="+token+"&account="+account+"&headerImg="+headerImg); + //response.sendRedirect("https://www.huorantech.cn/index/#/login?token="+token+"&account="+account+"&headerImg="+headerImg); } }else { userService.weChatBinding(code,response,state); @@ -219,10 +219,11 @@ public class UserLoginController implements UserLoginControllerApi { * @param code * @return */ - @RequestMapping(value = "/wxAuthLogin") - public String wxAuthLogin(String code){ + @PostMapping(value = "/wxAuthLogin") + public ResponseResult wxAuthLogin(@RequestBody String code){ - return userLoginService.wxAuthLogin(code); + String openid = userLoginService.wxAuthLogin(code); + return ResponseResult.SUCCESS(openid); } } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java index 7d483c62..00c01812 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java @@ -323,7 +323,8 @@ public class UserLoginServiceImpl extends ServiceImpl /* String url="https://api.weixin.qq.com/sns/jscode2session?appid="+APPID+ "&secret="+SECRET+"&js_code="+ code +"&grant_type=authorization_code";*/ - String url = weChatConfig.getWX_AUTH_URL(); + String url = String.format(weChatConfig.getWX_AUTH_URL(),weChatConfig.getXcxAppid(),weChatConfig.getXcxAppsecret(),code); + System.out.println("url==============="+url); //发送请求给微信后端 CloseableHttpClient httpClient= HttpClients.createDefault(); @@ -343,7 +344,7 @@ public class UserLoginServiceImpl extends ServiceImpl Login login=new Login(); login.setOpenid(jsonObject.getString("openid")); login.setSession_key(jsonObject.getString("session_key")); - result.append(login.getOpenid()+"hello_world"+login.getSession_key()); + result.append(login.getOpenid()); System.out.println(result.toString()); } } catch (IOException e) { diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java index 3612b3d7..bd3a66ce 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java @@ -90,8 +90,8 @@ public class UserServiceImpl extends ServiceImpl imple if(dbUser == null){//openId不存在,返回绑定手机号页面,须另写绑定手机号接口 log.info("dbUser为空,openId不存在,请先绑定手机号哦~~~"); try { - response.sendRedirect("https://www.huorantech.cn/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 - //response.sendRedirect("http://8.129.127.185:8080/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 + //response.sendRedirect("https://www.huorantech.cn/index/#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 + response.sendRedirect("http://8.129.127.185/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 } catch (IOException e) { e.printStackTrace(); } @@ -152,8 +152,8 @@ public class UserServiceImpl extends ServiceImpl imple if (countWeChatId > 0){ try { log.info("微信重复了,我走到了这里............................."); - response.sendRedirect("https://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token+"&message=1"); - //response.sendRedirect("http://8.129.127.185:8080/dq/index.html#/workbench-manpower?token="+token+"&message=1"); + //response.sendRedirect("https://www.huorantech.cn/index/#/workbench-manpower?token="+token+"&message=1"); + response.sendRedirect("http://8.129.127.185/dq/index.html#/workbench-manpower?token="+token+"&message=1"); } catch (IOException e) { e.printStackTrace(); } @@ -163,8 +163,8 @@ public class UserServiceImpl extends ServiceImpl imple if (result){ try { log.info("转发成功---------------------------------------"); - response.sendRedirect("https://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token); - //response.sendRedirect("http://8.129.127.185:8080/dq/index.html#/workbench-manpower?token="+token); + //response.sendRedirect("https://www.huorantech.cn/index/#/workbench-manpower?token="+token); + response.sendRedirect("http://8.129.127.185/dq/index.html#/workbench-manpower?token="+token); }catch (IOException e){ e.printStackTrace(); } diff --git a/dq-financial-hrms-auth/src/main/resources/bootstrap.properties b/dq-financial-hrms-auth/src/main/resources/bootstrap.properties index cd3868bc..e9e39d8f 100644 --- a/dq-financial-hrms-auth/src/main/resources/bootstrap.properties +++ b/dq-financial-hrms-auth/src/main/resources/bootstrap.properties @@ -1,7 +1,7 @@ #服务名称 spring.application.name=dq-financial-hrms-auth #配置中心地址 -spring.cloud.nacos.config.server-addr=192.168.31.140:8848 +spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.file-extension=yml #redis配置 spring.redis.host=127.0.0.1 diff --git a/dq-financial-hrms/src/main/java/com/daqing/financial/hrms/controller/PermissionController.java b/dq-financial-hrms/src/main/java/com/daqing/financial/hrms/controller/PermissionController.java index c7dd6b61..30be820e 100644 --- a/dq-financial-hrms/src/main/java/com/daqing/financial/hrms/controller/PermissionController.java +++ b/dq-financial-hrms/src/main/java/com/daqing/financial/hrms/controller/PermissionController.java @@ -127,7 +127,9 @@ public class PermissionController implements PermissionControllerApi { String userId = RedisUtil.get("dq:token:" + token); //获取当前用户拥有的角色ids String roleIds= RedisUtil.get("dq:userRole:" + userId); - + if(roleIds.equals(null) || roleIds.equals("")){ + return ResponseResult.FAIL(40010,"无登录权限,请联系管理员处理!"); + } List list = permissionService.getPermission(roleIds); return new ResponseResult>().SUCCESS(list); } diff --git a/dq-financial-hrms/src/main/resources/bootstrap.properties b/dq-financial-hrms/src/main/resources/bootstrap.properties index 015b8b1d..37c6c017 100644 --- a/dq-financial-hrms/src/main/resources/bootstrap.properties +++ b/dq-financial-hrms/src/main/resources/bootstrap.properties @@ -1,7 +1,7 @@ #服务名称 spring.application.name=dq-financial-hrms #配置中心地址 -spring.cloud.nacos.config.server-addr=192.168.31.140:8848 +spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.file-extension=yml #redis配置 spring.redis.host=127.0.0.1 diff --git a/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java b/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java index 7c0527b3..99b57029 100644 --- a/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java +++ b/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java @@ -32,17 +32,17 @@ public class PromptSuccess { public static final String UPLOAD_FILE_PATH = "//usr//local//nginx//html//admin//headImg//"; // linux图片存放路径 - public static final String IMAGE_URL_PATH = "https://www.huorantech.cn/headImg/"; // 数据库/预加载图片路径 - //public static final String IMAGE_URL_PATH = "http://8.129.127.185:8080/headImg/"; // 数据库/预加载图片路径 - //public static final String IMAGE_URL_PATH = "http://47.107.237.129:8080/headImg/"; // 数据库/预加载图片路径 + //public static final String IMAGE_URL_PATH = "https://www.huorantech.cn/headImg/"; // 数据库/预加载图片路径 + public static final String IMAGE_URL_PATH = "http://8.129.127.185/headImg/"; // 数据库/预加载图片路径 + //public static final String IMAGE_URL_PATH = "http://47.107.237.129/headImg/"; // 数据库/预加载图片路径 public static final String[] LETTERS = {"A","B","C","D","E"}; // 员工姓名重复时自动加的字母,可再添加 public static final String STATUS_REFUSE = "拒绝"; - public static final String ENCLOSUREFILE_URL_PATH = "https://www.huorantech.cn/enclosureFile/"; // 附件文件存放路径 - //public static final String ENCLOSUREFILE_URL_PATH = "http://8.129.127.185:8080/enclosureFile/"; // 附件文件存放路径 - //public static final String ENCLOSUREFILE_URL_PATH = "http://47.107.237.129:8080/enclosureFile/"; // 附件文件存放路径 + //public static final String ENCLOSUREFILE_URL_PATH = "https://www.huorantech.cn/enclosureFile/"; // 附件文件存放路径 + public static final String ENCLOSUREFILE_URL_PATH = "http://8.129.127.185/enclosureFile/"; // 附件文件存放路径 + //public static final String ENCLOSUREFILE_URL_PATH = "http://47.107.237.129/enclosureFile/"; // 附件文件存放路径 public static final String FILE_URL_PATH = "//usr//local//nginx//html//admin//enclosureFile//"; // 附件文件存放路径 diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java new file mode 100644 index 00000000..60524fd0 --- /dev/null +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java @@ -0,0 +1,145 @@ +package com.daqing.framework.domain.guarantee; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 业务关联企业表 + *

+ * + * @author Qyq + * @since 2021-01-27 + */ +@TableName("dg_business_company") +@Data +public class DgBusinessCompany implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 业务id + */ + private Integer businessId; + + /** + * 注册资金(万元) + */ + private String registeredCapital; + + /** + * 社会统一代码 + */ + private String socialUnifiedCode; + + /** + * 员工人数 + */ + private String empNum; + + /** + * 联系人 + */ + private String linkman; + + /** + * 联系人的联系电话 + */ + private String linkPhone; + + /** + * 业务来源 + */ + private String businessSource; + + /** + * 经营范围 + */ + private String businessScope; + + /** + * 经营地址 + */ + private String businessAddr; + + /** + * 注册时间 + */ + private Date registerTime; + + /** + * 注册地址 + */ + private String registerAddr; + + /** + * 法人-身份证号 + */ + private String legalIdNumber; + + /** + * 法人-户口所在地 + */ + private String legalHukouAddr; + + /** + * 法人-联系电话 + */ + private String legalPhone; + + /** + * 法人-家庭住址 + */ + private String legalHomeAddr; + + /** + * 法人-性别 1、男,0、女 + */ + private Integer legalGender; + + /** + * 法人-姓名 + */ + private String legalName; + + /** + * 是否存在关联人 0->否;1->是 + */ + private Integer isExistRelated; + + /** + * 客户编号 + */ + private String code; + + /** + * 客户类型:1、企业类型,0:个人类型 + */ + private Integer type; + + /** + * 客户名称 + */ + private String name; + + /** + * 联系地址(指个人的) + */ + private String addr; + + /** + * 联系电话(指个人或企业的) + */ + private String phone; +} diff --git a/dq-govern-gateway/src/main/resources/bootstrap.properties b/dq-govern-gateway/src/main/resources/bootstrap.properties index 9872b12e..6dea21cb 100644 --- a/dq-govern-gateway/src/main/resources/bootstrap.properties +++ b/dq-govern-gateway/src/main/resources/bootstrap.properties @@ -1,7 +1,7 @@ #服务名称 spring.application.name=dq-govern-gateway #配置中心地址 -spring.cloud.nacos.config.server-addr=192.168.31.140:8848 +spring.cloud.nacos.config.server-addr=127.0.0.1:8848 spring.cloud.nacos.config.file-extension=yml #redis配置 spring.redis.host=127.0.0.1 diff --git a/dq-govern-gateway/src/main/resources/jwt.properties b/dq-govern-gateway/src/main/resources/jwt.properties index 1975fc96..226c32d9 100644 --- a/dq-govern-gateway/src/main/resources/jwt.properties +++ b/dq-govern-gateway/src/main/resources/jwt.properties @@ -28,7 +28,9 @@ jwt.ignoreUrlList=/apiHrmsAuth/hrms/auth/userlogin/getBackPwd,\ /api-hrms/hrms/user/uploadFile,\ /apiHrmsAuth/hrms/auth/permission/getUserRoles,\ /api-hrms/hrms/permission/getPermission,\ - /api-guarantee/guarantee/efficiency/personalEfficiencyListExport + /api-guarantee/guarantee/efficiency/personalEfficiencyListExport,\ + /api-guarantee/dg-copy-user/exportCopyForMe,\ + /apiHrmsAuth/hrms/auth/userlogin/wxAuthLogin From 0cb323c87601abab09d7fba3dbb0d41b9434cd30 Mon Sep 17 00:00:00 2001 From: river <1376754470@qq.com> Date: Thu, 28 Jan 2021 18:13:17 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E6=A8=A1=E5=9D=97=E7=9A=84=E8=AE=A4=E8=AF=81(?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BD=95=E5=85=A5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CustomerAppletController.java | 96 +++++++ .../financial/crms/dao/CustomerAppletDao.java | 24 ++ .../model/request/CompanyCustomerRequest.java | 4 +- .../request/PersonalCustomerRequest.java | 163 ++++++++++++ .../crms/service/CustomerAppletService.java | 31 +++ .../impl/CustomerAppletServiceImpl.java | 235 ++++++++++++++++++ .../src/main/resources/bootstrap.properties | 2 +- .../mapper/crms/CustomerAppletDao.xml | 18 ++ .../impl/DgAuditProcessServiceImpl.java | 6 +- .../domain/crms/ext/CustomerPersonalTOI.java | 3 - .../domain/crms/response/CrmsCode.java | 4 +- 11 files changed, 574 insertions(+), 12 deletions(-) create mode 100644 dq-financial-crms/src/main/java/com/daqing/financial/crms/controller/CustomerAppletController.java create mode 100644 dq-financial-crms/src/main/java/com/daqing/financial/crms/dao/CustomerAppletDao.java create mode 100644 dq-financial-crms/src/main/java/com/daqing/financial/crms/model/request/PersonalCustomerRequest.java create mode 100644 dq-financial-crms/src/main/java/com/daqing/financial/crms/service/CustomerAppletService.java create mode 100644 dq-financial-crms/src/main/java/com/daqing/financial/crms/service/impl/CustomerAppletServiceImpl.java create mode 100644 dq-financial-crms/src/main/resources/mapper/crms/CustomerAppletDao.xml diff --git a/dq-financial-crms/src/main/java/com/daqing/financial/crms/controller/CustomerAppletController.java b/dq-financial-crms/src/main/java/com/daqing/financial/crms/controller/CustomerAppletController.java new file mode 100644 index 00000000..deab5eea --- /dev/null +++ b/dq-financial-crms/src/main/java/com/daqing/financial/crms/controller/CustomerAppletController.java @@ -0,0 +1,96 @@ +package com.daqing.financial.crms.controller; + +import com.daqing.financial.crms.model.request.CompanyCustomerRequest; +import com.daqing.financial.crms.model.request.PersonalCustomerRequest; +import com.daqing.financial.crms.service.CustomerAppletService; +import com.daqing.framework.domain.crms.ext.CustomerPersonalTOI; +import com.daqing.framework.model.response.ResponseResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * 小程序客户模块数据录入(认证) + * + * @auther River + * @date 2021/1/28 14:08 + */ +@RestController +@RequestMapping("/customer/applet") +@Api(value = "客户数据录入(认证)", tags = "小程序客户数据录入(认证)") +public class CustomerAppletController { + + @Autowired + private CustomerAppletService customerAppletService; + + /** + * 个人类型客户数据录入(认证) + */ + @PostMapping("/save/personal") + @ApiOperation(value = "个人类型客户数据录入(认证)") + public ResponseResult savePersonal(@RequestBody @Valid CustomerPersonalTOI customerPersonalTOI) { + + Boolean result = customerAppletService.savePersonal(customerPersonalTOI); + + return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL(); + } + + /** + * 企业类型客户数据录入(认证) + */ + @PostMapping("/save/company") + @ApiOperation(value = "企业类型客户数据录入(认证)") + public ResponseResult saveCompany(@RequestBody @Valid CompanyCustomerRequest companyCustomerRequest) { + + Boolean result = customerAppletService.saveCompany(companyCustomerRequest); + + return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL(); + } + + /** + * 获取当前客户认证状态 + */ + @GetMapping("/get/status") + @ApiOperation(value = "获取当前客户认证状态") + public ResponseResult getCustomerStatus() { + + return ResponseResult.SUCCESS(customerAppletService.getCustomerStatus()); + } + + /** + * 获取已认证的客户信息 + */ + @GetMapping("/get/customer") + @ApiOperation(value = "获取已认证的客户信息") + public ResponseResult getCustomer(@RequestParam("type") Integer type) { + + return customerAppletService.getCustomer(type); + } + + /** + * 更新个人类型客户信息 + */ + @ApiOperation(value = "更新个人类型的客户信息") + @PostMapping("/update/personal") + public ResponseResult updatePersonal(@RequestBody @Valid PersonalCustomerRequest personalCustomerRequest) { + + Boolean result = customerAppletService.updatePersonal(personalCustomerRequest); + + return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL(); + } + + /** + * 更新企业类型的客户信息 + */ + @PostMapping("/update/company") + @ApiOperation(value = "更新企业类型的客户信息") + public ResponseResult updateCompany(@RequestBody @Valid CompanyCustomerRequest companyCustomerRequest) { + + Boolean result = customerAppletService.updateCompany(companyCustomerRequest); + + return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL(); + } +} diff --git a/dq-financial-crms/src/main/java/com/daqing/financial/crms/dao/CustomerAppletDao.java b/dq-financial-crms/src/main/java/com/daqing/financial/crms/dao/CustomerAppletDao.java new file mode 100644 index 00000000..b33df54c --- /dev/null +++ b/dq-financial-crms/src/main/java/com/daqing/financial/crms/dao/CustomerAppletDao.java @@ -0,0 +1,24 @@ +package com.daqing.financial.crms.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.daqing.framework.domain.crms.CustomerEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 客户小程序认证(录入) + * + * @auther River + * @date 2021/1/27 15:54 + */ +@Mapper +public interface CustomerAppletDao extends BaseMapper { + + Boolean saveCustomerIdAndUserId(@Param("customerId") Integer customerId, @Param("userId") Integer userId, + @Param("type") Integer type); + + Integer getCustomerStatus(@Param("userId") Integer userId, @Param("type") Integer type); + + Integer getCustomerId(@Param("userId") Integer userId, @Param("type") Integer type); + +} diff --git a/dq-financial-crms/src/main/java/com/daqing/financial/crms/model/request/CompanyCustomerRequest.java b/dq-financial-crms/src/main/java/com/daqing/financial/crms/model/request/CompanyCustomerRequest.java index 1341ca13..b157596e 100644 --- a/dq-financial-crms/src/main/java/com/daqing/financial/crms/model/request/CompanyCustomerRequest.java +++ b/dq-financial-crms/src/main/java/com/daqing/financial/crms/model/request/CompanyCustomerRequest.java @@ -26,9 +26,6 @@ public class CompanyCustomerRequest implements Serializable { @TableId(value = "id", type = IdType.INPUT) private Long id; - @Min(value = 0,message = "客户类型格式有误") - @Max(value = 1,message = "客户类型格式有误") - @NotNull(message = "客户类型不能为空") @ApiModelProperty(value = "客户类型") private Integer type; @@ -39,6 +36,7 @@ public class CompanyCustomerRequest implements Serializable { @ApiModelProperty(value = "客户名称") private String name; + @NotNull(message = "社会统一代码不能为空") @ApiModelProperty(value = "社会统一代码") private String socialUnifiedCode; diff --git a/dq-financial-crms/src/main/java/com/daqing/financial/crms/model/request/PersonalCustomerRequest.java b/dq-financial-crms/src/main/java/com/daqing/financial/crms/model/request/PersonalCustomerRequest.java new file mode 100644 index 00000000..76fc4c25 --- /dev/null +++ b/dq-financial-crms/src/main/java/com/daqing/financial/crms/model/request/PersonalCustomerRequest.java @@ -0,0 +1,163 @@ +package com.daqing.financial.crms.model.request; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import java.io.Serializable; + +/** + * 小程序客户模块个人类型数据录入(认证) + * + * @auther River + * @date 2021/1/28 11:44 + */ +@Data +@ToString +public class PersonalCustomerRequest implements Serializable { + + /** + * 主键 + */ + @ApiModelProperty(value = "id") + @TableId(value = "id", type = IdType.INPUT) + private Long id; + /** + * 客户编号 + */ + @NotNull(message = "客户编号不能为空") + @ApiModelProperty(value = "客户编号") + private String code; + /** + * 客户类型:1、企业类型,0:个人类型 + */ + @ApiModelProperty(value = "客户类型") + private Integer type; + /** + * 客户的经理人id + */ + @ApiModelProperty(value = "客户经理人id") + private Long manager; + /** + * 客户名称 + */ + @NotNull(message = "客户名称不能为空") + @ApiModelProperty(value = "客户名称") + private String name; + /** + * 联系地址 + */ + @NotNull(message = "联系地址不能为空") + @ApiModelProperty(value = "联系地址") + private String addr; + /** + * 联系电话 + */ + @Pattern(regexp = "^[0-9]*$",message = "联系电话格式错误") + @NotNull(message = "联系电话不能为空") + @ApiModelProperty(value = "联系电话") + private String phone; + /** + * 身份证号 + */ + @NotNull(message = "身份证号不能为空") + @ApiModelProperty(value = "身份证号") + private String idCard; + /** + * 年龄 + */ + @NotNull(message = "年龄不能为空") + @ApiModelProperty(value = "年龄") + private Integer age; + /** + * 性别:1、男,0、女 + */ + @Min(value = 0,message = "性别格式有误") + @Max(value = 1,message = "性别格式有误") + @NotNull(message = "性别不能为空") + @ApiModelProperty(value = "性别") + private Integer gender; + /** + * 婚姻状况,0:未婚,1:已婚,2:离异,3:再婚 + */ + @Min(value = 0,message = "婚姻状况格式有误") + @Max(value = 3,message = "婚姻状况格式有误") + @NotNull(message = "婚姻状况不能为空") + @ApiModelProperty(value = "婚姻状况") + private Integer maritalStatus; + /** + * 学历,0:本科,1:大专,2:高职,3:中专,4:其他 + */ + @Min(value = 0,message = "学历格式有误") + @Max(value = 4,message = "学历格式有误") + @NotNull(message = "学历不能为空") + @ApiModelProperty(value = "学历") + private Integer education; + /** + * 工作单位 + */ + @NotNull(message = "工作单位不能为空") + @ApiModelProperty(value = "工作单位") + private String employer; + /** + * 职务 + */ + @NotNull(message = "职务不能为空") + @ApiModelProperty(value = "职务") + private String position; + /** + * 工作年限 + */ + @NotNull(message = "工作年限不能为空") + @ApiModelProperty(value = "工作年限") + private Integer workingYears; + /** + * 社保账号 + */ + @NotNull(message = "社保账号不能为空") + @ApiModelProperty(value = "社保账号") + private String socialSecurityNum; + /** + * 居住情况 + */ + @NotNull(message = "居住情况不能为空") + @ApiModelProperty(value = "居住情况") + private String livingSituation; + /** + * 户籍地址 + */ + @NotNull(message = "户籍地址不能为空") + @ApiModelProperty(value = "户籍地址") + private String residenceAddr; + /** + * 业务来源 + */ + @NotNull(message = "业务来源不能为空") + @ApiModelProperty(value = "业务来源") + private String businessSource; + /** + * 紧急联系人 + */ + @NotNull(message = "紧急联系人不能为空") + @ApiModelProperty(value = "紧急联系人") + private String emergencyLinkman; + /** + * 紧急联系人关系 + */ + @NotNull(message = "紧急联系人关系不能为空") + @ApiModelProperty(value = "紧急联系人关系") + private String emergencyLinkmanRelationship; + /** + * 紧急联系人电话 + */ + @Pattern(regexp = "^[0-9]*$",message = "紧急联系人电话格式错误") + @NotNull(message = "紧急联系人电话不能为空") + @ApiModelProperty(value = "紧急联系人电话") + private String emergencyLinkmanPhone; +} diff --git a/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/CustomerAppletService.java b/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/CustomerAppletService.java new file mode 100644 index 00000000..64808af2 --- /dev/null +++ b/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/CustomerAppletService.java @@ -0,0 +1,31 @@ +package com.daqing.financial.crms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.daqing.financial.crms.model.request.CompanyCustomerRequest; +import com.daqing.financial.crms.model.request.PersonalCustomerRequest; +import com.daqing.framework.domain.crms.CustomerEntity; +import com.daqing.framework.domain.crms.ext.CustomerPersonalTOI; +import com.daqing.framework.model.response.ResponseResult; + +import java.util.Map; + +/** + * 客户小程序认证(数据录入) + * + * @auther River + * @date 2021/1/27 15:51 + */ +public interface CustomerAppletService extends IService { + + Boolean savePersonal(CustomerPersonalTOI customerPersonalTOI); + + Boolean saveCompany(CompanyCustomerRequest companyCustomerRequest); + + Map getCustomerStatus(); + + ResponseResult getCustomer(Integer type); + + Boolean updatePersonal(PersonalCustomerRequest personalCustomerRequest); + + Boolean updateCompany(CompanyCustomerRequest companyCustomerRequest); +} diff --git a/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/impl/CustomerAppletServiceImpl.java b/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/impl/CustomerAppletServiceImpl.java new file mode 100644 index 00000000..e0f84b51 --- /dev/null +++ b/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/impl/CustomerAppletServiceImpl.java @@ -0,0 +1,235 @@ +package com.daqing.financial.crms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.daqing.financial.crms.dao.CompanyCustomerDao; +import com.daqing.financial.crms.dao.CustomerAppletDao; +import com.daqing.financial.crms.dao.CustomerDao; +import com.daqing.financial.crms.dao.PersonalCustomerDao; +import com.daqing.financial.crms.model.request.CompanyCustomerRequest; +import com.daqing.financial.crms.model.request.PersonalCustomerRequest; +import com.daqing.financial.crms.service.CustomerAppletService; +import com.daqing.financial.crms.service.CustomerService; +import com.daqing.financial.crms.service.ICrmsCustomerRelatedService; +import com.daqing.framework.domain.crms.CompanyCustomerEntity; +import com.daqing.framework.domain.crms.CrmsCustomerRelated; +import com.daqing.framework.domain.crms.CustomerEntity; +import com.daqing.framework.domain.crms.PersonalCustomerEntity; +import com.daqing.framework.domain.crms.ext.CrmsConstant; +import com.daqing.framework.domain.crms.ext.CustomerPersonalTOI; +import com.daqing.framework.domain.crms.ext.CustomerPersonalTOU; +import com.daqing.framework.domain.crms.response.CrmsCode; +import com.daqing.framework.exception.ExceptionCast; +import com.daqing.framework.model.response.CommonCode; +import com.daqing.framework.model.response.PromptSuccess; +import com.daqing.framework.model.response.ResponseResult; +import com.daqing.framework.util.RedisUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.*; + +/** + * 客户小程序认证(录入) + * + * @auther River + * @date 2021/1/27 15:53 + */ +@Service +public class CustomerAppletServiceImpl extends ServiceImpl implements CustomerAppletService { + + + @Autowired + private CustomerDao customerDao; + + @Autowired + private PersonalCustomerDao personalCustomerDao; + + @Autowired + private CustomerService customerService; + + @Autowired + private CompanyCustomerDao companyCustomerDao; + + @Autowired + private ICrmsCustomerRelatedService crmsCustomerRelatedService; + + /** + * 录入(认证)个人类型客户数据 + */ + @Transactional + @Override + public Boolean savePersonal(CustomerPersonalTOI customerPersonalTOI) { + if (customerPersonalTOI.getName() != null && customerPersonalTOI.getName().length() != 0) { + // 客户姓名判重 + List names = customerDao.listCustomerName(0); // 个人类型客户名称 + for (String name : names) { + if (customerPersonalTOI.getName().equals(name)) { + ExceptionCast.cast(CrmsCode.CUSTOMER_NAME_REPETITION); + } + } + } + CustomerEntity customerEntity = new CustomerEntity(); + PersonalCustomerEntity personalCustomerEntity = new PersonalCustomerEntity(); + BeanUtils.copyProperties(customerPersonalTOI, customerEntity); + BeanUtils.copyProperties(customerPersonalTOI, personalCustomerEntity); + // 设置客户编号 + String code = customerDao.getCodeByType(CrmsConstant.CustomerType.PERSONAL_CUSTOMER.getType()); + if (code == null || code.length() == 0) { + code = PromptSuccess.PERSONAL_START_CODE; + } + int codeNumber = Integer.parseInt(code.substring(code.length() - 4)); + customerEntity.setCode(PromptSuccess.PERSONAL_CODE + String.format("%04d", (codeNumber + 1))); + customerEntity.setCreateTime(new Date()); + customerEntity.setMotifyTime(new Date()); + customerEntity.setType(CrmsConstant.CustomerType.PERSONAL_CUSTOMER.getType()); + boolean customer = customerDao.saveCustomer(customerEntity); + personalCustomerEntity.setCustomerId(customerEntity.getId()); + // 将自增的客户id返回给工作台 + customerPersonalTOI.setManager(customerEntity.getId()); + boolean personal = personalCustomerDao.savePersonalCustomer(personalCustomerEntity); + Boolean user = this.getBaseMapper().saveCustomerIdAndUserId(customerEntity.getId().intValue(), Integer.parseInt(this.getUserId()), 0); + return customer && personal && user; + } + + /** + * 录入(认证)企业类型的客户数据 + */ + @Transactional + @Override + public Boolean saveCompany(CompanyCustomerRequest companyCustomerReq) { + // 客户名称判重 + if (companyCustomerReq.getName() != null && companyCustomerReq.getName().length() != 0) { + List names = customerDao.listCustomerName(1); // 企业类型客户名称 + for (String name : names) { + if (companyCustomerReq.getName().equals(name)) { + ExceptionCast.cast(CrmsCode.CUSTOMER_NAME_REPETITION); + } + } + } + CustomerEntity customerEntity = new CustomerEntity(); + CompanyCustomerEntity companyCustomerEntity = new CompanyCustomerEntity(); + BeanUtils.copyProperties(companyCustomerReq, customerEntity); + BeanUtils.copyProperties(companyCustomerReq, companyCustomerEntity); + // 设置客户编号 + String code = customerDao.getCodeByType(CrmsConstant.CustomerType.COMPANY_CUSTOMER.getType()); + if (code == null || code.length() == 0) { + code = PromptSuccess.COMPANY_START_CODE; + } + int codeNumber = Integer.parseInt(code.substring(code.length() - 4)); + customerEntity.setCode(PromptSuccess.COMPANY_CODE + String.format("%04d", (codeNumber + 1))); + customerEntity.setMotifyTime(new Date()); + customerEntity.setCreateTime(new Date()); + customerEntity.setManager(companyCustomerReq.getManager()); + customerEntity.setType(CrmsConstant.CustomerType.COMPANY_CUSTOMER.getType()); + boolean customer = customerDao.saveCustomer(customerEntity); + companyCustomerEntity.setCustomerId(customerEntity.getId()); + int company = companyCustomerDao.insert(companyCustomerEntity); + // 绑定客户信息和客户的用户信息 + Boolean user = this.getBaseMapper().saveCustomerIdAndUserId(customerEntity.getId().intValue(), Integer.parseInt(this.getUserId()), 1); + if (companyCustomerReq.getIsExistRelated() == 1) {//有关联人的情况下才绑定关联关系 + //绑定关联关系 + List relatedList = new ArrayList<>(); + List intList = companyCustomerReq.getRelatedId(); + + for (int i = 0; i < intList.size(); i++) { + CrmsCustomerRelated crmsCustomerRelated = new CrmsCustomerRelated(); + Integer integer = intList.get(i); + crmsCustomerRelated.setCustomerId(companyCustomerEntity.getId().intValue());//企业id + crmsCustomerRelated.setRelatedId(integer);//关联人/企业id + relatedList.add(crmsCustomerRelated); + } + crmsCustomerRelatedService.insertCustomerRelated(relatedList); + } + if (customer && company > 0 && user) { + return true; + } + return false; + } + + /** + * 获取当前客户的认证状态 + * + * @return + */ + @Transactional + @Override + public Map getCustomerStatus() { + Map map = new HashMap<>(); + Integer personalCount = this.getBaseMapper().getCustomerStatus(Integer.parseInt(this.getUserId()), 0); + Integer companyCount = this.getBaseMapper().getCustomerStatus(Integer.parseInt(this.getUserId()), 1); + if (personalCount > 0) { + map.put("personal", true); + } else { + map.put("personal", false); + } + if (companyCount > 0) { + map.put("company", true); + } else { + map.put("company", false); + } + return map; + } + + /** + * 查看认证的详情 + */ + @Override + public ResponseResult getCustomer(Integer type) { + + String userId = this.getUserId(); + Integer customerId = this.getBaseMapper().getCustomerId(Integer.parseInt(userId), type); + + return customerService.queryCustomerById((long) customerId); + } + + /** + * 修改个人类型的认证信息 + */ + @Override + public Boolean updatePersonal(PersonalCustomerRequest personalCustomerRequest) { + Integer customerId = this.getBaseMapper().getCustomerId(Integer.parseInt(this.getUserId()), 0); + if (customerId == null) { + ExceptionCast.cast(CrmsCode.CUSTOMER_APPLET_IS_NULL); + } + personalCustomerRequest.setId((long) customerId); + personalCustomerRequest.setType(0); + CustomerPersonalTOU customerPersonalTOU = new CustomerPersonalTOU(); + BeanUtils.copyProperties(personalCustomerRequest, customerPersonalTOU); + return customerService.updateCustomerPersonal(customerPersonalTOU); + } + + /** + * 修改企业类型的认证信息 + */ + @Override + public Boolean updateCompany(CompanyCustomerRequest companyCustomerRequest) { + Integer customerId = this.getBaseMapper().getCustomerId(Integer.parseInt(this.getUserId()), 1); + if (customerId == null) { + ExceptionCast.cast(CrmsCode.CUSTOMER_APPLET_IS_NULL); + } + companyCustomerRequest.setId((long) customerId); + companyCustomerRequest.setType(1); + + return customerService.updateCompanyNew(companyCustomerRequest); + } + + + /** + * 获取当前登录用户信息 + */ + private String getUserId() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + String userId = RedisUtil.get("dq:token:" + token); + if (userId == null || userId.length() == 0) { + ExceptionCast.cast(CommonCode.GET_LOGIN_USER_FAIL); + } + return userId; + } + +} diff --git a/dq-financial-crms/src/main/resources/bootstrap.properties b/dq-financial-crms/src/main/resources/bootstrap.properties index ef21949d..1811a1da 100644 --- a/dq-financial-crms/src/main/resources/bootstrap.properties +++ b/dq-financial-crms/src/main/resources/bootstrap.properties @@ -1,7 +1,7 @@ #服务名称 spring.application.name=dq-financial-crms #配置中心地址 -spring.cloud.nacos.config.server-addr=127.0.0.1:8848 +spring.cloud.nacos.config.server-addr=192.168.31.140:8848 spring.cloud.nacos.config.file-extension=yml #redis配置 spring.redis.host=127.0.0.1 diff --git a/dq-financial-crms/src/main/resources/mapper/crms/CustomerAppletDao.xml b/dq-financial-crms/src/main/resources/mapper/crms/CustomerAppletDao.xml new file mode 100644 index 00000000..c22762f2 --- /dev/null +++ b/dq-financial-crms/src/main/resources/mapper/crms/CustomerAppletDao.xml @@ -0,0 +1,18 @@ + + + + + + + INSERT INTO crms_customer_user (customer_id, user_id, type) VALUES (#{customerId}, #{userId}, #{type}) + + + + + + + \ No newline at end of file diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgAuditProcessServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgAuditProcessServiceImpl.java index b99ef0ce..0a17f8a8 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgAuditProcessServiceImpl.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgAuditProcessServiceImpl.java @@ -27,8 +27,8 @@ import java.util.List; public class DgAuditProcessServiceImpl extends ServiceImpl implements IDgAuditProcessService { @Override - public List queryProcessList(String businessId,String processId) { - List auditProcessList = baseMapper.selectAuditProcessList(businessId,processId); + public List queryProcessList(String businessId, String processId) { + List auditProcessList = baseMapper.selectAuditProcessList(businessId, processId); return auditProcessList; } @@ -43,7 +43,7 @@ public class DgAuditProcessServiceImpl extends ServiceImpl Date: Fri, 29 Jan 2021 09:58:26 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E5=A4=87=E4=BB=BD=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/bootstrap.properties | 84 +++++++++---------- .../mapper/crms/CrmsCompanyPersonalMapper.xml | 2 +- .../DgComplianceAssignUserController.java | 20 ----- .../mapper/DgComplianceAssignUserMapper.java | 18 ---- .../model/response/AssetsDetailResponse.java | 8 +- .../model/response/AuditOpinionResponse.java | 6 +- .../response/GuaranteeDetailResponse.java | 8 +- .../model/response/MessageDetailResponse.java | 8 +- .../IDgComplianceAssignUserService.java | 16 ---- .../impl/DgApplyAmountInfoServiceImpl.java | 4 +- .../DgAssetsInvestigationServiceImpl.java | 13 ++- .../DgComplianceAssignUserServiceImpl.java | 20 ----- .../DgGuaranteeAssignUserServiceImpl.java | 13 ++- .../DgMessageInvestigationServiceImpl.java | 13 ++- .../DgWorkConferenceConsiderServiceImpl.java | 3 +- .../src/main/resources/bootstrap.properties | 82 +++++++++--------- .../DgComplianceAssignUserMapper.xml | 20 ----- .../controller/UserLoginController.java | 5 +- .../AdminAuthenticationProcessingFilter.java | 1 + .../handle/AdminAuthenticationProvider.java | 2 + .../service/impl/UserLoginServiceImpl.java | 1 + .../hrauth/service/impl/UserServiceImpl.java | 14 ++-- .../src/main/resources/bootstrap.properties | 84 +++++++++---------- .../model/response/PromptSuccess.java | 8 +- .../guarantee/DgComplianceAssignUser.java | 79 ----------------- 25 files changed, 201 insertions(+), 331 deletions(-) delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgComplianceAssignUserController.java delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgComplianceAssignUserMapper.java delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgComplianceAssignUserService.java delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgComplianceAssignUserServiceImpl.java delete mode 100644 dq-financial-guarantee/src/main/resources/mapper/guarantee/DgComplianceAssignUserMapper.xml delete mode 100644 dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgComplianceAssignUser.java diff --git a/dq-financial-crms/src/main/resources/bootstrap.properties b/dq-financial-crms/src/main/resources/bootstrap.properties index ef21949d..2056f353 100644 --- a/dq-financial-crms/src/main/resources/bootstrap.properties +++ b/dq-financial-crms/src/main/resources/bootstrap.properties @@ -1,20 +1,20 @@ #服务名称 -spring.application.name=dq-financial-crms -#配置中心地址 -spring.cloud.nacos.config.server-addr=127.0.0.1:8848 -spring.cloud.nacos.config.file-extension=yml -#redis配置 -spring.redis.host=127.0.0.1 -spring.redis.port=6379 -spring.redis.password= -spring.redis.database=0 -spring.redis.timeout=30000 -spring.redis.jedis.pool.max-active=8 -spring.redis.jedis.pool.max-wait=-1 -spring.redis.jedis.pool.max-idle=8 -spring.redis.jedis.pool.min-idle=0 +#spring.application.name=dq-financial-crms +##配置中心地址 +#spring.cloud.nacos.config.server-addr=127.0.0.1:8848 +#spring.cloud.nacos.config.file-extension=yml +##redis配置 +#spring.redis.host=127.0.0.1 +#spring.redis.port=6379 +#spring.redis.password= +#spring.redis.database=0 +#spring.redis.timeout=30000 +#spring.redis.jedis.pool.max-active=8 +#spring.redis.jedis.pool.max-wait=-1 +#spring.redis.jedis.pool.max-idle=8 +#spring.redis.jedis.pool.min-idle=0 #本地测试环境 -spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 +#spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 #线上测试环境 #spring.cloud.nacos.config.namespace=5698e60a-9d0b-433f-a69f-12b0a2d23128 @@ -29,30 +29,30 @@ ribbon.ConnectTimeout: 120000 # 正式环境(prod) #服务名称 -#spring.application.name=dq-financial-crms -###配置中心地址 -#spring.cloud.nacos.config.server-addr=120.78.127.12:8848 -#spring.cloud.nacos.config.namespace=25ce05e2-a0eb-4842-92e4-d8b550a489dd -##spring.cloud.nacos.config.group=prod -# -#spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml -#spring.cloud.nacos.config.ext-config[0].group=prod -#spring.cloud.nacos.config.ext-config[0].refresh=true -# -#spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml -#spring.cloud.nacos.config.ext-config[1].group=prod -#spring.cloud.nacos.config.ext-config[1].refresh=true -# -#spring.cloud.nacos.config.ext-config[2].data-id=other.yml -#spring.cloud.nacos.config.ext-config[2].group=prod -#spring.cloud.nacos.config.ext-config[2].refresh=true -# -#spring.redis.host=127.0.0.1 -#spring.redis.port=6379 -#spring.redis.password=dq123456 -#spring.redis.database=0 -#spring.redis.timeout=30000 -#spring.redis.jedis.pool.max-active=8 -#spring.redis.jedis.pool.max-wait=-1 -#spring.redis.jedis.pool.max-idle=8 -#spring.redis.jedis.pool.min-idle=0 \ No newline at end of file +spring.application.name=dq-financial-crms +##配置中心地址 +spring.cloud.nacos.config.server-addr=120.78.127.12:8848 +spring.cloud.nacos.config.namespace=25ce05e2-a0eb-4842-92e4-d8b550a489dd +#spring.cloud.nacos.config.group=prod + +spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml +spring.cloud.nacos.config.ext-config[0].group=prod +spring.cloud.nacos.config.ext-config[0].refresh=true + +spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml +spring.cloud.nacos.config.ext-config[1].group=prod +spring.cloud.nacos.config.ext-config[1].refresh=true + +spring.cloud.nacos.config.ext-config[2].data-id=other.yml +spring.cloud.nacos.config.ext-config[2].group=prod +spring.cloud.nacos.config.ext-config[2].refresh=true + +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.password=dq123456 +spring.redis.database=0 +spring.redis.timeout=30000 +spring.redis.jedis.pool.max-active=8 +spring.redis.jedis.pool.max-wait=-1 +spring.redis.jedis.pool.max-idle=8 +spring.redis.jedis.pool.min-idle=0 \ No newline at end of file diff --git a/dq-financial-crms/src/main/resources/mapper/crms/CrmsCompanyPersonalMapper.xml b/dq-financial-crms/src/main/resources/mapper/crms/CrmsCompanyPersonalMapper.xml index 14d08185..a8b8c2d5 100644 --- a/dq-financial-crms/src/main/resources/mapper/crms/CrmsCompanyPersonalMapper.xml +++ b/dq-financial-crms/src/main/resources/mapper/crms/CrmsCompanyPersonalMapper.xml @@ -31,7 +31,7 @@ - SELECT id,code,type,manager,name,addr,phone FROM crms_customer WHERE del_or_not = 0 diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/crms/response/CrmsCode.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/crms/response/CrmsCode.java index 77d98f79..fa9adece 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/crms/response/CrmsCode.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/crms/response/CrmsCode.java @@ -21,7 +21,8 @@ public enum CrmsCode implements ResultCode { NOT_NULL(false,20004,"上传的文件不能为空"), CUSTOMER_IS_NULL(false,20005,"导入数据失败,当前员工不存在!"), CUSTOMER_NAME_REPETITION(false, 20006, "当前客户名称已存在!"), - CUSTOMER_APPLET_IS_NULL(false, 20007,"未查询到你的信息,请先录入(认证)你的信息!"); + CUSTOMER_APPLET_IS_NULL(false, 20007,"未查询到你的信息,请先录入(认证)你的信息!"), + CUSTOMER_APPLET_EXIST(false, 20008,"你已认证自己的信息,无需再次认证!"); /** * 操作是否成功 From 8b6804b8889e9a90e0c398c699d173a1a34e0a78 Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Fri, 29 Jan 2021 14:31:08 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E8=BF=94=E5=9B=9EunionId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../financial/hrauth/service/impl/UserLoginServiceImpl.java | 5 ++++- .../main/java/com/daqing/framework/domain/hrms/Login.java | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java index e178d779..da918f7e 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java @@ -343,9 +343,12 @@ public class UserLoginServiceImpl extends ServiceImpl System.out.println(line); //这里需要使用fastjson来提取一下内容 JSONObject jsonObject= JSON.parseObject(line); Login login=new Login(); + System.out.println("jsonObject====================="+jsonObject); + System.out.println("unionId==================="+jsonObject.getString("unionid")); login.setOpenid(jsonObject.getString("openid")); login.setSession_key(jsonObject.getString("session_key")); - result.append(login.getOpenid()); + login.setUnionid(jsonObject.getString("unionid")); + result.append(login.getUnionid()); System.out.println(result.toString()); } } catch (IOException e) { diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/Login.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/Login.java index 50f9d581..3509a3a6 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/Login.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/Login.java @@ -28,4 +28,6 @@ public class Login implements Serializable { private String session_key; + private String unionid; + } From 9c6db53e13d46995ce972090ef665439842e155f Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Tue, 2 Feb 2021 09:49:50 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E8=BF=94=E5=9B=9EunionId=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=AE=A1=E7=90=86=E5=88=97=E8=A1=A8=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E4=BF=A1=E6=81=AF=E4=B8=BA=E5=A4=87=E4=BB=BD=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/BusinessApplicationRequest.java | 3 + .../util/MyBatisPlusCodeGenerator.java | 2 +- .../src/main/resources/bootstrap.properties | 6 +- .../guarantee/DgApplyAmountListMapper.xml | 5 +- .../guarantee/DgAssetsInvestigationMapper.xml | 5 +- .../guarantee/DgBusinessCompanyMapper.xml | 1 + .../DgComplianceInvestigationMapper.xml | 9 +- .../guarantee/DgGuaranteeAssignUserMapper.xml | 5 +- .../DgGuaranteeLetterAssignUserMapper.xml | 5 +- .../DgLoanCommitteeConsiderMapper.xml | 9 +- .../mapper/guarantee/DgLoanNoticeMapper.xml | 5 +- .../DgMessageInvestigationMapper.xml | 5 +- .../DgPaymentConfirmationConsiderMapper.xml | 5 +- .../DgWorkConferenceConsiderMapper.xml | 9 +- dq-financial-hrms-auth/pom.xml | 29 ++++ .../controller/UserLoginController.java | 11 +- .../financial/hrauth/model/XccLoginReq.java | 25 ++++ .../hrauth/service/UserLoginService.java | 2 +- .../service/impl/UserLoginServiceImpl.java | 96 +++++++++++- .../hrauth/service/impl/UserServiceImpl.java | 3 +- .../financial/hrauth/util/AesCbcUtil.java | 92 ++++++++++++ .../financial/hrauth/util/HttpRequest.java | 137 ++++++++++++++++++ .../DqFinancialHrmsAuthApplicationTests.java | 47 ++++-- .../domain/guarantee/DgBusinessCompany.java | 5 + 24 files changed, 464 insertions(+), 57 deletions(-) create mode 100644 dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/model/XccLoginReq.java create mode 100644 dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AesCbcUtil.java create mode 100644 dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/HttpRequest.java diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java index f61f9e7e..37f4af09 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java @@ -335,4 +335,7 @@ public class BusinessApplicationRequest implements Serializable { @ApiModelProperty(value = "联系电话(指个人或企业的)") private String phone; + @ApiModelProperty(value = "客户基本信息表id") + private Long customerId; + } diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java index 6a43ebfe..1e7baa11 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java @@ -25,7 +25,7 @@ public class MyBatisPlusCodeGenerator { public static final String PACKAGE_NAME = "com.daqing.financial.guarantee"; public static void main(String[] args) { - String[] tables = new String[] {"dg_business_company"};//表名数组 + String[] tables = new String[] {"dg_customer_related"};//表名数组 String[] tablePrefixs = new String[] {""};//去掉前缀 executeCode(PACKAGE_NAME,tables,tablePrefixs); } diff --git a/dq-financial-guarantee/src/main/resources/bootstrap.properties b/dq-financial-guarantee/src/main/resources/bootstrap.properties index 69a06a1a..564738e1 100644 --- a/dq-financial-guarantee/src/main/resources/bootstrap.properties +++ b/dq-financial-guarantee/src/main/resources/bootstrap.properties @@ -30,9 +30,9 @@ ribbon.ConnectTimeout: 120000 # 上传文件总的最大值 -#spring.servlet.multipart.max-request-size=10MB -## 单个文件的最大值 -#spring.servlet.multipart.max-file-size=10MB +spring.servlet.multipart.max-request-size=10MB +# 单个文件的最大值 +spring.servlet.multipart.max-file-size=10MB # ##正式环境(prod) ##服务名称 diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgApplyAmountListMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgApplyAmountListMapper.xml index a83cc50c..e8e56b79 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgApplyAmountListMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgApplyAmountListMapper.xml @@ -21,8 +21,9 @@ au.status,au.operating_status,cc.name,cc.phone,ps.business_status from dg_apply_amount_list au left join dg_apply_amount_info ai on au.business_id = ai.id - left join crms_company_customer ccl on ai.company_id = ccl.id - left join crms_customer cc on cc.id = ccl.customer_id + left join dg_business_company cc on cc.business_id = ai.id +/* left join crms_company_customer ccl on ai.company_id = ccl.id + left join crms_customer cc on cc.id = ccl.customer_id*/ left JOIN dg_business_process_status ps ON ps.business_id = au.business_id au.role_id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgAssetsInvestigationMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgAssetsInvestigationMapper.xml index dbc83ed0..f2406605 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgAssetsInvestigationMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgAssetsInvestigationMapper.xml @@ -37,8 +37,9 @@ au.status,au.operating_status,cc.name,cc.phone,ps.business_status from dg_assets_investigation au left join dg_apply_amount_info ai on au.business_id = ai.id - left join crms_company_customer ccl on ai.company_id = ccl.id - left join crms_customer cc on cc.id = ccl.customer_id + left join dg_business_company cc on cc.business_id = ai.id +/* left join crms_company_customer ccl on ai.company_id = ccl.id + left join crms_customer cc on cc.id = ccl.customer_id*/ left JOIN dg_business_process_status ps ON ps.business_id = au.business_id au.role_id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgBusinessCompanyMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgBusinessCompanyMapper.xml index cf9bbec3..5609bf42 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgBusinessCompanyMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgBusinessCompanyMapper.xml @@ -28,6 +28,7 @@ + diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgComplianceInvestigationMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgComplianceInvestigationMapper.xml index 4eeb9e6e..03103f2e 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgComplianceInvestigationMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgComplianceInvestigationMapper.xml @@ -23,14 +23,15 @@ FROM dg_compliance_investigation AS i LEFT JOIN dg_apply_amount_info AS a ON a.id = i.business_id - LEFT JOIN crms_company_customer AS cc + left join dg_business_company c on c.business_id = a.id +/* LEFT JOIN crms_company_customer AS cc ON a.company_id = cc.id LEFT JOIN crms_customer AS c - ON c.id = cc.customer_id + ON c.id = cc.customer_id*/ LEFT JOIN dg_business_process_status AS b ON b.business_id = a.id - WHERE c.del_or_not = 0 - AND (i.user_id = #{userId} OR i.user_id IS NULL) + WHERE /*c.del_or_not = 0*/ + /*AND */(i.user_id = #{userId} OR i.user_id IS NULL) AND i.role_id IN #{roleId} diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeAssignUserMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeAssignUserMapper.xml index 2a2aee97..5f9e292a 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeAssignUserMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeAssignUserMapper.xml @@ -24,8 +24,9 @@ au.status,au.operating_status,cc.name,cc.phone,ps.business_status from dg_guarantee_assign_user au left join dg_apply_amount_info ai on au.business_id = ai.id - left join crms_company_customer ccl on ai.company_id = ccl.id - left join crms_customer cc on cc.id = ccl.customer_id + left join dg_business_company cc on cc.business_id = ai.id +/* left join crms_company_customer ccl on ai.company_id = ccl.id + left join crms_customer cc on cc.id = ccl.customer_id*/ left JOIN dg_business_process_status ps ON ps.business_id = au.business_id au.role_id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml index 539f437c..3630a7d9 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml @@ -38,8 +38,9 @@ aai.bank,lcc.passing_time,lcc.file,lau.audit_opinion,lau.operating_status,bps.business_status,lau.business_id,lau.role_id from dg_guarantee_letter_assign_user lau left join dg_apply_amount_info aai on lau.business_id = aai.id - left join crms_company_customer ccc on lau.company_id = ccc.id - left join crms_customer cc on ccc.customer_id = cc.id + left join dg_business_company cc on cc.business_id = aai.id +/* left join crms_company_customer ccc on lau.company_id = ccc.id + left join crms_customer cc on ccc.customer_id = cc.id*/ left join dg_loan_committee_consider lcc on lau.business_id = lcc.business_id left join dg_business_process_status bps on lau.business_id = bps.business_id diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanCommitteeConsiderMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanCommitteeConsiderMapper.xml index a2b7be84..e3b69611 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanCommitteeConsiderMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanCommitteeConsiderMapper.xml @@ -26,14 +26,15 @@ FROM dg_loan_committee_consider AS l LEFT JOIN dg_apply_amount_info AS a ON a.id = l.business_id - LEFT JOIN crms_company_customer AS cc + left join dg_business_company c on c.business_id = a.id +/* LEFT JOIN crms_company_customer AS cc ON a.company_id = cc.id LEFT JOIN crms_customer AS c - ON cc.customer_id = c.id + ON cc.customer_id = c.id*/ LEFT JOIN dg_business_process_status AS b ON b.business_id = a.id - WHERE c.del_or_not = 0 - AND (l.consider_id = #{userId} OR l.consider_id IS NULL) + WHERE /*c.del_or_not = 0*/ + /*AND*/ (l.consider_id = #{userId} OR l.consider_id IS NULL) AND l.role_id IN #{roleId} diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanNoticeMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanNoticeMapper.xml index 6bc4de73..74832c58 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanNoticeMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanNoticeMapper.xml @@ -37,8 +37,9 @@ aai.create_time,ln.status,aai.bank,ln.audit_opinion,ln.operating_status,bps.business_status,ln.business_id,lcc.passing_time from dg_loan_notice ln left join dg_apply_amount_info aai on ln.business_id = aai.id - left join crms_company_customer ccc on ln.company_id = ccc.id - left join crms_customer cc on ccc.customer_id = cc.id + left join dg_business_company cc on cc.business_id = aai.id +/* left join crms_company_customer ccc on ln.company_id = ccc.id + left join crms_customer cc on ccc.customer_id = cc.id*/ left join dg_loan_committee_consider lcc on ln.business_id = lcc.business_id left join dg_business_process_status bps on ln.business_id = bps.business_id diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgMessageInvestigationMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgMessageInvestigationMapper.xml index a51ea9d7..19d7e49c 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgMessageInvestigationMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgMessageInvestigationMapper.xml @@ -23,8 +23,9 @@ au.status,au.operating_status,cc.name,cc.phone,ps.business_status from dg_message_investigation au left join dg_apply_amount_info ai on au.business_id = ai.id - left join crms_company_customer ccl on ai.company_id = ccl.id - left join crms_customer cc on cc.id = ccl.customer_id + left join dg_business_company cc on cc.business_id = ai.id +/* left join crms_company_customer ccl on ai.company_id = ccl.id + left join crms_customer cc on cc.id = ccl.customer_id*/ left JOIN dg_business_process_status ps ON ps.business_id = au.business_id au.role_id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgPaymentConfirmationConsiderMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgPaymentConfirmationConsiderMapper.xml index 5eda1a53..cd9764ef 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgPaymentConfirmationConsiderMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgPaymentConfirmationConsiderMapper.xml @@ -40,8 +40,9 @@ aai.bank,lcc.passing_time,lcc.file,pcc.audit_opinion,pcc.operating_status,bps.business_status,pcc.business_id,pcc.img_file,pcc.role_id from dg_payment_confirmation_consider pcc left join dg_apply_amount_info aai on pcc.business_id = aai.id - left join crms_company_customer ccc on pcc.company_id = ccc.id - left join crms_customer cc on ccc.customer_id = cc.id + left join dg_business_company cc on cc.business_id = aai.id +/* left join crms_company_customer ccc on pcc.company_id = ccc.id + left join crms_customer cc on ccc.customer_id = cc.id*/ left join dg_loan_committee_consider lcc on pcc.business_id = lcc.business_id left join dg_business_process_status bps on pcc.business_id = bps.business_id diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgWorkConferenceConsiderMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgWorkConferenceConsiderMapper.xml index 26f3dab8..0c914bd1 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgWorkConferenceConsiderMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgWorkConferenceConsiderMapper.xml @@ -22,10 +22,11 @@ FROM dg_work_conference_consider AS w LEFT JOIN dg_apply_amount_info AS a ON a.id = w.business_id - LEFT JOIN crms_company_customer AS cc + left join dg_business_company c on c.business_id = a.id +/* LEFT JOIN crms_company_customer AS cc ON a.company_id = cc.id LEFT JOIN crms_customer AS c - ON cc.customer_id = c.id + ON cc.customer_id = c.id*/ LEFT JOIN dg_business_process_status AS b ON b.business_id = a.id LEFT JOIN (SELECT business_id,SUM(CASE role_id WHEN 59 THEN emp_id ELSE 0 END) AS A, @@ -38,8 +39,8 @@ ON a.id = ass.business_id LEFT JOIN dg_message_investigation AS m ON a.id = m.business_id - WHERE c.del_or_not = 0 - AND (w.user_id = #{userId} OR w.user_id IS NULL) + WHERE /*c.del_or_not = 0*/ + /*AND*/ (w.user_id = #{userId} OR w.user_id IS NULL) AND w.role_id IN #{roleId} diff --git a/dq-financial-hrms-auth/pom.xml b/dq-financial-hrms-auth/pom.xml index 1e7f00ba..2d1f050e 100644 --- a/dq-financial-hrms-auth/pom.xml +++ b/dq-financial-hrms-auth/pom.xml @@ -82,6 +82,35 @@ org.springframework.boot spring-boot-starter-web + + + cn.hutool + hutool-all + 5.3.8 + + + + org.codehaus.xfire + xfire-core + 1.2.6 + + + com.vaadin.external.google + android-json + 0.0.20131108.vaadin1 + compile + + + org.bouncycastle + bcprov-jdk16 + 1.46 + + + org.springframework.boot + spring-boot-test + 2.3.5.RELEASE + test + diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java index f4a4f6b6..73f493b4 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.daqing.financial.hrauth.UserLoginControllerApi; import com.daqing.financial.hrauth.config.WeChatConfig; import com.daqing.financial.hrauth.feign.HrmsFeignService; +import com.daqing.financial.hrauth.model.XccLoginReq; import com.daqing.financial.hrauth.service.UserLoginService; import com.daqing.financial.hrauth.service.UserService; import com.daqing.framework.domain.hrms.EmployeeEntity; @@ -217,14 +218,16 @@ public class UserLoginController implements UserLoginControllerApi { /** * 微信小程序获取openid和session_key授权登录 - * @param code + * @param * @return */ @PostMapping(value = "/wxAuthLogin") - public ResponseResult wxAuthLogin(@RequestBody String code){ + public ResponseResult wxAuthLogin(@RequestBody XccLoginReq xccLoginReq){ - String openid = userLoginService.wxAuthLogin(code); + String encryptedData = xccLoginReq.getEncryptedData(); + String code = xccLoginReq.getCode(); + String iv = xccLoginReq.getIv(); + String openid = userLoginService.wxAuthLogin(encryptedData,iv,code); return ResponseResult.SUCCESS(openid); } - } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/model/XccLoginReq.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/model/XccLoginReq.java new file mode 100644 index 00000000..d506f98c --- /dev/null +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/model/XccLoginReq.java @@ -0,0 +1,25 @@ +package com.daqing.financial.hrauth.model; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 访问记录表 + *

+ * + * @author Qyq + * @since 2021-01-12 + */ +@Data +public class XccLoginReq implements Serializable { + + private String encryptedData;//明文,加密数据 + private String iv;//加密算法的初始向量 + private String code;//用户允许登录后,回调内容会带上 code(有效期五分钟),开发者需要将 code 发送到开发者服务器后台 + // ,使用code 换取 session_key api,将 code 换成 openid 和 session_key + +} diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java index 0f41b478..4bc1693a 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java @@ -23,5 +23,5 @@ public interface UserLoginService extends IService { int isPhoneExist(String mobile); - String wxAuthLogin(String code); + String wxAuthLogin(String encryptedData, String iv,String code); } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java index da918f7e..3fd05d67 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java @@ -1,5 +1,6 @@ package com.daqing.financial.hrauth.service.impl; + import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -13,17 +14,17 @@ import com.daqing.financial.hrauth.model.HrmsAccessRecordsLog; import com.daqing.financial.hrauth.service.LoginLogService; import com.daqing.financial.hrauth.service.TokenService; import com.daqing.financial.hrauth.service.UserLoginService; -import com.daqing.framework.domain.guarantee.response.EmployeeMessageResponse; +import com.daqing.financial.hrauth.util.AesCbcUtil; +import com.daqing.financial.hrauth.util.HttpRequest; +import com.daqing.financial.hrauth.util.HttpUtils; import com.daqing.framework.domain.hrms.*; import com.daqing.framework.domain.hrms.request.*; import com.daqing.framework.domain.hrms.response.HrmsCode; import com.daqing.framework.domain.hrms.response.LoginResponse; import com.daqing.framework.exception.ExceptionCast; -import com.daqing.framework.model.response.CommonCode; import com.daqing.framework.model.response.ResponseResult; import com.daqing.framework.util.JwtUtils; import com.daqing.framework.util.Md5Util; -import com.daqing.framework.util.RedisUtil; import com.daqing.framework.util.SendUtil; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntity; @@ -316,14 +317,75 @@ public class UserLoginServiceImpl extends ServiceImpl return userLoginDao.selectCount(mobile); } - @Override - public String wxAuthLogin(String code) { - System.out.println(code); +/* @Override + public String wxAuthLogin(String encryptedData, String iv,String code) { + System.out.println("code==="+code+"encryptedData==="+encryptedData+"iv===="+iv); System.out.println("来了小程序登录------------------------------------"); //微信那边的接口,grant_type=authorization_code是固定的 -/* String url="https://api.weixin.qq.com/sns/jscode2session?appid="+APPID+ - "&secret="+SECRET+"&js_code="+ code +"&grant_type=authorization_code";*/ + String url = String.format(weChatConfig.getWX_AUTH_URL(),weChatConfig.getXcxAppid(),weChatConfig.getXcxAppsecret(),code); + System.out.println("url==============="+url); + + //向微信服务器 使用登录凭证 code 获取 session_key 和 openid + // 请求参数 + String params = "appid=" + weChatConfig.getXcxAppid() + "&secret=" + weChatConfig.getXcxAppsecret() + "&js_code=" + code + "&grant_type=" + + "authorization_code"; + // 发送请求 + String sr = HttpRequest.sendGet("https://api.weixin.qq.com/sns/jscode2session", params); + + System.out.println("sr==================="+sr); + // 解析相应内容(转换成json对象) + //JSONObject json = JSON.parseObject(url); + cn.hutool.json.JSONObject json = new cn.hutool.json.JSONObject(sr); + // 获取会话密钥(session_key) + String session_key = json.get("session_key").toString(); + // 用户的唯一标识(openid) + String openid = (String) json.get("openid"); + + System.out.println("session_key======"+session_key+"openid===="+openid); + + Map map = new HashMap(); + + //对encryptedData加密数据进行AES解密 + try { + String result = AesCbcUtil.decrypt(encryptedData, session_key, iv, "UTF-8"); + if (null != result && result.length() > 0) { + map.put("status", 1); + map.put("msg", "解密成功"); + + //JSONObject userInfoJSON = JSON.parseObject(result); + cn.hutool.json.JSONObject userInfoJSON = new cn.hutool.json.JSONObject(result); + Map userInfo = new HashMap(); + userInfo.put("openId", userInfoJSON.get("openId")); + userInfo.put("nickName", userInfoJSON.get("nickName")); + userInfo.put("gender", userInfoJSON.get("gender")); + userInfo.put("city", userInfoJSON.get("city")); + userInfo.put("province", userInfoJSON.get("province")); + userInfo.put("country", userInfoJSON.get("country")); + userInfo.put("avatarUrl", userInfoJSON.get("avatarUrl")); + // 解密unionId & openId; + + System.out.println("userInfoJSON==============="+userInfoJSON); + System.out.println("unionId============"+userInfoJSON.get("unionId")); + userInfo.put("unionId", userInfoJSON.get("unionId")); + map.put("userInfo", userInfo); + } else { + map.put("status", 0); + map.put("msg", "解密失败"); + } + } catch (Exception e) { + e.printStackTrace(); + } + + System.out.println("map===================="+map.get("unionId")); + return null; + }*/ + +/* @Override + public String wxAuthLogin(String encryptedData, String iv,String code) { + System.out.println(code); + System.out.println("来了小程序登录------------------------------------"); + //微信那边的接口,grant_type=authorization_code是固定的 String url = String.format(weChatConfig.getWX_AUTH_URL(),weChatConfig.getXcxAppid(),weChatConfig.getXcxAppsecret(),code); System.out.println("url==============="+url); @@ -356,6 +418,24 @@ public class UserLoginServiceImpl extends ServiceImpl } return result.toString(); + }*/ + + @Override + public String wxAuthLogin(String encryptedData, String iv,String code) { + System.out.println(code); + System.out.println("来了小程序登录------------------------------------"); + //微信那边的接口,grant_type=authorization_code是固定的 + String url = String.format(weChatConfig.getWX_AUTH_URL(),weChatConfig.getXcxAppid(),weChatConfig.getXcxAppsecret(),code); + + System.out.println("url==============="+url); + Map baseMap = HttpUtils.doGet(url); + if(baseMap == null || baseMap.isEmpty()){ return null; } + String accessToken = (String)baseMap.get("access_token"); + String openId = (String) baseMap.get("openid"); + String unionId = (String) baseMap.get("unionid"); + System.out.println("小程序登录openId============="+openId+"unionId=============="+unionId+"baseMap============"+baseMap); + + return unionId; } } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java index 33b5a1c6..d1642a07 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java @@ -58,7 +58,8 @@ public class UserServiceImpl extends ServiceImpl imple if(baseMap == null || baseMap.isEmpty()){ return null; } String accessToken = (String)baseMap.get("access_token"); String openId = (String) baseMap.get("openid"); - System.out.println("微信扫码加密前openId============="+openId); + String unionId = (String) baseMap.get("unionid"); + System.out.println("微信扫码加密前openId============="+openId+"unionId=============="+unionId+"baseMap============"+baseMap); //对code(回调过来的openid)加密 String md5OpenId = Md5Util.md5(openId); log.info("accessToken========> "+accessToken+"openId========> "+openId+"code=======> "+code+"md5OpenId============>"+md5OpenId); diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AesCbcUtil.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AesCbcUtil.java new file mode 100644 index 00000000..7dc84c7c --- /dev/null +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AesCbcUtil.java @@ -0,0 +1,92 @@ +package com.daqing.financial.hrauth.util; + +import org.apache.commons.codec.binary.Base64; +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import java.io.UnsupportedEncodingException; +import java.security.*; +import java.security.spec.InvalidParameterSpecException; + +/** + * Created by yfs on 2018/3/25. + *

+ * AES-128-CBC 加密方式 + * 注: + * AES-128-CBC可以自己定义“密钥”和“偏移量“。 + * AES-128是jdk自动生成的“密钥”。 + */ +public class AesCbcUtil { + + + static { + //BouncyCastle是一个开源的加解密解决方案,主页在http://www.bouncycastle.org/ + Security.addProvider(new BouncyCastleProvider()); + } + + /** + * AES解密 + * + * @param data //密文,被加密的数据 + * @param key //秘钥 + * @param iv //偏移量 + * @param encodingFormat //解密后的结果需要进行的编码 + * @return + * @throws Exception + */ + public static String decrypt(String data, String key, String iv, String encodingFormat) throws Exception { +// initialize(); + + //被加密的数据 + byte[] dataByte = Base64.decodeBase64(data); + //加密秘钥 + byte[] keyByte = Base64.decodeBase64(key); + //偏移量 + byte[] ivByte = Base64.decodeBase64(iv); + + + try { + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding"); + //Cipher cipher = Cipher.getInstance("AES/ECB/ZeroBytePadding"); + + SecretKeySpec spec = new SecretKeySpec(keyByte, "AES"); + + AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES"); + parameters.init(new IvParameterSpec(ivByte)); + + cipher.init(Cipher.DECRYPT_MODE, spec, parameters);// 初始化 + //cipher.init(Cipher.ENCRYPT_MODE,key,new IvParameterSpec( java.util.Base64.Decoder.decode(IV.getBytes("UTF-8")))); + + byte[] resultByte = cipher.doFinal(dataByte); + if (null != resultByte && resultByte.length > 0) { + String result = new String(resultByte, encodingFormat); + return result; + } + return null; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidParameterSpecException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (InvalidAlgorithmParameterException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + return null; + } + +} \ No newline at end of file diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/HttpRequest.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/HttpRequest.java new file mode 100644 index 00000000..217f5c59 --- /dev/null +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/HttpRequest.java @@ -0,0 +1,137 @@ +package com.daqing.financial.hrauth.util; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.URL; +import java.net.URLConnection; +import java.util.List; +import java.util.Map; + +public class HttpRequest { + + public static void main(String[] args) { + //发送 GET 请求 + String s=HttpRequest.sendGet("http://v.qq.com/x/cover/kvehb7okfxqstmc.html?vid=e01957zem6o", ""); + System.out.println(s); + +// //发送 POST 请求 +// String sr=HttpRequest.sendPost("http://www.toutiao.com/stream/widget/local_weather/data/?city=%E4%B8%8A%E6%B5%B7", ""); +// JSONObject json = JSONObject.fromObject(sr); +// System.out.println(json.get("data")); + } + + /** + * 向指定URL发送GET方法的请求 + * + * @param url + * 发送请求的URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return URL 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param) { + String result = ""; + BufferedReader in = null; + try { + String urlNameString = url + "?" + param; + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + URLConnection connection = realUrl.openConnection(); + // 设置通用的请求属性 + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 建立实际的连接 + connection.connect(); + // 获取所有响应头字段 + Map> map = connection.getHeaderFields(); + // 遍历所有的响应头字段 + for (String key : map.keySet()) { + System.out.println(key + "--->" + map.get(key)); + } + // 定义 BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader( + connection.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送GET请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输入流 + finally { + try { + if (in != null) { + in.close(); + } + } catch (Exception e2) { + e2.printStackTrace(); + } + } + return result; + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url + * 发送请求的 URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, String param) { + PrintWriter out = null; + BufferedReader in = null; + String result = ""; + try { + URL realUrl = new URL(url); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader( + new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!"+e); + e.printStackTrace(); + } + //使用finally块来关闭输出流、输入流 + finally{ + try{ + if(out!=null){ + out.close(); + } + if(in!=null){ + in.close(); + } + } + catch(IOException ex){ + ex.printStackTrace(); + } + } + return result; + } +} \ No newline at end of file diff --git a/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/DqFinancialHrmsAuthApplicationTests.java b/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/DqFinancialHrmsAuthApplicationTests.java index 6ea6444c..23d264aa 100644 --- a/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/DqFinancialHrmsAuthApplicationTests.java +++ b/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/DqFinancialHrmsAuthApplicationTests.java @@ -1,13 +1,34 @@ -//package com.daqing.financial.hrauth; -// -//import org.junit.Test; -//import org.springframework.boot.test.context.SpringBootTest; -// -//@SpringBootTest -//class DqFinancialHrmsAuthApplicationTests { -// -// @Test -// void contextLoads() { -// } -// -//} +package com.daqing.financial.hrauth; + +import com.daqing.financial.hrauth.util.AesCbcUtil; +import org.junit.Test; +import org.springframework.boot.test.context.SpringBootTest; + +/*@SpringBootTest +class DqFinancialHrmsAuthApplicationTests { + + @Test + void contextLoads() throws Exception { + + String encryptedData="m7CF698f222KiEse8aFLIwSiXjxojbFesVpHltvrKPqKH3OclT7Qc+UhOw+MbxRAOSKgMb+erVYXYcrPwQ6TSF4VBt9Lzv0GdxJf82876SgANFURjVZBXKSwp0snxw/9wdfTGV2t7nIbpbUfBFD0QEi4rrsD8hZdPr4s/WLtHcpcvRkJvb3KDRw+PsnTyBtFOnXnv5sOJW84uy9OGuTTV8s0miqZCy//xZU2DJ3EZsg3Rp9E5xe0jMLtLOfvQEf5tM/pPw9hCkWbbBJEBSUn5IkSgkt3jAasjoWOSuDzw+MAJvnT7byJ7bvOSbEY14RAZzX6sZYw8Rd/n9fOssZivfF+F2HIfHhWuBNcGhNYTIYXtJsvmhtT5Wo4mMnq0j/TElZOoAjc385xkluHNRB/T+PVo+FEkRZgiugAOzOPn24WjZU7nbPrtoEYH5Bcdfcf3quP4hQAIQd6EvkfdnRti+Mfn925llWSS+fa+AV3hx0mwtFkk1VFMBuLPjL2nvvvUl4NkoMVzw0NRGPpeiS+DA=="; + String iv="jh3Io5uYeMSbU903QXpewA=="; + String session_key="LKv54UbAoCTx4yz5mi6S1A=="; + + + String result = AesCbcUtil.decrypt(encryptedData, session_key, iv, "UTF-8"); + System.out.println(result); + } + +}*/ + +class DqFinancialHrmsAuthApplicationTests{ + public static void main(String[] args) throws Exception { + String encryptedData="m7CF698f222KiEse8aFLIwSiXjxojbFesVpHltvrKPqKH3OclT7Qc+UhOw+MbxRAOSKgMb+erVYXYcrPwQ6TSF4VBt9Lzv0GdxJf82876SgANFURjVZBXKSwp0snxw/9wdfTGV2t7nIbpbUfBFD0QEi4rrsD8hZdPr4s/WLtHcpcvRkJvb3KDRw+PsnTyBtFOnXnv5sOJW84uy9OGuTTV8s0miqZCy//xZU2DJ3EZsg3Rp9E5xe0jMLtLOfvQEf5tM/pPw9hCkWbbBJEBSUn5IkSgkt3jAasjoWOSuDzw+MAJvnT7byJ7bvOSbEY14RAZzX6sZYw8Rd/n9fOssZivfF+F2HIfHhWuBNcGhNYTIYXtJsvmhtT5Wo4mMnq0j/TElZOoAjc385xkluHNRB/T+PVo+FEkRZgiugAOzOPn24WjZU7nbPrtoEYH5Bcdfcf3quP4hQAIQd6EvkfdnRti+Mfn925llWSS+fa+AV3hx0mwtFkk1VFMBuLPjL2nvvvUl4NkoMVzw0NRGPpeiS+DA=="; + String iv="jh3Io5uYeMSbU903QXpewA=="; + String session_key="LKv54UbAoCTx4yz5mi6S1A=="; + + + String result = AesCbcUtil.decrypt(encryptedData, session_key, iv, "UTF-8"); + System.out.println(result); + } +} \ No newline at end of file diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java index 60524fd0..b0a72436 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java @@ -142,4 +142,9 @@ public class DgBusinessCompany implements Serializable { * 联系电话(指个人或企业的) */ private String phone; + + /** + * 客户基本信息表id + */ + private Long customerId; } From 3a66e3f66cd4882ace7b4492b73cce1b94590c27 Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Fri, 5 Feb 2021 11:56:18 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E8=BF=94=E5=9B=9EunionId=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=97=B6=E9=97=B4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/BusinessApplicationRequest.java | 2 +- .../impl/DgApplyAmountInfoServiceImpl.java | 13 +- .../service/impl/DgCopyUserServiceImpl.java | 19 +- .../hrauth/config/SecurityConfig.java | 21 +- .../controller/UserLoginController.java | 3 +- .../handle/CustomAccessDeniedHandler.java | 66 ++++++ .../hrauth/service/UserLoginService.java | 4 +- .../service/impl/UserLoginServiceImpl.java | 189 +++++++++++++++-- .../hrauth/service/impl/UserServiceImpl.java | 3 +- .../com/daqing/financial/hrauth/util/AES.java | 73 +++++++ .../financial/hrauth/util/AesCbcUtil.java | 91 +++++++- .../financial/hrauth/util/PKCS7Encoder.java | 65 ++++++ .../financial/hrauth/util/TestUtil.java | 198 ++++++++++++++++++ .../financial/hrauth/util/WXBizDataCrypt.java | 115 ++++++++++ .../DqFinancialHrmsAuthApplicationTests.java | 138 ++++++++++-- .../com/daqing/financial/hrauth/Student.java | 41 ++++ .../domain/crms/CrmsCompanyPersonal.java | 2 + .../domain/guarantee/DgApplyAmountList.java | 2 + .../domain/guarantee/DgBusinessCompany.java | 2 + .../domain/hrms/response/HrmsCode.java | 2 + 20 files changed, 977 insertions(+), 72 deletions(-) create mode 100644 dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/handle/CustomAccessDeniedHandler.java create mode 100644 dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AES.java create mode 100644 dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/PKCS7Encoder.java create mode 100644 dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/TestUtil.java create mode 100644 dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/WXBizDataCrypt.java create mode 100644 dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/Student.java diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java index 37f4af09..d0e8af30 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/request/BusinessApplicationRequest.java @@ -261,7 +261,7 @@ public class BusinessApplicationRequest implements Serializable { * 注册时间 */ @ApiModelProperty(value = "注册时间") - private Date registerTime; + private String registerTime; /** * 注册地址 diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java index 23b8e98c..653b6ee8 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java @@ -247,6 +247,7 @@ public class DgApplyAmountInfoServiceImpl extends ServiceImpl().eq("id",id)); + dgApplyAmountList.setVer(dgApplyAmountList1.getVer()+1);//设置担保部经理的版本号+1 + int update = dgApplyAmountListMapper.update(dgApplyAmountList, new QueryWrapper() + .eq("id", id).eq("ver", dgApplyAmountList1.getVer())); + if(update<=0) + return 0; - //根据id查询业务id - DgApplyAmountList dgApplyAmountList1 = dgApplyAmountListMapper.selectById(id); //修改专员那一条记录审核状态 DgApplyAmountList applyAmountList = new DgApplyAmountList(); applyAmountList.setStatus(status); diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgCopyUserServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgCopyUserServiceImpl.java index 6428412a..a2527fab 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgCopyUserServiceImpl.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgCopyUserServiceImpl.java @@ -95,18 +95,21 @@ public class DgCopyUserServiceImpl extends ServiceImpl) responseResult.getData(); } - for (CopyForMeResponse response : copyForMeResponseList) { - for (LinkedHashMap res : employeeMessage) { - if (response.getApplicantId().equals(res.get("id"))) {//如果提单人id相同情况下,就往对象里面赋值 - response.setApplicant(JSONObject.toJSONString(res.get("account")).replace("\"", "")); - } - if (response.getApproveId()!=null){ - if (response.getApproveId().equals(res.get("id"))) {//如果审批人id相同情况下,就往对象里面赋值 - response.setApprove(JSONObject.toJSONString(res.get("account")).replace("\"", "")); + if(employeeMessage != null){ + for (CopyForMeResponse response : copyForMeResponseList) { + for (LinkedHashMap res : employeeMessage) { + if (response.getApplicantId()!=null && response.getApplicantId().equals(res.get("id"))) {//如果提单人id相同情况下,就往对象里面赋值 + response.setApplicant(JSONObject.toJSONString(res.get("account")).replace("\"", "")); + } + if (response.getApproveId()!=null){ + if (response.getApproveId().equals(res.get("id"))) {//如果审批人id相同情况下,就往对象里面赋值 + response.setApprove(JSONObject.toJSONString(res.get("account")).replace("\"", "")); + } } } } } + } return copyForMeResponseList; diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/SecurityConfig.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/SecurityConfig.java index b88971c2..eb5e9c27 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/SecurityConfig.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/config/SecurityConfig.java @@ -2,12 +2,8 @@ package com.daqing.financial.hrauth.config; import com.daqing.financial.hrauth.filter.AdminAuthenticationProcessingFilter; import com.daqing.financial.hrauth.filter.MyAuthenticationFilter; -import com.daqing.financial.hrauth.handle.AdminAuthenticationEntryPoint; -import com.daqing.financial.hrauth.handle.UrlAccessDecisionManager; -import com.daqing.financial.hrauth.handle.UrlAccessDeniedHandler; -import com.daqing.financial.hrauth.handle.UrlFilterInvocationSecurityMetadataSource; +import com.daqing.financial.hrauth.handle.*; import org.springframework.context.annotation.Configuration; -import org.springframework.http.HttpMethod; import org.springframework.security.config.annotation.ObjectPostProcessor; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -60,13 +56,19 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { */ private final UrlAccessDeniedHandler urlAccessDeniedHandler; - public SecurityConfig(MyAuthenticationFilter myAuthenticationFilter, AdminAuthenticationEntryPoint adminAuthenticationEntryPoint, AdminAuthenticationProcessingFilter adminAuthenticationProcessingFilter, UrlFilterInvocationSecurityMetadataSource urlFilterInvocationSecurityMetadataSource, UrlAccessDeniedHandler urlAccessDeniedHandler, UrlAccessDecisionManager urlAccessDecisionManager) { + /** + * Token异常处理 + */ + private final CustomAccessDeniedHandler customAccessDeniedHandler; + + public SecurityConfig(MyAuthenticationFilter myAuthenticationFilter, AdminAuthenticationEntryPoint adminAuthenticationEntryPoint, AdminAuthenticationProcessingFilter adminAuthenticationProcessingFilter, UrlFilterInvocationSecurityMetadataSource urlFilterInvocationSecurityMetadataSource, UrlAccessDeniedHandler urlAccessDeniedHandler, UrlAccessDecisionManager urlAccessDecisionManager, CustomAccessDeniedHandler customAccessDeniedHandler) { this.myAuthenticationFilter = myAuthenticationFilter; this.adminAuthenticationEntryPoint = adminAuthenticationEntryPoint; this.adminAuthenticationProcessingFilter = adminAuthenticationProcessingFilter; this.urlFilterInvocationSecurityMetadataSource = urlFilterInvocationSecurityMetadataSource; this.urlAccessDeniedHandler = urlAccessDeniedHandler; this.urlAccessDecisionManager = urlAccessDecisionManager; + this.customAccessDeniedHandler = customAccessDeniedHandler; } @@ -87,6 +89,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { // 登录过后访问无权限的接口时自定义403响应内容 http.exceptionHandling().accessDeniedHandler(urlAccessDeniedHandler); + //Token异常 + http.exceptionHandling().accessDeniedHandler(customAccessDeniedHandler); + // url权限认证处理 registry.withObjectPostProcessor(new ObjectPostProcessor() { @Override @@ -115,7 +120,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { //registry.antMatchers("/api-guarantee/dg-apply-amount-info/getRoles").hasIpAddress("127.0.0.1"); // 允许匿名的url - 可理解为放行接口 - 多个接口使用,分割 registry.antMatchers("/**").permitAll(); - //registry.antMatchers("/api-guarantee/dg-apply-amount-info/getRoles").permitAll(); +// registry.antMatchers("/api-guarantee/dg-apply-amount-info/getRoles").permitAll(); // registry.antMatchers("/**").access("hasAuthority('admin')"); // OPTIONS(选项):查找适用于一个特定网址资源的通讯选择。 在不需执行具体的涉及数据传输的动作情况下, 允许客户端来确定与资源相关的选项以及 / 或者要求, 或是一个服务器的性能 //registry.antMatchers(HttpMethod.OPTIONS, "/**").denyAll(); @@ -141,7 +146,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/**"); - //web.ignoring().antMatchers("/dg-apply-amount-info/getRoles","/api-guarantee/dg-apply-amount-info/getRoles"); +// web.ignoring().antMatchers("/dg-apply-amount-info/getRoles","/api-guarantee/dg-apply-amount-info/getRoles"); } } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java index 73f493b4..e635a2f0 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java @@ -34,6 +34,7 @@ import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; +import java.util.Map; /** @@ -227,7 +228,7 @@ public class UserLoginController implements UserLoginControllerApi { String encryptedData = xccLoginReq.getEncryptedData(); String code = xccLoginReq.getCode(); String iv = xccLoginReq.getIv(); - String openid = userLoginService.wxAuthLogin(encryptedData,iv,code); + Map openid = userLoginService.wxAuthLogin(encryptedData,iv,code); return ResponseResult.SUCCESS(openid); } } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/handle/CustomAccessDeniedHandler.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/handle/CustomAccessDeniedHandler.java new file mode 100644 index 00000000..8ee0bb53 --- /dev/null +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/handle/CustomAccessDeniedHandler.java @@ -0,0 +1,66 @@ +package com.daqing.financial.hrauth.handle; + +import com.daqing.financial.hrauth.model.ApiResult; +import com.daqing.financial.hrauth.service.impl.UserDetailsServiceImpl; +import com.daqing.financial.hrauth.util.ResponseUtils; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.web.access.AccessDeniedHandler; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; + +/** + * Security自定义异常处理类 + * @Author: jialing xu + * @Description: xvjialing@outlook.com + * @Date: 17:24 2018/8/7 + */ +@Slf4j +@Component +public class CustomAccessDeniedHandler implements AccessDeniedHandler { + + @Autowired + private ObjectMapper objectMapper; + + private final UserDetailsServiceImpl userDetailsService; + + protected CustomAccessDeniedHandler(UserDetailsServiceImpl userDetailsService) { + this.userDetailsService = userDetailsService; + } + + @Override + public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e) throws IOException, ServletException { +/* log.error("Token异常处理来了~~~~"+accessDeniedException.getMessage()); + response.setContentType("application/json;charset=UTF-8"); + Map map = new HashMap(); + map.put("code", "403"); + map.put("msg", accessDeniedException.getMessage()); + map.put("data",""); + response.setContentType("application/json"); + response.setStatus(HttpServletResponse.SC_OK); + response.getWriter().write(objectMapper.writeValueAsString(map));*/ + +// ResponseUtils.out(response, ApiResult.fail(401, e.getMessage())); + String token = request.getHeader("token"); + if (StringUtils.isNotBlank(token)) { + // 检查token + SecurityUser securityUser = userDetailsService.getUserByToken(token); + if (securityUser == null || securityUser.getCurrentUserInfo() == null) { + //ExceptionCast.cast(HrmsCode.TOKEN_EXCEPTION); + throw new AccessDeniedException("TOKEN已过期,请重新登录~~~"); + } + } + } +} diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java index 4bc1693a..541424af 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/UserLoginService.java @@ -6,6 +6,8 @@ import com.daqing.framework.domain.hrms.UserEntity; import com.daqing.framework.domain.hrms.request.*; import com.daqing.framework.model.response.ResponseResult; +import java.util.Map; + /** * @auther River * @date 2020/9/22 15:00 @@ -23,5 +25,5 @@ public interface UserLoginService extends IService { int isPhoneExist(String mobile); - String wxAuthLogin(String encryptedData, String iv,String code); + Map wxAuthLogin(String encryptedData, String iv, String code); } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java index 3fd05d67..98e6bc41 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserLoginServiceImpl.java @@ -14,9 +14,7 @@ import com.daqing.financial.hrauth.model.HrmsAccessRecordsLog; import com.daqing.financial.hrauth.service.LoginLogService; import com.daqing.financial.hrauth.service.TokenService; import com.daqing.financial.hrauth.service.UserLoginService; -import com.daqing.financial.hrauth.util.AesCbcUtil; -import com.daqing.financial.hrauth.util.HttpRequest; -import com.daqing.financial.hrauth.util.HttpUtils; +import com.daqing.financial.hrauth.util.*; import com.daqing.framework.domain.hrms.*; import com.daqing.framework.domain.hrms.request.*; import com.daqing.framework.domain.hrms.response.HrmsCode; @@ -26,22 +24,17 @@ import com.daqing.framework.model.response.ResponseResult; import com.daqing.framework.util.JwtUtils; import com.daqing.framework.util.Md5Util; import com.daqing.framework.util.SendUtil; +import lombok.extern.java.Log; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.http.HttpEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; +import javax.servlet.http.HttpServletRequest; import java.util.*; /** @@ -171,7 +164,8 @@ public class UserLoginServiceImpl extends ServiceImpl } //登录成功,token生成 - long times = 86400; + long times = 86400;//24h + //long times =60;//1min if(loginRequest.getTenDayEffective() == 1){ times = 864000; } @@ -317,9 +311,9 @@ public class UserLoginServiceImpl extends ServiceImpl return userLoginDao.selectCount(mobile); } -/* @Override - public String wxAuthLogin(String encryptedData, String iv,String code) { - System.out.println("code==="+code+"encryptedData==="+encryptedData+"iv===="+iv); + @Override + public Map wxAuthLogin(String encryptedData, String iv,String code) { + System.out.println("code****"+code+"encryptedData**************"+encryptedData+"iv**********"+iv); System.out.println("来了小程序登录------------------------------------"); //微信那边的接口,grant_type=authorization_code是固定的 String url = String.format(weChatConfig.getWX_AUTH_URL(),weChatConfig.getXcxAppid(),weChatConfig.getXcxAppsecret(),code); @@ -345,15 +339,27 @@ public class UserLoginServiceImpl extends ServiceImpl Map map = new HashMap(); + //======================此处为死数据============================ + encryptedData="V6E2hVgfhatfPt/octP4c6881lJ1GCsYqtzY9MzqlWTpthAw5uWJLpRoXtmO5oM7XSHS6xKqh8YVzhKmrfzbb66574fbfE7n5ADSJYlsJwem1ifm3sypW9Ys3GSBwHaQ/x+Sn3rfs+HKMJgegGn+b3R5X7eXFhrA6lFnd+/xpYB4VWztFMsIyVT85Mlv5G3vp1FryctiGjWTFDDh1kAFXQ31Cso91SuAW2muSUaHh32pJ+WBrpZ7wrEZyyuqMqA0UpZve+gonUpZjnRWXewTTWm6jvc7lMQqFA1PD13pOGKYNKD/WxtaMXPWmvN+5WVwScH7ueEeppA1/aFwsMGnDBUU/+B04WxuQxo+M4b15vIq5GxI5Qvulv1taRdA5oiI10K+9UJAm+dz/2c2ZqEIiu+QTj9gvgbJsrIWMe0Wu5qmNTj/V97furJlcVaVvJvUy0N8zrqb7unAptjL0bQUvIB0ZXVgNbGEZLmAbpQhNgpIJ0ft6LiqvIzkrRYR+sIVr+mJrCoYxhyxB8cqsHJT2w=="; + session_key="Piqc8iFe6pN0i5ofq4Y6PA=="; + iv="Y37DfoP3+4ysUBo8YOnfiQ=="; + System.out.println("session_key======"+session_key+"openid===="+openid); + System.out.println("code****"+code+"encryptedData**************"+encryptedData+"iv**********"+iv); + //对encryptedData加密数据进行AES解密 try { - String result = AesCbcUtil.decrypt(encryptedData, session_key, iv, "UTF-8"); + String result = WXBizDataCrypt.getInstance().decrypt(encryptedData, session_key, iv, "utf-8"); + System.out.println("AES解密值==="+result); + //String result = AesCbcUtil.decrypt2(session_key,encryptedData, iv); + //String result = AesCbcUtil.decrypt(encryptedData, session_key, iv, "UTF-8"); if (null != result && result.length() > 0) { map.put("status", 1); map.put("msg", "解密成功"); + JSONObject userInfoJSON = JSONObject.parseObject(result); //JSONObject userInfoJSON = JSON.parseObject(result); - cn.hutool.json.JSONObject userInfoJSON = new cn.hutool.json.JSONObject(result); + //cn.hutool.json.JSONObject userInfoJSON = new cn.hutool.json.JSONObject(result); + System.out.println("userInfoJSON===="+userInfoJSON); Map userInfo = new HashMap(); userInfo.put("openId", userInfoJSON.get("openId")); userInfo.put("nickName", userInfoJSON.get("nickName")); @@ -376,10 +382,10 @@ public class UserLoginServiceImpl extends ServiceImpl e.printStackTrace(); } - System.out.println("map===================="+map.get("unionId")); + System.out.println("map===================="+map.get("userInfo")); - return null; - }*/ + return map; + } /* @Override public String wxAuthLogin(String encryptedData, String iv,String code) { @@ -420,7 +426,7 @@ public class UserLoginServiceImpl extends ServiceImpl return result.toString(); }*/ - @Override +/* @Override public String wxAuthLogin(String encryptedData, String iv,String code) { System.out.println(code); System.out.println("来了小程序登录------------------------------------"); @@ -436,6 +442,143 @@ public class UserLoginServiceImpl extends ServiceImpl System.out.println("小程序登录openId============="+openId+"unionId=============="+unionId+"baseMap============"+baseMap); return unionId; + }*/ +/* + *//** + * 1 先按照loginInfo信息查询有无有unionID + * 2 如果有,直接返回 ,程序结束 + * 3 如果没有,将用于解密的session_key获取 + * 4 根据userInfo拿取encryptedData等加密数据 + * 5 对加密数据进行逆解密 + * 6 拿到unionID 返回,程序结 + * + * userInfo TODO 注意一下:通过user.getInfo获取的和通过button授权获取的格式不一样 + * + *//* + @Override + public ResponseResult getUnionID(Long platformId, String userInfo, String loginInfo, HttpServletRequest request) { + + Map resLogign = null; + JSONObject resUserInfo = null; + + System.out.println("--------------->>>>>进入WeChatServiceImpl"); + resLogign = getUnionIDByLoginInfo(loginInfo, request); + // 加密session_key 解密需要 + String session_key = resLogign.get("session_key"); + if (StringUtils.isNotBlank(resLogign.get("unionid"))) { + System.out.println("返回数据,获取unionid,程序结束<<<------unionid={}"+resLogign.get("unionid")); + return ResponseResult.SUCCESS("获取unionid成功,返回数据!"+resLogign); + } else { + System.out.println("没有获取到unionid,userinfo进行对称解密操作start----->"); + + resUserInfo = decipherByUserInfo(session_key, userInfo, request); + if (resUserInfo != null && StringUtils.isNotEmpty(resUserInfo.toJSONString())) { + System.out.println("解密后的信息为resUserInfo:{}"+resUserInfo.toJSONString()); + // 解密信息由 data.get("unionid") 获取 + return ResponseResult.SUCCESS("获取解密信息成功"+resUserInfo); + } + } + return null; + } + *//** + * + * @param session_key + * @param userInfo + * @param request + * @return + *//* + private JSONObject decipherByUserInfo(String session_key, String userInfo, HttpServletRequest request) { + + System.out.println("--------------->>>>>进入 decipherByUserInfo"); + Map resUserInfo = new HashMap<>(); + + if (!userInfo.contains("login:ok")&&!userInfo.contains("getUserInfo:ok")) { + return null; + } + JSONObject jsonUserInfo = JSONObject.parseObject(userInfo); + System.out.println("将userInfo转换成JSON,userInfo:{}"+jsonUserInfo.toJSONString()); + String encryptedData = ""; + String iv = ""; + if (jsonUserInfo.get("detail") != null && StringUtils.isNotBlank(jsonUserInfo.get("detail").toString())) { + String detail = jsonUserInfo.get("detail").toString(); + + JSONObject parseObject = JSONObject.parseObject(detail); + encryptedData = (String) parseObject.get("encryptedData"); + iv = (String) parseObject.get("iv"); + } else { + encryptedData = (String) jsonUserInfo.get("encryptedData"); + iv = (String) jsonUserInfo.get("iv"); + } + System.out.println("获取解密数据解密start------------>>>解密需要的数据为:encryptedData:{},iv:{},session_key:{}"+"encryptedData===="+encryptedData+"iv===="+iv+"session_key===="+session_key); + // 被加密的数据 + byte[] dataByte = Base64.decodeBase64(encryptedData); + // 加密秘钥 + byte[] aeskey = Base64.decodeBase64(session_key); + // 偏移量 + byte[] ivByte = Base64.decodeBase64(iv); + System.out.println("对加密数据进行Base64编码完毕------------>>>dataByte:{},aeskey:{},ivByte:{}"+dataByte.toString()+aeskey.toString()+ivByte.toString()); + String newuserInfo = ""; + try { + AES aes = new AES(); + byte[] resultByte = aes.decrypt(dataByte, aeskey, ivByte); + if (null != resultByte && resultByte.length > 0) { + newuserInfo = new String(resultByte, "UTF-8"); + System.out.println("解密完毕,解密结果为newuserInfo:{}"+newuserInfo); + return JSONObject.parseObject(newuserInfo); + } + } catch (Exception e) { + System.out.println("解密异常!检查解密数据 {}"+newuserInfo+e); + e.printStackTrace(); + } + return null; } -} + *//** + * 根据logininfo 的code尝试获取unionID + * + * @param loginInfo + * @param request + * @return + *//* + private Map getUnionIDByLoginInfo(String loginInfo, HttpServletRequest request) { + JSONObject loginRes = null; + Map loginReq = new HashMap<>(); + Map loginResMap = new HashMap<>(); + + System.out.println("--------------->>>>>进入 getUnionIDByLoginInfo"); + + JSONObject loginMap = JSONObject.parseObject(loginInfo); + System.out.println("转换JSON完毕"); + + System.out.println("组装请求数据----start:"); + String resCode = (String) loginMap.get("code"); + loginReq.put("js_code", resCode); + loginReq.put("appid", weChatConfig.getXcxAppid()); // 这几个变量是自己去获取的 我做成了配置文件中 + loginReq.put("secret", weChatConfig.getXcxAppsecret()); // 去这个网址看参数说明: https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobject + loginReq.put("grant_type", "authorization_code"); + System.out.println("组装请求参数完毕loginReq={}"+loginReq); + try { + + System.out.println("开始发送请求到微信...url={}"+weChatConfig.getWX_AUTH_URL()); + + loginRes = HttpClientUtils.doGet(SysConstants.WEICHAT_UNIONID_URL, loginReq); + } catch (Exception e) { + System.out.println("调用httpClient异常!异常信息={}"+e); + throw new RuntimeException(e); + } + String openid = (String) loginRes.get("openid"); + String session_key = (String) loginRes.get("session_key"); + String unionid = (String) loginRes.get("unionid"); + loginResMap.put("openid", openid); + loginResMap.put("unionid", unionid); + loginResMap.put("session_key", session_key); + System.out.println("https返回数据loginRes={}"+loginRes.toJSONString()); + // 微信建议不要在传输中有session_key,我们在这里做一个缓存数据key=session_key_safe,value="真实的session_key+真实的openid" + // TODO + // 时间问题,这里暂不处理 + // loginResMap.put("session_key", "session_key_safe"); + + return loginResMap; + }*/ + + } diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java index d1642a07..40a0d3f4 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java @@ -146,7 +146,8 @@ public class UserServiceImpl extends ServiceImpl imple return false; } String openId = (String) baseMap.get("openid"); - log.info(openId+"--------------------------------------------------------------------------------------------------"); + String unionId = (String) baseMap.get("unionid"); + log.info("openId========="+openId+"unionId===="+unionId); String md5OpenId = Md5Util.md5(openId); Integer countWeChatId = this.getBaseMapper().countWeChatId(md5OpenId); String token = this.getBaseMapper().getTokenByUserId(Long.parseLong(state)); diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AES.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AES.java new file mode 100644 index 00000000..75bc2081 --- /dev/null +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AES.java @@ -0,0 +1,73 @@ +package com.daqing.financial.hrauth.util; + +import java.security.AlgorithmParameters; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.Key; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.security.Security; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +import org.bouncycastle.jce.provider.BouncyCastleProvider; + +public class AES { + public static boolean initialized = false; + + /** + * AES对称解密工具类 + * + * @param content + * 密文 + * @return + * @throws InvalidAlgorithmParameterException + * @throws NoSuchProviderException + */ + public byte[] decrypt(byte[] content, byte[] keyByte, byte[] ivByte) throws InvalidAlgorithmParameterException { + initialize(); + try { + // java是没有 + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding"); + Key sKeySpec = new SecretKeySpec(keyByte, "AES"); + + cipher.init(Cipher.DECRYPT_MODE, sKeySpec, generateIV(ivByte));// 初始化 + byte[] result = cipher.doFinal(content); + return result; + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } catch (NoSuchProviderException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static void initialize() { + if (initialized) + return; + Security.addProvider(new BouncyCastleProvider()); + initialized = true; + } + + // 生成iv + public static AlgorithmParameters generateIV(byte[] iv) throws Exception { + AlgorithmParameters params = AlgorithmParameters.getInstance("AES"); + params.init(new IvParameterSpec(iv)); + return params; + } +} \ No newline at end of file diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AesCbcUtil.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AesCbcUtil.java index 7dc84c7c..c8314a61 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AesCbcUtil.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/AesCbcUtil.java @@ -3,15 +3,14 @@ package com.daqing.financial.hrauth.util; import org.apache.commons.codec.binary.Base64; import org.bouncycastle.jce.provider.BouncyCastleProvider; -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; +import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.security.*; import java.security.spec.InvalidParameterSpecException; +import java.util.Arrays; /** * Created by yfs on 2018/3/25. @@ -52,7 +51,6 @@ public class AesCbcUtil { try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding"); - //Cipher cipher = Cipher.getInstance("AES/ECB/ZeroBytePadding"); SecretKeySpec spec = new SecretKeySpec(keyByte, "AES"); @@ -60,7 +58,6 @@ public class AesCbcUtil { parameters.init(new IvParameterSpec(ivByte)); cipher.init(Cipher.DECRYPT_MODE, spec, parameters);// 初始化 - //cipher.init(Cipher.ENCRYPT_MODE,key,new IvParameterSpec( java.util.Base64.Decoder.decode(IV.getBytes("UTF-8")))); byte[] resultByte = cipher.doFinal(dataByte); if (null != resultByte && resultByte.length > 0) { @@ -89,4 +86,86 @@ public class AesCbcUtil { return null; } + /** + * AES解密 + * + * @param encryptedData 消息密文 + * @param ivStr iv字符串 + */ + public static byte[] decrypt2(String sessionKey, String encryptedData, String ivStr) { + try { + AlgorithmParameters params = AlgorithmParameters.getInstance("AES"); + params.init(new IvParameterSpec(Base64.decodeBase64(ivStr))); + + Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); + cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(Base64.decodeBase64(sessionKey), "AES"), params); + + String encodingFormat = "UTF-8"; + byte[] resultByte = cipher.doFinal(Base64.decodeBase64(encryptedData)); + return resultByte; +/* System.out.println("resultByte===="+resultByte); + if (null != resultByte && resultByte.length > 0) { + String result = new String(resultByte, encodingFormat); + return result; + } + return null;*/ + //return new String(PKCS7Encoder.decode(cipher.doFinal(Base64.decodeBase64(encryptedData))), StandardCharsets.UTF_8); + } catch (Exception e) { + throw new RuntimeException("AES解密失败", e); + } + } + + + public static String decryptNew(String encryptedData, String sessionKey, String iv) throws Exception { + String result = ""; + // 被加密的数据 + byte[] dataByte = Base64.decodeBase64(encryptedData); + // 加密秘钥 + byte[] keyByte = Base64.decodeBase64(sessionKey); + // 偏移量 + byte[] ivByte = Base64.decodeBase64(iv); + try { + // 如果密钥不足16位,那么就补足. 这个if 中的内容很重要 + int base = 16; + if (keyByte.length % base != 0) { + int groups = keyByte.length / base + (keyByte.length % base != 0 ? 1 : 0); + byte[] temp = new byte[groups * base]; + Arrays.fill(temp, (byte) 0); + System.arraycopy(keyByte, 0, temp, 0, keyByte.length); + keyByte = temp; + } + // 初始化 + Security.addProvider(new BouncyCastleProvider()); + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC"); + SecretKeySpec spec = new SecretKeySpec(keyByte, "AES"); + AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES"); + parameters.init(new IvParameterSpec(ivByte)); + // 初始化 + cipher.init(Cipher.DECRYPT_MODE, spec, parameters); + byte[] resultByte = cipher.doFinal(dataByte); + if (null != resultByte && resultByte.length > 0) { + result = new String(resultByte, "UTF-8"); + } + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidParameterSpecException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (InvalidAlgorithmParameterException e) { + e.printStackTrace(); + } catch (NoSuchProviderException e) { + e.printStackTrace(); + } + return result; + } + } \ No newline at end of file diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/PKCS7Encoder.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/PKCS7Encoder.java new file mode 100644 index 00000000..967ee59d --- /dev/null +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/PKCS7Encoder.java @@ -0,0 +1,65 @@ +package com.daqing.financial.hrauth.util; +/** + * 对公众平台发送给公众账号的消息加解密示例代码. + * + * @copyright Copyright (c) 1998-2014 Tencent Inc. + */ + +import java.nio.charset.Charset; +import java.util.Arrays; + +/** + * 提供基于PKCS7算法的加解 + */ +public class PKCS7Encoder { + + private static final Charset CHARSET = Charset.forName("utf-8"); + private static final int BLOCK_SIZE = 32; + + /** + * 获得对明文进行补位填充的字节. + * + * @param count 需要进行填充补位操作的明文字节个数 + * @return 补齐用的字节数组 + */ + public static byte[] encode(int count) { + // 计算需要填充的位数 + int amountToPad = BLOCK_SIZE - (count % BLOCK_SIZE); + if (amountToPad == 0) { + amountToPad = BLOCK_SIZE; + } + // 获得补位所用的字符 + char padChr = chr(amountToPad); + String tmp = new String(); + for (int index = 0; index < amountToPad; index++) { + tmp += padChr; + } + return tmp.getBytes(CHARSET); + } + + /** + * 删除解密后明文的补位字符 + * + * @param decrypted 解密后的明文 + * @return 删除补位字符后的明文 + */ + public static byte[] decode(byte[] decrypted) { + int pad = decrypted[decrypted.length - 1]; + if (pad < 1 || pad > 32) { + pad = 0; + } + return Arrays.copyOfRange(decrypted, 0, decrypted.length - pad); + } + + /** + * 将数字转化成ASCII码对应的字符,用于对明文进行补码 + * + * @param a 需要转化的数字 + * @return 转化得到的字符 + */ + public static char chr(int a) { + byte target = (byte) (a & 0xFF); + return (char) target; + } + +} \ No newline at end of file diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/TestUtil.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/TestUtil.java new file mode 100644 index 00000000..b6093000 --- /dev/null +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/TestUtil.java @@ -0,0 +1,198 @@ +package com.daqing.financial.hrauth.util; + +import com.google.common.primitives.Bytes; +import org.apache.commons.codec.binary.Base64; + +import java.io.UnsupportedEncodingException; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.KeyGenerator; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.spec.SecretKeySpec; + +public class TestUtil { + /** + * 加密 + * + * @param content + * 需要加密的内容 + * @param password + * 加密密码 + * @return + */ + public static byte[] encrypt(String content, String password) { + try { + KeyGenerator kgen = KeyGenerator.getInstance("AES"); + kgen.init(128, new SecureRandom(password.getBytes())); + SecretKey secretKey = kgen.generateKey(); + byte[] enCodeFormat = secretKey.getEncoded(); + SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); + Cipher cipher = Cipher.getInstance("AES");// 创建密码器 + byte[] byteContent = content.getBytes("utf-8"); + cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化 + byte[] result = cipher.doFinal(byteContent); + return result; // 加密 + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + return null; + } + + /** + * 解密 + * + * @param content + * 待解密内容 + * @param password + * 解密密钥 + * @return + */ + public static byte[] decrypt(byte[] content, String password) { + try { + KeyGenerator kgen = KeyGenerator.getInstance("AES"); + kgen.init(128, new SecureRandom(password.getBytes())); + SecretKey secretKey = kgen.generateKey(); + byte[] enCodeFormat = secretKey.getEncoded(); + SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); + Cipher cipher = Cipher.getInstance("AES");// 创建密码器 + cipher.init(Cipher.DECRYPT_MODE, key);// 初始化 + byte[] result = cipher.doFinal(content); + return result; // 加密 + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + return null; + } + + /** + * 将二进制转换成16进制 + * + * @param buf + * @return + */ + public static String parseByte2HexStr(byte buf[]) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < buf.length; i++) { + String hex = Integer.toHexString(buf[i] & 0xFF); + if (hex.length() == 1) { + hex = '0' + hex; + } + sb.append(hex.toUpperCase()); + } + return sb.toString(); + } + + /** + * 将16进制转换为二进制 + * + * @param hexStr + * @return + */ + public static byte[] parseHexStr2Byte(String hexStr) { + if (hexStr.length() < 1) + return null; + byte[] result = new byte[hexStr.length() / 2]; + for (int i = 0; i < hexStr.length() / 2; i++) { + int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16); + int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16); + result[i] = (byte) (high * 16 + low); + } + return result; + } + + /** + * 加密 + * + * @param content + * 需要加密的内容 + * @param password + * 加密密码 + * @return + */ + public static byte[] encrypt2(String content, String password) { + try { + SecretKeySpec key = new SecretKeySpec(password.getBytes(), "AES"); + Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding"); + byte[] byteContent = content.getBytes("utf-8"); + cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化 + byte[] result = cipher.doFinal(byteContent); + return result; // 加密 + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws UnsupportedEncodingException, InvalidAlgorithmParameterException { + String encryptedData="+WQuaG5Tr9EU6f+Cx7OR7O8/HbVAUK77P9/BRqhdA4qYKLcw0sbS1R5DfoU+D4HEpoUCXtmRH/gP" + + "eJqYFJpauBysbadiYrZ6wYWjp5wP+HgxWnfCOk7jwR8WUdvFFDuQMhAVudnFhhNP3g4iHfCeiU5yfmN4iw" + + "gpL4txJpuZDHhyjqBqGGxntyxgxHFonbFi94e+IaPrFqigvqJXI9RGW9eXUVhZEQGeadv+eW72ucPq90KGH" + + "wPj0uUMWRWPJC8ZWp+uRUbrENiKfo9QJqiMljq/wcbz4c/u/Wd7PF4o4s02uutMjsrpYdnpw20E7DDpUIBU" + + "fIkeDmIFOIEQYPAGbTFtbHwPyyrx/r+fSihmO6PRwAlUrfhCOZ3KNkmtqZPDjqfHGrW+MeiquW5vryXL8FWy++z" + + "OVdGzymGvW6E/hSVDoTNL4+zeuxhJAXCnuPjLtYeL0EkGam8ks0KDqhZy3gUwRwrM0HFzQ1IryTMsqeLCcLMm" + + "0vWG4PEuPv5j5+V66MTGYvyyM2v67zK7Z2cn2A=="; + String iv="zI+P8RVxEwMFBXcJDCemHg=="; + String session_key="Piqc8iFe6pN0i5ofq4Y6PA=="; + + String content = encryptedData; + String password = ""; + // 加密 + System.out.println("加密前:" + content); + byte[] encode = encrypt(content, password); + + //传输过程,不转成16进制的字符串,就等着程序崩溃掉吧 + String code = parseByte2HexStr(encode); + System.out.println("密文字符串:" + code); + byte[] decode = parseHexStr2Byte(code); + // 解密 + byte[] decryptResult = decrypt(decode, password); + System.out.println("decryptResult==="+decryptResult); + System.out.println("解密后:" + new String(decryptResult, "UTF-8")); //不转码会乱码 + System.out.println("========================================================="); + + byte[] dataByte = Base64.decodeBase64(session_key); + //byte[] d = TestUtil.parseHexStr2Byte(encryptedData); + byte[] dr = decrypt(dataByte, ""); + //String re = new String(dr, "UTF-8"); + //System.out.println("result====="+re); + + + + + } +} \ No newline at end of file diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/WXBizDataCrypt.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/WXBizDataCrypt.java new file mode 100644 index 00000000..db419bdc --- /dev/null +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/util/WXBizDataCrypt.java @@ -0,0 +1,115 @@ +package com.daqing.financial.hrauth.util; +import javax.crypto.Cipher; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +import sun.misc.BASE64Decoder; +import com.alibaba.fastjson.JSONObject; + +/** + * 对微信小程序用户加密数据的解密示例代码. + * + * @ClassName WXBizDataCrypt + * @Description TODO(这里用一句话描述这个类的作用) + * @author tf + * @Date 2016年11月19日 下午2:56:36 + * @version 1.0.0 + */ +@SuppressWarnings("restriction") +public class WXBizDataCrypt { + /* + * 加密用的Key 可以用26个字母和数字组成 此处使用AES-128-CBC加密模式,key需要为16位。 + */ + private static WXBizDataCrypt instance = null; + + private WXBizDataCrypt() { + + } + + public static WXBizDataCrypt getInstance() { + if (instance == null) + instance = new WXBizDataCrypt(); + return instance; + } + + /** + * 对于官方加密数据(encryptData)解密说明如下: 加密数据解密算法 接口如果涉及敏感数据(如wx.getUserInfo当中的 + * openId 和unionId ),接口的明文内容将不包含这些敏感数据。开发者如需要获取敏感数据,需要对接口返回的加密数据( + * encryptedData )进行对称解密。 解密算法如下: 对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。 + * 对称解密的目标密文为 Base64_Decode(encryptedData), 对称解密秘钥 aeskey = + * Base64_Decode(session_key), aeskey 是16字节 对称解密算法初始向量 iv 会在数据接口中返回。 + * + * @Description (TODO这里用一句话描述这个方法的作用) + * @param encryptedData + * 加密内容 + * @param sessionKey + * 小程序登录sessionKey + * @param iv + * 解密算法初始向量 iv 会在数据接口中返回。 + * @param encodingFormat + * 编码格式默认UTF-8 + * @return 返回解密后的字符串 + * @throws Exception + */ + public String decrypt(String encryptedData, String sessionKey, String iv, String encodingFormat) throws Exception { + try { + Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); + BASE64Decoder base64Decoder = new BASE64Decoder(); + byte[] _encryptedData = base64Decoder.decodeBuffer(encryptedData); + byte[] _sessionKey = base64Decoder.decodeBuffer(sessionKey); + byte[] _iv = base64Decoder.decodeBuffer(iv); + SecretKeySpec secretKeySpec = new SecretKeySpec(_sessionKey, "AES"); + IvParameterSpec ivParameterSpec = new IvParameterSpec(_iv); + cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec); + byte[] original = cipher.doFinal(_encryptedData); + byte[] bytes = PKCS7Encoder.decode(original); + String originalString = new String(bytes, "ISO-8859-1"); + return originalString; + } catch (Exception ex) { + return null; + } + } + + public static void main(String[] args) throws Exception { + // 需要加密的字串 + // String appid = "wx4f4bc4dec97d474b"; +/* String sessionKey = "tiihtNczf5v6AKRyjwEUhQ=="; + + String encryptedData = "CiyLU1Aw2KjvrjMdj8YKliAjtP4gsMZM" + "QmRzooG2xrDcvSnxIMXFufNstNGTyaGS" + + "9uT5geRa0W4oTOb1WT7fJlAC+oNPdbB+" + "3hVbJSRgv+4lGOETKUQz6OYStslQ142d" + + "NCuabNPGBzlooOmB231qMM85d2/fV6Ch" + "evvXvQP8Hkue1poOFtnEtpyxVLW1zAo6" + + "/1Xx1COxFvrc2d7UL/lmHInNlxuacJXw" + "u0fjpXfz/YqYzBIBzD6WUfTIF9GRHpOn" + + "/Hz7saL8xz+W//FRAUid1OksQaQx4CMs" + "8LOddcQhULW4ucetDf96JcR3g0gfRK4P" + + "C7E/r7Z6xNrXd2UIeorGj5Ef7b1pJAYB" + "6Y5anaHqZ9J6nKEBvB4DnNLIVWSgARns" + + "/8wR2SiRS7MNACwTyrGvt9ts8p12PKFd" + "lqYTopNHR1Vf7XjfhQlVsAJdNiKdYmYV" + + "oKlaRv85IfVunYzO0IKXsyl7JCUjCpoG" + "20f0a04COwfneQAGGwd5oa+T8yO5hzuy" + "Db/XcxxmK01EpqOyuxINew=="; + + String iv = "r7BXXKkLb8qrSNn05n0qiA==";*/ + +/* String encryptedData="+WQuaG5Tr9EU6f+Cx7OR7O8/HbVAUK77P9/BRqhdA4qYKLcw0sbS1R5DfoU+D4HEpoUCXtmRH/gP" + + "eJqYFJpauBysbadiYrZ6wYWjp5wP+HgxWnfCOk7jwR8WUdvFFDuQMhAVudnFhhNP3g4iHfCeiU5yfmN4iw" + + "gpL4txJpuZDHhyjqBqGGxntyxgxHFonbFi94e+IaPrFqigvqJXI9RGW9eXUVhZEQGeadv+eW72ucPq90KGH" + + "wPj0uUMWRWPJC8ZWp+uRUbrENiKfo9QJqiMljq/wcbz4c/u/Wd7PF4o4s02uutMjsrpYdnpw20E7DDpUIBU" + + "fIkeDmIFOIEQYPAGbTFtbHwPyyrx/r+fSihmO6PRwAlUrfhCOZ3KNkmtqZPDjqfHGrW+MeiquW5vryXL8FWy++z" + + "OVdGzymGvW6E/hSVDoTNL4+zeuxhJAXCnuPjLtYeL0EkGam8ks0KDqhZy3gUwRwrM0HFzQ1IryTMsqeLCcLMm" + + "0vWG4PEuPv5j5+V66MTGYvyyM2v67zK7Z2cn2A=="; + String iv="zI+P8RVxEwMFBXcJDCemHg=="; + String sessionKey="Piqc8iFe6pN0i5ofq4Y6PA==";*/ + + String iv="Y37DfoP3+4ysUBo8YOnfiQ=="; + String sessionKey="Piqc8iFe6pN0i5ofq4Y6PA=="; + String encryptedData="V6E2hVgfhatfPt/octP4c6881lJ1GCsYqtzY9MzqlWTpthAw5uWJLpRoXtmO5oM7XSHS6xKqh8YVzhKmrfzbb66574fbfE7n5ADSJYlsJwem1ifm3sypW9Ys3GSBwHaQ/x+Sn3rfs+HKMJgegGn+b3R5X7eXFhrA6lFnd+/xpYB4VWztFMsIyVT85Mlv5G3vp1FryctiGjWTFDDh1kAFXQ31Cso91SuAW2muSUaHh32pJ+WBrpZ7wrEZyyuqMqA0UpZve+gonUpZjnRWXewTTWm6jvc7lMQqFA1PD13pOGKYNKD/WxtaMXPWmvN+5WVwScH7ueEeppA1/aFwsMGnDBUU/+B04WxuQxo+M4b15vIq5GxI5Qvulv1taRdA5oiI10K+9UJAm+dz/2c2ZqEIiu+QTj9gvgbJsrIWMe0Wu5qmNTj/V97furJlcVaVvJvUy0N8zrqb7unAptjL0bQUvIB0ZXVgNbGEZLmAbpQhNgpIJ0ft6LiqvIzkrRYR+sIVr+mJrCoYxhyxB8cqsHJT2w=="; + +/* String iv="sAUv8qjwP8j/Ql9KLgA4iQ=="; + String sessionKey="H5lUk3IPIIENRdLxzLi2Hg=="; + String encryptedData="QygyXroVw0DNuwO4mlZDBX9wy8XYYE+AA0D738aAKe4icD9UPhtFywJ49UbmT7syv+fb4cn+3ao/w0aQCceh/dEsUhdSWsqAQZtaaXGeCHzi1iGdznIVD06ZYUdgZrJ7rY8Ie9w5/SYVSdSn5pyGovNCohUW4fp2CVowzwrRydsngDDWYjutkSfdvKgT19sCwuOOqZTzDM3gRqIUxwfrjKaDaoCPfa6z+otC0F/BtZYiiqd3MQIMJ0+JSll3ZVrpQKitBhc1EydxN3WSayxhYc4fiEa0YHoXaci0C/6bAfedgGQhejK6hSPLXr/TC++I0lfWnCS/2aidIsifLfyNg2/84yc5mWY5snoc9QeyAoXHczL62n1RwGBetE1Sq7q/sRn9XOFvM0kJ6UOS0n3FvMrH7716hBjUIP/lIf7hAH2IBbnPWyk5iKrMYt/T1Ky5e+RjBwnqJCyYTAxrvEczj2IQPwpGS3B3KWNTGGaK42Sf07w6ID37J3bWsPDAllZUSDhm67vmUjH8AyPTPsGPOg=="; + */ + +/* String iv="amXf/b7Ollz6WV6e9ZCosg=="; + String sessionKey="H8d5dQnmec8Wtm1Ac1IaxQ=="; + String encryptedData="/xY631in/VQwauJfAsB9gGH8XpFAzZUprSYBoZzfbDbx60xsBpaikxnn1K+00MMzZ9hAVV4RRKRp+4qaoj+iSuJArgKlZByXaPQa4TxV7JGEuAA2qByTNHK/H2hrFdAxEDERwk7DjYqq1OhMO5n4pTRPxVUZ5ovKm81oOxVw77TjfkkQlgd2Uab/Oe7eM59HkoDQQDC9H2f4q7KmX7sHUuUWmMhEa8+rsJBMy2CWfTvfJpKE9BqNuNOHrXILMpvNm4vKcsc5DB6QzjbwJq8BLCLbmcE3Fa4ZQzcVW2Zi5lT0sOMX/kytgaceo/Rw3VpLkBwwRTsZDB7p+KRUbJYG7f3iSMWYveH09vL8dU+s9ZRO1FCgkyOj5jcpRAKEUAT2njdK4ozXYu+/qMUPeCp00G1NNlDq7gvBnhzYbQzg4+InTmENDYlckAIktBxa3ENWpDjiYWHBSHwbA/gJpAKoZz/oNUrBnPIH91UqRjGQXhdVnBQxeyMcnPuVrk3D51r5Ki3aAuwvB1l6+TWA//RcjTfSQtQnJ/yFctMmk3A7OGo="; + */String deString = WXBizDataCrypt.getInstance().decrypt(encryptedData, sessionKey, iv, "utf-8"); + JSONObject jsonObject = JSONObject.parseObject(deString); + System.out.println(jsonObject); + } +} \ No newline at end of file diff --git a/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/DqFinancialHrmsAuthApplicationTests.java b/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/DqFinancialHrmsAuthApplicationTests.java index 23d264aa..d7e65c5a 100644 --- a/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/DqFinancialHrmsAuthApplicationTests.java +++ b/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/DqFinancialHrmsAuthApplicationTests.java @@ -1,34 +1,132 @@ package com.daqing.financial.hrauth; import com.daqing.financial.hrauth.util.AesCbcUtil; -import org.junit.Test; -import org.springframework.boot.test.context.SpringBootTest; +import io.swagger.models.auth.In; -/*@SpringBootTest -class DqFinancialHrmsAuthApplicationTests { +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.util.*; +import java.util.regex.Pattern; +import java.util.stream.Stream; - @Test - void contextLoads() throws Exception { - - String encryptedData="m7CF698f222KiEse8aFLIwSiXjxojbFesVpHltvrKPqKH3OclT7Qc+UhOw+MbxRAOSKgMb+erVYXYcrPwQ6TSF4VBt9Lzv0GdxJf82876SgANFURjVZBXKSwp0snxw/9wdfTGV2t7nIbpbUfBFD0QEi4rrsD8hZdPr4s/WLtHcpcvRkJvb3KDRw+PsnTyBtFOnXnv5sOJW84uy9OGuTTV8s0miqZCy//xZU2DJ3EZsg3Rp9E5xe0jMLtLOfvQEf5tM/pPw9hCkWbbBJEBSUn5IkSgkt3jAasjoWOSuDzw+MAJvnT7byJ7bvOSbEY14RAZzX6sZYw8Rd/n9fOssZivfF+F2HIfHhWuBNcGhNYTIYXtJsvmhtT5Wo4mMnq0j/TElZOoAjc385xkluHNRB/T+PVo+FEkRZgiugAOzOPn24WjZU7nbPrtoEYH5Bcdfcf3quP4hQAIQd6EvkfdnRti+Mfn925llWSS+fa+AV3hx0mwtFkk1VFMBuLPjL2nvvvUl4NkoMVzw0NRGPpeiS+DA=="; - String iv="jh3Io5uYeMSbU903QXpewA=="; - String session_key="LKv54UbAoCTx4yz5mi6S1A=="; +class DqFinancialHrmsAuthApplicationTests{ + public static void main(String[] args) throws Exception { + String encryptedData="+WQuaG5Tr9EU6f+Cx7OR7O8/HbVAUK77P9/BRqhdA4qYKLcw0sbS1R5DfoU+D4HEpoUCXtmRH/gPeJqYFJpauBysbadiYrZ6wYWjp5wP+HgxWnfCOk7jwR8WUdvFFDuQMhAVudnFhhNP3g4iHfCeiU5yfmN4iwgpL4txJpuZDHhyjqBqGGxntyxgxHFonbFi94e+IaPrFqigvqJXI9RGW9eXUVhZEQGeadv+eW72ucPq90KGHwPj0uUMWRWPJC8ZWp+uRUbrENiKfo9QJqiMljq/wcbz4c/u/Wd7PF4o4s02uutMjsrpYdnpw20E7DDpUIBUfIkeDmIFOIEQYPAGbTFtbHwPyyrx/r+fSihmO6PRwAlUrfhCOZ3KNkmtqZPDjqfHGrW+MeiquW5vryXL8FWy++zOVdGzymGvW6E/hSVDoTNL4+zeuxhJAXCnuPjLtYeL0EkGam8ks0KDqhZy3gUwRwrM0HFzQ1IryTMsqeLCcLMm0vWG4PEuPv5j5+V66MTGYvyyM2v67zK7Z2cn2A=="; + String iv="zI+P8RVxEwMFBXcJDCemHg=="; + String session_key="Piqc8iFe6pN0i5ofq4Y6PA=="; - String result = AesCbcUtil.decrypt(encryptedData, session_key, iv, "UTF-8"); +/* String result = AesCbcUtil.decrypt2(session_key,encryptedData,iv); + String s2 = new String(result.getBytes("UTF-8"),"GBK"); System.out.println(result); + System.out.println(s2);*/ } -}*/ +/* public static void main(String[] args) { + //=================================流的常用创建方法======================================= + //1,使用Collection下的stream()和parallelStream()操作 + List list = new ArrayList(); + Stream stream = list.stream();//获取一个顺序流 + Stream parallelStream = list.parallelStream();//获取一个并行流 -class DqFinancialHrmsAuthApplicationTests{ - public static void main(String[] args) throws Exception { - String encryptedData="m7CF698f222KiEse8aFLIwSiXjxojbFesVpHltvrKPqKH3OclT7Qc+UhOw+MbxRAOSKgMb+erVYXYcrPwQ6TSF4VBt9Lzv0GdxJf82876SgANFURjVZBXKSwp0snxw/9wdfTGV2t7nIbpbUfBFD0QEi4rrsD8hZdPr4s/WLtHcpcvRkJvb3KDRw+PsnTyBtFOnXnv5sOJW84uy9OGuTTV8s0miqZCy//xZU2DJ3EZsg3Rp9E5xe0jMLtLOfvQEf5tM/pPw9hCkWbbBJEBSUn5IkSgkt3jAasjoWOSuDzw+MAJvnT7byJ7bvOSbEY14RAZzX6sZYw8Rd/n9fOssZivfF+F2HIfHhWuBNcGhNYTIYXtJsvmhtT5Wo4mMnq0j/TElZOoAjc385xkluHNRB/T+PVo+FEkRZgiugAOzOPn24WjZU7nbPrtoEYH5Bcdfcf3quP4hQAIQd6EvkfdnRti+Mfn925llWSS+fa+AV3hx0mwtFkk1VFMBuLPjL2nvvvUl4NkoMVzw0NRGPpeiS+DA=="; - String iv="jh3Io5uYeMSbU903QXpewA=="; - String session_key="LKv54UbAoCTx4yz5mi6S1A=="; + //2,使用Arrays中的stream()方法,将数组转成流 + Integer[]num = new Integer[10]; + Stream stream1 = Arrays.stream(num); + //System.out.println("stream1==="+stream1); + //3,使用Stream中的静态方法:如of(),iterate(),generate() + Streamstream2 = Stream.of(1,2,3,4,5,6); + //stream2.forEach(System.out::println); + //stream2.forEach((t)->System.out.println(t));每次创建的stream只能使用一次,否则报错stream has already been operated upon or closed - String result = AesCbcUtil.decrypt(encryptedData, session_key, iv, "UTF-8"); - System.out.println(result); - } + Streamstream3 = Stream.iterate(0,(x)->x+2).limit(8); + //stream3.forEach(System.out::println); + + Streamstream4 = Stream.generate(Math::random).limit(2); +// stream4.forEach((t)->System.out.println(t)); + + //4,使用BufferedReader.lines()方法,将每行内容转成流 + BufferedReader reader=null; + try { + reader = new BufferedReader(new FileReader("D:\\myfile\\工作文档.txt")); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + StreamlineStream = reader.lines(); + //lineStream.forEach(System.out::println); + + //5,使用Pattern.splitAsStream()方法,将字符串分隔成流 + Pattern pattern = Pattern.compile(","); + Stream stream5 = pattern.splitAsStream("漆柒,菜园子"); +// stream5.forEach(System.out::println); + + //=================================流的中间操作======================================== + //1,筛选与切片 + Stream stream6 = Stream.of(6, 4, 6, 7, 3, 9, 8, 10, 12, 14, 14, 20, 3); + Stream newStream = stream6.filter(t -> t>5)//6, 6, 7, 9, 8, 10, 12, 14, 14, 20 + .distinct()//6, 7, 9, 8, 10, 12, 14, 20 + .skip(2)//9, 8, 10, 12, 14, 20 + .limit(5);//9, 8, 10, 12, 14 + //filter:过滤流中的某些元素,limit(n):获取n个元素,skip(n):跳过n元素,配合limit(n)可做分页,distinct:通过流中元素的hashCode()和equals()去重 +// newStream.forEach(System.out::println); + + //2,映射 + List list2 = Arrays.asList("a,b,c", "1,2,3"); + //将每个元素转成一个新的且不带括号的元素 + Stream streamMap = list2.stream().map(s->s.replaceAll(",","")); +// streamMap.forEach(System.out::println); + + Stream streamFlatMap = list2.stream().flatMap(s->{ + //将每个元素转换成一个Stream流 + String[]split = s.split(","); + Streamss = Arrays.stream(split); + return ss; + }); +// streamFlatMap.forEach(System.out::println); + + //3,排序 + Listlist3=Arrays.asList("az","fb","de"); + Streamstream7 = list3.stream().sorted(); +// stream7.forEach(System.out::println); + + Student s1 = new Student("aa",10); + Student s2 = new Student("bb",20); + Student s3 = new Student("aa",30); + Student s4 = new Student("dd",40); + ListpojoList = Arrays.asList(s1,s2,s3,s4); + + //自定义排序,先按姓名升序,姓名相同的按年龄升序 + //jdk8新操作 + pojoList.stream().sorted( + (o1,o2)->{ + if(o1.getName().equals(o2.getName())){ + return o1.getAge()-o2.getAge(); + }else{ + return o1.getName().compareTo(o2.getName()); + } + }); + + //jdk7骚操作 + Collections.sort(pojoList, new Comparator() { + @Override + public int compare(Student o1, Student o2) { + if(o1.getName().equals(o2.getName())){ + return o1.getAge()-o2.getAge(); + }else{ + return o1.getName().compareTo(o2.getName()); + } + } + }); + + //4,消费 peek + List studentList = Arrays.asList(s1,s2); + studentList.stream().peek(s->s.setAge(100)); + + //===================================流的终止操作===================================== + //1,匹配,聚合操作 + + + + }*/ } \ No newline at end of file diff --git a/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/Student.java b/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/Student.java new file mode 100644 index 00000000..00169159 --- /dev/null +++ b/dq-financial-hrms-auth/src/test/java/com/daqing/financial/hrauth/Student.java @@ -0,0 +1,41 @@ +package com.daqing.financial.hrauth; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 记录部门信息 + * + * @author gongsj + * @email gongsj@gmail.com + * @date 2020-09-07 17:12:14 + */ +@Data +public class Student implements Serializable { + private static final long serialVersionUID = 1L; + + public Student(String name, Integer age) { + this.name = name; + this.age = age; + } + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 部门名称 + */ + @ApiModelProperty(value = "部门名称") + private String name; + /** + * 上级部门id + */ + private Integer age; + +} diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/crms/CrmsCompanyPersonal.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/crms/CrmsCompanyPersonal.java index e559678b..2252dd82 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/crms/CrmsCompanyPersonal.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/crms/CrmsCompanyPersonal.java @@ -3,6 +3,7 @@ package com.daqing.framework.domain.crms; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -58,6 +59,7 @@ public class CrmsCompanyPersonal implements Serializable { * 注册时间 */ @ApiModelProperty(value = "注册时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date registeredTime; /** diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgApplyAmountList.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgApplyAmountList.java index 6de4af6f..2b05eb9f 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgApplyAmountList.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgApplyAmountList.java @@ -81,4 +81,6 @@ public class DgApplyAmountList implements Serializable { @ApiModelProperty(value = "更新时间") @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; + + private Integer ver; } diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java index b0a72436..b3ca72d2 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgBusinessCompany.java @@ -3,6 +3,7 @@ package com.daqing.framework.domain.guarantee; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; @@ -76,6 +77,7 @@ public class DgBusinessCompany implements Serializable { /** * 注册时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date registerTime; /** diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java index 679040c6..6d20259e 100644 --- a/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/hrms/response/HrmsCode.java @@ -79,6 +79,8 @@ public enum HrmsCode implements ResultCode { EMP_POSITION_EXSIT(false, 22006, "该职位下已关联员工!"), ROLE_EMP_LINK(false,44003,"该角色关联业务管理模块,不能删除!"), + TOKEN_EXCEPTION(false,401,"TOKEN已过期,请重新登录!"), + EMP_SAME(false, 51001, "A,B角不能选同一个人!"), EMP_TO_BE_CHOOSE(false, 51002, "该用户已经被指派!"); From e3c1086bc3ea3e75a4b31e3a0f65e1d2acfd6659 Mon Sep 17 00:00:00 2001 From: river <1376754470@qq.com> Date: Fri, 5 Feb 2021 18:07:56 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../crms/controller/CustomerAppletController.java | 8 ++++---- .../crms/service/impl/CustomerAppletServiceImpl.java | 6 +++--- .../daqing/framework/model/response/ResponseResult.java | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dq-financial-crms/src/main/java/com/daqing/financial/crms/controller/CustomerAppletController.java b/dq-financial-crms/src/main/java/com/daqing/financial/crms/controller/CustomerAppletController.java index ddb899c9..beba46a7 100644 --- a/dq-financial-crms/src/main/java/com/daqing/financial/crms/controller/CustomerAppletController.java +++ b/dq-financial-crms/src/main/java/com/daqing/financial/crms/controller/CustomerAppletController.java @@ -52,20 +52,20 @@ public class CustomerAppletController { } /** - * 获取当前客户认证状态 + * 获取当前客户认证(录入)状态 */ @GetMapping("/get/status") - @ApiOperation(value = "获取当前客户认证状态") + @ApiOperation(value = "获取当前客户认证(录入)状态") public ResponseResult getCustomerStatus() { return ResponseResult.SUCCESS(customerAppletService.getCustomerStatus()); } /** - * 获取已认证的客户信息 + * 获取已认证(录入)的客户信息 */ @GetMapping("/get/customer") - @ApiOperation(value = "获取已认证的客户信息") + @ApiOperation(value = "获取已认证(录入)的客户信息") public ResponseResult getCustomer(@RequestParam("type") Integer type) { return ResponseResult.SUCCESS(customerAppletService.getCustomer(type)); diff --git a/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/impl/CustomerAppletServiceImpl.java b/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/impl/CustomerAppletServiceImpl.java index 7fc9c931..996563b4 100644 --- a/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/impl/CustomerAppletServiceImpl.java +++ b/dq-financial-crms/src/main/java/com/daqing/financial/crms/service/impl/CustomerAppletServiceImpl.java @@ -307,13 +307,13 @@ public class CustomerAppletServiceImpl extends ServiceImpl { return new ResponseResult<>(false, 99999, t, "操作失败,请检查客户名称是否已存在或者文件和数据格式是否正确!"); } - public ResponseResult SUCCESS_DATA(T t){ - return new ResponseResult<>(false,20000,t,"操作失败!"); + public ResponseResult SUCCESS_DATA(T t) { + return new ResponseResult<>(false, 20000, t, "操作失败!"); } public static ResponseResult FAIL() { From 8f714d52f446a879710b72a39ae707c17b5c82ad Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Thu, 18 Feb 2021 10:28:17 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E4=B8=8D=E5=BF=85?= =?UTF-8?q?=E8=A6=81=E7=9A=84=E6=8E=A7=E5=88=B6=E5=B1=82=EF=BC=8C=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9=E4=B8=BA=E5=A4=87?= =?UTF-8?q?=E4=BB=BD=E7=9A=84=E4=BC=81=E4=B8=9A=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DgApplyAmountListController.java | 21 ------------------- ...DgAssetsAssessmentAssetsLogController.java | 20 ------------------ .../controller/DgAssetsMoneyController.java | 21 ------------------- .../DgBusinessCompanyController.java | 21 ------------------- .../controller/DgEnclosureInfoController.java | 20 ------------------ .../controller/DgLegalInfoController.java | 20 ------------------ .../DgProcessManageVisualController.java | 21 ------------------- .../impl/DgApplyAmountInfoServiceImpl.java | 6 ++++++ .../guarantee/DgApplyAmountInfoMapper.xml | 5 +++-- .../guarantee/DgAssetsInvestigationMapper.xml | 5 +++-- .../DgComplianceInvestigationMapper.xml | 9 ++++---- .../guarantee/DgGuaranteeAssignUserMapper.xml | 5 +++-- .../DgGuaranteeLetterAssignUserMapper.xml | 5 +++-- .../DgLoanCommitteeConsiderMapper.xml | 9 ++++---- .../mapper/guarantee/DgLoanNoticeMapper.xml | 5 +++-- .../DgMessageInvestigationMapper.xml | 5 +++-- .../DgPaymentConfirmationConsiderMapper.xml | 5 +++-- .../DgWorkConferenceConsiderMapper.xml | 9 ++++---- 18 files changed, 42 insertions(+), 170 deletions(-) delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountListController.java delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgAssetsAssessmentAssetsLogController.java delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgAssetsMoneyController.java delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgBusinessCompanyController.java delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgEnclosureInfoController.java delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgLegalInfoController.java delete mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageVisualController.java diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountListController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountListController.java deleted file mode 100644 index 3fd4df85..00000000 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountListController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.daqing.financial.guarantee.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 前端控制器 - *

- * - * @author Qyq - * @since 2020-11-24 - */ -@RestController -@RequestMapping("/dg-apply-amount-list") -public class DgApplyAmountListController { - -} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgAssetsAssessmentAssetsLogController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgAssetsAssessmentAssetsLogController.java deleted file mode 100644 index aef8d19e..00000000 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgAssetsAssessmentAssetsLogController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.daqing.financial.guarantee.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 价值评估记录 前端控制器 - *

- * - * @author Qyq - * @since 2020-11-05 - */ -@RestController -@RequestMapping("/dg-assets-assessment-assets-log") -public class DgAssetsAssessmentAssetsLogController { - -} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgAssetsMoneyController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgAssetsMoneyController.java deleted file mode 100644 index 705626ea..00000000 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgAssetsMoneyController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.daqing.financial.guarantee.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 前端控制器 - *

- * - * @author Qyq - * @since 2020-11-26 - */ -@RestController -@RequestMapping("/dg-assets-money") -public class DgAssetsMoneyController { - -} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgBusinessCompanyController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgBusinessCompanyController.java deleted file mode 100644 index 39fcf09f..00000000 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgBusinessCompanyController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.daqing.financial.guarantee.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 业务关联企业表 前端控制器 - *

- * - * @author Qyq - * @since 2021-01-27 - */ -@RestController -@RequestMapping("/dg-business-company") -public class DgBusinessCompanyController { - -} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgEnclosureInfoController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgEnclosureInfoController.java deleted file mode 100644 index f727b9ff..00000000 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgEnclosureInfoController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.daqing.financial.guarantee.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 附件 前端控制器 - *

- * - * @author Qyq - * @since 2020-11-05 - */ -@RestController -@RequestMapping("/dg-enclosure-info") -public class DgEnclosureInfoController { - -} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgLegalInfoController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgLegalInfoController.java deleted file mode 100644 index d05ea884..00000000 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgLegalInfoController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.daqing.financial.guarantee.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 企业法人信息 前端控制器 - *

- * - * @author Qyq - * @since 2020-11-05 - */ -@RestController -@RequestMapping("/dg-legal-info") -public class DgLegalInfoController { - -} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageVisualController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageVisualController.java deleted file mode 100644 index 9b45bf9b..00000000 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageVisualController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.daqing.financial.guarantee.controller; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 流程管理可见表 前端控制器 - *

- * - * @author Qyq - * @since 2021-01-15 - */ -@RestController -@RequestMapping("/dg-process-manage-visual") -public class DgProcessManageVisualController { - -} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java index 653b6ee8..98831544 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java @@ -232,6 +232,12 @@ public class DgApplyAmountInfoServiceImpl extends ServiceImpl diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgAssetsInvestigationMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgAssetsInvestigationMapper.xml index f2406605..47e81903 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgAssetsInvestigationMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgAssetsInvestigationMapper.xml @@ -68,8 +68,9 @@ au.status,au.operating_status,cc.name,cc.phone,ps.business_status from dg_assets_investigation au left join dg_apply_amount_info ai on au.business_id = ai.id - left join crms_company_customer ccl on ai.company_id = ccl.id - left join crms_customer cc on cc.id = ccl.customer_id + left join dg_business_company cc on cc.business_id = ai.id +/* left join crms_company_customer ccl on ai.company_id = ccl.id + left join crms_customer cc on cc.id = ccl.customer_id*/ left JOIN dg_business_process_status ps ON ps.business_id = au.business_id where au.id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgComplianceInvestigationMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgComplianceInvestigationMapper.xml index 03103f2e..055d77e7 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgComplianceInvestigationMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgComplianceInvestigationMapper.xml @@ -53,14 +53,15 @@ FROM dg_compliance_investigation AS i LEFT JOIN dg_apply_amount_info AS a ON a.id = i.business_id - LEFT JOIN crms_company_customer AS cc + left join dg_business_company c on c.business_id = a.id +/* LEFT JOIN crms_company_customer AS cc ON a.company_id = cc.id LEFT JOIN crms_customer AS c - ON c.id = cc.customer_id + ON c.id = cc.customer_id*/ LEFT JOIN dg_business_process_status AS b ON b.business_id = a.id - WHERE c.del_or_not = 0 - AND i.id IN + WHERE /*c.del_or_not = 0*/ + /*AND*/ i.id IN #{id} diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeAssignUserMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeAssignUserMapper.xml index 5f9e292a..6f003d19 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeAssignUserMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeAssignUserMapper.xml @@ -51,8 +51,9 @@ au.status,au.operating_status,cc.name,cc.phone,ps.business_status from dg_guarantee_assign_user au left join dg_apply_amount_info ai on au.business_id = ai.id - left join crms_company_customer ccl on ai.company_id = ccl.id - left join crms_customer cc on cc.id = ccl.customer_id + left join dg_business_company cc on cc.business_id = ai.id +/* left join crms_company_customer ccl on ai.company_id = ccl.id + left join crms_customer cc on cc.id = ccl.customer_id*/ left JOIN dg_business_process_status ps ON ps.business_id = au.business_id where au.id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml index 3630a7d9..b12828a3 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgGuaranteeLetterAssignUserMapper.xml @@ -66,8 +66,9 @@ lau.status,lau.operating_status,bps.business_status from dg_guarantee_letter_assign_user lau left join dg_apply_amount_info aai on lau.business_id = aai.id - left join crms_company_customer ccc on lau.company_id = ccc.id - left join crms_customer cc on ccc.customer_id = cc.id + left join dg_business_company cc on cc.business_id = aai.id +/* left join crms_company_customer ccc on lau.company_id = ccc.id + left join crms_customer cc on ccc.customer_id = cc.id*/ left join dg_loan_committee_consider lcc on lau.business_id = lcc.business_id left join dg_business_process_status bps on lau.business_id = bps.business_id where lau.id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanCommitteeConsiderMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanCommitteeConsiderMapper.xml index e3b69611..18718210 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanCommitteeConsiderMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanCommitteeConsiderMapper.xml @@ -52,14 +52,15 @@ FROM dg_loan_committee_consider AS l LEFT JOIN dg_apply_amount_info AS a ON a.id = l.business_id - LEFT JOIN crms_company_customer AS cc + left join dg_business_company c on c.business_id = a.id +/* LEFT JOIN crms_company_customer AS cc ON a.company_id = cc.id LEFT JOIN crms_customer AS c - ON cc.customer_id = c.id + ON cc.customer_id = c.id*/ LEFT JOIN dg_business_process_status AS b ON b.business_id = a.id - WHERE c.del_or_not = 0 - AND l.id IN + WHERE /*c.del_or_not = 0*/ + /*AND*/ l.id IN #{id} diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanNoticeMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanNoticeMapper.xml index 74832c58..559c64f0 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanNoticeMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgLoanNoticeMapper.xml @@ -64,8 +64,9 @@ aai.create_time,ln.status,ln.operating_status,bps.business_status from dg_loan_notice ln left join dg_apply_amount_info aai on ln.business_id = aai.id - left join crms_company_customer ccc on ln.company_id = ccc.id - left join crms_customer cc on ccc.customer_id = cc.id + left join dg_business_company cc on cc.business_id = aai.id +/* left join crms_company_customer ccc on ln.company_id = ccc.id + left join crms_customer cc on ccc.customer_id = cc.id*/ left join dg_loan_committee_consider lcc on ln.business_id = lcc.business_id left join dg_business_process_status bps on ln.business_id = bps.business_id where ln.id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgMessageInvestigationMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgMessageInvestigationMapper.xml index 19d7e49c..b6988c27 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgMessageInvestigationMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgMessageInvestigationMapper.xml @@ -50,8 +50,9 @@ au.status,au.operating_status,cc.name,cc.phone,ps.business_status from dg_message_investigation au left join dg_apply_amount_info ai on au.business_id = ai.id - left join crms_company_customer ccl on ai.company_id = ccl.id - left join crms_customer cc on cc.id = ccl.customer_id + left join dg_business_company cc on cc.business_id = ai.id +/* left join crms_company_customer ccl on ai.company_id = ccl.id + left join crms_customer cc on cc.id = ccl.customer_id*/ left JOIN dg_business_process_status ps ON ps.business_id = au.business_id where au.id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgPaymentConfirmationConsiderMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgPaymentConfirmationConsiderMapper.xml index cd9764ef..b4e15b30 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgPaymentConfirmationConsiderMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgPaymentConfirmationConsiderMapper.xml @@ -68,8 +68,9 @@ lcc.loan_tern,aai.create_time,pcc.status,pcc.operating_status,bps.business_status from dg_payment_confirmation_consider pcc left join dg_apply_amount_info aai on pcc.business_id = aai.id - left join crms_company_customer ccc on pcc.company_id = ccc.id - left join crms_customer cc on ccc.customer_id = cc.id + left join dg_business_company cc on cc.business_id = aai.id +/* left join crms_company_customer ccc on pcc.company_id = ccc.id + left join crms_customer cc on ccc.customer_id = cc.id*/ left join dg_loan_committee_consider lcc on pcc.business_id = lcc.business_id left join dg_business_process_status bps on pcc.business_id = bps.business_id where pcc.id in diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgWorkConferenceConsiderMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgWorkConferenceConsiderMapper.xml index 0c914bd1..b64b300c 100644 --- a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgWorkConferenceConsiderMapper.xml +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgWorkConferenceConsiderMapper.xml @@ -62,10 +62,11 @@ FROM dg_work_conference_consider AS w LEFT JOIN dg_apply_amount_info AS a ON a.id = w.business_id - LEFT JOIN crms_company_customer AS cc + left join dg_business_company c on c.business_id = a.id +/* LEFT JOIN crms_company_customer AS cc ON a.company_id = cc.id LEFT JOIN crms_customer AS c - ON cc.customer_id = c.id + ON cc.customer_id = c.id*/ LEFT JOIN dg_business_process_status AS b ON b.business_id = a.id LEFT JOIN (SELECT business_id,SUM(CASE role_id WHEN 59 THEN emp_id ELSE 0 END) AS A, @@ -78,8 +79,8 @@ ON a.id = ass.business_id LEFT JOIN dg_message_investigation AS m ON a.id = m.business_id - WHERE c.del_or_not = 0 - AND i.role_id = 70 + WHERE /*c.del_or_not = 0*/ + /*AND*/ i.role_id = 70 AND ass.role_id = 64 AND m.role_id = 67 AND w.id IN From 76b053e21f5eb7cffdc13f5a17bf298e0cbf5ea8 Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Thu, 18 Feb 2021 14:59:48 +0800 Subject: [PATCH 12/12] =?UTF-8?q?TOKEN=E8=BF=87=E6=9C=9F=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=BC=96=E7=A0=81=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DgApplyAmountInfoServiceImpl.java | 13 ++++++++ .../hrauth/filter/MyAuthenticationFilter.java | 30 +++++++++++++++++-- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java index 98831544..16dcb7c2 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgApplyAmountInfoServiceImpl.java @@ -237,11 +237,15 @@ public class DgApplyAmountInfoServiceImpl extends ServiceImpl().eq("business_id",businessApplication.getBusinessId())); + //根据企业id查询企业详情 + DgApplyAmountInfoRequest applyAmountInfo = new DgApplyAmountInfoRequest(); + applyAmountInfo.setCompanyId(dgApplyAmountInfo.getCompanyId()); + ResponseResult result = crmsFeignService.queryCustomerInfoById(applyAmountInfo); + LinkedHashMap linkedList = (LinkedHashMap)result.getData(); + Object o1 = linkedList.get("linkman"); + Object o2 = linkedList.get("linkPhone"); //修改备份企业信息 DgBusinessCompany dgBusinessCompany = new DgBusinessCompany(); BeanUtils.copyProperties(businessApplication,dgBusinessCompany); + dgBusinessCompany.setLinkPhone(String.valueOf(o2)); + dgBusinessCompany.setLinkman(String.valueOf(o1)); System.out.println("dgBusinessCompany============="+dgBusinessCompany); dgBusinessCompanyMapper.update(dgBusinessCompany,new QueryWrapper() .eq("business_id",businessApplication.getBusinessId())); diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/filter/MyAuthenticationFilter.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/filter/MyAuthenticationFilter.java index e1f78677..a8f95267 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/filter/MyAuthenticationFilter.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/filter/MyAuthenticationFilter.java @@ -1,10 +1,12 @@ package com.daqing.financial.hrauth.filter; +import com.alibaba.fastjson.JSON; import com.daqing.financial.hrauth.enums.Constants; import com.daqing.financial.hrauth.handle.SecurityUser; import com.daqing.financial.hrauth.service.impl.UserDetailsServiceImpl; import com.daqing.financial.hrauth.util.MultiReadHttpServletRequest; import com.daqing.financial.hrauth.util.MultiReadHttpServletResponse; +import com.daqing.framework.model.response.ResponseResult; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.security.access.AccessDeniedException; @@ -19,6 +21,7 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.PrintWriter; import java.io.UnsupportedEncodingException; /** @@ -38,6 +41,25 @@ public class MyAuthenticationFilter extends OncePerRequestFilter { this.userDetailsService = userDetailsService; } + private static void printJson(HttpServletResponse response) { + ResponseResult responseResult = new ResponseResult(false,401,"TOKEN已过期,请重新登录","TOKEN已过期,请重新登录"); + String content = JSON.toJSONString(responseResult); + printContent(response, content); + } + private static void printContent(HttpServletResponse response, String content) { + try { + response.reset(); + response.setContentType("application/json"); + response.setHeader("Cache-Control", "no-store"); + response.setCharacterEncoding("UTF-8"); + PrintWriter pw = response.getWriter(); + pw.write(content); + pw.flush(); + } catch (Exception e) { + e.printStackTrace(); + } + } + @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { System.out.println("请求头类型: " + request.getContentType()); @@ -70,15 +92,17 @@ public class MyAuthenticationFilter extends OncePerRequestFilter { // 检查token SecurityUser securityUser = userDetailsService.getUserByToken(token); if (securityUser == null || securityUser.getCurrentUserInfo() == null) { - throw new AccessDeniedException("TOKEN已过期,请重新登录!"); + //throw new AccessDeniedException("TOKEN已过期,请重新登录!"); + printJson(response); + return; } UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(securityUser, null, securityUser.getAuthorities()); // 全局注入角色权限信息和登录用户基本信息 SecurityContextHolder.getContext().setAuthentication(authentication); } -/* else { + else { throw new AccessDeniedException("TOKEN不存在,请重新登录!"); - }*/ + } filterChain.doFilter(wrappedRequest, wrappedResponse); } finally { stopWatch.stop();