提交 8094110e 作者: 刘明祎-运维用途

Merge branch 'develop'

流水线 #8913 已通过 于阶段
in 2 分 28 秒
...@@ -32,6 +32,8 @@ public class MessageUserQO implements Serializable { ...@@ -32,6 +32,8 @@ public class MessageUserQO implements Serializable {
@ApiModelProperty(value = "接收方用户ID") @ApiModelProperty(value = "接收方用户ID")
private Integer receiverUserId; private Integer receiverUserId;
private Integer backUserId;
public void buildCurrentPage() { public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize; this.pageNo = (pageNo - 1) * pageSize;
} }
......
...@@ -84,4 +84,7 @@ public class CompanyInfoVO implements Serializable { ...@@ -84,4 +84,7 @@ public class CompanyInfoVO implements Serializable {
@ApiModelProperty(value = "企业视频") @ApiModelProperty(value = "企业视频")
private String profileUrl; private String profileUrl;
@ApiModelProperty(value = "绑定的客服id")
private Integer companyBindUserId;
} }
package com.mmc.iuav.user.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CompanyMemberVO implements Serializable {
@ApiModelProperty(value = "绑定用户id")
private Integer userAccountId;
@ApiModelProperty(value = "角色id")
private Integer roleId;
@ApiModelProperty(value = "角色姓名")
private String roleName;
}
...@@ -21,6 +21,8 @@ public class UserMessageVO implements Serializable { ...@@ -21,6 +21,8 @@ public class UserMessageVO implements Serializable {
@ApiModelProperty(value = "接收方用户ID") @ApiModelProperty(value = "接收方用户ID")
private Integer receiverUserId; private Integer receiverUserId;
@ApiModelProperty(value = "商家聊天id")
private Integer backUserId;
@ApiModelProperty(value = "消息内容") @ApiModelProperty(value = "消息内容")
private String content; private String content;
@ApiModelProperty(value = "发送的图片") @ApiModelProperty(value = "发送的图片")
......
...@@ -3,10 +3,7 @@ package com.mmc.iuav.user.controller; ...@@ -3,10 +3,7 @@ package com.mmc.iuav.user.controller;
import com.mmc.iuav.group.Insert; import com.mmc.iuav.group.Insert;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.qo.CompanyInfoQO; import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO; import com.mmc.iuav.user.model.vo.*;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.model.vo.UserRcdUpVO;
import com.mmc.iuav.user.model.vo.UserRcdVO;
import com.mmc.iuav.user.service.CompanyService; import com.mmc.iuav.user.service.CompanyService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -88,8 +85,10 @@ public class CompanyController extends BaseController { ...@@ -88,8 +85,10 @@ public class CompanyController extends BaseController {
@GetMapping("bindingCompanyMember") @GetMapping("bindingCompanyMember")
public ResultBody bindingCompanyMember(HttpServletRequest request, public ResultBody bindingCompanyMember(HttpServletRequest request,
@RequestParam Integer userAccountId, @RequestParam Integer userAccountId,
@RequestParam Integer companyInfoId) { @RequestParam Integer companyInfoId,
return companyService.bindingCompanyMember(this.getUserLoginInfoFromRedis(request), userAccountId, companyInfoId); // leader 角色id
@RequestParam Integer leader) {
return companyService.bindingCompanyMember(this.getUserLoginInfoFromRedis(request), userAccountId, companyInfoId, leader);
} }
@ApiOperation(value = "成员-解绑") @ApiOperation(value = "成员-解绑")
...@@ -150,4 +149,11 @@ public class CompanyController extends BaseController { ...@@ -150,4 +149,11 @@ public class CompanyController extends BaseController {
return companyService.insertUserRcd(userRcdUpVO.getRUerId(),userRcdUpVO.getUserId()); return companyService.insertUserRcd(userRcdUpVO.getRUerId(),userRcdUpVO.getUserId());
} }
@ApiOperation(value = "根据公司id获取用户id和角色信息")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = CompanyInfoVO.class)})
@GetMapping("listUserAndRoleByCompanyId")
public ResultBody listUserAndRoleByCompanyId(@RequestParam Integer companyInfoId) {
return companyService.listUserAndRoleByCompanyId(companyInfoId);
}
} }
...@@ -210,4 +210,11 @@ public class UserAccountController extends BaseController { ...@@ -210,4 +210,11 @@ public class UserAccountController extends BaseController {
return userAccountService.getStateList(); return userAccountService.getStateList();
} }
@ApiOperation(value = "获取角色列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@GetMapping("getRolesList")
public ResultBody getRolesList() {
return userAccountService.getRolesList();
}
} }
...@@ -222,4 +222,8 @@ public interface CompanyDao { ...@@ -222,4 +222,8 @@ public interface CompanyDao {
void insertUserRcd(Integer userId,Integer rUserId); void insertUserRcd(Integer userId,Integer rUserId);
Integer selectUserByUserRcd(Integer userId); Integer selectUserByUserRcd(Integer userId);
List<CompanyMemberDO> selectUserAndRoleList(Integer companyInfoId);
List<Integer> getBindCompanyUserIdList(Integer backUserId);
} }
...@@ -94,9 +94,9 @@ public interface MessageDao { ...@@ -94,9 +94,9 @@ public interface MessageDao {
int insertUserMessage(UserMessageDO messageDO); int insertUserMessage(UserMessageDO messageDO);
List<UserMessageDO> selectUserMessage(@Param("messageQO")MessageUserQO messageQO,@Param("senderUserId")Integer senderUserId); List<UserMessageDO> selectUserMessage(@Param("messageQO")MessageUserQO messageQO,@Param("senderUserId")Integer senderUserId);
UserMessageDO selectEndUserMessage(@Param("receiverUserId") Integer receiverUserId,@Param("senderUserId")Integer senderUserId); UserMessageDO selectEndUserMessage(@Param("receiverUserId") Integer receiverUserId,@Param("senderUserId")Integer senderUserId,@Param("backUserId") Integer backUserId);
int countUserMessage(@Param("receiverUserId") Integer receiverUserId,@Param("senderUserId") Integer senderUserId); int countUserMessage(@Param("messageQO") MessageUserQO messageQO,@Param("senderUserId") Integer senderUserId);
List<Integer> selectUserListBySenderUserId(@Param("senderUserId")Integer senderUserId); List<Integer> selectUserListBySenderUserId(@Param("senderUserId")Integer senderUserId);
List<Integer> selectUserListByReceiverUserId(@Param("senderUserId")Integer senderUserId); List<Integer> selectUserListByReceiverUserId(@Param("senderUserId")Integer senderUserId);
...@@ -104,7 +104,7 @@ public interface MessageDao { ...@@ -104,7 +104,7 @@ public interface MessageDao {
int removeUserMessage(Integer id); int removeUserMessage(Integer id);
int insertUserMessageLog(UserMessageLogDO userMessageLogDO); int insertUserMessageLog(UserMessageLogDO userMessageLogDO);
Integer isUserMessageLog(@Param("receiverUserId") Integer receiverUserId,@Param("senderUserId") Integer senderUserId); Integer isUserMessageLog(@Param("receiverUserId") Integer receiverUserId,@Param("senderUserId") Integer senderUserId,@Param("backUserId") Integer backUserId);
int updateUserMessageLog(@Param("id") Integer logId); int updateUserMessageLog(@Param("id") Integer logId);
int updateUserMessageCount(@Param("id") Integer logId); int updateUserMessageCount(@Param("id") Integer logId);
......
package com.mmc.iuav.user.dao; package com.mmc.iuav.user.dao;
import com.mmc.iuav.user.entity.CompanyRoleDo;
import com.mmc.iuav.user.entity.UserAccountDO; import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.entity.UserRcdDO; import com.mmc.iuav.user.entity.UserRcdDO;
import com.mmc.iuav.user.entity.UserStateDO; import com.mmc.iuav.user.entity.UserStateDO;
...@@ -270,4 +271,10 @@ public interface UserServiceDao { ...@@ -270,4 +271,10 @@ public interface UserServiceDao {
UserStateVO getUserState(Integer stateId); UserStateVO getUserState(Integer stateId);
Integer getUserStateId(Integer userId); Integer getUserStateId(Integer userId);
/**
* 查询角色信息
*/
List<CompanyRoleDo> getCompanyRoleList();
} }
package com.mmc.iuav.user.entity; package com.mmc.iuav.user.entity;
import com.mmc.iuav.user.model.vo.CompanyMemberVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -22,4 +23,15 @@ public class CompanyMemberDO implements Serializable { ...@@ -22,4 +23,15 @@ public class CompanyMemberDO implements Serializable {
private Integer leader; private Integer leader;
private Date createTime; private Date createTime;
private String roleName;
public CompanyMemberVO builCompanyMemberVO(){
return CompanyMemberVO.builder()
.userAccountId(userAccountId)
.roleId(leader)
.roleName(roleName)
.build();
}
} }
package com.mmc.iuav.user.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CompanyRoleDo implements Serializable {
private Integer id;
private String roleName;
}
package com.mmc.iuav.user.entity; package com.mmc.iuav.user.entity;
import com.mmc.iuav.user.model.dto.UserAccountSimpleDTO;
import com.mmc.iuav.user.model.vo.BUserAccountVO; import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.model.vo.TopInviteVO;
import com.mmc.iuav.user.model.vo.UserAccountVO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.util.CollectionUtils;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author: zj * @author Admin
* @Date: 2023/5/16 17:00
*/ */
@Builder @Builder
@Data @Data
...@@ -42,4 +37,6 @@ public class UserDO implements Serializable { ...@@ -42,4 +37,6 @@ public class UserDO implements Serializable {
private String endMessage; private String endMessage;
@ApiModelProperty(value = "最新消息创建时间") @ApiModelProperty(value = "最新消息创建时间")
private Date createTime; private Date createTime;
private CompanyInfoVO companyInfoVO;
} }
...@@ -50,9 +50,16 @@ public class UserMessageDO implements Serializable { ...@@ -50,9 +50,16 @@ public class UserMessageDO implements Serializable {
@JSONField(format = "yyyy-MM-dd HH:mm:ss") @JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createTime; private Date createTime;
/**
* 不为空则代表是跟商家在聊天
*/
private Integer backUserId;
public UserMessageDO(UserMessageVO message) { public UserMessageDO(UserMessageVO message) {
this.receiverUserId = message.getReceiverUserId(); this.receiverUserId = message.getReceiverUserId();
this.content = message.getContent(); this.content = message.getContent();
this.imgUrl = message.getImgUrl(); this.imgUrl = message.getImgUrl();
this.backUserId = message.getBackUserId();
} }
} }
...@@ -38,6 +38,12 @@ public class UserMessageLogDO implements Serializable { ...@@ -38,6 +38,12 @@ public class UserMessageLogDO implements Serializable {
* 新消息数量 * 新消息数量
*/ */
private Integer messageCount; private Integer messageCount;
/**
* 商家后台id
*/
private Integer backUserId;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -6,6 +6,7 @@ import com.mmc.iuav.user.entity.CompanyInfoDO; ...@@ -6,6 +6,7 @@ import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO; import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.CompanyInfoQO; import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO; import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.model.vo.CompanyMemberVO;
import java.util.List; import java.util.List;
...@@ -98,7 +99,7 @@ public interface CompanyService { ...@@ -98,7 +99,7 @@ public interface CompanyService {
* @param companyInfoId * @param companyInfoId
* @return * @return
*/ */
ResultBody bindingCompanyMember(LoginSuccessDTO userLoginInfoFromRedis, Integer userAccountId, Integer companyInfoId); ResultBody bindingCompanyMember(LoginSuccessDTO userLoginInfoFromRedis, Integer userAccountId, Integer companyInfoId, Integer leader);
/** /**
* 获取小程序用户绑定企业信息 * 获取小程序用户绑定企业信息
...@@ -174,4 +175,16 @@ public interface CompanyService { ...@@ -174,4 +175,16 @@ public interface CompanyService {
ResultBody getManagerIdByBackUserId(Integer backUserAccountId); ResultBody getManagerIdByBackUserId(Integer backUserAccountId);
ResultBody insertUserRcd(Integer rUserId,List<Integer> userIds); ResultBody insertUserRcd(Integer rUserId,List<Integer> userIds);
ResultBody listUserAndRoleByCompanyId(Integer companyInfoId);
/**
* 获取后台公司绑定的用户id是用户1还是用户2
* @param userId1 用户1
* @param userId2 用户2
* @param backUserId 后台id
* @return
*/
Integer getCompanyBindUserId(Integer userId1,Integer userId2,Integer backUserId);
} }
...@@ -196,4 +196,5 @@ public interface UserAccountService { ...@@ -196,4 +196,5 @@ public interface UserAccountService {
ResultBody getStateList(); ResultBody getStateList();
ResultBody getRolesList();
} }
...@@ -11,6 +11,7 @@ import com.mmc.iuav.user.entity.*; ...@@ -11,6 +11,7 @@ import com.mmc.iuav.user.entity.*;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO; import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.CompanyInfoQO; import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO; import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.model.vo.CompanyMemberVO;
import com.mmc.iuav.user.model.vo.UserAccountVO; import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.service.CompanyService; import com.mmc.iuav.user.service.CompanyService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -132,7 +133,9 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -132,7 +133,9 @@ public class CompanyServiceImpl implements CompanyService {
public CompanyInfoVO getCompanyInfoByAppLoginUserId(Integer backUserAccountId) { public CompanyInfoVO getCompanyInfoByAppLoginUserId(Integer backUserAccountId) {
CompanyInfoDO companyInfoDO = companyDao.getCompanyInfoByAppLoginUserId(backUserAccountId); CompanyInfoDO companyInfoDO = companyDao.getCompanyInfoByAppLoginUserId(backUserAccountId);
if (companyInfoDO != null) { if (companyInfoDO != null) {
return companyInfoDO.buildCompanyInfoVO(); CompanyInfoVO companyInfoVO = companyInfoDO.buildCompanyInfoVO();
companyInfoVO.setBackUserId(backUserAccountId);
return companyInfoVO;
} }
return null; return null;
} }
...@@ -163,7 +166,7 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -163,7 +166,7 @@ public class CompanyServiceImpl implements CompanyService {
} }
@Override @Override
public ResultBody bindingCompanyMember(LoginSuccessDTO loginSuccessDTO, Integer userAccountId, Integer companyInfoId) { public ResultBody bindingCompanyMember(LoginSuccessDTO loginSuccessDTO, Integer userAccountId, Integer companyInfoId, Integer leader) {
// 查看该成员是否已被绑定 // 查看该成员是否已被绑定
int count = companyDao.countBingingCompanyInfoByUID(userAccountId); int count = companyDao.countBingingCompanyInfoByUID(userAccountId);
if (count > 0) { if (count > 0) {
...@@ -172,7 +175,7 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -172,7 +175,7 @@ public class CompanyServiceImpl implements CompanyService {
CompanyMemberDO companyMemberDO = new CompanyMemberDO(); CompanyMemberDO companyMemberDO = new CompanyMemberDO();
companyMemberDO.setUserAccountId(userAccountId); companyMemberDO.setUserAccountId(userAccountId);
companyMemberDO.setCompanyInfoId(companyInfoId); companyMemberDO.setCompanyInfoId(companyInfoId);
companyMemberDO.setLeader(0); companyMemberDO.setLeader(leader);
companyDao.addCompanyMember(companyMemberDO); companyDao.addCompanyMember(companyMemberDO);
return ResultBody.success(); return ResultBody.success();
} }
...@@ -240,8 +243,8 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -240,8 +243,8 @@ public class CompanyServiceImpl implements CompanyService {
if (count == 0) { if (count == 0) {
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count)); return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count));
} }
pageNo = (pageNo - 1) * pageSize; Integer pageNoTemp = (pageNo - 1) * pageSize;
List<UserAccountDO> userAccountDOS = companyDao.listCompanyMembersPage(companyInfoId, pageNo, pageSize); List<UserAccountDO> userAccountDOS = companyDao.listCompanyMembersPage(companyInfoId, pageNoTemp, pageSize);
List<UserAccountVO> userAccountVOS = userAccountDOS.stream().map(UserAccountDO::buildUserAccountVO).collect(Collectors.toList()); List<UserAccountVO> userAccountVOS = userAccountDOS.stream().map(UserAccountDO::buildUserAccountVO).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, userAccountVOS)); return ResultBody.success(PageResult.buildPage(pageNo, pageSize, count, userAccountVOS));
} }
...@@ -313,5 +316,29 @@ public class CompanyServiceImpl implements CompanyService { ...@@ -313,5 +316,29 @@ public class CompanyServiceImpl implements CompanyService {
return ResultBody.success(); return ResultBody.success();
} }
@Override
public ResultBody listUserAndRoleByCompanyId(Integer companyInfoId) {
List<CompanyMemberDO> companyMemberDOS = companyDao.selectUserAndRoleList(companyInfoId);
List<CompanyMemberVO> companyMemberVOS = companyMemberDOS.stream().map(CompanyMemberDO::builCompanyMemberVO).collect(Collectors.toList());
return ResultBody.success(companyMemberVOS);
}
@Override
public Integer getCompanyBindUserId(Integer userId1, Integer userId2,Integer backUserId) {
List<Integer> listUserIds = companyDao.getBindCompanyUserIdList(backUserId);
if(listUserIds == null) {
return null;
}
if(listUserIds.contains(userId1)) {
if(listUserIds.contains(userId2)) {
return null;
}else {
return userId1;
}
}else {
return userId2;
}
}
} }
...@@ -12,14 +12,17 @@ import com.mmc.iuav.user.model.qo.MessageQO; ...@@ -12,14 +12,17 @@ import com.mmc.iuav.user.model.qo.MessageQO;
import com.mmc.iuav.user.model.qo.MessageUserQO; import com.mmc.iuav.user.model.qo.MessageUserQO;
import com.mmc.iuav.user.model.vo.*; import com.mmc.iuav.user.model.vo.*;
import com.mmc.iuav.user.model.vo.userpoints.ChangeUserPointVO; import com.mmc.iuav.user.model.vo.userpoints.ChangeUserPointVO;
import com.mmc.iuav.user.service.CompanyService;
import com.mmc.iuav.user.service.MessageService; import com.mmc.iuav.user.service.MessageService;
import com.mmc.iuav.user.service.userpoints.UserPointsService; import com.mmc.iuav.user.service.userpoints.UserPointsService;
import com.mmc.iuav.user.util.ScheduledTaskUtil; import com.mmc.iuav.user.util.ScheduledTaskUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
...@@ -31,6 +34,8 @@ import java.util.*; ...@@ -31,6 +34,8 @@ import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@Service @Service
@Slf4j
@Transactional(rollbackFor = Exception.class)
public class MessageServiceImpl implements MessageService { public class MessageServiceImpl implements MessageService {
@Autowired @Autowired
...@@ -51,6 +56,9 @@ public class MessageServiceImpl implements MessageService { ...@@ -51,6 +56,9 @@ public class MessageServiceImpl implements MessageService {
@Autowired @Autowired
private PilotCertificationDao pilotCertificationDao; private PilotCertificationDao pilotCertificationDao;
@Autowired
private CompanyService companyService;
@Qualifier("com.mmc.iuav.user.feign.PaymentAppApi") @Qualifier("com.mmc.iuav.user.feign.PaymentAppApi")
@Autowired @Autowired
private PaymentAppApi paymentAppApi; private PaymentAppApi paymentAppApi;
...@@ -146,13 +154,14 @@ public class MessageServiceImpl implements MessageService { ...@@ -146,13 +154,14 @@ public class MessageServiceImpl implements MessageService {
@Override @Override
public ResultBody insertUserMessage(UserMessageVO messageVO,Integer senderUserId) { public ResultBody insertUserMessage(UserMessageVO messageVO,Integer senderUserId) {
Integer backUserId = messageVO.getBackUserId();
UserMessageDO userMessageDO = new UserMessageDO(messageVO); UserMessageDO userMessageDO = new UserMessageDO(messageVO);
if(senderUserId == null){ if(senderUserId == null){
return ResultBody.success("消息发送失败,请先登录"); return ResultBody.success("消息发送失败,请先登录");
} }
redisTemplate.setValueSerializer(RedisSerializer.json()); redisTemplate.setValueSerializer(RedisSerializer.json());
String s = redisTemplate.opsForValue().get("Message" + senderUserId); String s = redisTemplate.opsForValue().get("Message" + senderUserId);
if(s == null || s == ""){ if(backUserId == null && s == null || "".equals(s)){
return ResultBody.error("请先花费积分购买聊天时长"); return ResultBody.error("请先花费积分购买聊天时长");
} }
userMessageDO.setSenderUserId(senderUserId); userMessageDO.setSenderUserId(senderUserId);
...@@ -162,18 +171,20 @@ public class MessageServiceImpl implements MessageService { ...@@ -162,18 +171,20 @@ public class MessageServiceImpl implements MessageService {
if(scheduledTaskUtil.check(userDO.getUserAccountId()) == 1){ if(scheduledTaskUtil.check(userDO.getUserAccountId()) == 1){
scheduledTaskUtil.create(userDO); scheduledTaskUtil.create(userDO);
} }
if(messageDao.isUserMessageLog(userMessageDO.getReceiverUserId(), userMessageDO.getSenderUserId()) == null){ if(messageDao.isUserMessageLog(userMessageDO.getReceiverUserId(), userMessageDO.getSenderUserId(),backUserId) == null){
UserMessageLogDO userMessageLogDO = new UserMessageLogDO(); UserMessageLogDO userMessageLogDO = new UserMessageLogDO();
userMessageLogDO.setSenderUserId(userMessageDO.getSenderUserId()); userMessageLogDO.setSenderUserId(userMessageDO.getSenderUserId());
userMessageLogDO.setReceiverUserId(userMessageDO.getReceiverUserId()); userMessageLogDO.setReceiverUserId(userMessageDO.getReceiverUserId());
userMessageLogDO.setBackUserId(backUserId);
messageDao.insertUserMessageLog(userMessageLogDO); messageDao.insertUserMessageLog(userMessageLogDO);
} }
Integer logId = messageDao.isUserMessageLog(userMessageDO.getSenderUserId(),userMessageDO.getReceiverUserId()); Integer logId = messageDao.isUserMessageLog(userMessageDO.getSenderUserId(),userMessageDO.getReceiverUserId(),backUserId);
if(logId == null){ if(logId == null){
UserMessageLogDO userMessageLogDO = new UserMessageLogDO(); UserMessageLogDO userMessageLogDO = new UserMessageLogDO();
userMessageLogDO.setSenderUserId(userMessageDO.getReceiverUserId()); userMessageLogDO.setSenderUserId(userMessageDO.getReceiverUserId());
userMessageLogDO.setReceiverUserId(userMessageDO.getSenderUserId()); userMessageLogDO.setReceiverUserId(userMessageDO.getSenderUserId());
userMessageLogDO.setMessageCount(1); userMessageLogDO.setMessageCount(1);
userMessageLogDO.setBackUserId(backUserId);
messageDao.insertUserMessageLog(userMessageLogDO); messageDao.insertUserMessageLog(userMessageLogDO);
}else { }else {
messageDao.updateUserMessageLog(logId); messageDao.updateUserMessageLog(logId);
...@@ -203,7 +214,7 @@ public class MessageServiceImpl implements MessageService { ...@@ -203,7 +214,7 @@ public class MessageServiceImpl implements MessageService {
@Override @Override
public PageResult selectUserMessage(MessageUserQO messageQO,Integer senderUserId) { public PageResult selectUserMessage(MessageUserQO messageQO,Integer senderUserId) {
scheduledTaskUtil.destroy(senderUserId); scheduledTaskUtil.destroy(senderUserId);
int count = messageDao.countUserMessage(messageQO.getReceiverUserId(),senderUserId); int count = messageDao.countUserMessage(messageQO,senderUserId);
if (count == 0) { if (count == 0) {
return PageResult.buildPage(messageQO.getPageNo(), messageQO.getPageSize(), count); return PageResult.buildPage(messageQO.getPageNo(), messageQO.getPageSize(), count);
} }
...@@ -214,7 +225,8 @@ public class MessageServiceImpl implements MessageService { ...@@ -214,7 +225,8 @@ public class MessageServiceImpl implements MessageService {
// if(logId != null){ // if(logId != null){
// messageDao.updateUserMessageCount(logId); // messageDao.updateUserMessageCount(logId);
// } // }
Integer logId2 = messageDao.isUserMessageLog(messageQO.getReceiverUserId(),senderUserId); Integer backUserId = messageQO.getBackUserId();
Integer logId2 = messageDao.isUserMessageLog(messageQO.getReceiverUserId(),senderUserId,backUserId);
if(logId2 != null){ if(logId2 != null){
messageDao.updateUserMessageCount(logId2); messageDao.updateUserMessageCount(logId2);
} }
...@@ -226,16 +238,26 @@ public class MessageServiceImpl implements MessageService { ...@@ -226,16 +238,26 @@ public class MessageServiceImpl implements MessageService {
List<UserDO> userAccountDOList = new ArrayList<>(); List<UserDO> userAccountDOList = new ArrayList<>();
List<UserMessageLogDO> list = messageDao.selectUserList(senderUserId); List<UserMessageLogDO> list = messageDao.selectUserList(senderUserId);
for (UserMessageLogDO userMessageLogDO : list) { for (UserMessageLogDO userMessageLogDO : list) {
Integer backUserId = userMessageLogDO.getBackUserId();
UserAccountDO userAccount = userServiceDao.getUserAccountById(userMessageLogDO.getReceiverUserId()); UserAccountDO userAccount = userServiceDao.getUserAccountById(userMessageLogDO.getReceiverUserId());
UserDO userDO = userAccount.buildUserDO(); UserDO userDO = userAccount.buildUserDO();
userDO.setUnreadCount(userMessageLogDO.getMessageCount()); userDO.setUnreadCount(userMessageLogDO.getMessageCount());
UserMessageDO userMessageDO = messageDao.selectEndUserMessage(userMessageLogDO.getReceiverUserId(), senderUserId); UserMessageDO userMessageDO = messageDao.selectEndUserMessage(userMessageLogDO.getReceiverUserId(), senderUserId,backUserId);
if(userMessageDO.getContent() != null){ if(userMessageDO.getContent() != null){
userDO.setEndMessage(userMessageDO.getContent()); userDO.setEndMessage(userMessageDO.getContent());
}else { }else {
userDO.setEndMessage(userMessageDO.getImgUrl()); userDO.setEndMessage(userMessageDO.getImgUrl());
} }
userDO.setCreateTime(userMessageDO.getCreateTime()); userDO.setCreateTime(userMessageDO.getCreateTime());
if(backUserId != null){
CompanyInfoVO companyInfo = companyService.getCompanyInfoByAppLoginUserId(backUserId);
Integer companyBindUserId = companyService.getCompanyBindUserId(senderUserId, userDO.getUserAccountId(), backUserId);
if(companyBindUserId != null) {
companyInfo.setCompanyBindUserId(companyBindUserId);
userDO.setCompanyInfoVO(companyInfo);
}
}
userAccountDOList.add(userDO); userAccountDOList.add(userDO);
} }
// 使用 Collections.sort() 方法和自定义的比较器进行排序 // 使用 Collections.sort() 方法和自定义的比较器进行排序
...@@ -252,7 +274,7 @@ public class MessageServiceImpl implements MessageService { ...@@ -252,7 +274,7 @@ public class MessageServiceImpl implements MessageService {
return ResultBody.error("消息发送已经超过三分钟,撤回失败"); return ResultBody.error("消息发送已经超过三分钟,撤回失败");
} }
if(messageDao.removeUserMessage(id) != 0){ if(messageDao.removeUserMessage(id) != 0){
Integer logId = messageDao.isUserMessageLog(userMessageDO.getSenderUserId(),userMessageDO.getReceiverUserId()); Integer logId = messageDao.isUserMessageLog(userMessageDO.getSenderUserId(),userMessageDO.getReceiverUserId(),userMessageDO.getBackUserId());
if(logId != null){ if(logId != null){
messageDao.removeUserMessageCount(logId); messageDao.removeUserMessageCount(logId);
} }
...@@ -263,7 +285,7 @@ public class MessageServiceImpl implements MessageService { ...@@ -263,7 +285,7 @@ public class MessageServiceImpl implements MessageService {
@Override @Override
public ResultBody removeUser(Integer senderUserId, Integer receiverUserId) { public ResultBody removeUser(Integer senderUserId, Integer receiverUserId) {
Integer logId = messageDao.isUserMessageLog(receiverUserId,senderUserId); Integer logId = messageDao.isUserMessageLog(receiverUserId,senderUserId,null);
if(logId != null){ if(logId != null){
messageDao.removeUserMessageLog(logId); messageDao.removeUserMessageLog(logId);
return ResultBody.success("删除成功"); return ResultBody.success("删除成功");
......
...@@ -575,6 +575,13 @@ public class UserAccountServiceImpl implements UserAccountService { ...@@ -575,6 +575,13 @@ public class UserAccountServiceImpl implements UserAccountService {
List<UserStateDO> stateList = userServiceDao.getStateList(); List<UserStateDO> stateList = userServiceDao.getStateList();
return ResultBody.success(stateList); return ResultBody.success(stateList);
} }
@Override
public ResultBody getRolesList() {
List<CompanyRoleDo> rolesList = userServiceDao.getCompanyRoleList();
return ResultBody.success(rolesList);
}
private UserAccountVO getUserAccountVO(Integer userAccountId) { private UserAccountVO getUserAccountVO(Integer userAccountId) {
UserAccountDO userAccountDO = userServiceDao.getUserAccountById(userAccountId); UserAccountDO userAccountDO = userServiceDao.getUserAccountById(userAccountId);
if (userAccountDO == null) { if (userAccountDO == null) {
......
...@@ -157,7 +157,7 @@ ...@@ -157,7 +157,7 @@
</select> </select>
<select id="getCompanyInfoByBackUserAccountId" resultType="com.mmc.iuav.user.entity.CompanyInfoDO"> <select id="getCompanyInfoByBackUserAccountId" 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, SELECT ci.id, ci.company_type, ci.company_name, ci.full_name, ci.province, ci.city, ci.district, ci.address, ci.company_user_name,cbu.back_user_account_id,
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,cm.user_account_id 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,cm.user_account_id
FROM company_back_user cbu INNER JOIN company_info ci ON ci.id = cbu.company_info_id FROM company_back_user cbu INNER JOIN company_info ci ON ci.id = cbu.company_info_id
inner join company_member cm on cm.company_info_id = ci.id inner join company_member cm on cm.company_info_id = ci.id
...@@ -221,7 +221,7 @@ ...@@ -221,7 +221,7 @@
company_info ci company_info ci
INNER JOIN company_member cm ON ci.id = cm.company_info_id INNER JOIN company_member cm ON ci.id = cm.company_info_id
WHERE WHERE
cm.user_account_id = #{userAccountId} and ci.is_deleted = 0 cm.user_account_id = #{userAccountId} and ci.is_deleted = 0 and is_leader = 1
</select> </select>
<select id="getCompanyBackUserByCompanyId" resultType="com.mmc.iuav.user.entity.CompanyBackUserDO"> <select id="getCompanyBackUserByCompanyId" resultType="com.mmc.iuav.user.entity.CompanyBackUserDO">
...@@ -294,4 +294,15 @@ ...@@ -294,4 +294,15 @@
FROM company_back_user cbu INNER JOIN company_info ci ON ci.id = cbu.company_info_id FROM company_back_user cbu INNER JOIN company_info ci ON ci.id = cbu.company_info_id
WHERE cbu.back_user_account_id = #{backUserAccountId} and ci.is_deleted = 0 WHERE cbu.back_user_account_id = #{backUserAccountId} and ci.is_deleted = 0
</select> </select>
<select id="selectUserAndRoleList" resultType="com.mmc.iuav.user.entity.CompanyMemberDO">
SELECT me.user_account_id, me.is_leader as leader, rol.role_name
FROM company_member me INNER JOIN company_role rol ON me.is_leader = rol.id
where company_info_id = #{companyInfoId}
</select>
<select id="getBindCompanyUserIdList" resultType="java.lang.Integer">
select cm.user_account_id from back_user_account bua
left join company_back_user cbu on bua.id = cbu.back_user_account_id
left join company_member cm on cbu.company_info_id = cm.company_info_id
where bua.id = #{backUserId}
</select>
</mapper> </mapper>
...@@ -41,20 +41,30 @@ ...@@ -41,20 +41,30 @@
where is_deleted = 0 where is_deleted = 0
</select> </select>
<select id="selectUserMessage" resultType="com.mmc.iuav.user.entity.UserMessageDO"> <select id="selectUserMessage" resultType="com.mmc.iuav.user.entity.UserMessageDO">
SELECT id, img_url, content, sender_user_id, receiver_user_id, create_time SELECT id, img_url, content, sender_user_id, receiver_user_id, create_time, back_user_id
FROM ( FROM user_message
SELECT id, img_url, content, sender_user_id, receiver_user_id, create_time where is_deleted = 0
FROM user_message and sender_user_id in (#{senderUserId}, #{messageQO.receiverUserId})
WHERE is_deleted = 0 AND sender_user_id IN (#{senderUserId} ,#{messageQO.receiverUserId}) AND receiver_user_id IN (#{senderUserId} ,#{messageQO.receiverUserId}) and receiver_user_id in (#{senderUserId}, #{messageQO.receiverUserId})
ORDER BY create_time desc and
LIMIT #{messageQO.pageNo},#{messageQO.pageSize} case
) AS subquery when #{messageQO.backUserId} is not null then back_user_id = #{messageQO.backUserId}
ORDER BY create_time ASC; else back_user_id is null
end
ORDER BY create_time desc
LIMIT #{messageQO.pageNo}
, #{messageQO.pageSize}
</select> </select>
<select id="countUserMessage" resultType="java.lang.Integer"> <select id="countUserMessage" resultType="java.lang.Integer">
select count(*) select count(*)
from user_message from user_message
where is_deleted = 0 and sender_user_id in(#{senderUserId} ,#{receiverUserId}) and receiver_user_id in(#{senderUserId} ,#{receiverUserId}) where is_deleted = 0 and sender_user_id in(#{senderUserId} ,#{messageQO.receiverUserId}) and receiver_user_id in(#{senderUserId} ,#{messageQO.receiverUserId})
and
case
when #{messageQO.backUserId} is not null then back_user_id = #{messageQO.backUserId}
else back_user_id is null
end
</select> </select>
<select id="selectUserListBySenderUserId" resultType="java.lang.Integer"> <select id="selectUserListBySenderUserId" resultType="java.lang.Integer">
select select
...@@ -71,7 +81,13 @@ ...@@ -71,7 +81,13 @@
<select id="isUserMessageLog" resultType="java.lang.Integer"> <select id="isUserMessageLog" resultType="java.lang.Integer">
select id select id
from user_message_log from user_message_log
where sender_user_id = #{senderUserId} and receiver_user_id = #{receiverUserId} limit 1 where sender_user_id = #{senderUserId} and receiver_user_id = #{receiverUserId}
and
case
when #{backUserId} is not null then back_user_id = #{backUserId}
else back_user_id is null
end
limit 1
</select> </select>
<select id="selectUserList" resultType="com.mmc.iuav.user.entity.UserMessageLogDO"> <select id="selectUserList" resultType="com.mmc.iuav.user.entity.UserMessageLogDO">
select * select *
...@@ -89,6 +105,11 @@ ...@@ -89,6 +105,11 @@
id, img_url, content, sender_user_id,receiver_user_id, create_time id, img_url, content, sender_user_id,receiver_user_id, create_time
from user_message from user_message
where is_deleted = 0 and sender_user_id in(#{senderUserId} ,#{receiverUserId}) and receiver_user_id in(#{senderUserId} ,#{receiverUserId}) where is_deleted = 0 and sender_user_id in(#{senderUserId} ,#{receiverUserId}) and receiver_user_id in(#{senderUserId} ,#{receiverUserId})
and
case
when #{backUserId} is not null then back_user_id = #{backUserId}
else back_user_id is null
end
order by create_time desc order by create_time desc
LIMIT 1 LIMIT 1
</select> </select>
...@@ -131,27 +152,17 @@ ...@@ -131,27 +152,17 @@
<if test="receiverUserId != null">receiver_user_id,</if> <if test="receiverUserId != null">receiver_user_id,</if>
<if test="content != null">content,</if> <if test="content != null">content,</if>
<if test="imgUrl != null">img_url,</if> <if test="imgUrl != null">img_url,</if>
<if test="backUserId != null">back_user_id,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="senderUserId != null">#{senderUserId,jdbcType=VARCHAR},</if> <if test="senderUserId != null">#{senderUserId,jdbcType=VARCHAR},</if>
<if test="receiverUserId != null">#{receiverUserId,jdbcType=VARCHAR},</if> <if test="receiverUserId != null">#{receiverUserId,jdbcType=VARCHAR},</if>
<if test="content != null">#{content,jdbcType=VARCHAR},</if> <if test="content != null">#{content,jdbcType=VARCHAR},</if>
<if test="imgUrl != null">#{imgUrl,jdbcType=VARCHAR},</if> <if test="imgUrl != null">#{imgUrl,jdbcType=VARCHAR},</if>
<if test="backUserId != null">#{backUserId,jdbcType=VARCHAR},</if>
</trim> </trim>
</insert> </insert>
<insert id="insertUserMessageLog">
insert into user_message_log
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="senderUserId != null">sender_user_id,</if>
<if test="receiverUserId != null">receiver_user_id,</if>
<if test="messageCount != null">message_count,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="senderUserId != null">#{senderUserId,jdbcType=VARCHAR},</if>
<if test="receiverUserId != null">#{receiverUserId,jdbcType=VARCHAR},</if>
<if test="messageCount != null">#{messageCount,jdbcType=VARCHAR},</if>
</trim>
</insert>
<insert id="insertTimeType"> <insert id="insertTimeType">
insert into user_message_time_type insert into user_message_time_type
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
...@@ -165,6 +176,22 @@ ...@@ -165,6 +176,22 @@
<if test="chatDuration != null">#{chatDuration},</if> <if test="chatDuration != null">#{chatDuration},</if>
</trim> </trim>
</insert> </insert>
<insert id="insertUserMessageLog" parameterType="com.mmc.iuav.user.entity.UserMessageLogDO">
insert into user_message_log
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="senderUserId != null">sender_user_id,</if>
<if test="receiverUserId != null">receiver_user_id,</if>
<if test="messageCount != null">message_count,</if>
<if test="backUserId != null">back_user_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="senderUserId != null">#{senderUserId,jdbcType=INTEGER},</if>
<if test="receiverUserId != null">#{receiverUserId,jdbcType=INTEGER},</if>
<if test="messageCount != null">#{messageCount,jdbcType=INTEGER},</if>
<if test="backUserId != null">#{backUserId,jdbcType=INTEGER},</if>
</trim>
</insert>
<update id="removeMessage"> <update id="removeMessage">
update message update message
set is_deleted = 1, deleted_time = NOW() set is_deleted = 1, deleted_time = NOW()
......
...@@ -783,5 +783,8 @@ ...@@ -783,5 +783,8 @@
<select id="getUserStateId" resultType="java.lang.Integer"> <select id="getUserStateId" resultType="java.lang.Integer">
select user_state_id from user_account where id = #{userId} select user_state_id from user_account where id = #{userId}
</select> </select>
<select id="getCompanyRoleList" resultType="com.mmc.iuav.user.entity.CompanyRoleDo">
select id,role_name from company_role
</select>
</mapper> </mapper>
...@@ -18,4 +18,4 @@ patches: ...@@ -18,4 +18,4 @@ patches:
images: images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG - name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/cms
newTag: 2488bdc48f7bd5352ecfbcc5ee9f4e384834e29b newTag: 00def15c5d8ab2b6c630e8e210de91f6bb4e435a
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论