From f938ddb895cdcdfc925cfaa268c0ed8638f3b2a3 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期四, 17 八月 2023 11:39:25 +0800
Subject: [PATCH] update
---
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 159 insertions(+), 4 deletions(-)
diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java
index f9c8c63..4fde3d3 100644
--- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java
+++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java
@@ -5,13 +5,16 @@
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.supersavedriving.user.core.util.ToolUtil;
import com.supersavedriving.user.modular.system.dao.DriverMapper;
-import com.supersavedriving.user.modular.system.model.Driver;
-import com.supersavedriving.user.modular.system.model.DriverWork;
-import com.supersavedriving.user.modular.system.service.IDriverService;
-import com.supersavedriving.user.modular.system.service.IDriverWorkService;
+import com.supersavedriving.user.modular.system.model.*;
+import com.supersavedriving.user.modular.system.service.*;
import com.supersavedriving.user.modular.system.util.GeodesyUtil;
import com.supersavedriving.user.modular.system.util.RedisUtil;
+import com.supersavedriving.user.modular.system.util.ResultUtil;
+import com.supersavedriving.user.modular.system.util.UUIDUtil;
+import com.supersavedriving.user.modular.system.util.huawei.OBSUtil;
import com.supersavedriving.user.modular.system.util.mongodb.model.Location;
+import com.supersavedriving.user.modular.system.util.weChat.WeChatUtil;
+import com.supersavedriving.user.modular.system.warpper.DriverRegisterWarpper;
import com.supersavedriving.user.modular.system.warpper.NearbyDriverWarpper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.geo.Circle;
@@ -23,7 +26,10 @@
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
+import java.io.InputStream;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -44,6 +50,25 @@
@Autowired
private RedisUtil redisUtil;
+
+ @Autowired
+ private IAppUserService appUserService;
+
+ @Autowired
+ private WeChatUtil weChatUtil;
+
+ @Autowired
+ private IBranchOfficeService branchOfficeService;
+
+ @Autowired
+ private ISystemConfigService systemConfigService;
+
+ @Autowired
+ private IAccountChangeDetailService accountChangeDetailService;
+
+
+
+
/**
@@ -91,9 +116,139 @@
}
+ /**
+ * 注册司机
+ * @param uid
+ * @param driverRegisterWarpper
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public ResultUtil driverRegister(Integer uid, DriverRegisterWarpper driverRegisterWarpper) throws Exception {
+ Driver driver = this.selectOne(new EntityWrapper<Driver>().eq("phone", driverRegisterWarpper.getPhone()).ne("status", 3));
+ if(null != driver && driver.getStatus() == 2){
+ return ResultUtil.error("该手机账号已被冻结,请联系管理员。");
+ }
+ if(null != driver && driver.getApprovalStatus() == 1){
+ return ResultUtil.error("该手机账号正在审核中。");
+ }
+ if(null != driver && driver.getApprovalStatus() == 2){
+ return ResultUtil.error("该手机账号已审核通过,请直接登录。");
+ }
+
+ //账号审核拒绝后的处理
+ if(null != driver && driver.getApprovalStatus() == 3){
+ try {
+ driver = setDriverParamete(driver, driverRegisterWarpper);
+ }catch (Exception e){
+ return ResultUtil.error(e.getMessage());
+ }
+ this.updateAllColumnById(driver);
+ }
+
+ AppUser appUser = appUserService.selectById(uid);
+ //新账号
+ if(null == driver){
+ driver = new Driver();
+ driver.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
+ try {
+ driver = setDriverParamete(driver, driverRegisterWarpper);
+ }catch (Exception e){
+ return ResultUtil.error(e.getMessage());
+ }
+
+ driver.setCreateTime(new Date());
+ driver.setInviterId(appUser.getInviterId());
+ driver.setInviterType(appUser.getInviterType());
+ this.insert(driver);
+ String s = wechatMiniProgramORCode(driver.getId());
+ driver.setReferralCode(s);
+ this.updateById(driver);
+
+
+ //司机邀请注册奖励
+ if(null != driver.getInviterId()){
+ Driver driver1 = this.selectById(driver.getInviterId());
+ SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 4));
+ if(null != systemConfig){
+ Integer num7 = JSON.parseObject(systemConfig.getContent()).getInteger("num7");
+ if(num7 > 0){
+ AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
+ accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5));
+ accountChangeDetail.setUserType(2);
+ accountChangeDetail.setUserId(driver1.getId());
+ accountChangeDetail.setType(2);
+ accountChangeDetail.setChangeType(5);
+ accountChangeDetail.setOldData(driver1.getIntegral().doubleValue());
+ driver1.setIntegral(driver1.getIntegral() + num7);
+ accountChangeDetail.setNewData(driver1.getIntegral().doubleValue());
+ accountChangeDetail.setExplain("邀请司机注册奖励");
+ accountChangeDetailService.saveData(accountChangeDetail);
+ this.updateById(driver1);
+ }
+ }
+ }
+ }
+ return ResultUtil.success();
+ }
+ /**
+ * 组装个人信息
+ * @param driver
+ * @param driverRegisterWarpper
+ * @return
+ */
+ public Driver setDriverParamete(Driver driver, DriverRegisterWarpper driverRegisterWarpper) throws Exception{
+ driver.setAvatar(driverRegisterWarpper.getAvatar());
+ driver.setName(driverRegisterWarpper.getName());
+ driver.setPhone(driverRegisterWarpper.getPhone());
+ driver.setEmergencyContact(driverRegisterWarpper.getEmergencyContact());
+ driver.setEmergencyPhone(driverRegisterWarpper.getEmergencyPhone());
+ driver.setIdcardBack(driverRegisterWarpper.getIdcardBack());
+ driver.setIdcardFront(driverRegisterWarpper.getIdcardFront());
+ driver.setDriverLicense(driverRegisterWarpper.getDriverLicense());
+ if(ToolUtil.isNotEmpty(driverRegisterWarpper.getFirstCertificateTime())){
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ driver.setFirstCertificateTime(sdf.parse(driverRegisterWarpper.getFirstCertificateTime()));
+ }
+ //注册地
+ String code = driverRegisterWarpper.getCode();
+ BranchOffice branchOffice = branchOfficeService.selectOne(new EntityWrapper<BranchOffice>().eq("districtCode", code).eq("status", 1));
+ if(null == branchOffice){
+ branchOffice = branchOfficeService.selectOne(new EntityWrapper<BranchOffice>().eq("cityCode", code).eq("status", 1));
+ if(null == branchOffice){
+ throw new Exception("该区域无服务商");
+ }
+ }
+ driver.setBranchOfficeId(branchOffice.getId());
+ driver.setAgentId(branchOffice.getAgentId());
+ driver.setProvinceCode(branchOffice.getProvinceCode());
+ driver.setProvinceName(branchOffice.getProvinceName());
+ driver.setCityName(branchOffice.getCityName());
+ driver.setCityCode(branchOffice.getCityCode());
+ driver.setAreaCode(branchOffice.getDistrictCode());
+ driver.setAreaName(branchOffice.getDistrictName());
+ if(null != driverRegisterWarpper.getInviterId()){
+ driver.setInviterType(driverRegisterWarpper.getInviterType());
+ driver.setInviterId(driverRegisterWarpper.getInviterId());
+ }
+ driver.setApprovalStatus(1);
+ driver.setApprovalNotes("");
+ driver.setApprovalTime(null);
+ driver.setApprovalUserId(null);
+ driver.setStatus(1);
+ driver.setSource(driverRegisterWarpper.getSource());
+ return driver;
+ }
+
+ //生成小程序二维码
+ public String wechatMiniProgramORCode(Integer driverId) throws Exception{
+ InputStream release = weChatUtil.getwxacodeunlimit("pages/index/index", "driverId=" + driverId, "release");
+ String s = OBSUtil.putObjectToBucket(release, "driver_" + driverId);
+ return s;
+ }
}
--
Gitblit v1.7.1