From 3e210fac9492b90e21ca9bf76c1d9a8fda1f4388 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 13 五月 2026 11:32:17 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java | 449 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 369 insertions(+), 80 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
index e6aab3c..84659b7 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
@@ -259,6 +259,10 @@
if (pageWrap.getModel().getStatus() != null) {
queryWrapper.eq(DriverInfo::getStatus, pageWrap.getModel().getStatus());
}
+ // 鐗堟湰
+ if (pageWrap.getModel().getVersionType() != null) {
+ queryWrapper.eq(DriverInfo::getVersionType, pageWrap.getModel().getVersionType());
+ }
// 瀹℃壒鐘舵��
if (pageWrap.getModel().getAuditStatus() != null) {
queryWrapper.eq(DriverInfo::getAuditStatus, pageWrap.getModel().getAuditStatus());
@@ -300,7 +304,9 @@
String code = RandomStringUtils.randomNumeric(6);
// 鍙戦�佺煭淇�
String templateParam = "{\"code\":\"" + code + "\"}";
- AliSmsService.sendSms(telephone, Constants.SmsNotify.VERIFY_CODE.getTemplateCode(), templateParam);
+ if (Constants.SmsNotify.VERIFY_CODE.isEnabled()) {
+ AliSmsService.sendSms(telephone, Constants.SmsNotify.VERIFY_CODE.getTemplateCode(), templateParam);
+ }
// 淇濆瓨鐭俊璁板綍
Smsrecord smsrecord = new Smsrecord();
smsrecord.setDeleted(Constants.ZERO);
@@ -354,7 +360,7 @@
Date now = new Date();
Member member;
-
+ DriverInfo driverInfo = new DriverInfo();
if (Objects.nonNull(existMember)) {
// 宸叉湁鍙告満璐﹀彿锛岀洿鎺ョ櫥褰�
if (!Constants.equalsInteger(existMember.getStatus(), Constants.ZERO)) {
@@ -396,8 +402,6 @@
memberMapper.insert(member);
// 鍒涘缓鍙告満鍩虹淇℃伅
- DriverInfo driverInfo = new DriverInfo();
- driverInfo.setId(member.getId());
driverInfo.setDeleted(Constants.ZERO);
driverInfo.setCreateTime(now);
driverInfo.setUpdateTime(now);
@@ -406,13 +410,14 @@
driverInfo.setMemberId(member.getId());
driverInfo.setStatus(Constants.ZERO);
driverInfo.setAuditStatus(99);
+ driverInfo.setVersionType(Constants.ZERO);
driverInfo.setJpushAlias(org.springframework.util.DigestUtils.md5DigestAsHex(telephone.getBytes()));
driverInfoMapper.insert(driverInfo);
}
// 3. 鐢熸垚token杩斿洖
AccountResponse accountResponse = new AccountResponse();
- accountResponse.setToken(JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ONE, JSONObject.toJSONString(member), redisTemplate));
+ accountResponse.setToken(JwtTokenUtil.generateTokenForRedis(driverInfo.getId(), Constants.ONE, JSONObject.toJSONString(member), redisTemplate));
accountResponse.setMember(member);
return accountResponse;
}
@@ -436,6 +441,13 @@
if (!Constants.equalsInteger(member.getStatus(), Constants.ZERO)) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璐﹀彿宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
}
+ // 鑾峰彇鍙告満琛ㄤ俊鎭�
+ DriverInfo driverInfo = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda().eq(DriverInfo::getMemberId, member.getId())
+ .eq(DriverInfo::getDeleted, Constants.ZERO).eq(DriverInfo::getVersionType,Constants.ZERO).last("limit 1")
+ );
+ if(Objects.isNull(driverInfo)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍙告満璐﹀彿涓嶅瓨鍦�");
+ }
// 鏍¢獙瀵嗙爜
String encryptPwd = secure.encryptPassword(password, member.getSalt());
if (!encryptPwd.equals(member.getPassword())) {
@@ -446,9 +458,8 @@
.set(Member::getLoginTime, new Date())
.setSql("login_times = login_times + 1")
.eq(Member::getId, member.getId()));
-
AccountResponse accountResponse = new AccountResponse();
- accountResponse.setToken(JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ONE, JSONObject.toJSONString(member), redisTemplate));
+ accountResponse.setToken(JwtTokenUtil.generateTokenForRedis(driverInfo.getId(), Constants.ONE, JSONObject.toJSONString(member), redisTemplate));
accountResponse.setMember(member);
return accountResponse;
}
@@ -457,7 +468,7 @@
@Override
@Transactional
- public void submitVerify(Integer memberId, DriverVerifyRequest request) {
+ public void submitVerify(Integer driverId, DriverVerifyRequest request) {
// 鍙傛暟鍩虹鏍¢獙
if (StringUtils.isAnyBlank(request.getName(), request.getIdcard(), request.getLivePlace(),
request.getCarCode(), request.getIdcardImg(), request.getIdcardImgBack())) {
@@ -469,19 +480,6 @@
// 韬唤璇佸彿鏍煎紡鏍¢獙锛�18浣嶏紝鏈�鍚庝竴浣嶅彲涓篨锛�
if (!request.getIdcard().matches("^[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]$")) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "韬唤璇佸彿鏍煎紡涓嶆纭�");
- }
- // 鏌ヨ鍙告満淇℃伅
- DriverInfo driverInfo = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
- .eq(DriverInfo::getMemberId, memberId)
- .eq(DriverInfo::getDeleted, Constants.ZERO)
- .last("limit 1"));
- if (Objects.isNull(driverInfo)) {
- throw new BusinessException(ResponseStatus.DATA_EMPTY);
- }
- // 鐘舵�佹牎楠岋細auditStatus=null(鏈彁浜�)鎴朼uditStatus=2(瀹℃壒椹冲洖)鍙彁浜よ璇�
- if (driverInfo.getAuditStatus() != null
- && !(Constants.equalsInteger(driverInfo.getAuditStatus(), Constants.TWO)||Constants.equalsInteger(driverInfo.getAuditStatus(), 99))) {
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠鐘舵�佷笉鍏佽鎻愪氦璁よ瘉");
}
// 鏍规嵁杞﹁締绫诲瀷鍒ゆ柇鏄惁闇�瑕侀┚椹惰瘉
Category category = categoryMapper.selectById(request.getCarType());
@@ -512,8 +510,66 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鍏朵粬璧勬枡鐓х墖鏈�澶氫笂浼�3寮�");
}
- // 鏇存柊鍙告満淇℃伅
+ // 鏌ヨ姝e紡鐗堟湰鍙告満
+ DriverInfo official = driverInfoMapper.selectById(driverId);
+ if (Objects.isNull(official) || Constants.equalsInteger(official.getDeleted(), Constants.ONE)) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ Integer memberId = official.getMemberId();
+
Date now = new Date();
+
+ // 鏌ヨ璇ヤ細鍛樻渶鏂扮殑鍙樻洿鐗堟湰
+ QueryWrapper<DriverInfo> changeQw = new QueryWrapper<>();
+ changeQw.lambda()
+ .eq(DriverInfo::getMemberId, memberId)
+ .eq(DriverInfo::getVersionType, Constants.ONE)
+ .eq(DriverInfo::getDeleted, Constants.ZERO)
+ .orderByDesc(DriverInfo::getCreateTime)
+ .last("limit 1");
+ DriverInfo changeVersion = driverInfoMapper.selectOne(changeQw);
+
+ if (changeVersion == null) {
+ // 棣栨璁よ瘉锛氭洿鏂版寮忕増鏈� + 鍒涘缓鍙樻洿鐗堟湰
+ applyDriverFieldsFromUpdate(official.getId(), request, now);
+ deleteDriverAttachments(official.getId());
+ saveDriverAttachments(official.getId(), request, now);
+ // 閲嶆柊璇诲彇鏇存柊鍚庣殑姝e紡鐗堟湰锛屽啀鍒涘缓鍙樻洿鐗堟湰
+ DriverInfo updatedOfficial = driverInfoMapper.selectById(official.getId());
+ createDriverChangeVersion(updatedOfficial, official.getId(), now);
+ } else if (Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.THREE)) {
+ // auditStatus=3锛氱敓鎴愭柊鐨勫彉鏇寸増鏈�
+ Integer relationId = changeVersion.getRelationDriverId() != null
+ ? changeVersion.getRelationDriverId() : official.getId();
+ DriverInfo newChange = new DriverInfo();
+ applyDriverFieldsFromNew(newChange, request, official, now);
+ newChange.setVersionType(Constants.ONE);
+ newChange.setRelationDriverId(relationId);
+ newChange.setAuditStatus(Constants.ZERO);
+ newChange.setStatus(Constants.ZERO);
+ newChange.setDeleted(Constants.ZERO);
+ newChange.setCreateTime(now);
+ newChange.setUpdateTime(now);
+ newChange.setMemberId(memberId);
+ newChange.setTelephone(official.getTelephone());
+ newChange.setJpushAlias(official.getJpushAlias());
+ driverInfoMapper.insert(newChange);
+ saveDriverAttachments(newChange.getId(), request, now);
+ } else {
+ // auditStatus=0/2锛氱洿鎺ユ洿鏂板彉鏇寸増鏈�
+ applyDriverFieldsFromUpdate(changeVersion.getId(), request, now);
+ deleteDriverAttachments(changeVersion.getId());
+ saveDriverAttachments(changeVersion.getId(), request, now);
+ }
+
+ // 鏇存柊浼氬憳鍙告満璁よ瘉鐘舵�佷负璁よ瘉涓�
+ memberMapper.update(new UpdateWrapper<Member>().lambda()
+ .set(Member::getBusinessStatus, Constants.ONE)
+ .set(Member::getUpdateTime, now)
+ .eq(Member::getId, memberId));
+ }
+
+ private void applyDriverFieldsFromUpdate(Integer driverId, DriverVerifyRequest request, Date now) {
driverInfoMapper.update(new UpdateWrapper<DriverInfo>().lambda()
.set(DriverInfo::getName, request.getName())
.set(DriverInfo::getIdcard, request.getIdcard())
@@ -533,39 +589,129 @@
.set(DriverInfo::getAuditStatus, Constants.ZERO)
.set(DriverInfo::getAuditRemark, null)
.set(DriverInfo::getAuditTime, null)
- .eq(DriverInfo::getId, driverInfo.getId()));
+ .eq(DriverInfo::getId, driverId));
+ }
- // 鍒犻櫎鏃х殑鐓х墖璁板綍
- multifileMapper.delete(new QueryWrapper<Multifile>().lambda()
- .eq(Multifile::getObjId, driverInfo.getId())
- .in(Multifile::getObjType, 6, 7, 8));
+ private void applyDriverFieldsFromNew(DriverInfo driver, DriverVerifyRequest request, DriverInfo official, Date now) {
+ driver.setName(request.getName());
+ driver.setIdcard(request.getIdcard());
+ driver.setMaritalStatus(request.getMaritalStatus());
+ driver.setAreaId(request.getAreaId());
+ driver.setLivePlace(request.getLivePlace());
+ driver.setCarCode(request.getCarCode());
+ driver.setCarType(request.getCarType());
+ driver.setCarColor(request.getCarColor());
+ driver.setCardStartDate(request.getCardStartDate());
+ driver.setCardEndDate(request.getCardEndDate());
+ driver.setIdcardImg(request.getIdcardImg());
+ driver.setIdcardImgBack(request.getIdcardImgBack());
+ driver.setAliAccount(request.getAliAccount());
+ driver.setAliName(request.getAliName());
+ }
- // 淇濆瓨杞﹁締鐓х墖 objType=6
- saveMultifileList(driverInfo.getId(), 6, request.getCarImgUrls(), now);
- // 淇濆瓨椹鹃┒璇佺収鐗� objType=7
+ private void saveDriverAttachments(Integer driverId, DriverVerifyRequest request, Date now) {
+ saveMultifileList(driverId, 6, request.getCarImgUrls(), now);
if (!CollectionUtils.isEmpty(request.getLicenseImgUrls())) {
- saveMultifileList(driverInfo.getId(), 7, request.getLicenseImgUrls(), now);
+ saveMultifileList(driverId, 7, request.getLicenseImgUrls(), now);
}
- // 淇濆瓨鍏朵粬璧勬枡鐓х墖 objType=8
if (!CollectionUtils.isEmpty(request.getOtherImgUrls())) {
- saveMultifileList(driverInfo.getId(), 8, request.getOtherImgUrls(), now);
+ saveMultifileList(driverId, 8, request.getOtherImgUrls(), now);
}
+ }
- // 鏇存柊浼氬憳鍙告満璁よ瘉鐘舵�佷负璁よ瘉涓�
- memberMapper.update(new UpdateWrapper<Member>().lambda()
- .set(Member::getBusinessStatus, Constants.ONE)
- .set(Member::getUpdateTime, now)
- .eq(Member::getId, memberId));
+ private void deleteDriverAttachments(Integer driverId) {
+ multifileMapper.delete(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId, driverId)
+ .in(Multifile::getObjType, 6, 7, 8));
+ }
+
+ private void createDriverChangeVersion(DriverInfo official, Integer officialId, Date now) {
+ DriverInfo change = new DriverInfo();
+ change.setName(official.getName());
+ change.setIdcard(official.getIdcard());
+ change.setMaritalStatus(official.getMaritalStatus());
+ change.setAreaId(official.getAreaId());
+ change.setLivePlace(official.getLivePlace());
+ change.setImgurl(official.getImgurl());
+ change.setCarType(official.getCarType());
+ change.setCarCode(official.getCarCode());
+ change.setCarColor(official.getCarColor());
+ change.setCardStartDate(official.getCardStartDate());
+ change.setCardEndDate(official.getCardEndDate());
+ change.setIdcardImg(official.getIdcardImg());
+ change.setIdcardImgBack(official.getIdcardImgBack());
+ change.setAliAccount(official.getAliAccount());
+ change.setAliName(official.getAliName());
+ change.setVersionType(Constants.ONE);
+ change.setRelationDriverId(officialId);
+ change.setMemberId(official.getMemberId());
+ change.setTelephone(official.getTelephone());
+ change.setOpenid(official.getOpenid());
+ change.setUnionid(official.getUnionid());
+ change.setJpushAlias(official.getJpushAlias());
+ change.setScore(official.getScore());
+ change.setDriverLevel(official.getDriverLevel());
+ change.setBalance(official.getBalance());
+ change.setTotalBalance(official.getTotalBalance());
+ change.setLongitude(official.getLongitude());
+ change.setLatitude(official.getLatitude());
+ change.setAuditStatus(official.getAuditStatus());
+ change.setStatus(official.getStatus());
+ change.setDeleted(official.getDeleted());
+ change.setCreateTime(now);
+ change.setUpdateTime(now);
+ driverInfoMapper.insert(change);
+
+ // 鎷疯礉闄勪欢
+ List<Multifile> originFiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId, officialId)
+ .eq(Multifile::getIsdeleted, Constants.ZERO)
+ .in(Multifile::getObjType, 6, 7, 8));
+ for (Multifile f : originFiles) {
+ Multifile copy = new Multifile();
+ copy.setCreator(f.getCreator());
+ copy.setCreateDate(now);
+ copy.setIsdeleted(Constants.ZERO);
+ copy.setName(f.getName());
+ copy.setInfo(f.getInfo());
+ copy.setObjId(change.getId());
+ copy.setType(f.getType());
+ copy.setObjType(f.getObjType());
+ copy.setFileurl(f.getFileurl());
+ copy.setSortnum(f.getSortnum());
+ multifileMapper.insert(copy);
+ }
}
@Override
public DriverInfo getVerifyDetail(Integer memberId) {
+ // 浼樺厛鏌ヨ鏈�鏂扮殑鍙樻洿鐗堟湰
DriverInfo driverInfo = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
- .eq(DriverInfo::getId, memberId)
+ .eq(DriverInfo::getRelationDriverId, memberId)
+ .eq(DriverInfo::getVersionType, Constants.ONE)
.eq(DriverInfo::getDeleted, Constants.ZERO)
+ .orderByDesc(DriverInfo::getCreateTime)
.last("limit 1"));
if (Objects.isNull(driverInfo)) {
+ // 鏃犲彉鏇寸増鏈垯鏌ユ寮忕増鏈�
+ driverInfo = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
+ .eq(DriverInfo::getId, memberId)
+ .eq(DriverInfo::getVersionType, Constants.ZERO)
+ .eq(DriverInfo::getDeleted, Constants.ZERO)
+ .last("limit 1"));
+ }
+ if (Objects.isNull(driverInfo)) {
throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ // 鏍囪鏄惁瀛樺湪瀹℃壒閫氳繃鐨勬寮忕増鏈�
+ if (driverInfo.getRelationDriverId() != null) {
+ DriverInfo official = driverInfoMapper.selectById(driverInfo.getRelationDriverId());
+ driverInfo.setHasApprovedOfficial(official != null
+ && Constants.equalsInteger(official.getAuditStatus(), Constants.THREE));
+ } else if (Constants.equalsInteger(driverInfo.getVersionType(), Constants.ZERO)) {
+ driverInfo.setHasApprovedOfficial(Constants.equalsInteger(driverInfo.getAuditStatus(), Constants.THREE));
+ } else {
+ driverInfo.setHasApprovedOfficial(false);
}
// 鎷兼帴鍥剧墖鍓嶇紑
String imgPrefix = "";
@@ -622,57 +768,142 @@
if (Objects.isNull(auditDTO.getId()) || Objects.isNull(auditDTO.getAuditStatus())) {
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- DriverInfo driverInfo = driverInfoMapper.selectById(auditDTO.getId());
- if (Objects.isNull(driverInfo)) {
+ // 瀹℃壒鐨勬槸鍙樻洿鐗堟湰
+ DriverInfo changeVersion = driverInfoMapper.selectById(auditDTO.getId());
+ if (Objects.isNull(changeVersion) || Constants.equalsInteger(changeVersion.getDeleted(), Constants.ONE)) {
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- // 鍙湁瀹℃壒鐘舵�佷负0(寰呭鎵�)涓斿凡濉啓璁よ瘉淇℃伅鎵嶈兘瀹℃壒
- if (!Constants.equalsInteger(driverInfo.getAuditStatus(), Constants.ZERO)
- || StringUtils.isBlank(driverInfo.getIdcard())) {
+ if (!Constants.equalsInteger(changeVersion.getAuditStatus(), Constants.ZERO)
+ || StringUtils.isBlank(changeVersion.getIdcard())) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠鐘舵�佷笉鍏佽瀹℃壒");
}
+
Date now = new Date();
- // 瀹℃壒缁撴灉锛歛uditDTO.auditStatus 0=閫氳繃鈫抋uditStatus=1锛�1=鎷掔粷鈫抋uditStatus=2
+ // auditDTO.auditStatus: 0=閫氳繃鈫�3, 1=椹冲洖鈫�2
Integer newAuditStatus;
if (Constants.equalsInteger(auditDTO.getAuditStatus(), Constants.ZERO)) {
- newAuditStatus = Constants.THREE; // 瀹℃壒閫氳繃
- // 瀹℃壒閫氳繃鏃跺徃鏈哄畾绾т负蹇呭~
+ newAuditStatus = Constants.THREE;
if (auditDTO.getDriverLevel() == null || auditDTO.getDriverLevel() < 1 || auditDTO.getDriverLevel() > 5) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀹℃壒閫氳繃鏃跺繀椤诲~鍐欏徃鏈哄畾绾�");
}
} else if (Constants.equalsInteger(auditDTO.getAuditStatus(), Constants.ONE)) {
- newAuditStatus = Constants.TWO; // 瀹℃壒椹冲洖
+ newAuditStatus = Constants.TWO;
} else {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀹℃壒鐘舵�佸弬鏁伴敊璇�");
}
- // 鏇存柊鍙告満瀹℃壒鐘舵��
- driverInfoMapper.update(new UpdateWrapper<DriverInfo>().lambda()
- .set(DriverInfo::getAuditStatus, newAuditStatus)
- .set(DriverInfo::getAuditTime, now)
- .set(DriverInfo::getAuditRemark, auditDTO.getAuditRemark())
- .set(DriverInfo::getAuditUser, auditDTO.getAuditUser())
- .set(auditDTO.getDriverLevel() != null, DriverInfo::getDriverLevel, auditDTO.getDriverLevel())
- .set(DriverInfo::getUpdateTime, now)
- .eq(DriverInfo::getId, auditDTO.getId()));
- // 鏇存柊浼氬憳鍙告満璁よ瘉鐘舵�侊細閫氳繃=2锛岄┏鍥�=3
- Integer driverStatus = Constants.equalsInteger(newAuditStatus, Constants.ONE) ? Constants.TWO : Constants.THREE;
- memberMapper.update(new UpdateWrapper<Member>().lambda()
- .set(Member::getBusinessStatus, driverStatus)
- .set(Member::getUpdateTime, now)
- .eq(Member::getId, driverInfo.getMemberId()));
- // 鐭俊閫氱煡
- if (Constants.equalsInteger(newAuditStatus, Constants.ONE)) {
- // 瀹℃壒閫氳繃
+ // 鏌ユ壘姝e紡鐗堟湰
+ Integer officialId = changeVersion.getRelationDriverId();
+ DriverInfo official = officialId != null ? driverInfoMapper.selectById(officialId) : null;
+ boolean hasApprovedOfficial = official != null
+ && Constants.equalsInteger(official.getAuditStatus(), Constants.THREE);
+
+ if (!hasApprovedOfficial) {
+ // 鍦烘櫙1锛氭寮忕増鏈湭瀹℃壒閫氳繃锛堥娆″鎵癸級
+ driverInfoMapper.update(new UpdateWrapper<DriverInfo>().lambda()
+ .set(DriverInfo::getAuditStatus, newAuditStatus)
+ .set(DriverInfo::getAuditTime, now)
+ .set(DriverInfo::getAuditRemark, auditDTO.getAuditRemark())
+ .set(DriverInfo::getAuditUser, auditDTO.getAuditUser())
+ .set(auditDTO.getDriverLevel() != null, DriverInfo::getDriverLevel, auditDTO.getDriverLevel())
+ .set(DriverInfo::getUpdateTime, now)
+ .eq(DriverInfo::getId, changeVersion.getId()));
+
+ // 鍚屾鏇存柊姝e紡鐗堟湰锛堝鎵圭姸鎬� + 鏁版嵁瀛楁锛�
+ if (official != null) {
+ syncDriverChangeToOfficial(changeVersion, official, auditDTO.getDriverLevel(), now);
+ }
+
+ // 鏇存柊浼氬憳鐘舵��
+ Integer driverStatus = Constants.equalsInteger(newAuditStatus, Constants.THREE) ? Constants.TWO : Constants.THREE;
+ memberMapper.update(new UpdateWrapper<Member>().lambda()
+ .set(Member::getBusinessStatus, driverStatus)
+ .set(Member::getUpdateTime, now)
+ .eq(Member::getId, changeVersion.getMemberId()));
+
+ // 鐭俊閫氱煡
+ sendDriverAuditSms(changeVersion, newAuditStatus, auditDTO.getAuditRemark());
+ } else {
+ // 鍦烘櫙2锛氭寮忕増鏈凡瀹℃壒閫氳繃锛堝彉鏇村鎵癸級
+ if (Constants.equalsInteger(newAuditStatus, Constants.THREE)) {
+ // 瀹℃壒閫氳繃锛氬彉鏇寸増鏈爣璁癮uditStatus=3锛屽悓姝ユ暟鎹埌姝e紡鐗堟湰
+ driverInfoMapper.update(new UpdateWrapper<DriverInfo>().lambda()
+ .set(DriverInfo::getAuditStatus, Constants.THREE)
+ .set(DriverInfo::getAuditTime, now)
+ .set(DriverInfo::getAuditRemark, auditDTO.getAuditRemark())
+ .set(DriverInfo::getAuditUser, auditDTO.getAuditUser())
+ .set(DriverInfo::getDriverLevel, auditDTO.getDriverLevel())
+ .set(DriverInfo::getUpdateTime, now)
+ .eq(DriverInfo::getId, changeVersion.getId()));
+
+ // 鍚屾鍙樻洿鐗堟湰鏁版嵁鍒版寮忕増鏈�
+ syncDriverChangeToOfficial(changeVersion, official, auditDTO.getDriverLevel(), now);
+ } else {
+ // 瀹℃壒椹冲洖锛氫粎鏍囪鍙樻洿鐗堟湰
+ driverInfoMapper.update(new UpdateWrapper<DriverInfo>().lambda()
+ .set(DriverInfo::getAuditStatus, Constants.TWO)
+ .set(DriverInfo::getAuditTime, now)
+ .set(DriverInfo::getAuditRemark, auditDTO.getAuditRemark())
+ .set(DriverInfo::getAuditUser, auditDTO.getAuditUser())
+ .set(DriverInfo::getUpdateTime, now)
+ .eq(DriverInfo::getId, changeVersion.getId()));
+ }
+ }
+ }
+
+ private void syncDriverChangeToOfficial(DriverInfo changeVersion, DriverInfo official, Integer driverLevel, Date now) {
+ official.setName(changeVersion.getName());
+ official.setIdcard(changeVersion.getIdcard());
+ official.setMaritalStatus(changeVersion.getMaritalStatus());
+ official.setAreaId(changeVersion.getAreaId());
+ official.setLivePlace(changeVersion.getLivePlace());
+ official.setCarType(changeVersion.getCarType());
+ official.setCarCode(changeVersion.getCarCode());
+ official.setCarColor(changeVersion.getCarColor());
+ official.setCardStartDate(changeVersion.getCardStartDate());
+ official.setCardEndDate(changeVersion.getCardEndDate());
+ official.setIdcardImg(changeVersion.getIdcardImg());
+ official.setIdcardImgBack(changeVersion.getIdcardImgBack());
+ official.setAliAccount(changeVersion.getAliAccount());
+ official.setAliName(changeVersion.getAliName());
+ if (driverLevel != null) {
+ official.setDriverLevel(driverLevel);
+ }
+ official.setUpdateTime(now);
+ driverInfoMapper.updateById(official);
+
+ // 鍚屾闄勪欢锛氬厛鍒犳寮忕増鏈棫闄勪欢锛屽啀浠庡彉鏇寸増鏈嫹璐�
+ deleteDriverAttachments(official.getId());
+ List<Multifile> changeFiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+ .eq(Multifile::getObjId, changeVersion.getId())
+ .eq(Multifile::getIsdeleted, Constants.ZERO)
+ .in(Multifile::getObjType, 6, 7, 8));
+ for (Multifile f : changeFiles) {
+ Multifile copy = new Multifile();
+ copy.setCreator(f.getCreator());
+ copy.setCreateDate(now);
+ copy.setIsdeleted(Constants.ZERO);
+ copy.setName(f.getName());
+ copy.setInfo(f.getInfo());
+ copy.setObjId(official.getId());
+ copy.setType(f.getType());
+ copy.setObjType(f.getObjType());
+ copy.setFileurl(f.getFileurl());
+ copy.setSortnum(f.getSortnum());
+ multifileMapper.insert(copy);
+ }
+ }
+
+ private void sendDriverAuditSms(DriverInfo driverInfo, Integer newAuditStatus, String auditRemark) {
+ if (Constants.equalsInteger(newAuditStatus, Constants.THREE)) {
sendSmsNotify(driverInfo.getTelephone(),
Constants.SmsNotify.DRIVER_AUTH_APPROVED,
"driver", driverInfo.getName());
} else if (Constants.equalsInteger(newAuditStatus, Constants.TWO)) {
- // 瀹℃壒椹冲洖
sendSmsNotify(driverInfo.getTelephone(),
Constants.SmsNotify.DRIVER_AUTH_REJECTED,
"driver", driverInfo.getName(),
- "reason", auditDTO.getAuditRemark() != null ? auditDTO.getAuditRemark() : "");
+ "reason", auditRemark != null ? auditRemark : "");
}
}
@@ -826,7 +1057,8 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
DriverInfo driver = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
- .eq(DriverInfo::getMemberId, memberId)
+ .eq(DriverInfo::getId, memberId)
+ .eq(DriverInfo::getVersionType, Constants.ZERO)
.eq(DriverInfo::getDeleted, Constants.ZERO)
.last("limit 1"));
if (driver == null) {
@@ -841,12 +1073,13 @@
}
@Override
- public void updateLocation(Integer memberId, Double longitude, Double latitude) {
+ public void updateLocation(Integer driverId, Double longitude, Double latitude) {
if (longitude == null || latitude == null) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "缁忕含搴︿笉鑳戒负绌�");
}
DriverInfo driver = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
- .eq(DriverInfo::getMemberId, memberId)
+ .eq(DriverInfo::getId, driverId)
+ .eq(DriverInfo::getVersionType, Constants.ZERO)
.eq(DriverInfo::getDeleted, Constants.ZERO)
.last("limit 1"));
if (driver == null) {
@@ -859,9 +1092,10 @@
}
@Override
- public DriverCenterVO getDriverCenterInfo(Integer memberId) {
+ public DriverCenterVO getDriverCenterInfo(Integer driveId) {
DriverInfo driver = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
- .eq(DriverInfo::getMemberId, memberId)
+ .eq(DriverInfo::getId, driveId)
+ .eq(DriverInfo::getVersionType, Constants.ZERO)
.eq(DriverInfo::getDeleted, Constants.ZERO)
.last("limit 1"));
if (driver == null) {
@@ -937,6 +1171,7 @@
public com.doumee.dao.vo.DriverStatsVO getDriverStats(Integer memberId) {
DriverInfo driver = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
.eq(DriverInfo::getId, memberId)
+ .eq(DriverInfo::getVersionType, Constants.ZERO)
.eq(DriverInfo::getDeleted, Constants.ZERO)
.last("limit 1"));
if (driver == null) {
@@ -987,7 +1222,8 @@
// 1. 鑾峰彇鍙告満瀹氫綅
DriverInfo driver = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
- .eq(DriverInfo::getMemberId, memberId)
+ .eq(DriverInfo::getId, memberId)
+ .eq(DriverInfo::getVersionType, Constants.ZERO)
.eq(DriverInfo::getDeleted, Constants.ZERO)
.last("limit 1"));
if (driver == null || driver.getLatitude() == null || driver.getLongitude() == null) {
@@ -1111,7 +1347,8 @@
// 鑾峰彇鍙告満淇℃伅
DriverInfo driver = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
- .eq(DriverInfo::getMemberId, memberId)
+ .eq(DriverInfo::getId, memberId)
+ .eq(DriverInfo::getVersionType, Constants.ZERO)
.eq(DriverInfo::getDeleted, Constants.ZERO)
.last("limit 1"));
if (driver == null) {
@@ -1143,6 +1380,13 @@
.eq(Objects.nonNull(dto.getStatus()),Orders::getStatus, dto.getStatus())
.eq(Orders::getDeleted, Constants.ZERO)
.orderByAsc(Orders::getAcceptTime);
+ // 鍏抽敭璇嶆悳绱細鏀朵欢浜�/鏀朵欢浜虹數璇濇ā绯娿�佽鍗曞彿绮惧噯
+ if (StringUtils.isNotBlank(dto.getKeyword())) {
+ String kw = dto.getKeyword().trim();
+ wrapper.and(w -> w.like(Orders::getTakeUser, kw)
+ .or().like(Orders::getTakePhone, kw)
+ .or().eq(Orders::getCode, kw));
+ }
List<Orders> ordersList = ordersMapper.selectJoinList(Orders.class, wrapper);
@@ -1175,10 +1419,10 @@
wrapper.selectAll(Orders.class)
.select("s1.name", Orders::getDepositShopName)
.select("s1.address", Orders::getDepositShopAddress)
- .select("s1.telephone", Orders::getDepositShopLinkPhone)
+ .select("s1.link_phone", Orders::getDepositShopLinkPhone)
.select("s2.name", Orders::getTakeShopName)
.select("s2.address", Orders::getTakeShopAddress)
- .select("s2.telephone", Orders::getTakeShopLinkPhone)
+ .select("s2.link_phone", Orders::getTakeShopLinkPhone)
.select("c1.other_field as c2OtherField")
.select("c1.name as goodTypeName")
.select("IF(EXISTS(SELECT 1 FROM orders_detail od JOIN category c3 ON c3.id = od.LUGGAGE_ID AND c3.TYPE = 4 AND c3.OTHER_FIELD = '1' WHERE od.ORDER_ID = t.ID AND od.DELETED = 0), 1, 0) as hasOversized")
@@ -1876,6 +2120,9 @@
if (StringUtils.isBlank(phone)) {
return;
}
+ if (!smsNotify.isEnabled()) {
+ return;
+ }
String content = smsNotify.format(paramPairs);
try {
JSONObject templateParam = new JSONObject();
@@ -1996,7 +2243,7 @@
.select("s1.name", Orders::getDepositShopName)
.select("s1.address", Orders::getDepositShopAddress)
.select("s2.name", Orders::getTakeShopName)
- .select("s2.address", Orders::getDepositShopAddress)
+ .select("s2.address", Orders::getTakeShopAddress)
.select("s1.link_phone as takeShopLinkPhone")
.select("s2.link_phone as takeShopLinkPhone")
.select("c2.other_field as c2OtherField")
@@ -2094,8 +2341,12 @@
}
try {
int lastIndex = token.lastIndexOf("_") + 1;
- Integer memberId = Integer.valueOf(token.substring(lastIndex));
- Member member = memberMapper.selectById(memberId);
+ Integer driverId = Integer.valueOf(token.substring(lastIndex));
+ DriverInfo driverInfo = driverInfoMapper.selectById(driverId);
+ if(Objects.isNull(driverInfo)){
+ return false;
+ }
+ Member member = memberMapper.selectById(driverInfo.getMemberId());
return member != null
&& !Constants.ONE.equals(member.getDeleted())
&& !Constants.ONE.equals(member.getStatus())
@@ -2113,4 +2364,42 @@
driverInfoMapper.updateById(update);
}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int initChangeVersions() {
+ Date now = new Date();
+ // 1. 琛ュ叏 version_type 涓� NULL 鐨勮褰�
+ driverInfoMapper.update(new UpdateWrapper<DriverInfo>().lambda()
+ .set(DriverInfo::getVersionType, Constants.ZERO)
+ .isNull(DriverInfo::getVersionType));
+
+ // 2. 鏌ヨ鎵�鏈夊凡鏈夊彉鏇寸増鏈殑 relationDriverId
+ List<DriverInfo> changeVersions = driverInfoMapper.selectList(new QueryWrapper<DriverInfo>().lambda()
+ .eq(DriverInfo::getVersionType, Constants.ONE)
+ .eq(DriverInfo::getDeleted, Constants.ZERO)
+ .ne(DriverInfo::getAuditStatus,99)
+ .select(DriverInfo::getRelationDriverId)
+ .isNotNull(DriverInfo::getRelationDriverId));
+ Set<Integer> existingRelationIds = changeVersions.stream()
+ .map(DriverInfo::getRelationDriverId)
+ .collect(Collectors.toSet());
+
+ // 3. 鏌ヨ鎵�鏈夋病鏈夊彉鏇寸増鏈殑姝e紡鐗堟湰鍙告満
+ QueryWrapper<DriverInfo> qw = new QueryWrapper<>();
+ qw.lambda()
+ .eq(DriverInfo::getVersionType, Constants.ZERO)
+ .eq(DriverInfo::getDeleted, Constants.ZERO);
+ List<DriverInfo> officialList = driverInfoMapper.selectList(qw);
+
+ int count = 0;
+ for (DriverInfo official : officialList) {
+ if (existingRelationIds.contains(official.getId())) {
+ continue;
+ }
+ createDriverChangeVersion(official, official.getId(), now);
+ count++;
+ }
+ return count;
+ }
+
}
--
Gitblit v1.9.3