Merge remote-tracking branch 'origin/master'

master
wujingtao 2 years ago
commit 1d3cb94e81

@ -13,5 +13,7 @@ public class TreeUserDTO extends UserDto {
private static final long serialVersionUID = -6936022647922476487L; private static final long serialVersionUID = -6936022647922476487L;
private Long templateId;
private List<TreeUserDTO> children; private List<TreeUserDTO> children;
} }

@ -109,6 +109,12 @@ public enum ResponseCode {
*/ */
INSUFFICIENT_ACCOUNT_BALANCE("1019", "账户余额不足"), INSUFFICIENT_ACCOUNT_BALANCE("1019", "账户余额不足"),
/**
*
*
*/
CONNECTION_SUCCEEDED("1027", "连接成功"),
/** /**
* *
* *

@ -11,6 +11,7 @@ import lombok.Getter;
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum WebSocketEnums { public enum WebSocketEnums {
/** /**
* *
*/ */
@ -34,7 +35,13 @@ public enum WebSocketEnums {
/** /**
* *
*/ */
CREATE(5,"create"); CREATE(5,"create"),
/**
*
*/
HEART_BEAT(6,"heart_beat");
private final Integer value; private final Integer value;
private final String type; private final String type;

@ -87,4 +87,9 @@ public interface CompanyRepository extends JpaRepository<Company, Long>, JpaSpec
@Modifying @Modifying
@Query("UPDATE Company set templateId = ?1 where id = ?2") @Query("UPDATE Company set templateId = ?1 where id = ?2")
void updateCompanyTemplateIdById(Long templateId, Long companyId); void updateCompanyTemplateIdById(Long templateId, Long companyId);
/**
* id
*/
Company findByUserId(Long userId);
} }

@ -10,4 +10,6 @@ import java.util.Set;
@Repository @Repository
public interface PayFatherTemplateRepository extends JpaRepository<PayFatherTemplate, Long>, JpaSpecificationExecutor<PayFatherTemplate> { public interface PayFatherTemplateRepository extends JpaRepository<PayFatherTemplate, Long>, JpaSpecificationExecutor<PayFatherTemplate> {
void deleteByIdIn(Set<Long> ids); void deleteByIdIn(Set<Long> ids);
Set<PayFatherTemplate> findByStatus(Integer status);
} }

@ -3,6 +3,7 @@ package com.baiye.modules.system.rest;
import com.baiye.http.CommonResponse; import com.baiye.http.CommonResponse;
import com.baiye.modules.system.domain.PayCombo; import com.baiye.modules.system.domain.PayCombo;
import com.baiye.modules.system.service.PayComboService; import com.baiye.modules.system.service.PayComboService;
import com.baiye.modules.system.service.dto.PayComboQueryCriteria;
import com.baiye.valid.AddGroup; import com.baiye.valid.AddGroup;
import com.baiye.valid.UpdateGroup; import com.baiye.valid.UpdateGroup;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -37,7 +38,13 @@ public class PayComboController {
@ApiOperation("查询模板列表") @ApiOperation("查询模板列表")
@GetMapping("/list") @GetMapping("/list")
public ResponseEntity<Object> query(){ public ResponseEntity<Object> list(){
return new ResponseEntity<>(payComboService.query(), HttpStatus.OK); return new ResponseEntity<>(payComboService.list(), HttpStatus.OK);
}
@ApiOperation("查询模板列表")
@GetMapping("/query")
public ResponseEntity<Object> query(PayComboQueryCriteria payComboQueryCriteria){
return new ResponseEntity<>(payComboService.query(payComboQueryCriteria), HttpStatus.OK);
} }
} }

@ -1,6 +1,7 @@
package com.baiye.modules.system.service; package com.baiye.modules.system.service;
import com.baiye.modules.system.domain.PayCombo; import com.baiye.modules.system.domain.PayCombo;
import com.baiye.modules.system.service.dto.PayComboQueryCriteria;
public interface PayComboService { public interface PayComboService {
@ -20,7 +21,7 @@ public interface PayComboService {
* *
* @return * @return
*/ */
Object query(); Object list();
/** /**
* id * id
@ -28,4 +29,6 @@ public interface PayComboService {
* @return * @return
*/ */
PayCombo findTemplateById(Long templateId); PayCombo findTemplateById(Long templateId);
Object query(PayComboQueryCriteria payComboQueryCriteria);
} }

@ -0,0 +1,45 @@
package com.baiye.modules.system.service.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class PayComboDto implements Serializable {
private static final long serialVersionUID = 7917504710223840272L;
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "套餐名称")
private String packageName;
@ApiModelProperty(value = "套餐等级")
private Integer levelNumber;
@ApiModelProperty(value = "父ID")
private Long fatherTemplateId;
@ApiModelProperty(value = "金额")
private Double amount;
@ApiModelProperty(value = "基础金额")
private Double baseAmount;
@ApiModelProperty(value = "通话时长")
private Integer callDuration;
@ApiModelProperty(value = "套餐天数")
private Integer packageDay;
@ApiModelProperty(value = "状态: 0可用 1禁用")
private Integer status;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

@ -0,0 +1,23 @@
package com.baiye.modules.system.service.dto;
import com.baiye.annotation.Query;
import lombok.Data;
/**
*
*/
@Data
public class PayComboQueryCriteria {
@Query
private Long id;
@Query
private Integer status;
@Query
private Long fatherTemplateId;
// @Query(blurry = "name")
// private String name;
}

@ -147,6 +147,7 @@ public class CompanyServiceImpl implements CompanyService {
} }
@Override @Override
@CacheEvict(cacheNames = "companyCache", key = "#companyId")
public void updateCompanyTemplateId(Long templateId, Long companyId) { public void updateCompanyTemplateId(Long templateId, Long companyId) {
companyRepository.updateCompanyTemplateIdById(templateId,companyId); companyRepository.updateCompanyTemplateIdById(templateId,companyId);
} }

@ -1,12 +1,22 @@
package com.baiye.modules.system.service.impl; package com.baiye.modules.system.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.DefaultNumberConstants;
import com.baiye.model.dto.UserDto;
import com.baiye.modules.system.domain.Company;
import com.baiye.modules.system.domain.PayCombo; import com.baiye.modules.system.domain.PayCombo;
import com.baiye.modules.system.domain.User;
import com.baiye.modules.system.repository.CompanyRepository;
import com.baiye.modules.system.repository.PayComboRepository; import com.baiye.modules.system.repository.PayComboRepository;
import com.baiye.modules.system.repository.UserRepository;
import com.baiye.modules.system.service.CompanyService; import com.baiye.modules.system.service.CompanyService;
import com.baiye.modules.system.service.PayComboService; import com.baiye.modules.system.service.PayComboService;
import com.baiye.modules.system.service.UserService;
import com.baiye.modules.system.service.dto.CompanyDto; import com.baiye.modules.system.service.dto.CompanyDto;
import com.baiye.modules.system.service.dto.PayComboQueryCriteria;
import com.baiye.modules.system.service.mapstruct.PayComboMapper;
import com.baiye.util.QueryHelp;
import com.baiye.util.SecurityUtils; import com.baiye.util.SecurityUtils;
import com.baiye.util.StringUtils; import com.baiye.util.StringUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -31,7 +41,9 @@ import java.util.Set;
public class PayComboServiceImpl implements PayComboService { public class PayComboServiceImpl implements PayComboService {
private final PayComboRepository payComboRepository; private final PayComboRepository payComboRepository;
private final CompanyService companyService; private final CompanyRepository companyRepository;
private final UserRepository userRepository;
private final PayComboMapper payComboMapper;
@Value("${payTemplate.base_fee}") @Value("${payTemplate.base_fee}")
private Double baseFee; private Double baseFee;
@Value("${payTemplate.beyond_fee}") @Value("${payTemplate.beyond_fee}")
@ -77,17 +89,20 @@ public class PayComboServiceImpl implements PayComboService {
} }
@Override @Override
public Object query() { public Object list() {
//1、查询公司的模板 //1、查询公司的模板
CompanyDto company = companyService.findCompanyById(SecurityUtils.getCurrentUserId()); User user = userRepository.findById(SecurityUtils.getCurrentUserId()).orElseGet(User::new);
Long fatherTemplateId = company.getTemplateId(); Company company = companyRepository.findById(user.getCompanyId()).orElseGet(Company::new);
//2、查询
Set<PayCombo> payCombos = payComboRepository.findByFatherTemplateIdAndStatus(fatherTemplateId, DefaultNumberConstants.ZERO_NUMBER);
HashMap<Object, Object> map = new HashMap<>(); HashMap<Object, Object> map = new HashMap<>();
if (CollUtil.isNotEmpty(payCombos)){ if (ObjectUtil.isNotEmpty(company)){
map.put("list", payCombos); Long fatherTemplateId = company.getTemplateId();
map.put("baseFee",baseFee); //2、查询
map.put("beyondFee",beyondFee); Set<PayCombo> payCombos = payComboRepository.findByFatherTemplateIdAndStatus(fatherTemplateId, DefaultNumberConstants.ZERO_NUMBER);
if (CollUtil.isNotEmpty(payCombos)){
map.put("list", payCombos);
map.put("baseFee",baseFee);
map.put("beyondFee",beyondFee);
}
} }
return map; return map;
} }
@ -97,4 +112,11 @@ public class PayComboServiceImpl implements PayComboService {
public PayCombo findTemplateById(Long templateId) { public PayCombo findTemplateById(Long templateId) {
return payComboRepository.findById(templateId).orElseGet(PayCombo::new); return payComboRepository.findById(templateId).orElseGet(PayCombo::new);
} }
@Override
public Object query(PayComboQueryCriteria payComboQueryCriteria) {
payComboQueryCriteria.setStatus(DefaultNumberConstants.ZERO_NUMBER);
return payComboMapper.toDto(payComboRepository.findAll((root, criteriaQuery, criteriaBuilder) ->
QueryHelp.getPredicate(root, payComboQueryCriteria, criteriaBuilder)));
}
} }

@ -83,7 +83,16 @@ public class PayFatherTemplateServiceImpl implements PayFatherTemplateService {
if (CollUtil.isNotEmpty(companies)){ if (CollUtil.isNotEmpty(companies)){
throw new BadRequestException("模板已绑定用户,请操作替换后然后删除"); throw new BadRequestException("模板已绑定用户,请操作替换后然后删除");
} }
payFatherTemplateRepository.deleteByIdIn(ids); List<PayFatherTemplate> payFatherTemplateList = payFatherTemplateRepository.findAllById(ids);
if (CollUtil.isNotEmpty(payFatherTemplateList)){
payFatherTemplateList.forEach(pt -> pt.setStatus(DefaultNumberConstants.ONE_NUMBER));
payFatherTemplateRepository.saveAll(payFatherTemplateList);
}
Set<PayCombo> payComboSet = payComboRepository.findByFatherTemplateIdInAndStatus(ids, DefaultNumberConstants.ZERO_NUMBER);
if (CollUtil.isNotEmpty(payComboSet)){
payComboSet.forEach(pt -> pt.setStatus(DefaultNumberConstants.ONE_NUMBER));
payComboRepository.saveAll(payComboSet);
}
} }
@Override @Override
@ -107,7 +116,7 @@ public class PayFatherTemplateServiceImpl implements PayFatherTemplateService {
@Override @Override
public Object list() { public Object list() {
return payFatherTemplateRepository.findAll(); return payFatherTemplateRepository.findByStatus(DefaultNumberConstants.ZERO_NUMBER);
} }
@Override @Override

@ -135,6 +135,8 @@ public class UserServiceImpl implements UserService {
for (RoleSmallDto role : roles) { for (RoleSmallDto role : roles) {
if (role.getId() == DefaultNumberConstants.EIGHT_NUMBER) { if (role.getId() == DefaultNumberConstants.EIGHT_NUMBER) {
user.setIsManager(Boolean.TRUE); user.setIsManager(Boolean.TRUE);
CompanyDto companyById = companyService.findCompanyById(user.getCompanyId());
user.setTemplateId(companyById.getTemplateId());
} }
if (role.getId() == DefaultNumberConstants.ONE_NUMBER) { if (role.getId() == DefaultNumberConstants.ONE_NUMBER) {
user.setIsAdmin(Boolean.TRUE); user.setIsAdmin(Boolean.TRUE);

@ -0,0 +1,16 @@
package com.baiye.modules.system.service.mapstruct;
import com.baiye.model.base.BaseMapper;
import com.baiye.modules.system.domain.LabelOrganize;
import com.baiye.modules.system.domain.PayCombo;
import com.baiye.modules.system.service.dto.PayComboDto;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface PayComboMapper extends BaseMapper<PayComboDto, PayCombo> {
}

@ -6,6 +6,7 @@ import com.baiye.constant.DefaultNumberConstants;
import com.baiye.http.WebSocketResponse; import com.baiye.http.WebSocketResponse;
import com.baiye.manager.UserTokenManager; import com.baiye.manager.UserTokenManager;
import com.baiye.model.dto.SendWebSocketDTO; import com.baiye.model.dto.SendWebSocketDTO;
import com.baiye.model.enums.ResponseCode;
import com.baiye.model.enums.WebSocketEnums; import com.baiye.model.enums.WebSocketEnums;
import com.baiye.modules.system.service.MessageNotificationService; import com.baiye.modules.system.service.MessageNotificationService;
import com.baiye.modules.system.service.UserMessageService; import com.baiye.modules.system.service.UserMessageService;
@ -40,6 +41,7 @@ public class WebSocketServer {
} }
private static final AtomicInteger ONLINE_COUNT = new AtomicInteger(0); private static final AtomicInteger ONLINE_COUNT = new AtomicInteger(0);
/** /**
* concurrent线SetSession * concurrent线SetSession
*/ */
@ -69,10 +71,16 @@ public class WebSocketServer {
*/ */
@OnClose @OnClose
public void onClose(Session session) { public void onClose(Session session) {
if (onlineId != null) { Long userId = getUserId(session);
SESSIONS.remove(onlineId); try {
int cnt = ONLINE_COUNT.decrementAndGet(); if (userId != null) {
log.info("有连接关闭,当前连接数为:{}", cnt); SESSIONS.remove(userId);
int cnt = ONLINE_COUNT.decrementAndGet();
session.close();
log.info("有连接关闭关闭id为{},当前连接数为:{}", userId, cnt);
}
} catch (IOException e) {
throw new RuntimeException("关闭失败");
} }
} }
@ -83,7 +91,6 @@ public class WebSocketServer {
*/ */
@OnMessage @OnMessage
public void onMessage(String message, Session session) { public void onMessage(String message, Session session) {
log.info("来自客户端的消息:{}", message);
JSONObject jsonObject = JSONUtil.parseObj(message); JSONObject jsonObject = JSONUtil.parseObj(message);
String type = "type"; String type = "type";
UserMessageService userMessageService = UserMessageService userMessageService =
@ -144,6 +151,15 @@ public class WebSocketServer {
(jsonObject.getStr(type)))); (jsonObject.getStr(type))));
} }
break; break;
case DefaultNumberConstants.SIX_NUMBER:
userId = getUserId(session);
if (userId != null) {
sendMessage(session, JSONUtil.toJsonStr
(WebSocketResponse.createBySuccess
(jsonObject.getStr(type),
ResponseCode.CONNECTION_SUCCEEDED)));
}
break;
default: default:
break; break;
} }
@ -203,8 +219,9 @@ public class WebSocketServer {
} }
if (session != null) { if (session != null) {
sendMessage(session, message); sendMessage(session, message);
log.info("=============== 发送消息成功 ===============");
} else { } else {
log.warn("没有找到你指定ID的会话{}", sessionId); log.error("发送消息失败{}", sessionId);
} }
} }
@ -225,7 +242,7 @@ public class WebSocketServer {
data.setCode(DefaultNumberConstants.TWO_HUNDRED); data.setCode(DefaultNumberConstants.TWO_HUNDRED);
session.getBasicRemote().sendText(JSONUtil.toJsonStr(data)); session.getBasicRemote().sendText(JSONUtil.toJsonStr(data));
} else { } else {
log.warn("没有找到你指定ID的会话{}", id); log.error("没有找到你指定ID的会话{}", id);
} }
} }
} }
@ -238,7 +255,7 @@ public class WebSocketServer {
session.getBasicRemote().sendText(JSONUtil.toJsonStr session.getBasicRemote().sendText(JSONUtil.toJsonStr
(WebSocketResponse.createBySuccess("userMessage", hashMap.get(id)))); (WebSocketResponse.createBySuccess("userMessage", hashMap.get(id))));
} else { } else {
log.warn("没有找到你指定ID的会话{}", id); log.error("没有找到你指定ID的会话{}", id);
} }
} }
} catch (IOException e) { } catch (IOException e) {

Loading…
Cancel
Save