1。创建二维码提交表单
This commit is contained in:
parent
86c9ea57f5
commit
3250d51d63
|
|
@ -55,6 +55,14 @@ public class SecurityUtils
|
||||||
return SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class);
|
return SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户部门id
|
||||||
|
*/
|
||||||
|
public static Long getDeptId()
|
||||||
|
{
|
||||||
|
return SecurityContextHolder.get(SecurityConstants.LOGIN_USER, LoginUser.class).getSysUser().getDeptId();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取请求token
|
* 获取请求token
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
package com.chushang.controller;
|
package com.chushang.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.chushang.common.core.web.AjaxResult;
|
import com.chushang.common.core.web.AjaxResult;
|
||||||
|
import com.chushang.common.mybatis.page.CommonParam;
|
||||||
import com.chushang.domin.dto.LoanApproval;
|
import com.chushang.domin.dto.LoanApproval;
|
||||||
|
import com.chushang.domin.dto.LoanFormData;
|
||||||
import com.chushang.domin.entity.LoanEntity;
|
import com.chushang.domin.entity.LoanEntity;
|
||||||
import com.chushang.domin.query.LoanFormQuery;
|
import com.chushang.domin.query.LoanFormQuery;
|
||||||
import com.chushang.service.ILoanService;
|
import com.chushang.service.ILoanService;
|
||||||
|
|
@ -25,19 +28,19 @@ public class LoanController {
|
||||||
private ILoanService iLoanService;
|
private ILoanService iLoanService;
|
||||||
|
|
||||||
|
|
||||||
// /**
|
/**
|
||||||
// * 提交表单数据
|
* 提交表单数据
|
||||||
// */
|
*/
|
||||||
// @PostMapping("/submit")
|
@PostMapping("/qcCode")
|
||||||
// public void submitFormData(@RequestBody @Validated LoanFormData formData) {
|
public AjaxResult submitFormData(@RequestBody @Validated LoanFormQuery formData) throws Exception{
|
||||||
// iLoanService.submitFormData(formData);
|
return AjaxResult.success(iLoanService.qcCode(formData));
|
||||||
// }
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询表单
|
* 查询表单
|
||||||
*/
|
*/
|
||||||
@PostMapping("/find")
|
@PostMapping("/find")
|
||||||
public Page<LoanEntity> queryLoan(@RequestBody LoanFormQuery query) {
|
public IPage<LoanEntity> queryLoan(@RequestBody LoanEntity query) {
|
||||||
return iLoanService.queryLoan(query);
|
return iLoanService.queryLoan(query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -46,8 +49,8 @@ public class LoanController {
|
||||||
* 查询表单
|
* 查询表单
|
||||||
*/
|
*/
|
||||||
@PostMapping("/data")
|
@PostMapping("/data")
|
||||||
public Page<LoanEntity> data(@RequestBody LoanFormQuery query) {
|
public AjaxResult data(@RequestBody LoanFormQuery query) {
|
||||||
return iLoanService.queryData(query);
|
return AjaxResult.success(iLoanService.queryData(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.chushang.domin.query;
|
||||||
|
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.chushang.common.mybatis.page.CommonParam;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
|
|
@ -18,7 +19,9 @@ import java.util.List;
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class LoanFormQuery {
|
public class LoanFormQuery extends CommonParam {
|
||||||
|
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
/** 编号 */
|
/** 编号 */
|
||||||
private String formNumber;
|
private String formNumber;
|
||||||
|
|
@ -36,8 +39,8 @@ public class LoanFormQuery {
|
||||||
/** 渠道名称 */
|
/** 渠道名称 */
|
||||||
private String channelName;
|
private String channelName;
|
||||||
|
|
||||||
/** 渠道ID */
|
/** 部门id */
|
||||||
private Long channelId;
|
private Long deptId;
|
||||||
|
|
||||||
/** 当前页 */
|
/** 当前页 */
|
||||||
protected Integer page;
|
protected Integer page;
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,6 @@ import java.time.LocalDateTime;
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class LoanVO implements Serializable {
|
public class LoanVO implements Serializable {
|
||||||
|
|
||||||
/**
|
|
||||||
* 主键
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 渠道名
|
* 渠道名
|
||||||
*/
|
*/
|
||||||
|
|
@ -39,11 +34,11 @@ public class LoanVO implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 总房贷金额
|
* 总房贷金额
|
||||||
*/
|
*/
|
||||||
private BigDecimal totalLoanAmount;
|
private String totalLoanAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总交易金额
|
* 总交易金额
|
||||||
*/
|
*/
|
||||||
private BigDecimal totalTransactionAmount;
|
private String totalTransactionAmount;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.chushang.mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.chushang.domin.entity.LoanEntity;
|
import com.chushang.domin.entity.LoanEntity;
|
||||||
import com.chushang.domin.query.LoanFormQuery;
|
import com.chushang.domin.query.LoanFormQuery;
|
||||||
|
import com.chushang.domin.vo.LoanData;
|
||||||
import com.chushang.domin.vo.LoanVO;
|
import com.chushang.domin.vo.LoanVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -10,6 +11,6 @@ import java.util.List;
|
||||||
public interface LoanMapper extends BaseMapper<LoanEntity> {
|
public interface LoanMapper extends BaseMapper<LoanEntity> {
|
||||||
|
|
||||||
|
|
||||||
// List<LoanVO> queryDataList(LoanFormQuery loanFormQuery);
|
List<LoanData> queryDataList(LoanFormQuery queryy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,28 @@
|
||||||
package com.chushang.service;
|
package com.chushang.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.chushang.common.mybatis.utils.PageResult;
|
||||||
import com.chushang.domin.dto.LoanApproval;
|
import com.chushang.domin.dto.LoanApproval;
|
||||||
import com.chushang.domin.dto.LoanFormData;
|
import com.chushang.domin.dto.LoanFormData;
|
||||||
import com.chushang.domin.entity.LoanEntity;
|
import com.chushang.domin.entity.LoanEntity;
|
||||||
import com.chushang.domin.query.LoanFormQuery;
|
import com.chushang.domin.query.LoanFormQuery;
|
||||||
|
import com.chushang.domin.vo.LoanVO;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface ILoanService {
|
public interface ILoanService {
|
||||||
|
|
||||||
void submitFormData(LoanFormData formData);
|
void submitFormData(LoanFormData formData);
|
||||||
|
|
||||||
Page<LoanEntity> queryLoan(LoanFormQuery query);
|
String qcCode(LoanFormQuery formData) throws Exception;
|
||||||
|
|
||||||
Page<LoanEntity> queryData(LoanFormQuery query);
|
IPage<LoanEntity> queryLoan(LoanEntity query);
|
||||||
|
|
||||||
boolean approval(LoanApproval approval);
|
PageResult queryData(LoanFormQuery query);
|
||||||
|
|
||||||
|
int approval(LoanApproval approval);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,55 @@
|
||||||
package com.chushang.service.impl;
|
package com.chushang.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
|
import cn.hutool.core.img.ImgUtil;
|
||||||
|
import cn.hutool.core.io.FileUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
||||||
|
import cn.hutool.extra.qrcode.QrConfig;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.chushang.common.core.web.Result;
|
||||||
|
import com.chushang.common.mybatis.page.CommonParam;
|
||||||
|
import com.chushang.common.mybatis.utils.PageResult;
|
||||||
|
import com.chushang.common.mybatis.utils.WrapperUtils;
|
||||||
|
import com.chushang.datascope.annotation.DataScope;
|
||||||
import com.chushang.domin.dto.LoanApproval;
|
import com.chushang.domin.dto.LoanApproval;
|
||||||
import com.chushang.domin.dto.LoanFormData;
|
import com.chushang.domin.dto.LoanFormData;
|
||||||
import com.chushang.domin.entity.LoanAduitEntity;
|
import com.chushang.domin.entity.LoanAduitEntity;
|
||||||
import com.chushang.domin.entity.LoanEntity;
|
import com.chushang.domin.entity.LoanEntity;
|
||||||
import com.chushang.domin.query.LoanFormQuery;
|
import com.chushang.domin.query.LoanFormQuery;
|
||||||
|
import com.chushang.domin.vo.LoanData;
|
||||||
|
import com.chushang.domin.vo.LoanVO;
|
||||||
import com.chushang.mapper.LoanMapper;
|
import com.chushang.mapper.LoanMapper;
|
||||||
|
import com.chushang.oss.feign.RemoteOssService;
|
||||||
import com.chushang.security.entity.po.SysDept;
|
import com.chushang.security.entity.po.SysDept;
|
||||||
|
import com.chushang.security.entity.po.SysUser;
|
||||||
|
import com.chushang.security.entity.vo.LoginUser;
|
||||||
import com.chushang.security.utils.SecurityUtils;
|
import com.chushang.security.utils.SecurityUtils;
|
||||||
import com.chushang.service.ILoanAduitService;
|
import com.chushang.service.ILoanAduitService;
|
||||||
import com.chushang.service.ILoanService;
|
import com.chushang.service.ILoanService;
|
||||||
|
import com.chushang.system.entity.dto.UserQcCodeDTO;
|
||||||
|
import com.chushang.system.entity.po.SysUserQcCode;
|
||||||
|
import com.chushang.system.feign.RemoteUserQcCodeService;
|
||||||
|
import com.chushang.system.feign.RemoteUserService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.logging.log4j.util.Strings;
|
import org.apache.logging.log4j.util.Strings;
|
||||||
|
import org.checkerframework.checker.units.qual.A;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
|
@ -33,38 +61,88 @@ public class LoanServiceImpl extends ServiceImpl<LoanMapper, LoanEntity> impleme
|
||||||
@Autowired
|
@Autowired
|
||||||
ILoanAduitService iLoanAduitService;
|
ILoanAduitService iLoanAduitService;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
RemoteUserQcCodeService remoteUserQcCodeService;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RemoteOssService remoteOssService;
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
RemoteUserService remoteUserService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void submitFormData(LoanFormData formData) {
|
public void submitFormData(LoanFormData formData) {
|
||||||
|
// 通过用户id查询用户id
|
||||||
}
|
LoanEntity loan = new LoanEntity();
|
||||||
|
BeanUtil.copyProperties(formData,loan);
|
||||||
|
Result<SysUser> infoById = remoteUserService.getInfoById(formData.getUserId());
|
||||||
|
if(infoById.getCode() == 200 && !Objects.isNull(infoById.getData())){
|
||||||
|
SysUser data = infoById.getData();
|
||||||
@Override
|
loan.setDeptId(data.getDeptId());
|
||||||
public Page<LoanEntity> queryLoan(LoanFormQuery query) {
|
|
||||||
|
|
||||||
QueryWrapper<LoanEntity> queryWrapper = new QueryWrapper<>();
|
|
||||||
queryWrapper.eq(Strings.isNotEmpty(query.getAuthor()), "author_name", query.getAuthor());
|
|
||||||
queryWrapper.eq(!Objects.isNull(query.getStatus()), "status", query.getStatus());
|
|
||||||
queryWrapper.eq(Strings.isNotEmpty(query.getChannelName()), "channel_name", query.getChannelName());
|
|
||||||
queryWrapper.eq(Strings.isNotEmpty(query.getFormNumber()), "form_number", query.getFormNumber());
|
|
||||||
if (!Objects.isNull(query.getSubmissionTimes()) && query.getSubmissionTimes().size() > 1) {
|
|
||||||
queryWrapper.between("submission_time", query.getSubmissionTimes().get(0), query.getSubmissionTimes().get(1));
|
|
||||||
}
|
}
|
||||||
return baseMapper.selectPage(query.of(), queryWrapper);
|
baseMapper.insert(BeanUtil.copyProperties(formData,LoanEntity.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<LoanEntity> queryData(LoanFormQuery query) {
|
public String qcCode(LoanFormQuery formData) throws Exception{
|
||||||
|
String codeUrl = "";
|
||||||
|
Result<SysUserQcCode> userInfo = remoteUserQcCodeService.getUserInfo(new UserQcCodeDTO() {{
|
||||||
|
setUserId(SecurityUtils.getUserId());
|
||||||
|
}});
|
||||||
|
if(userInfo.getCode() == 200 && !Objects.isNull(userInfo.getData())){
|
||||||
|
codeUrl = userInfo.getData().getLoanCode();
|
||||||
|
}else{
|
||||||
|
|
||||||
|
Result<String> stringResult = remoteOssService.uploadQcCode();
|
||||||
|
if(stringResult.getCode() == 200){
|
||||||
|
codeUrl = stringResult.getData();
|
||||||
|
Result<Integer> save = remoteUserQcCodeService.save(new UserQcCodeDTO() {{
|
||||||
|
setUrl(stringResult.getData());
|
||||||
|
setUserId(SecurityUtils.getUserId());
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
}
|
||||||
|
return codeUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@DataScope
|
||||||
|
public IPage<LoanEntity> queryLoan(LoanEntity query) {
|
||||||
|
CommonParam commonParam = CommonParam.buildPageRequest();
|
||||||
|
LambdaQueryWrapper<LoanEntity> queryWrapper = WrapperUtils.builder(query, query, commonParam);
|
||||||
|
IPage<LoanEntity> page = this.page(
|
||||||
|
new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()),
|
||||||
|
queryWrapper
|
||||||
|
);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult queryData(LoanFormQuery query) {
|
||||||
|
Page<LoanVO> of = query.of();
|
||||||
|
List<LoanData> loanVOSList = baseMapper.queryDataList(query);
|
||||||
|
List<LoanVO> resultList = new ArrayList<>();
|
||||||
|
for (LoanData loanData:loanVOSList){
|
||||||
|
LoanVO loanVO = new LoanVO();
|
||||||
|
BeanUtils.copyProperties(loanData,loanVO);
|
||||||
|
loanVO.setTotalTransactionAmount(String.valueOf(loanData.getTotalTransactionAmount()));
|
||||||
|
loanVO.setTotalLoanAmount(String.valueOf(loanData.getTotalLoanAmount()));
|
||||||
|
resultList.add(loanVO);
|
||||||
|
}
|
||||||
|
return new PageResult(resultList, of.getTotal(), of.getPages(), of.getCurrent());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean approval(LoanApproval approval) {
|
public int approval(LoanApproval approval) {
|
||||||
boolean flag = false;
|
boolean flag = false;
|
||||||
if (approval.getStatus().equals(3) && StrUtil.isEmpty(approval.getDenialReason())) {
|
if (approval.getStatus().equals(3) && StrUtil.isEmpty(approval.getDenialReason())) {
|
||||||
Assert.isTrue(false, "审批拒绝请注明原因");
|
Assert.isTrue(false, "审批拒绝请注明原因");
|
||||||
|
|
@ -84,15 +162,8 @@ public class LoanServiceImpl extends ServiceImpl<LoanMapper, LoanEntity> impleme
|
||||||
loanAduitEntity.setApproverId(SecurityUtils.getUserId());
|
loanAduitEntity.setApproverId(SecurityUtils.getUserId());
|
||||||
loanAduitEntity.setApproverName(SecurityUtils.getUsername());
|
loanAduitEntity.setApproverName(SecurityUtils.getUsername());
|
||||||
loanAduitEntity.setDenialReason(approval.getDenialReason());
|
loanAduitEntity.setDenialReason(approval.getDenialReason());
|
||||||
try {
|
iLoanAduitService.insertAduit(loanAduitEntity);
|
||||||
iLoanAduitService.insertAduit(loanAduitEntity);
|
return baseMapper.updateById(loan);
|
||||||
baseMapper.updateById(loan);
|
|
||||||
flag = true;
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error(e.getMessage());
|
|
||||||
flag = false;
|
|
||||||
}
|
|
||||||
return flag;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.chushang.mapper.LoanMapper">
|
||||||
|
|
||||||
|
|
||||||
|
<select id="queryDataList" resultType="com.chushang.domin.vo.LoanData">
|
||||||
|
select channel_name,
|
||||||
|
author_name,
|
||||||
|
author_phone,
|
||||||
|
COUNT(if(status = 2, id, null)) as totalOpenFlux,
|
||||||
|
SUM(if(status = 2, loan_amount, null)) as totalLoanAmount,
|
||||||
|
sum(application_amount) as totalTransactionAmount
|
||||||
|
from loan group by user_id,channel_name,author_name,author_phone
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestHeader;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@FeignClient(contextId = "ossFeign",
|
@FeignClient(contextId = "ossFeign",
|
||||||
|
|
@ -27,4 +28,9 @@ public interface RemoteOssService {
|
||||||
@RequestParam(value = "fileType", required = false) String fileType,
|
@RequestParam(value = "fileType", required = false) String fileType,
|
||||||
@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(value = "/uploadqccode")
|
||||||
|
Result<String> uploadQcCode() throws Exception;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,11 +14,12 @@ import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping(value = "/file/remote")
|
@RequestMapping(value = "/remote/file")
|
||||||
public class RemoteFileController implements RemoteOssService {
|
public class RemoteFileController implements RemoteOssService {
|
||||||
@Resource
|
@Resource
|
||||||
FileSourceService fileSourceService;
|
FileSourceService fileSourceService;
|
||||||
|
|
@ -34,4 +35,15 @@ public class RemoteFileController implements RemoteOssService {
|
||||||
return Result.ok(fileSourceService.addFile(files, ocrType, sealFlag, formats, fileType));
|
return Result.ok(fileSourceService.addFile(files, ocrType, sealFlag, formats, fileType));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SysLog(value = "feign文件上传File类型", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping(value = "/uploadqccode")
|
||||||
|
public Result<String> uploadQcCode() throws Exception{
|
||||||
|
return Result.ok(fileSourceService.uploadQcCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,13 @@ package com.chushang.oss.service;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.img.ImgUtil;
|
||||||
|
import cn.hutool.core.io.FileUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
||||||
|
import cn.hutool.extra.qrcode.QrConfig;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
@ -21,6 +25,7 @@ import com.chushang.oss.entity.dto.OcrDTO;
|
||||||
import com.chushang.oss.entity.vo.FileSourceVo;
|
import com.chushang.oss.entity.vo.FileSourceVo;
|
||||||
import com.chushang.oss.enums.OcrTypeEnum;
|
import com.chushang.oss.enums.OcrTypeEnum;
|
||||||
import com.chushang.oss.mapper.FileSourceMapper;
|
import com.chushang.oss.mapper.FileSourceMapper;
|
||||||
|
import com.chushang.security.utils.SecurityUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.tika.Tika;
|
import org.apache.tika.Tika;
|
||||||
|
|
@ -191,4 +196,39 @@ public class FileSourceService
|
||||||
throw new ResultException("以下文件未删除: [" + key + "].");
|
throw new ResultException("以下文件未删除: [" + key + "].");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String uploadQcCode() throws Exception{
|
||||||
|
|
||||||
|
|
||||||
|
String url = StrUtil.format("{}?userId={}&channelId={}&channelName={}&" +
|
||||||
|
"authorName={}&authorPhone={}",
|
||||||
|
"https://mini.program.chually.com/uniapp/index.html", SecurityUtils.getUserId(), SecurityUtils.getDeptId(),
|
||||||
|
"内蒙古",
|
||||||
|
SecurityUtils.getLoginUser().getSysUser().getNickName(), SecurityUtils.getLoginUser().getSysUser().getPhone());
|
||||||
|
|
||||||
|
File file = QrCodeUtil.generate(url, new QrConfig(600, 600),
|
||||||
|
FileUtil.createTempFile(ImgUtil.IMAGE_TYPE_PNG, Boolean.TRUE));
|
||||||
|
|
||||||
|
FileInputStream fileInputStream = new FileInputStream(file);
|
||||||
|
String ip = IPUtils.clientIp(ServletUtils.getRequest());
|
||||||
|
String fid = generateFid();
|
||||||
|
String fName = file.getName();
|
||||||
|
long length = file.length();
|
||||||
|
String md5 = FileUtils.getMd5(fileInputStream);
|
||||||
|
// image/jpeg mimeType
|
||||||
|
FileSourceInfo fileSourceInfo = new FileSourceInfo();
|
||||||
|
fileSourceInfo.setUploadIp(ip);
|
||||||
|
fileSourceInfo.setFid(fid);
|
||||||
|
fileSourceInfo.setName(fName);
|
||||||
|
fileSourceInfo.setSize(length);
|
||||||
|
fileSourceInfo.setPath("qcCode/"+fName);
|
||||||
|
fileSourceInfo.setMd5(md5);
|
||||||
|
fileSourceInfo.setRealPath(url);
|
||||||
|
fileSourceInfo.setMimeType("image/jpeg");
|
||||||
|
String upload = ossService.upload(new FileInputStream(file), fileSourceInfo);
|
||||||
|
fileSourceInfo.setRealPath(upload);
|
||||||
|
save(fileSourceInfo);
|
||||||
|
return upload;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.chushang.system.entity.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UserQcCodeDTO {
|
||||||
|
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
private Long userId;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.chushang.system.entity.po;
|
||||||
|
|
||||||
|
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 lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author author
|
||||||
|
* @since 2022-08-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("sys_user_qr_code")
|
||||||
|
public class SysUserQcCode implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户Id
|
||||||
|
*/
|
||||||
|
@TableId(value = "user_id", type = IdType.ASSIGN_ID)
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分期二维码
|
||||||
|
*/
|
||||||
|
@TableField(value = "loan_code")
|
||||||
|
private String loanCode;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.chushang.system.feign;
|
||||||
|
|
||||||
|
import com.chushang.common.core.constant.SecurityConstants;
|
||||||
|
import com.chushang.common.core.web.Result;
|
||||||
|
import com.chushang.security.entity.vo.LoginUser;
|
||||||
|
import com.chushang.system.constants.SystemConstants;
|
||||||
|
import com.chushang.system.entity.dto.UserQcCodeDTO;
|
||||||
|
import com.chushang.system.entity.po.SysLoginInfo;
|
||||||
|
import com.chushang.system.entity.po.SysUserQcCode;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* by zhaowenyuan create 2022/5/20 10:05
|
||||||
|
*/
|
||||||
|
@FeignClient(contextId = "remoteUserqcCodeService",
|
||||||
|
value = SystemConstants.SYSTEM_SERVICE,
|
||||||
|
path = SystemConstants.APPLICATION_CONTENT_PATH + "/qc"
|
||||||
|
)
|
||||||
|
public interface RemoteUserQcCodeService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过用户id查询用户二维码信息
|
||||||
|
*
|
||||||
|
* @param userQcCodeDTO 用户id
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PostMapping("/qccode/query")
|
||||||
|
Result<SysUserQcCode> getUserInfo(@RequestBody UserQcCodeDTO userQcCodeDTO);
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/save/qccode")
|
||||||
|
Result<Integer> save(@RequestBody UserQcCodeDTO userQcCodeDTO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -30,4 +30,15 @@ public interface RemoteUserService {
|
||||||
@GetMapping("/info/{username}")
|
@GetMapping("/info/{username}")
|
||||||
Result<LoginUser> getUserInfo(@PathVariable(value = "username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
Result<LoginUser> getUserInfo(@PathVariable(value = "username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过用户id查询用户信息
|
||||||
|
*
|
||||||
|
* @param userId 用户id
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@GetMapping("/getInfoById/{userId}")
|
||||||
|
Result<SysUser> getInfoById(@PathVariable(value = "userId") Long userId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.chushang.system.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.chushang.system.entity.po.SysUserQcCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author author
|
||||||
|
* @since 2022-08-18
|
||||||
|
*/
|
||||||
|
public interface SysUserQcCodeMapper extends BaseMapper<SysUserQcCode> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -70,4 +70,11 @@ public class RemoteUserController implements RemoteUserService {
|
||||||
return Result.ok(sysUserVo);
|
return Result.ok(sysUserVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@GetMapping("/getInfoById/{userId}")
|
||||||
|
public Result<SysUser> getInfoById(@PathVariable(value = "userId") Long userId) {
|
||||||
|
|
||||||
|
return Result.ok(sysUserService.selectByUserId(userId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.chushang.system.remote;
|
||||||
|
|
||||||
|
import com.chushang.common.core.web.AjaxResult;
|
||||||
|
import com.chushang.common.core.web.Result;
|
||||||
|
import com.chushang.security.entity.vo.LoginUser;
|
||||||
|
import com.chushang.system.entity.dto.UserQcCodeDTO;
|
||||||
|
import com.chushang.system.entity.po.SysUserQcCode;
|
||||||
|
import com.chushang.system.feign.RemoteUserQcCodeService;
|
||||||
|
import com.chushang.system.service.ISysUserQcCodeService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author by zhaowenyuan create 2022/8/22 16:43
|
||||||
|
* 部门相关
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/qc")
|
||||||
|
public class SysUserQcCodeController implements RemoteUserQcCodeService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysUserQcCodeService service;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@PostMapping(value = "/qccode/query")
|
||||||
|
public Result<SysUserQcCode> getUserInfo(@RequestBody UserQcCodeDTO userQcCodeDTO) {
|
||||||
|
return Result.ok(service.getInfo(userQcCodeDTO.getUserId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@PostMapping(value = "/save/qccode")
|
||||||
|
public Result<Integer> save(@RequestBody UserQcCodeDTO userQcCodeDTO) {
|
||||||
|
return Result.ok(service.save(userQcCodeDTO));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.chushang.system.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.chushang.system.entity.dto.UserQcCodeDTO;
|
||||||
|
import com.chushang.system.entity.po.SysUserQcCode;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author by zhaowenyuan create 2022/8/19 11:49
|
||||||
|
*/
|
||||||
|
public interface ISysUserQcCodeService extends IService<SysUserQcCode> {
|
||||||
|
|
||||||
|
|
||||||
|
SysUserQcCode getInfo(Long userId);
|
||||||
|
|
||||||
|
int save(UserQcCodeDTO userQcCodeDTO);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -33,6 +33,9 @@ public interface ISysUserService extends IService<SysUser> {
|
||||||
|
|
||||||
void deleteBatch(Long[] userIds);
|
void deleteBatch(Long[] userIds);
|
||||||
|
|
||||||
|
|
||||||
|
SysUser selectByUserId(Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断是否为超级管理员 账号
|
* 判断是否为超级管理员 账号
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.chushang.system.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.alibaba.spring.util.BeanUtils;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.chushang.system.entity.dto.UserQcCodeDTO;
|
||||||
|
import com.chushang.system.entity.po.SysRoleDept;
|
||||||
|
import com.chushang.system.entity.po.SysUserQcCode;
|
||||||
|
import com.chushang.system.mapper.SysRoleDeptMapper;
|
||||||
|
import com.chushang.system.mapper.SysUserQcCodeMapper;
|
||||||
|
import com.chushang.system.service.ISysRoleDeptService;
|
||||||
|
import com.chushang.system.service.ISysUserQcCodeService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author author
|
||||||
|
* @since 2022-08-18
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
public class SysUserQcCodeServiceImpl extends ServiceImpl<SysUserQcCodeMapper, SysUserQcCode> implements ISysUserQcCodeService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysUserQcCode getInfo(Long userId) {
|
||||||
|
return baseMapper.selectById(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int save(UserQcCodeDTO userQcCodeDTO) {
|
||||||
|
SysUserQcCode sysUserQcCode = new SysUserQcCode();
|
||||||
|
sysUserQcCode.setLoanCode(userQcCodeDTO.getUrl());
|
||||||
|
userQcCodeDTO.setUserId(userQcCodeDTO.getUserId());
|
||||||
|
return baseMapper.insert(sysUserQcCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -143,6 +143,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysUser selectByUserId(Long userId) {
|
||||||
|
return baseMapper.selectById(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue