cargocn

Cargocn 货运中国网

司机车辆注册

司机注册

  • 1 未认证

  • 2 认证审核中

  • 3 认证通过

  • 4 认证失败

  • 新增司机-老版

  1. 保存司机,挂到货运中国网下面
1
2
3
4
5
6
addDriver
limportDriver
addCar
setCarDriver
fapi/dispatch/selectCarNo
getCarInfo //运营app
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
@SuppressWarnings("serial")
@Controller("carDriverAction")
@Scope("prototype")
public class DriverAction extends BaseAction implements ModelDriven<SDriver> {

private String addDriver() {
super.printRequestParameter();
// resetDriverEncoding(driver);
driver.setDriverFile(new SDriverFile());
if (imgIdCardPhoto != null) {
driver.getDriverFile().setIdCardPhoto((new UploadFileSaveHelper()).readUploadFileFromDisk(imgIdCardPhoto));
}
if (imgLicensePhoto != null) {
driver.getDriverFile()
.setLicensePhoto((new UploadFileSaveHelper()).readUploadFileFromDisk(imgLicensePhoto));
}
sysService.addDriver(driver, super.getLoginUserFromSession());
return super.setDefaultAjaxFileUploadReturn();
}

# 实现方法
@Override
public void addDriver(SDriver d, SUser loginUser) {
//先将输入框里输入的值去除空格
d = trimDriver(d);
if (!SDriver.TYPE_VIP.equals(d.getDriverType())) {
d.setDriverType(SDriver.TYPE_REAL);
if (d.getIdCardNo() != null && !"".equals(d.getIdCardNo())) {
SDriver old = (SDriver) super.ruidDao.loadByPrimaryKey(SDriver.class, "idCardNo", d.getIdCardNo());
if (old != null) {
if (loginUser != null)
companyService.addCompanyDriver(d, loginUser);
throw new CarServiceException(ErrorCodes.ERR_CODE_DRIVERIDNO_DUPLICATE,
new String[] { d.getIdCardNo() });
}
} else {
throw new CarServiceException(ErrorCodes.ERR_CODE_DRIVERIDNO_NEED);
}
}
checkDriverTelDuplicate(d.getDriverTel());
d.setRegUser(loginUser);
d.setDriverStatus(SDriver.STATUS_VALID);
d.setPostNo(SDriver.ROLE_CAR_DRIVER);
//新增司机的时候,将其认定为未认证
d.setVerifyStatus(VerifyDriverStatusEnum.DRIVER_VERIFY_STATUS_UNCOMMIT.getId());
if (loginUser != null) {
Set<SCompany> companys = new HashSet<SCompany>();
companys.add(loginUser.getCompany());
d.setCompanys(companys);
}
if (d.getAppPasswd() != null && !"".equals(d.getAppPasswd())) {
d.setAppPasswd(EncryptionByMD5.getMD5(d.getAppPasswd().getBytes()));
} else if (d.getIdCardNo() != null && d.getIdCardNo().length() >= 8) {
d.setAppPasswd(EncryptionByMD5.getMD5(d.getIdCardNo().substring(d.getIdCardNo().length() - 8).getBytes()));
}
if (d.getDriverFile() == null) {
d.setDriverFile(new SDriverFile());
}
d.getDriverFile().setDriver(d);
super.ruidDao.saveBean(d.getDriverFile());
super.ruidDao.saveBean(d);

// 更新车辆与司机关系
if (d.getCarNo() != null && !"".equals(d.getCarNo())) {
SCar c = (SCar) super.ruidDao.loadByPrimaryKey(SCar.class, "carNo", d.getCarNo());
setCarDriver(c, d);
} else {
setCarDriver(null, d);
}
//建立虚拟账户
VirtualAccount account = new VirtualAccount();
account.setClientId(d.getDriverId());
//zly要求将身份证前六位改为手机号前六位
String str1 = "6".concat(getSubNum(d.getDriverTel()));
VirtualAccount maxVA = sysDao.getMaxClientAccount(str1);
String maxClientAccount = null;
if(maxVA!=null){
maxClientAccount = maxVA.getClientAccount();
}
if(maxClientAccount!=null && !"".equals(maxClientAccount)){
maxClientAccount = String.valueOf(Long.valueOf(maxClientAccount.substring(8, 11))+1);
}else{
maxClientAccount= "0001";
}
String a = getSubNum(d.getDriverTel());
String b = buildSixNum(4,maxClientAccount);
String clientAccount = "6".concat(a).concat(b);
account.setClientAccount(clientAccount);
account.setClientName(d.getDriverName());
account.setClientTel(d.getDriverTel());
account.setClientStatus(d.getDriverStatus()==null?"":String.valueOf(d.getDriverStatus()));
account.setClientType(VirtualAccount.CLIENTTYPE_DRIVER);
account.setCertificationId(d.getIdCardNo());
account.setFrozenAmount(new BigDecimal(0));
account.setAvailableAmount(new BigDecimal(0));
account.setTotalAsset(new BigDecimal(0));
account.setFrozenPrincipalAmount(new BigDecimal(0));
account.setFrozenInterestAmount(new BigDecimal(0));
account.setAvailablePrincipalAmount(new BigDecimal(0));
account.setAvailableInterestAmount(new BigDecimal(0));
account.setTotalIn(new BigDecimal(0));
account.setTotalOut(new BigDecimal(0));
account.setTotalInterestIn(new BigDecimal(0));
account.setTotalInterestOut(new BigDecimal(0));
account.setTotalPrincipalIn(new BigDecimal(0));
account.setTotalPrincipalOut(new BigDecimal(0));
if(loginUser!=null){
account.setCreateUserId(loginUser.getUserId());
account.setCreateUserName(loginUser.getUserName());
}
account.setCreationTime(new Date());
account = trimVirtualAccount(account);
ruidDao.saveBean(account);
if(d.getBankAccount()!=null && !"".equals(d.getBankAccount())){
if(d.getBankName()!=null && !"".equals(d.getBankName())){
if(d.getDriverName()!=null && !"".equals(d.getDriverName())){
UsersBank bank = new UsersBank();
bank.setClientId(d.getDriverId());
bank.setClientName(d.getDriverName());
bank.setClientAccount(clientAccount);
bank.setClientType(UsersBank.CLIENT_TYPE_DRIVER);
bank.setBankAccount(d.getBankAccount());
bank.setBankAccStatus(UsersBank.BANK_STATUS_ENABLE);
bank.setBankName(d.getBankName());
bank.setBindTime(new Date());
bank = trimBank(bank);
ruidDao.saveBean(bank);
}
}
}
AccountPwd ap = new AccountPwd();
ap.setClientId(d.getDriverId());
ap.setClientName(d.getDriverName());
ap.setClientType(VirtualAccount.CLIENTTYPE_DRIVER);
if(loginUser!=null){
ap.setOperatorId(String.valueOf(loginUser.getUserId()==null?"":loginUser.getUserId()));
ap.setOperatorName(loginUser.getUserName());
}
ap.setVirtualId(account.getSeqId());
// ap.setPassword(EncryptionByMD5.getMD5("111111".getBytes()));
ruidDao.saveBean(ap);
}
}
  • 司机新增-new
  1. 公司 文件 司机 虚拟账户 银行卡
    需要的数据:身份证正面,反面,驾驶证,行驶证
    挂到货运中国网下面
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @RequestMapping(value="/driver/add")  
    @ResponseBody
    public JSONObject addDriver(String driverTel,@CurrentUser User loginUser){
    //直接指定user,跳过,解决问题后可以去掉
    Long companyId=loginUser.getOrganizationId();
    try{
    JSONObject json=driverService.addPayeeOrDriver(driverTel, companyId,SDriver.TYPE_DRIVER);
    return json;
    }catch (ServiceException e) {
    String errorMsg = e.getMessageArgs() == null ? "" : e.getMessageArgs()[0];
    log.debug("errorMsg" + errorMsg);
    return FapiReturnUtil.returnAppResult(Constants.FAPI_FAIL_CODE, errorMsg);
    }
    }

