bug修复: 兰坪IOS第二轮问题修复
This commit is contained in:
parent
03d8f1b8af
commit
040914ea8a
|
|
@ -4,6 +4,8 @@ import cn.hutool.core.date.DateUtil;
|
|||
import cn.hutool.core.lang.UUID;
|
||||
import com.bonus.app.entry.dao.EntryPersonDao;
|
||||
import com.bonus.app.entry.entity.*;
|
||||
import com.bonus.app.pay.dao.PayCardDao;
|
||||
import com.bonus.app.pay.entity.PayCardBean;
|
||||
import com.bonus.app.person.dao.BasePersonDao;
|
||||
import com.bonus.app.person.entity.BasePersonBean;
|
||||
import com.bonus.common.core.constant.Constants;
|
||||
|
|
@ -32,6 +34,9 @@ public class EntryPersonServiceImpl implements EntryPersonService{
|
|||
@Resource(name = "basePersonDao")
|
||||
private BasePersonDao basePersonDao;
|
||||
|
||||
@Resource(name = "payCardDao")
|
||||
private PayCardDao payCardDao;
|
||||
|
||||
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
||||
|
||||
@Override
|
||||
|
|
@ -142,6 +147,15 @@ public class EntryPersonServiceImpl implements EntryPersonService{
|
|||
}else{
|
||||
entryPersonDao.insertBasePersonBankData(o);
|
||||
}
|
||||
if(o.getEntryBankBean() != null && StringUtils.isNotEmpty(o.getEntryBankBean().getBankPhoto())) {
|
||||
PayCardBean payCardBean = new PayCardBean();
|
||||
payCardBean.setIdNumber(o.getEntryIdNumberBean().getIdNumber());
|
||||
payCardBean.setPath(o.getEntryBankBean().getBankPhoto());
|
||||
String currentDatetime = DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss");
|
||||
payCardBean.setUploadTime(currentDatetime);
|
||||
payCardBean.setUploadDate(currentDatetime);
|
||||
payCardDao.uploadBankWiness(payCardBean);
|
||||
}
|
||||
if(StringUtils.isNotEmpty(o.getEntryContractBean().getContractCode())){
|
||||
if(StringUtils.isEmpty(o.getEntryContractBean().getContractId())){
|
||||
o.getEntryContractBean().setContractId(UUID.randomUUID().toString());
|
||||
|
|
|
|||
|
|
@ -289,7 +289,8 @@
|
|||
left join bm_worker_bank bwb on bwb.id_number = bw.id_number and bwb.is_active = 1
|
||||
left join bm_worker_payroll bwp on bwp.ID_NUMBER = bw.ID_NUMBER and bwp.is_active = 1
|
||||
where bw.id_number = #{idNumber}
|
||||
GROUP BY bw.id_number
|
||||
order by bwp.upload_time desc
|
||||
limit 1
|
||||
</select>
|
||||
|
||||
<select id="selectOtherData" resultType="com.bonus.app.entry.entity.EntryOtherBean">
|
||||
|
|
|
|||
|
|
@ -207,6 +207,12 @@
|
|||
<systemPath>${project.basedir}/lib/arcsoft-sdk-face-3.0.0.0-linux.jar</systemPath>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.squareup.okhttp3</groupId>
|
||||
<artifactId>okhttp</artifactId>
|
||||
<version>4.12.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>arcsoft</groupId>-->
|
||||
<!-- <artifactId>arcsoft</artifactId>-->
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.bonus.bmw.basic.controller;
|
||||
|
||||
import com.bonus.bmw.basic.dao.UserDao;
|
||||
import com.bonus.bmw.basic.entity.BankCardBean;
|
||||
import com.bonus.bmw.basic.entity.PushUserBean;
|
||||
import com.bonus.bmw.basic.entity.UserBean;
|
||||
import com.bonus.bmw.basic.service.OrgService;
|
||||
|
|
@ -170,4 +171,13 @@ public class UserController {
|
|||
public String sendSMS(@RequestBody UserBean userDto) {
|
||||
return userService.sendSMS(userDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 银行卡识别
|
||||
*/
|
||||
@PostMapping("/bankCard")
|
||||
@Log(title = "银行卡识别", businessType = BusinessType.OTHER)
|
||||
public R bankCard(@RequestBody BankCardBean bean){
|
||||
return userService.bankCard(bean);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
package com.bonus.bmw.basic.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 银行卡
|
||||
* @author hay
|
||||
*/
|
||||
@Data
|
||||
public class BankCardBean {
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* base64图片
|
||||
*/
|
||||
private String imageBase64;
|
||||
|
||||
/**
|
||||
* 银行卡号
|
||||
*/
|
||||
private String bankCard;
|
||||
|
||||
/**
|
||||
* 银行名称
|
||||
*/
|
||||
private String bankName;
|
||||
|
||||
/**
|
||||
* 日期
|
||||
*/
|
||||
private String date;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String type;
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.bonus.bmw.basic.service;
|
||||
|
||||
import com.bonus.bmw.basic.entity.BankCardBean;
|
||||
import com.bonus.bmw.basic.entity.PushUserBean;
|
||||
import com.bonus.bmw.basic.entity.UserBean;
|
||||
import com.bonus.common.core.domain.R;
|
||||
|
|
@ -32,4 +33,11 @@ public interface UserService {
|
|||
List<PushUserBean> getNeedDeleteUser();
|
||||
|
||||
String sendSMS(UserBean userDto);
|
||||
|
||||
/**
|
||||
* 识别银行卡
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
R bankCard(BankCardBean bean);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,16 @@
|
|||
package com.bonus.bmw.basic.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.bonus.bmw.basic.HttpRequestHelper;
|
||||
import com.bonus.bmw.basic.dao.UserDao;
|
||||
import com.bonus.bmw.basic.entity.BankCardBean;
|
||||
import com.bonus.bmw.basic.entity.PushUserBean;
|
||||
import com.bonus.bmw.basic.entity.UserBean;
|
||||
import com.bonus.common.core.domain.R;
|
||||
import com.bonus.common.core.utils.StringUtils;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
import okhttp3.*;
|
||||
import org.hibernate.validator.internal.util.StringHelper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -14,13 +18,33 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@Service("userService")
|
||||
public class UserServiceImpl implements UserService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger("adminLogger");
|
||||
|
||||
/** 应用1 */
|
||||
public static final String API_KEY = "HAdKRY9O9tTzXNfDKcHD4Qmh";
|
||||
/** 应用1 */
|
||||
public static final String SECRET_KEY = "S07GzrLyIQIbDqDQZPmDHAWzsgJxs0P3";
|
||||
|
||||
/** 应用2 */
|
||||
public static final String API_KEY_2 = "7WOVv79Yr0MMMPNTUfrSxGZb";
|
||||
/** 应用2 */
|
||||
public static final String SECRET_KEY_2 = "VA0QjDVr4Br9e2GefxMizGDwsuifIQZP";
|
||||
|
||||
/** 应用3 */
|
||||
public static final String API_KEY_3 = "rdFbKoeAjzs9YgwM1kiERhGA";
|
||||
/** 应用3 */
|
||||
public static final String SECRET_KEY_3 = "NgkR11xe6qSBY5jW71WFdGLloQKPxsbo";
|
||||
|
||||
private static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();
|
||||
|
||||
@Autowired
|
||||
private UserDao userDao;
|
||||
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
||||
|
|
@ -180,4 +204,103 @@ public class UserServiceImpl implements UserService {
|
|||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public R bankCard(BankCardBean bean) {
|
||||
try {
|
||||
if (!StringHelper.isNullOrEmptyString(bean.getImageBase64())) {
|
||||
String image = URLEncoder.encode(bean.getImageBase64(), "utf-8");
|
||||
// String image = bean.getImageBase64();
|
||||
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
|
||||
RequestBody body = RequestBody.create(mediaType, "image=" + image + "&location=false&detect_quality=false");
|
||||
Request request = new Request.Builder()
|
||||
.url("https://aip.baidubce.com/rest/2.0/ocr/v1/bankcard?access_token=" + getAccessToken())
|
||||
.method("POST", body)
|
||||
.addHeader("Content-Type", "application/x-www-form-urlencoded")
|
||||
.addHeader("Accept", "application/json")
|
||||
.build();
|
||||
Response response = HTTP_CLIENT.newCall(request).execute();
|
||||
String jsonString = response.body().string();
|
||||
JSONObject jsonObject = JSONObject.parseObject(jsonString);
|
||||
JSONObject resultObject = jsonObject.getJSONObject("result");
|
||||
String card_number = resultObject.getString("bank_card_number");
|
||||
String bank_name = resultObject.getString("bank_name");
|
||||
String date = resultObject.getString("valid_date");
|
||||
String type = resultObject.getString("bank_card_type");
|
||||
if (StringHelper.isNullOrEmptyString(card_number) || StringHelper.isNullOrEmptyString(bank_name)){
|
||||
return R.fail("银行卡信息识别失败");
|
||||
}
|
||||
BankCardBean bankCardBean = new BankCardBean();
|
||||
bankCardBean.setBankCard(card_number.replaceAll("\\s", ""));
|
||||
bankCardBean.setBankName(updateBankName(bank_name));
|
||||
bankCardBean.setDate(date);
|
||||
bankCardBean.setType(type);
|
||||
System.out.println(bankCardBean.getBankCard());
|
||||
return R.ok(bankCardBean, "识别成功");
|
||||
} else {
|
||||
return R.fail("请上传银行卡照片");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("银行卡识别失败", e);
|
||||
return R.fail("银行卡识别失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从用户的AK,SK生成鉴权签名(Access Token)
|
||||
*
|
||||
* @return 鉴权签名(Access Token)
|
||||
* @throws IOException IO异常
|
||||
*/
|
||||
static String getAccessToken() throws IOException {
|
||||
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
|
||||
RequestBody body=null;
|
||||
//生成随机数获取应用key
|
||||
Random random = new Random();
|
||||
int i = random.nextInt(3);
|
||||
if (i == 0){
|
||||
body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY
|
||||
+ "&client_secret=" + SECRET_KEY);
|
||||
} else if (i == 1){
|
||||
body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY_2
|
||||
+ "&client_secret=" + SECRET_KEY_2);
|
||||
} else {
|
||||
body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY_3
|
||||
+ "&client_secret=" + SECRET_KEY_3);
|
||||
}
|
||||
Request request = new Request.Builder()
|
||||
.url("https://aip.baidubce.com/oauth/2.0/token")
|
||||
.method("POST", body)
|
||||
.addHeader("Content-Type", "application/x-www-form-urlencoded")
|
||||
.build();
|
||||
Response response = HTTP_CLIENT.newCall(request).execute();
|
||||
String jsonString = response.body().string();
|
||||
JSONObject jsonObject = JSONObject.parseObject(jsonString);
|
||||
String accessToken = jsonObject.getString("access_token");
|
||||
return accessToken;
|
||||
}
|
||||
|
||||
private String updateBankName(String bankName) {
|
||||
if (!StringHelper.isNullOrEmptyString(bankName)){
|
||||
if (bankName.contains("工商银行")){
|
||||
return "中国工商银行";
|
||||
} else if (bankName.contains("建设银行")){
|
||||
return "中国建设银行";
|
||||
} else if (bankName.contains("人民银行")){
|
||||
return "中国人民银行";
|
||||
} else if (bankName.contains("农业银行")){
|
||||
return "中国农业银行";
|
||||
} else if (bankName.contains("交通银行")){
|
||||
return "中国交通银行";
|
||||
} else if (bankName.contains("农业发展银行")){
|
||||
return "中国农业发展银行";
|
||||
} else if (bankName.contains("邮政")){
|
||||
return "中国邮政储蓄银行";
|
||||
}else {
|
||||
return bankName;
|
||||
}
|
||||
} else {
|
||||
return bankName;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -498,7 +498,7 @@ public class LocalSysFileServiceImpl implements ISysFileService {
|
|||
return R.ok(sysFile, FaceStatusCodeReturn.faceStatusCodeReturn(Integer.parseInt(code)));
|
||||
} catch (Exception e) {
|
||||
log.error("上传文件失败", e);
|
||||
return R.fail(e.getMessage());
|
||||
return R.fail("人脸识别失败,请重试");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -513,7 +513,7 @@ public class LocalSysFileServiceImpl implements ISysFileService {
|
|||
JSONArray jsonArray = JSONObject.parseArray(personJsonObject.getString("data"));
|
||||
return jsonArray.get(0).toString();
|
||||
}else{
|
||||
return null;
|
||||
return "该人员不在人员库中";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue