From 05e13dc68b3db44868d9e02a10ccc330366a49c6 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 08 八月 2023 11:58:36 +0800 Subject: [PATCH] 修改bug --- user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java | 163 ++++++++++++++++++++++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java | 11 + user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java | 5 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java | 11 + user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java | 15 ++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/BranchOfficeMapper.xml | 21 +++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java | 12 + user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/DriverRegisterWarpper.java | 41 +++++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/BranchOffice.java | 85 ++++++++++++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java | 23 +++ user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java | 2 11 files changed, 384 insertions(+), 5 deletions(-) diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java index d4c3aae..f22e50a 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/AppUserController.java @@ -561,4 +561,27 @@ } } + + + @ResponseBody + @PostMapping("/api/user/driverRegister") +// @ServiceLog(name = "注册司机", url = "/api/user/driverRegister") + @ApiOperation(value = "注册司机", tags = {"用户端-登录注册"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResponseWarpper driverRegister(DriverRegisterWarpper driverRegisterWarpper){ + try { + Integer uid = appUserService.getUserByRequest(); + if(null == uid){ + return ResponseWarpper.success(ResultUtil.tokenErr()); + } + ResultUtil resultUtil = driverService.driverRegister(uid, driverRegisterWarpper); + return ResponseWarpper.success(resultUtil); + }catch (Exception e){ + e.printStackTrace(); + return new ResponseWarpper(500, e.getMessage()); + } + } + } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java new file mode 100644 index 0000000..e0772e2 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/BranchOfficeMapper.java @@ -0,0 +1,11 @@ +package com.supersavedriving.user.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.supersavedriving.user.modular.system.model.BranchOffice; + +/** + * @author zhibing.pu + * @date 2023/8/3 14:20 + */ +public interface BranchOfficeMapper extends BaseMapper<BranchOffice> { +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/BranchOfficeMapper.xml b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/BranchOfficeMapper.xml new file mode 100644 index 0000000..adcb6ab --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/dao/mapping/BranchOfficeMapper.xml @@ -0,0 +1,21 @@ +<?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.supersavedriving.user.modular.system.dao.BranchOfficeMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.supersavedriving.user.modular.system.model.BranchOffice"> + <id column="id" property="id"/> + <result column="agentId" property="agentId"/> + <result column="principal" property="principal"/> + <result column="principalPhone" property="principalPhone"/> + <result column="email" property="email"/> + <result column="provinceCode" property="provinceCode"/> + <result column="provinceName" property="provinceName"/> + <result column="cityCode" property="cityCode"/> + <result column="cityName" property="cityName"/> + <result column="districtCode" property="districtCode"/> + <result column="districtName" property="districtName"/> + <result column="status" property="status"/> + <result column="createTime" property="createTime"/> + </resultMap> +</mapper> \ No newline at end of file diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/BranchOffice.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/BranchOffice.java new file mode 100644 index 0000000..09b68c9 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/BranchOffice.java @@ -0,0 +1,85 @@ +package com.supersavedriving.user.modular.system.model; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.util.Date; + +/** +* 分公司实体 +* @author pzb +* @Date 2023/2/3 14:13 +*/ +@Data +@TableName("t_branch_office") +public class BranchOffice { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + @TableField("id") + private Integer id; + /** + * 代理商id + */ + @TableField("agentId") + private Integer agentId; + /** + * 负责人姓名 + */ + @TableField("principal") + private String principal; + /** + * 负责人电话 + */ + @TableField("principalPhone") + private String principalPhone; + /** + * 邮箱 + */ + @TableField("email") + private String email; + /** + * 代理区域省编号 + */ + @TableField("provinceCode") + private String provinceCode; + /** + * 代理区域省名称 + */ + @TableField("provinceName") + private String provinceName; + /** + * 代理区域市编号 + */ + @TableField("cityCode") + private String cityCode; + /** + * 代理区域市名称 + */ + @TableField("cityName") + private String cityName; + /** + * 代理区域区编号 + */ + @TableField("districtCode") + private String districtCode; + /** + * 代理区域区名称 + */ + @TableField("districtName") + private String districtName; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + @TableField("status") + private Integer status; + /** + * 添加时间 + */ + @TableField("createTime") + private Date createTime; +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java index 0c010ce..953eb6f 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/model/Driver.java @@ -252,4 +252,9 @@ */ @TableField("openOrderQRCode") private Integer openOrderQRCode; + /** + * 司机推荐二维码 + */ + @TableField("referralCode") + private String referralCode; } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java new file mode 100644 index 0000000..92cb558 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IBranchOfficeService.java @@ -0,0 +1,11 @@ +package com.supersavedriving.user.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.supersavedriving.user.modular.system.model.BranchOffice; + +/** + * @author zhibing.pu + * @date 2023/8/3 14:22 + */ +public interface IBranchOfficeService extends IService<BranchOffice> { +} diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java index 7c80c1e..389feeb 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/IDriverService.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.service.IService; import com.supersavedriving.user.modular.system.model.Driver; +import com.supersavedriving.user.modular.system.util.ResultUtil; +import com.supersavedriving.user.modular.system.warpper.DriverRegisterWarpper; import com.supersavedriving.user.modular.system.warpper.NearbyDriverWarpper; import java.util.List; @@ -20,4 +22,14 @@ * @throws Exception */ List<NearbyDriverWarpper> queryDriverPosition(String lon, String lat, Double scope) throws Exception; + + + + /** + * 司机注册 + * @param driverRegisterWarpper + * @return + * @throws Exception + */ + ResultUtil driverRegister(Integer uid, DriverRegisterWarpper driverRegisterWarpper) throws Exception; } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java new file mode 100644 index 0000000..76871a7 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/BranchOfficeServiceImpl.java @@ -0,0 +1,15 @@ +package com.supersavedriving.user.modular.system.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.user.modular.system.dao.BranchOfficeMapper; +import com.supersavedriving.user.modular.system.model.BranchOffice; +import com.supersavedriving.user.modular.system.service.IBranchOfficeService; +import org.springframework.stereotype.Service; + +/** + * @author zhibing.pu + * @date 2023/8/3 14:22 + */ +@Service +public class BranchOfficeServiceImpl extends ServiceImpl<BranchOfficeMapper, BranchOffice> implements IBranchOfficeService { +} 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; + } } diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java index 5776513..b49da12 100644 --- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java @@ -170,7 +170,7 @@ int i = 0; Double scope = 5D; while (true){ - List<NearbyDriverWarpper> nearbyDriverWarppers = driverService.queryDriverPosition(estimatedCosts.getLng().toString(), estimatedCosts.getLat().toString(), scope); + List<NearbyDriverWarpper> nearbyDriverWarppers = driverService.queryDriverPosition(estimatedCosts.getStartLng().toString(), estimatedCosts.getStartLat().toString(), scope); if(nearbyDriverWarppers.size() == 0){ scope += 5; i++; diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/DriverRegisterWarpper.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/DriverRegisterWarpper.java new file mode 100644 index 0000000..4f3c501 --- /dev/null +++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/warpper/DriverRegisterWarpper.java @@ -0,0 +1,41 @@ +package com.supersavedriving.user.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** +* 司机注册 +* @author pzb +* @Date 2023/2/6 9:15 +*/ +@Data +@ApiModel +public class DriverRegisterWarpper { + @ApiModelProperty(value = "注册区域code", required = true, dataType = "string") + private String code; + @ApiModelProperty(value = "头像", required = false, dataType = "string") + private String avatar; + @ApiModelProperty(value = "姓名", required = false, dataType = "string") + private String name; + @ApiModelProperty(value = "手机号码", required = true, dataType = "string") + private String phone; + @ApiModelProperty(value = "紧急联系人", required = true, dataType = "string") + private String emergencyContact; + @ApiModelProperty(value = "紧急联系人电话", required = true, dataType = "string") + private String emergencyPhone; + @ApiModelProperty(value = "身份证正面照", required = true, dataType = "string") + private String idcardFront; + @ApiModelProperty(value = "身份证背面照", required = true, dataType = "string") + private String idcardBack; + @ApiModelProperty(value = "驾驶证领证时间(2023-01-01)", required = true, dataType = "string") + private String firstCertificateTime; + @ApiModelProperty(value = "驾驶证照片", required = true, dataType = "string") + private String driverLicense; + @ApiModelProperty(value = "邀约人类型(1=用户,2=司机)", required = false, dataType = "int") + private Integer inviterType; + @ApiModelProperty(value = "邀约人Id", required = false, dataType = "int") + private Integer inviterId; + @ApiModelProperty(value = "注册来源(1=司机端注册,2=其他端注册)", required = true, dataType = "int") + private Integer source; +} -- Gitblit v1.7.1