司机认证

  • 编辑司机
    /cargocn-cloud-server/shDriver/infoOrEdit.do

  • 确认审核通过

/cargocn-cloud-server/shDriver/driverSH.do

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
@RequestMapping(value = "/driverSH.do", method = RequestMethod.POST)
public @ResponseBody ResultInfo shenheDriver(SDriver driver, @CurrentUser User loginUser) {
try {
driver=driverService.selectByPrimaryKey(driver.getDriverId());
//校验该身份证是否已经被使用过

int res=0;
if(driver!=null){
// driver.setDriverStatus((byte) 1);
driver.setVerifyStatus(VerifyDriverStatusEnum.DRIVER_VERIFY_STATUS_CONFIRM.getId());
driver.setAuditDate(new Date());
res = driverService.updateByPrimaryKeySelective(driver);
Car car =carservice.selectByPrimaryKey(driver.getRegCarId());
if(car!=null&&car.getCurrentdriverid()==null&&driver.getCurrentCarId()==null){
driverService.setCarDriver(driver, car);
}
}
if (res > 0) {
try{
Byte l = null;
String registrationId = null;
String type = null;
String path = null;
if("承运APP".equals( driver.getDriverCreatorSource())){
type = JgtsEntity.CYAPP_DRIVER_FAIL;
path = JgtsEntity.CYAPP;
String dianhua = carservice.getUserTel(driver.getRegUserId());
TransUserPhoneEntity dpheno = regiService.userPhone(dianhua);
l = dpheno.getPtype();
registrationId = dpheno.getRegistrationid();
}else{
type = JgtsEntity.SJAPP_DRIVER_FAIL;
path = JgtsEntity.SJAPP;
DriverPhone dpheno = regiService.selectByPrimaryKey2(driver.getDriverId());
l = dpheno.getPtype();
registrationId = dpheno.getRegistrationid();
}
if(registrationId!=null){
Map<String,String> map = new HashMap<String,String>();
map.put("msg", "您的账号已审批通过!开始接活吧!");
map.put("type", type);
log.error("极光推送 ,司机信息审核通过:" + driver.getDriverId()+".....registrationId...."+registrationId);
if(registrationId!=null&&!"".equals(registrationId)){
if(l==1){
JGTSutil.jpushIOS(map, registrationId,path);
}else{
JGTSutil.jpushAndroid(map, registrationId,path);
}
}
}
}catch (Exception e) {
e.printStackTrace();
}
try{
JSONObject json=new JSONObject();
json.put("name",driver.getDriverName());
smsService.sendMessageByMq(driver.getDriverTel(), "货运中国网", "SMS_100915088", json.toString());

}catch (Exception e) {
e.printStackTrace();
}
try{

List<SCode> list = shService.loadScode(110);
BigDecimal amount=new BigDecimal(20);
if(list!=null&&list.size()>0){
SCode code=list.get(0);
if(code!=null&&CommonUtil.isNumeric(code.getCodevalue())){
amount=new BigDecimal(code.getCodevalue());
}
}
log.debug("record amount...."+amount);
shService.giveMoneyToDriverr(driver.getDriverId(),amount , loginUser);
}catch(Exception e){
e.printStackTrace();
}

DriverCheckHis checkHis = new DriverCheckHis();
checkHis.setAuditorid(loginUser.getId().intValue());
checkHis.setAuditorname(loginUser.getUsername());
checkHis.setVerifydrivertel(driver.getDriverTel());
checkHis.setVerifycode("0");
checkHis.setVerifyname("审核成功");
checkHis.setVerifyresult("成功");
checkHis.setVerifytime(new Date());
driverService.insertSelectiveDriverCheckHis(checkHis);
//以下添加是用于司机用户审核的时候,如果银行卡开户行和账户不为空,并且该司机的虚拟账户里没有该银行卡的时候,才添加该银行卡
if(driver.getBankAccount()!=null && !"".equals(driver.getBankAccount())){
if(driver.getBankName()!=null && !"".equals(driver.getBankName())){
VirtualAccount account = driverService.selectByClientIdAndType(driver.getDriverId(), VirtualAccount.CLIENTTYPE_DRIVER);
List<UsersBank> bankList = driverService.queryBankListByClientIdAndBankAccount(driver.getDriverId(), driver.getBankAccount());
if(bankList==null || bankList.size()==0){
if(account!=null && account.getClientAccount()!=null && driver.getDriverName()!=null && !"".equals(driver.getDriverName())){
UsersBank bank = new UsersBank();
bank.setClientId(driver.getDriverId());
bank.setClientName(driver.getDriverName());
bank.setClientAccount(account.getClientAccount());
bank.setClientType(UsersBank.CLIENT_TYPE_DRIVER);
bank.setBankAccount(driver.getBankAccount());
bank.setBankAccStatus(UsersBank.BANK_STATUS_ENABLE);
bank.setBankName(driver.getBankName());
bank.setBindTime(new Date());
driverService.insertBank(bank);
}
}
}
}
// =====添加成达系列公司的关联关系
this.insertCompanyCarDriver(driver.getDriverId());
return ResultUtil.success(driver);
}
} catch (Exception e) {
e.printStackTrace();
return ResultUtil.error(e.getLocalizedMessage());
}
return null;
}
  • 车辆审核
    /updateCar.do
-------------本文结束感谢您的阅读-------------
undefined