提交 ab5a5507 作者: 恶龙咆哮

Merge branch 'develop'

......@@ -70,6 +70,9 @@ public class PilotCertificationDTO {
@Size(max = 300, message = "个人不能超过300")
private String individualResume;
@ApiModelProperty(value = "飞手是否同意加入飞手团队 0未操作 1飞手同意 2飞手不同意", example = "0审核中 1审核通过 2审核不通过", required = false)
private Integer pilotStatus;
@ApiModelProperty(value = "备注", example = "航拍摄影,农业植保", required = false)
private String remark;
......
package com.mmc.iuav.user.model.qo.dronepilot;
import com.mmc.iuav.group.Freeze;
import com.mmc.iuav.group.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author 张培
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PilotTeamQO implements Serializable {
@ApiModelProperty(value = "飞手是否同意 0未操作 1飞手同意加入 2飞手拒绝", required = false, example = "0")
private Integer pilotStatus;
@ApiModelProperty(value = "当前页", required = true, example = "1")
@NotNull(message = "当前页不能为空", groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "页大小", required = true, example = "10")
@NotNull(message = "页大小不能为空", groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageSize;
@ApiModelProperty(value = "飞手团队后台id")
private Integer backId;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
......@@ -90,6 +90,8 @@ public class UserAccountVO implements Serializable {
private Integer districtChildId;
@ApiModelProperty(value = "飞手所属的飞手团队信息")
private CompanyInfoVO companyInfoVO;
......
......@@ -5,15 +5,15 @@ import com.mmc.iuav.group.Page;
import com.mmc.iuav.group.Update;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.controller.BaseController;
import com.mmc.iuav.user.entity.dronepilot.PilotCertificationDO;
import com.mmc.iuav.user.model.dto.RoleInfoDTO;
import com.mmc.iuav.user.model.dto.dronepilot.*;
import com.mmc.iuav.user.model.qo.dronepilot.PilotAuditStatusQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationLogQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotRemarkQO;
import com.mmc.iuav.user.model.qo.dronepilot.*;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.model.vo.PilotAuditSumVO;
import com.mmc.iuav.user.model.vo.dronepilot.PilotCertificationVO;
import com.mmc.iuav.user.service.dronepilot.PilotCertificationService;
import com.sun.xml.bind.v2.TODO;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
......@@ -149,4 +149,47 @@ public class PilotCertificationController extends BaseController {
return certificationService.interiorDetailPilot(userAccountId);
}
@ApiOperation(value = "后台-飞手团队添加飞手")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/insertPilotJoinTeam")
public ResultBody insertPilotJoinTeam(HttpServletRequest request,@ApiParam(value = "要添加的飞手id", required = true) @RequestParam Integer pilotId) {
return certificationService.insertPilotJoinTeam(pilotId,this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "后台-根据飞手电话号码查找飞手")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = PilotCertificationDTO.class)})
@GetMapping("/selectPilotByPhone")
public ResultBody<PilotCertificationDTO> selectPilotByPhone(@ApiParam(value = "要查询的飞手手机号码", required = true) @RequestParam String phoneNumber) {
return certificationService.selectPilotByPhone(phoneNumber);
}
@ApiOperation(value = "后台-飞手团队-查找属于飞手团队的飞手")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = PilotCertificationDTO.class)})
@PostMapping("/selectPilotListByTeam")
public ResultBody<PilotCertificationDTO> selectPilotListByTeam(HttpServletRequest request,
@Validated(value = {Page.class}) @ApiParam(value = "飞手查询", required = true) @RequestBody PilotTeamQO param) {
return ResultBody.success(certificationService.selectPilotListByTeam(param, this.getUserLoginInfoFromRedis(request).getUserAccountId()));
}
@ApiOperation(value = "小程序-飞手是否加入团队")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/changePilotStatus")
public ResultBody updatePilotStatus(HttpServletRequest request,@ApiParam(value = "是否加入飞手团队 同意 1 ,拒绝 2", required = true) @RequestParam Integer status) {
return certificationService.updatePilotStatus(this.getUserLoginInfoFromRedis(request).getUserAccountId(),status);
}
@ApiOperation(value = "小程序-飞手查看是否有飞手团队邀请加入")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CompanyInfoVO.class)})
@GetMapping("/selectCompanyInfoByPilotId")
public ResultBody<CompanyInfoVO> selectCompanyInfoByPilotId(HttpServletRequest request) {
return certificationService.selectCompanyInfoByPilotId(this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "后台-飞手团队踢飞手")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("/deletePilotFromTeam")
public ResultBody deletePilotFromTeam(@ApiParam(value = "飞手ID userAccountId", required = true) @RequestParam Integer pilotId) {
return certificationService.deletePilotFromTeam(pilotId);
}
}
......@@ -31,7 +31,7 @@ public interface ActivityDao {
ActivityDO currentActivity(Integer activityType);
int countActivityPart(Integer activityId);
int countActivityPart(Integer activityId, Integer userAccountId);
void insertActivityPart(ActivityPartDO activityPartDO);
......
package com.mmc.iuav.user.dao.dronepilot;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.entity.dronepilot.PilotAbilityDO;
import com.mmc.iuav.user.entity.dronepilot.PilotCertificationDO;
import com.mmc.iuav.user.entity.dronepilot.PilotCertificationLogDO;
import com.mmc.iuav.user.entity.dronepilot.PilotReasonDO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotAuditStatusQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationLogQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotRemarkQO;
import com.mmc.iuav.user.model.qo.dronepilot.*;
import com.mmc.iuav.user.model.vo.dronepilot.PilotAbilityVO;
import org.apache.ibatis.annotations.Mapper;
......@@ -67,4 +65,58 @@ public interface PilotCertificationDao {
int getDronePilotCount();
/**
* 后台管理选择飞手加入自己的飞手团队
* @param pilotId 飞手的user_id
* @param backId 飞手团队后台账号的id
*/
void insertPilotJoinTeam(Integer pilotId,Integer backId);
/**
* 在后台根据自己的后台id查找飞手团队中的成员
* @param param 条件
* @return {@link List}<{@link PilotCertificationDO}>
*/
List<PilotCertificationDO> selectPilotListByTeam(PilotTeamQO param);
/**
* 根据飞手电话查询飞手是否加入飞手团队
* @param phoneNumber 飞手电话
* @return int 查到就是1已经有团队了 没查到0
*/
int selectPilotTeamByPhone(String phoneNumber);
/**
* 按照电话号码查找通过审核的飞手
* @param phoneNumber 飞手电话
* @return {@link PilotCertificationDO}
*/
PilotCertificationDO selectPilotByPhone(String phoneNumber);
/**
* 修改状态是否加入飞手团队
* @param userId 飞手的id
* @param pilotStatus 1 是同意加入 2 拒绝加入
* @return int
*/
int updatePilotStatus(Integer userId,Integer pilotStatus);
/**
* 通过飞手id去获取飞手所在飞手团队的团队信息
* @param pilotId 飞手id
* @param pilotStatus 查询不同状态 0飞手未操作 1飞手同意加入 2 飞手拒绝加入
* @return {@link CompanyInfoDO}
*/
CompanyInfoDO selectCompanyInfoByPilotId(Integer pilotId,Integer pilotStatus);
/**
* 根据飞手的id删除飞手绑定的飞手团队
* @param pilotId 飞手的user_id
*/
void deletePilotFromTeam(Integer pilotId);
}
......@@ -82,6 +82,9 @@ public class PilotCertificationDO {
@ApiModelProperty(value = "审核是否通过 0审核中 1审核通过 2审核不通过", example = "0审核中 1审核通过 2审核不通过", required = false)
private Integer auditStatus;
@ApiModelProperty(value = "飞手是否同意加入飞手团队 0未操作 1飞手同意 2飞手不同意", example = "0审核中 1审核通过 2审核不通过", required = false)
private Integer pilotStatus;
@ApiModelProperty(value = "申请用户的id", example = "1")
private Integer userAccountId;
......@@ -152,6 +155,7 @@ public class PilotCertificationDO {
.updateTime(this.updateTime)
.userName(this.userName)
.age(this.age)
.pilotStatus(this.pilotStatus)
.sex(this.sex)
.phoneNum(this.getPhoneNum())
.reasonId(this.reasonId)
......
......@@ -7,10 +7,8 @@ import com.mmc.iuav.user.model.dto.dronepilot.PilotAbilityDTO;
import com.mmc.iuav.user.model.dto.dronepilot.PilotCertificationDTO;
import com.mmc.iuav.user.model.dto.dronepilot.PilotCertificationInteriorDTO;
import com.mmc.iuav.user.model.dto.dronepilot.PilotReasonDTO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotAuditStatusQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationLogQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotRemarkQO;
import com.mmc.iuav.user.model.qo.dronepilot.*;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.model.vo.dronepilot.PilotCertificationVO;
/**
......@@ -45,4 +43,16 @@ public interface PilotCertificationService {
ResultBody<PilotReasonDTO> backListReason();
PilotCertificationInteriorDTO interiorDetailPilot(Integer userAccountId);
ResultBody insertPilotJoinTeam(Integer pilotId,Integer backId);
ResultBody selectPilotByPhone(String phoneNumber);
PageResult selectPilotListByTeam(PilotTeamQO param,Integer backId);
ResultBody updatePilotStatus(Integer userId,Integer pilotStatus);
ResultBody selectCompanyInfoByPilotId(Integer pilotId);
ResultBody deletePilotFromTeam(Integer pilotId);
}
......@@ -14,16 +14,15 @@ import com.mmc.iuav.user.controller.wx.*;
import com.mmc.iuav.user.dao.dronepilot.PilotCertificationDao;
import com.mmc.iuav.user.dao.userpoints.UserPointsDao;
import com.mmc.iuav.user.dao.userpoints.UserPointsDetailsDao;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.entity.dronepilot.*;
import com.mmc.iuav.user.entity.userpoints.UserPointsDO;
import com.mmc.iuav.user.entity.userpoints.UserPointsDetails;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.dto.dronepilot.*;
import com.mmc.iuav.user.model.qo.dronepilot.PilotAuditStatusQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationLogQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotCertificationQO;
import com.mmc.iuav.user.model.qo.dronepilot.PilotRemarkQO;
import com.mmc.iuav.user.model.qo.dronepilot.*;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.model.vo.PilotAuditSumVO;
import com.mmc.iuav.user.model.vo.dronepilot.PilotAbilityVO;
import com.mmc.iuav.user.model.vo.dronepilot.PilotCertificationVO;
......@@ -545,4 +544,71 @@ public class PilotCertificationServiceImpl implements PilotCertificationService
return pilotCertificationInteriorDTO;
}
@Override
public ResultBody insertPilotJoinTeam(Integer pilotId,Integer backId) {
certificationDao.insertPilotJoinTeam(pilotId,backId);
return ResultBody.success();
}
/**
* 查找属于自己飞手团队的飞手
* @param param
* @return {@link PageResult}
*/
@Override
public PageResult selectPilotListByTeam(PilotTeamQO param,Integer backId) {
param.setBackId(backId);
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<PilotCertificationDO> pilotList = certificationDao.selectPilotListByTeam(param);
extracted(pilotList);
List<PilotCertificationDTO> collect = pilotList.stream().map(PilotCertificationDO::buildPilotCertificationDTO).collect(Collectors.toList());
collect = collect.stream().skip((pageNo - 1) * param.getPageSize()).limit(param.getPageSize()).
collect(Collectors.toList());
PageResult pageResult = PageResult.buildPage(pageNo, param.getPageSize(), pilotList.size(), collect);
return pageResult;
}
@Override
public ResultBody selectPilotByPhone(String phoneNumber) {
int i = certificationDao.selectPilotTeamByPhone(phoneNumber);
if (1 == i) {
return ResultBody.error("飞手已经加入团队");
}else {
PilotCertificationDO pilotCertificationDO = certificationDao.selectPilotByPhone(phoneNumber);
if (pilotCertificationDO == null) {
return ResultBody.error("没有查到");
}
PilotCertificationDTO pilotCertificationDTO = pilotCertificationDO.buildPilotCertificationDTO();
return ResultBody.success(pilotCertificationDTO);
}
}
@Override
public ResultBody updatePilotStatus(Integer userId, Integer pilotStatus) {
int i = certificationDao.updatePilotStatus(userId, pilotStatus);
if(0==i) {
return ResultBody.error("请不要重复操作");
}else {
return ResultBody.success();
}
}
@Override
public ResultBody selectCompanyInfoByPilotId(Integer pilotId) {
CompanyInfoDO companyInfoDO = certificationDao.selectCompanyInfoByPilotId(pilotId,0);
if (companyInfoDO == null) {
return ResultBody.success();
}
CompanyInfoVO companyInfoVO = companyInfoDO.buildCompanyInfoVO();
return ResultBody.success(companyInfoVO);
}
@Override
public ResultBody deletePilotFromTeam(Integer pilotId) {
certificationDao.deletePilotFromTeam(pilotId);
return ResultBody.success();
}
}
......@@ -3,6 +3,7 @@ package com.mmc.iuav.user.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.controller.userpoints.config.UserPointsEnum;
import com.mmc.iuav.user.dao.ActivityDao;
import com.mmc.iuav.user.entity.activity.ActivityDO;
import com.mmc.iuav.user.entity.activity.ActivityPartDO;
......@@ -103,14 +104,14 @@ public class ActivityServiceImpl implements ActivityService {
return ResultBody.success();
}
// 查询是否超过奖励限制
int count = activityDao.countActivityPart(activityDO.getId());
int count = activityDao.countActivityPart(activityDO.getId(), userAccountId);
if (activityDO.getRequireNum() == 0 || count < activityDO.getRequireNum()) {
log.info("Activity invite award! userAccountId:{}", userAccountId);
// 暂时只奖励积分
ChangeUserPointVO changePoint = new ChangeUserPointVO();
changePoint.setUserAccountId(userAccountId);
changePoint.setChangePoint(activityDO.getRewardValue());
changePoint.setChangeType(7);
changePoint.setChangeType(UserPointsEnum.INVITE_USER.getCode());
userPointsService.change(changePoint);
// 记录领取信息(被邀请)
ActivityPartDO activityPartDO = new ActivityPartDO();
......
......@@ -7,6 +7,7 @@ import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.controller.userpoints.config.NumberOfUserPoints;
import com.mmc.iuav.user.controller.userpoints.config.UserPointsEnum;
import com.mmc.iuav.user.dao.*;
import com.mmc.iuav.user.dao.dronepilot.PilotCertificationDao;
import com.mmc.iuav.user.dao.userpoints.UserPointsDao;
import com.mmc.iuav.user.dao.userpoints.UserPointsDetailsDao;
import com.mmc.iuav.user.dao.xzsz.XzDao;
......@@ -86,6 +87,8 @@ public class UserAccountServiceImpl implements UserAccountService {
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Autowired
private PilotCertificationDao certificationDao;
@Override
public UserAccountVO getUserAccountInfoByUnionId(String unionId) {
......@@ -139,6 +142,12 @@ public class UserAccountServiceImpl implements UserAccountService {
} else {
userAccountVO.setSubStatus(0);
}
CompanyInfoDO companyInfoDO = certificationDao.selectCompanyInfoByPilotId(userAccountId,1);
if(companyInfoDO !=null) {
CompanyInfoVO companyInfoVO = companyInfoDO.buildCompanyInfoVO();
userAccountVO.setCompanyInfoVO(companyInfoVO);
}
return userAccountVO;
}
......
......@@ -154,7 +154,7 @@
<select id="countActivityPart" resultType="java.lang.Integer">
select count(*) from activity ac inner join activity_part acp on ac.id = acp.activity_id
where acp.activity_id = #{activityId}
where acp.activity_id = #{activityId} and acp.user_account_id = #{userAccountId}
</select>
<select id="activityPartDetail" resultType="com.mmc.iuav.user.entity.activity.ActivityPartDO"
......
......@@ -27,6 +27,7 @@
<result property="reasonId" column="reason_id"/>
<result property="reason" column="reason"/>
<result property="userImg" column="user_img"/>
<result property="pilotStatus" column="pilot_status"/>
<collection property="pilotAbility" ofType="com.mmc.iuav.user.model.vo.dronepilot.PilotAbilityVO"
select="selectAbilityList"
column="{pilotCertificationId=id}">
......@@ -92,6 +93,10 @@
from pilot_ability_certification
where pilot_certification_id = #{id}
</delete>
<delete id="deletePilotFromTeam">
delete from pilot_join_team
where pilot_user_id = #{pilotId}
</delete>
<update id="updatePilot" parameterType="com.mmc.iuav.user.entity.dronepilot.PilotCertificationDO">
UPDATE pilot_certification
......@@ -380,4 +385,111 @@
WHERE pc.audit_status = 1
AND ua.`disable` = 0
</select>
<insert id="insertPilotJoinTeam">
insert into pilot_join_team(pilot_user_id, back_user_id,pilot_status)
values (#{pilotId},#{backId},0)
</insert>
<select id="selectPilotListByTeam" resultMap="pilotList">
SELECT
pc.id,
pc.license_type,
pc.license_number,
pc.license_url,
pc.area_number,
pc.years_of_working,
pc.ability_url,
pc.individual_resume,
pc.audit_status,
pc.user_account_id,
pc.time_of_application,
pc.remark,
pc.resident_city,
pc.create_time,
pc.update_time,
rna.user_name,
rna.birthday,
rna.sex,
ua.phone_num,
pc.reason_id,
pr.reason,
ua.user_img,
pjt.pilot_status
FROM
pilot_certification pc
LEFT JOIN real_name_auth rna ON pc.user_account_id = rna.user_account_id
LEFT JOIN user_account ua ON pc.user_account_id = ua.id
LEFT JOIN pilot_reason pr ON pc.reason_id = pr.id
left join pilot_join_team pjt on pjt.pilot_user_id = pc.user_account_id
WHERE
1 = 1
AND ua.`disable` = 0
AND rna.is_deleted =0
and pjt.back_user_id = #{backId}
<if test="pilotStatus!=null">
and pjt.pilot_status = #{pilotStatus}
</if>
order by pc.update_time desc, pc.create_time desc
</select>
<select id="selectPilotByPhone" resultMap="pilotList">
SELECT
pc.id,
pc.license_type,
pc.license_number,
pc.license_url,
pc.area_number,
pc.years_of_working,
pc.ability_url,
pc.individual_resume,
pc.audit_status,
pc.user_account_id,
pc.time_of_application,
pc.remark,
pc.resident_city,
pc.create_time,
pc.update_time,
rna.user_name,
rna.birthday,
rna.sex,
ua.phone_num,
pc.reason_id,
pr.reason,
ua.user_img
FROM
pilot_certification pc
LEFT JOIN real_name_auth rna ON pc.user_account_id = rna.user_account_id
LEFT JOIN user_account ua ON pc.user_account_id = ua.id
LEFT JOIN pilot_reason pr ON pc.reason_id = pr.id
WHERE
1 = 1
AND ua.`disable` = 0
AND rna.is_deleted =0
and pc.audit_status = 1
and ua.phone_num = #{phoneNumber}
</select>
<select id="selectPilotTeamByPhone" resultType="java.lang.Integer">
select count(pjt.back_user_id)
from user_account ua
LEFT JOIN pilot_join_team pjt on pjt.pilot_user_id=ua.id
where ua.phone_num = #{phoneNumber}
and ua.`disable` = 0
</select>
<update id="updatePilotStatus">
UPDATE pilot_join_team
<set>
pilot_status = #{pilotStatus}
</set>
WHERE pilot_user_id = #{userId}
</update>
<select id="selectCompanyInfoByPilotId" resultType="com.mmc.iuav.user.entity.CompanyInfoDO">
SELECT ci.id, ci.company_type, ci.company_name, ci.full_name, ci.province, ci.city, ci.district, ci.address, ci.company_user_name,
ci.phone_num, ci.remark, ci.create_time,ci.brand_logo, ci.brand_name, ci.license_img, ci.credit_code, ci.content, ci.score,ci.lon,ci.lat, ci.back_img
FROM company_info ci INNER JOIN company_back_user cbu ON ci.id = cbu.company_info_id
INNER JOIN pilot_join_team pjt on pjt.back_user_id = cbu.back_user_account_id
WHERE pjt.pilot_user_id = #{pilotId} and ci.is_deleted = 0 and pjt.pilot_status = #{pilotStatus}
</select>
</mapper>
......@@ -18,4 +18,4 @@ patches:
images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms
newTag: 7d5e3677f171ddecc5c96d0f502e3a2b7e4ff8fb
newTag: 2419eaf6f5b03b29f5e861246d60dd58f30cd7ef
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论