增加业务员代码

master
bynt 1 year ago
parent 09c67e8dfa
commit 850cf3f53d

39
.gitignore vendored

@ -0,0 +1,39 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
### custom ###
.flattened-pom.xml
/**/application-local.yml
/logs/

@ -73,5 +73,10 @@
<version>2.3.2.RELEASE</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,46 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.baiye.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* <p>
* Redis key
* </p>
*
* @author Zheng Jie
* @date 2020-05-02
*/
@Getter
@AllArgsConstructor
public enum ClueSourceEnum {
/**
*
*/
TABLE_UPLOAD("table upload", "表单上传"),
/**
*
*/
STORE_DISTRIBUTION("store distribution:", "门店分发");
private final String key;
private final String description;
}

@ -0,0 +1,64 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.baiye.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Objects;
/**
* <p>
* Redis key
* </p>
*
* @author Zheng Jie
* @date 2020-05-02
*/
@Getter
@AllArgsConstructor
public enum SalesManEnum {
/**
*
*/
DISPENSER(19L, 1),
/**
*
*/
FIRST_INSTANCE(20L, 2),
/**
*
*/
RETRIAL(21L, 3);
private final Long id;
private final Integer type;
public static Integer find(Long val) {
for (SalesManEnum salesManEnum : SalesManEnum.values()) {
if (Objects.equals(salesManEnum.getId(), val)) {
return salesManEnum.getType();
}
}
return 0;
}
}

@ -31,5 +31,9 @@
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-common</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,37 @@
package com.baiye.entity;
import java.util.List;
/**
* @author Enzo
* @date 2022-05-14
*/
public interface BaseMapStruct<D, E> {
/**
* DTOEntity
* @param dto /
* @return /
*/
E toEntity(D dto);
/**
* EntityDTO
* @param entity /
* @return /
*/
D toDto(E entity);
/**
* DTOEntity
* @param dtoList /
* @return /
*/
List<E> toEntity(List<D> dtoList);
/**
* EntityDTO
* @param entityList /
* @return /
*/
List <D> toDto(List<E> entityList);
}

@ -1,6 +1,5 @@
package com.baiye.result;
import com.baiye.I18nClass;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.experimental.Accessors;

@ -46,6 +46,7 @@ public class BallcatOAuth2TokenCustomizer implements OAuth2TokenCustomizer<OAuth
HashMap<String, Object> userInfo = new HashMap<>(6);
userInfo.put(UserInfoFiledNameConstants.USER_ID, user.getUserId());
userInfo.put(UserInfoFiledNameConstants.TYPE, user.getType());
userInfo.put(UserInfoFiledNameConstants.SALESMAN_TYPE, user.getSalesmanType());
userInfo.put(UserInfoFiledNameConstants.ORGANIZATION_ID, user.getOrganizationId());
userInfo.put(UserInfoFiledNameConstants.USERNAME, user.getUsername());
userInfo.put(UserInfoFiledNameConstants.NICKNAME, user.getNickname());

@ -18,6 +18,11 @@ public final class UserInfoFiledNameConstants {
*/
public static final String TYPE = "type";
/**
*
*/
public static final String SALESMAN_TYPE = "salesmanType";
/**
* ID
*/

@ -38,10 +38,11 @@ public class UserDeserializer extends JsonDeserializer<User> {
* {@link org.springframework.security.core.userdetails.User} by invoking
* {@link org.springframework.security.core.userdetails.User#eraseCredentials()}. In
* that case there won't be any password key in serialized json.
* @param jp the JsonParser
*
* @param jp the JsonParser
* @param ctxt the DeserializationContext
* @return the user
* @throws IOException if a exception during IO occurs
* @throws IOException if a exception during IO occurs
* @throws JsonProcessingException if an error during JSON processing occurs
*/
@Override
@ -51,6 +52,7 @@ public class UserDeserializer extends JsonDeserializer<User> {
JsonNode passwordNode = readJsonNode(jsonNode, "password");
long userId = readJsonNode(jsonNode, "userId").asLong();
int salesmanType = readJsonNode(jsonNode, "salesmanType").asInt();
long whichUserId = readJsonNode(jsonNode, "whichUserId").asLong();
String username = readJsonNode(jsonNode, "username").asText("");
String nickname = readJsonNode(jsonNode, "nickname").asText("");
@ -73,21 +75,22 @@ public class UserDeserializer extends JsonDeserializer<User> {
Map<String, Object> attributes = mapper.convertValue(jsonNode.get("attributes"), ATTRIBUTE_MAP);
return User.builder()
.userId(userId)
.whichUserId(whichUserId)
.username(username)
.password(password)
.nickname(nickname)
.avatar(avatar)
.status(status)
.organizationId(organizationId)
.email(email)
.phoneNumber(phoneNumber)
.gender(gender)
.type(type)
.authorities(authorities)
.attributes(attributes)
.build();
.userId(userId)
.whichUserId(whichUserId)
.username(username)
.password(password)
.nickname(nickname)
.avatar(avatar)
.status(status)
.organizationId(organizationId)
.email(email)
.phoneNumber(phoneNumber)
.gender(gender)
.type(type)
.salesmanType(salesmanType)
.authorities(authorities)
.attributes(attributes)
.build();
}
private JsonNode readJsonNode(JsonNode jsonNode, String field) {

@ -78,6 +78,11 @@ public class User implements UserDetails, OAuth2User {
*/
private final Integer type;
/**
*
*/
private final Integer salesmanType;
/**
*
*/

@ -279,6 +279,7 @@ public class BallcatRemoteOpaqueTokenIntrospector implements OpaqueTokenIntrospe
.phoneNumber(getOrDefault(info, UserInfoFiledNameConstants.PHONE_NUMBER, ""))
.gender(getOrDefault(info, UserInfoFiledNameConstants.GENDER, null))
.type(getOrDefault(info, UserInfoFiledNameConstants.TYPE, null))
.salesmanType(getOrDefault(info, UserInfoFiledNameConstants.SALESMAN_TYPE, 0))
.status(getOrDefault(info, UserInfoFiledNameConstants.STATUS, null));
Collection<? extends GrantedAuthority> authorities = null;
@ -319,4 +320,4 @@ public class BallcatRemoteOpaqueTokenIntrospector implements OpaqueTokenIntrospe
return value == null ? defaultValue : (T) value;
}
}
}

@ -69,6 +69,7 @@ public class BallcatOAuth2TokenResponseEnhancer implements OAuth2TokenResponseEn
sysUserInfo.setPhoneNumber(user.getPhoneNumber());
sysUserInfo.setEmail(user.getEmail());
sysUserInfo.setGender(user.getGender());
sysUserInfo.setSalesmanType(user.getSalesmanType());
return sysUserInfo;
}

@ -83,6 +83,7 @@ public class SysUserDetailsServiceImpl implements UserDetailsService {
.phoneNumber(sysUser.getPhoneNumber())
.gender(sysUser.getGender())
.type(sysUser.getType())
.salesmanType(userInfoDTO.getSalesmanType())
.authorities(authorities)
.attributes(attributes)
.build();

@ -2,6 +2,8 @@ package com.baiye.system.checker;
import com.baiye.system.model.entity.SysUser;
import java.util.Set;
/**
*
*
@ -23,4 +25,11 @@ public interface AdminUserChecker {
*/
boolean hasModifyPermission(SysUser targetUser);
/**
*
* @param roleIdSet
* @return
*/
boolean isSalesman(Set<Long> roleIdSet);
}

@ -1,12 +1,17 @@
package com.baiye.system.checker;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.text.CharSequenceUtil;
import com.baiye.enums.SalesManEnum;
import com.baiye.security.util.SecurityUtils;
import com.baiye.system.model.entity.SysUser;
import com.baiye.system.properties.SystemProperties;
import com.google.common.collect.Sets;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Set;
/**
*
*
@ -37,4 +42,10 @@ public class AdminUserCheckerImpl implements AdminUserChecker {
return true;
}
@Override
public boolean isSalesman(Set<Long> roleIdSet) {
Set<Long> salesman = systemProperties.getSalesman();
return CollUtil.isNotEmpty(Sets.intersection(roleIdSet, salesman));
}
}

@ -1,9 +1,12 @@
package com.baiye.system.properties;
import com.google.common.collect.Sets;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.Set;
/**
*
*
@ -22,6 +25,13 @@ public class SystemProperties {
*/
private Administrator administrator = new Administrator();
/**
*
*
*/
private Set<Long> salesman = Sets.newHashSet(19L, 20L, 21L);
/**
*
*/
@ -31,16 +41,20 @@ public class SystemProperties {
@Setter
public static class Administrator {
/**
* id
*/
private int userId = 0;
private int userId = 1;
/**
* username
*/
private String username;
}
}

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.baiye.enums.SalesManEnum;
import com.baiye.exception.BadRequestException;
import com.baiye.system.checker.AdminUserChecker;
import com.baiye.system.converter.SysUserConverter;
@ -36,6 +37,7 @@ import com.baiye.system.model.vo.SysUserPageVO;
import com.baiye.system.service.SysRoleService;
import com.baiye.system.service.SysUserService;
import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
import com.google.common.collect.Sets;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -75,10 +77,12 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
private final FileProperties fileProperties;
/**
* QueryObject
*
* @param pageParam
* @param qo
* @param qo
* @return PageResult<SysUserVO>
*/
@Override
@ -88,7 +92,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
List<SysUser> sysUsers = baseMapper.selectList(new LambdaQueryWrapper<>());
List<SysUserPageVO> userAll = Convert.toList(SysUserPageVO.class, sysUsers);
Map<Long, List<SysUserPageVO>> userGroup = userAll.stream()
.collect(Collectors.groupingBy(SysUserPageVO::getWhichUserId));
.collect(Collectors.groupingBy(SysUserPageVO::getWhichUserId));
result.getRecords().forEach(user -> {
List<SysUserPageVO> byWhichUserId = userGroup.get(user.getUserId());
@ -106,6 +110,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
*
* @param username
* @return
*/
@ -116,6 +121,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
*
* @param sysUser
* @return
*/
@ -123,15 +129,27 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
public UserInfoDTO findUserInfo(SysUser sysUser) {
UserInfoDTO userInfoDTO = new UserInfoDTO();
userInfoDTO.setSysUser(sysUser);
userInfoDTO.setSalesmanType(0);
Boolean isAdmin = Boolean.FALSE;
// 超级管理员拥有所有角色
List<SysRole> roleList;
if (adminUserChecker.isAdminUser(sysUser)) {
roleList = sysRoleService.list();
}
else {
isAdmin = Boolean.TRUE;
} else {
roleList = sysUserRoleService.listRoles(sysUser.getUserId());
}
// 判断用户角色
Set<Long> roleIdSet = roleList.stream().map(SysRole::getId).collect(Collectors.toSet());
if (Boolean.FALSE.equals(isAdmin)
&& adminUserChecker.isSalesman(roleIdSet)) {
for (Long id : roleIdSet) {
if (SalesManEnum.find(id) > 0) {
userInfoDTO.setSalesmanType(SalesManEnum.find(id));
break;
}
}
}
// 设置角色标识
Set<String> roleCodes = new HashSet<>();
@ -148,9 +166,9 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
List<SysMenu> sysMenuList = sysMenuService.listByRoleCode(roleCode);
menus.addAll(sysMenuList);
List<String> permissionList = sysMenuList.stream()
.map(SysMenu::getPermission)
.filter(StrUtil::isNotEmpty)
.collect(Collectors.toList());
.map(SysMenu::getPermission)
.filter(StrUtil::isNotEmpty)
.collect(Collectors.toList());
permissions.addAll(permissionList);
}
userInfoDTO.setMenus(menus);
@ -161,6 +179,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
* AOP{SysUserAspect}
*
* @param sysUserDto DTO
* @return true , false
*/
@ -199,6 +218,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
*
* @param sysUserDTO DTO
* @return true: false
*/
@ -227,7 +247,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
// 如果修改了组织且修改成功,则发送用户组织更新事件
if (isUpdateSuccess && organizationIdModified) {
publisher
.publishEvent(new UserOrganizationChangeEvent(userId, originOrganizationId, currentOrganizationId));
.publishEvent(new UserOrganizationChangeEvent(userId, originOrganizationId, currentOrganizationId));
}
return isUpdateSuccess;
@ -235,7 +255,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
* @param userId Id
*
* @param userId Id
* @param sysUserScope
* @return true
*/
@ -248,6 +269,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
* userId
*
* @param userId ID
* @return true
*/
@ -271,7 +293,8 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
* @param userId ID
*
* @param userId ID
* @param rawPassword
* @return true
*/
@ -285,6 +308,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
*
* @param userIds ID
* @return true
*/
@ -296,7 +320,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
// 移除无权限更改的用户id
Map<Long, SysUser> userMap = userList.stream()
.collect(Collectors.toMap(SysUser::getUserId, Function.identity()));
.collect(Collectors.toMap(SysUser::getUserId, Function.identity()));
userIds.removeIf(id -> !adminUserChecker.hasModifyPermission(userMap.get(id)));
Assert.notEmpty(userIds, "更新用户状态失败,无权限更新用户");
@ -328,6 +352,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
*
* @param roleCode
* @return
*/
@ -338,6 +363,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
*
* @param roleCodes
* @return List<SysUser>
*/
@ -348,6 +374,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
* ID
*
* @param organizationIds id
* @return
*/
@ -358,6 +385,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
*
* @param userTypes
* @return
*/
@ -368,6 +396,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
* Id
*
* @param userIds Id
* @return
*/
@ -379,8 +408,9 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
* select name=> username value => userId
* @return List<SelectData>
*
* @param userTypes
* @return List<SelectData>
*/
@Override
public List<SelectData<Void>> listSelectData(Collection<Integer> userTypes) {
@ -389,6 +419,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
* Code
*
* @param userId id
* @return List<String>
*/
@ -399,6 +430,7 @@ public class SysUserServiceImpl extends ExtendServiceImpl<SysUserMapper, SysUser
/**
*
*
* @param organizationId id
* @return boolean true
*/

@ -0,0 +1,14 @@
package com.baiye.system.constant;
/**
* @author Enzo
* @date : 2022/8/4
*/
public class DateConst {
private DateConst(){
}
public static final String YYYY_MM_DD = "yyyyMMdd";
}

@ -0,0 +1,17 @@
package com.baiye.system.constant;
/**
* @author Enzo
* @date : 2022/8/4
*/
public class LetterConst {
private LetterConst(){
}
public static final String D = "D";
public static final String ONE = "01";
}

@ -48,4 +48,11 @@ public class UserInfoDTO {
@Schema(title = "角色对象集合")
private Collection<SysRole> roles;
/**
*
*/
@Schema(title = "业务员类型")
private Integer salesmanType;
}

@ -71,4 +71,12 @@ public class SysUserInfo implements Serializable {
@Schema(title = "用户类型1-系统用户2-客户用户")
private Integer type;
/**
*
*/
@Schema(title = "业务员类型")
private Integer salesmanType;
}

@ -16,7 +16,6 @@
</properties>
<dependencies>
<!-- 基于 spring authorization server 的授权服务器 -->
<dependency>
<groupId>com.baiye</groupId>
@ -103,6 +102,30 @@
<artifactId>easyexcel</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
</dependencies>
<build>
@ -121,4 +144,4 @@
</plugins>
</build>
</project>
</project>

@ -1,14 +1,19 @@
package com.baiye.modules.distribute.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.modules.distribute.dto.ChangeCustomDTO;
import com.baiye.modules.distribute.dto.CustomDTO;
import com.baiye.modules.distribute.qo.CustomQo;
import com.baiye.modules.distribute.service.CustomService;
import com.baiye.modules.distribute.vo.CustomVO;
import com.baiye.operation.annotation.DeleteOperationLogging;
import com.baiye.result.BaseResultCode;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
import com.baiye.system.checker.AdminUserChecker;
import com.baiye.system.service.SysUserService;
import com.baiye.validation.group.CreateGroup;
import com.baiye.validation.group.UpdateGroup;
import io.swagger.v3.oas.annotations.Operation;
@ -17,6 +22,10 @@ import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author Enzo
* @date
*/
@RequiredArgsConstructor
@RestController
@Tag(name = "客户管理")
@ -25,28 +34,72 @@ public class CustomController {
private final CustomService customService;
private final SysUserService sysUserService;
private final AdminUserChecker adminUserChecker;
@GetMapping("/page")
@Operation(summary = "分页查询客户信息")
public R<PageResult<CustomVO>> queryPage(@Validated PageParam pageParam, CustomQo qo) {
qo.setCreateBy(SecurityUtils.getCurrentUserId());
// 查询属于自己的信息
if (!adminUserChecker.isAdminUser(sysUserService.findById
(SecurityUtils.getCurrentUserId()))) {
qo.setCompanyId(SecurityUtils.getWhichUserId());
}
if (ObjectUtil.isNotNull(qo.getSalesmanType()) && qo.getSalesmanType() == 1) {
// 查询当前用户自己的
qo.setSalesmanType(null);
qo.setCreateBy(SecurityUtils.getCurrentUserId());
}
return R.ok(customService.queryPage(pageParam, qo));
}
@PostMapping("/add")
@Operation(summary = "新增客户", description = "新增客户")
public R<Object> save(@Validated({ CreateGroup.class }) @RequestBody CustomDTO customDTO) {
public R<Object> save(@Validated({CreateGroup.class}) @RequestBody CustomDTO customDTO) {
return customService.add(customDTO) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "添加失败");
}
@PostMapping("/update")
@Operation(summary = "修改客户", description = "修改客户")
public R<Object> update(@Validated({ UpdateGroup.class }) @RequestBody CustomDTO customDTO) {
public R<Object> update(@Validated({UpdateGroup.class}) @RequestBody CustomDTO customDTO) {
return customService.update(customDTO) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "修改失败");
}
@GetMapping("/details")
@Operation(summary = "ID查询详情")
public R<CustomVO> getClueDetails(@RequestParam("id") Long id) {
return R.ok(customService.details(id));
}
/**
*
*
* @param id id
* @return
*/
@DeleteMapping("/{id}")
@DeleteOperationLogging(msg = "删除表单信息")
@Operation(summary = "通过id删除系统角色", description = "通过id删除系统角色")
public R<Boolean> removeById(@PathVariable("id") Long id) {
Boolean result = customService.deleteApprovalFormById(id);
return Boolean.TRUE.equals(result) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "删除表单失败");
}
/**
*
*
* @param dto
* @return
*/
@PostMapping("/audit")
@Operation(summary = "审核表单")
public R<Boolean> audit(@Validated({UpdateGroup.class}) @RequestBody ChangeCustomDTO dto) {
Boolean result = customService.auditFormById(dto);
return Boolean.TRUE.equals(result) ? R.ok() : R.failed(BaseResultCode.UPDATE_DATABASE_ERROR, "审核失败");
}
}

@ -0,0 +1,15 @@
package com.baiye.modules.distribute.dto;
import lombok.Data;
/**
* @author Enzo
* @date
*/
@Data
public class ChangeCustomDTO {
private Long customId;
private Integer status;
}

@ -2,7 +2,10 @@ package com.baiye.modules.distribute.dto;
import com.baiye.modules.distribute.entity.LabelEntity;
import com.baiye.validation.group.UpdateGroup;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import javax.validation.constraints.NotNull;
@ -13,6 +16,7 @@ import java.util.List;
* @Date 2023/8/10
*/
@Data
@Builder
public class ClueDTO {
@Schema(title = "线索ID")
@ -54,6 +58,10 @@ public class ClueDTO {
@Schema(title = "资源线索名称")
private String clueStageName;
@Schema(title = "创建者")
private Long createBy;
@Schema(title = "资源标签集合")
private List<LabelEntity> clueLabelList;

@ -17,6 +17,7 @@ public class CustomDTO {
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
private Long customId;
@Schema(title = "客户名称")
@NotNull(message = "客户名称不能为空", groups = { CreateGroup.class })
private String customName;
@ -47,7 +48,7 @@ public class CustomDTO {
@Schema(title = "报名状态 0:待提交 1:已报名")
@NotNull(message = "状态不能为空", groups = { CreateGroup.class })
private String enrollStatus;
private Integer enrollStatus;
@Schema(title = "门店信息")
@NotEmpty(message = "门店信息不能为空", groups = { CreateGroup.class })

@ -29,5 +29,5 @@ public class CustomStoreDTO {
@Schema(title = "预约时间")
@NotNull(message = "预约时间不能为空", groups = { CreateGroup.class })
private LocalDateTime reservationTime;
private String reservationTime;
}

@ -13,6 +13,9 @@ import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
/**
* @author Enzo
*/
@Getter
@Setter
@TableName("tb_custom")
@ -23,6 +26,9 @@ public class CustomEntity extends BaseEntity {
private static final long serialVersionUID = 1L;
@Schema(description = "编号")
private String batchNo;
@TableId
@Schema(title = "ID")
@NotNull(message = "ID不能为空", groups = { UpdateGroup.class })
@ -56,7 +62,19 @@ public class CustomEntity extends BaseEntity {
@NotNull(message = "半径不能为空", groups = { CreateGroup.class })
private String radius;
@Schema(title = "报名状态 0:待提交 1:已报名")
@Schema(title = "报名状态 0:待提交 1:已报名 2 审核通过")
@NotNull(message = "状态不能为空", groups = { CreateGroup.class })
private Integer enrollStatus;
@Schema(description = "审核类型 2初审 3复审")
private Integer type;
@Schema(description = "公司id")
private Long companyId;
@Schema(description = "录入员姓名")
private String enterName;
}

@ -12,6 +12,7 @@ import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.Date;
@Getter
@Setter

@ -14,6 +14,9 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.apache.ibatis.annotations.Param;
/**
*
*/
public interface CustomMapper extends ExtendMapper<CustomEntity> {
default PageResult<CustomVO> queryPage(PageParam pageParam, CustomQo qo) {
IPage<CustomVO> page = this.prodPage(pageParam);
@ -21,6 +24,8 @@ public interface CustomMapper extends ExtendMapper<CustomEntity> {
LambdaAliasQueryWrapperX<CustomEntity> wrapperX = WrappersX.lambdaAliasQueryX(CustomEntity.class);
wrapperX.eqIfPresent(CustomEntity::getCreateBy, qo.getCreateBy())
.likeIfPresent(CustomEntity::getCustomName, qo.getCustomName())
.eqIfPresent(CustomEntity::getCustomId,qo.getCompanyId())
.eqIfPresent(CustomEntity::getType,qo.getSalesmanType())
.eqIfPresent(CustomEntity::getCustomNid, qo.getCustomNid())
.eqIfPresent(CustomEntity::getEnrollStatus, qo.getEnrollStatus())
.orderByDesc(CustomEntity::getCreateTime);
@ -33,4 +38,13 @@ public interface CustomMapper extends ExtendMapper<CustomEntity> {
}
IPage<CustomVO> selectByPage(IPage<CustomVO> page, @Param(Constants.WRAPPER) Wrapper<CustomEntity> wrapper);
/**
*
* @param code
* @param companyId
* @return
*/
String selectMaxBatchNoByCompanyId(@Param("code") String code,@Param("companyId") Long companyId);
}

@ -16,8 +16,8 @@ public class CustomQo {
@Parameter(description = "客户联系方式")
private String customNid;
@Parameter(description = "报名状态 0:待提交 1:已报名")
private String enrollStatus;
@Parameter(description = "报名状态 0:待提交 1:已报名 2以通过")
private Integer enrollStatus;
@Schema(title = "创建者")
private Long createBy;
@ -27,4 +27,11 @@ public class CustomQo {
@Parameter(description = "结束时间")
private String endTime;
@Parameter(description = "公司id")
private Long companyId;
@Schema(title = "审核类型 1录入员 2初审 3复审")
private Integer salesmanType;
}

@ -37,4 +37,10 @@ public interface ClueService extends ExtendService<ClueEntity> {
*/
ClueVO details(Long clueId, ClueQo qo);
/**
*
* @param list
* @return
*/
Boolean saveClueListByStoreInfo(List<ClueDTO> list);
}

@ -3,30 +3,61 @@ package com.baiye.modules.distribute.service;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.extend.mybatis.plus.service.ExtendService;
import com.baiye.modules.distribute.dto.ChangeCustomDTO;
import com.baiye.modules.distribute.dto.CustomDTO;
import com.baiye.modules.distribute.entity.CustomEntity;
import com.baiye.modules.distribute.qo.CustomQo;
import com.baiye.modules.distribute.vo.CustomVO;
/**
* @author Enzo
* @date
*/
public interface CustomService extends ExtendService<CustomEntity> {
/**
*
* @param pageParam
* @param qo
* @return
*/
PageResult<CustomVO> queryPage(PageParam pageParam, CustomQo qo);
/**
*
* @param customDTO
* @return
*/
boolean add(CustomDTO customDTO);
/**
*
* @param customDTO
* @return
*/
boolean update(CustomDTO customDTO);
/**
* ID
*
* @param id
* @return
*/
CustomVO details(Long id);
/**
*
* @param id
* @return
*/
Boolean deleteApprovalFormById(Long id);
/**
*
*
* @param dto
* @return
*/
Boolean auditFormById(ChangeCustomDTO dto);
}

@ -15,4 +15,18 @@ public interface CustomStoreService extends ExtendService<CustomStoreEntity> {
* @return
*/
Map<Long, Integer> countReservationByStoreIds(List<Long> storeIds);
/**
*
* @param id
* @return
*/
Boolean deleteByCustomId(Long id);
/**
* id
* @param customId
* @return
*/
List<CustomStoreEntity> selectListByCustomId(Long customId);
}

@ -1,6 +1,7 @@
package com.baiye.modules.distribute.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.baiye.domain.PageParam;
@ -165,4 +166,10 @@ public class ClueServiceImpl extends ExtendServiceImpl<ClueMapper, ClueEntity> i
return clueVO;
}
@Override
public Boolean saveClueListByStoreInfo(List<ClueDTO> list) {
List<ClueEntity> entityList = Convert.toList(ClueEntity.class, list);
return SqlHelper.retBool(baseMapper.insertBatchSomeColumn(entityList));
}
}

@ -1,48 +1,92 @@
package com.baiye.modules.distribute.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.domain.PageParam;
import com.baiye.domain.PageResult;
import com.baiye.enums.ClueSourceEnum;
import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
import com.baiye.modules.distribute.converter.CustomConverter;
import com.baiye.modules.distribute.dto.ChangeCustomDTO;
import com.baiye.modules.distribute.dto.ClueDTO;
import com.baiye.modules.distribute.dto.CustomDTO;
import com.baiye.modules.distribute.entity.CustomEntity;
import com.baiye.modules.distribute.entity.CustomStoreEntity;
import com.baiye.modules.distribute.mapper.CustomMapper;
import com.baiye.modules.distribute.mapper.CustomStoreMapper;
import com.baiye.modules.distribute.qo.CustomQo;
import com.baiye.modules.distribute.service.ClueService;
import com.baiye.modules.distribute.service.CustomService;
import com.baiye.modules.distribute.service.CustomStoreService;
import com.baiye.modules.distribute.vo.AddressDTO;
import com.baiye.modules.distribute.vo.CustomStoreVO;
import com.baiye.modules.distribute.vo.CustomVO;
import com.baiye.security.userdetails.User;
import com.baiye.security.util.SecurityUtils;
import com.baiye.system.constant.DateConst;
import com.baiye.system.constant.LetterConst;
import com.baiye.util.AESUtils;
import com.baiye.utils.SerialCode;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.ballcat.security.properties.SecurityProperties;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author Enzo
* @date
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class CustomServiceImpl extends ExtendServiceImpl<CustomMapper, CustomEntity> implements CustomService {
private final CustomStoreService customStoreService;
private final SecurityProperties securityProperties;
private final CustomStoreMapper customStoreMapper;
private final ClueService clueService;
@Override
public PageResult<CustomVO> queryPage(PageParam pageParam, CustomQo qo) {
return baseMapper.queryPage(pageParam, qo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(CustomDTO customDTO) {
User user = SecurityUtils.getUser();
Long companyId = user.getWhichUserId();
CustomEntity customEntity = CustomConverter.INSTANCE.dtoToPo(customDTO);
String code = LetterConst.D.concat(StrPool.DASHED.concat(DateUtil.format(DateUtil.date(), DateConst.YYYY_MM_DD)));
String maxCode = baseMapper.selectMaxBatchNoByCompanyId(code, companyId);
// 拼接编号
String newCode = StringUtils.isNotBlank(maxCode) ?
code.concat(SerialCode.getNum(Integer.parseInt
(maxCode.substring(10)))) : code.concat(LetterConst.ONE);
customEntity.setType(2);
customEntity.setBatchNo(newCode);
customEntity.setCompanyId(companyId);
int insert = baseMapper.insert(customEntity);
customEntity.setEnterName(user.getUsername());
List<CustomStoreEntity> customStoreEntities = customDTO.getCustomStoreEntities();
customStoreEntities.forEach(c -> c.setCustomId(customEntity.getCustomId()));
customStoreService.saveBatch(customStoreEntities);
@ -86,17 +130,57 @@ public class CustomServiceImpl extends ExtendServiceImpl<CustomMapper, CustomEnt
CustomVO customVO = new CustomVO();
CustomEntity customEntity = baseMapper.selectById(id);
BeanUtils.copyProperties(customEntity, customVO);
// TODO 详情查询门店信息
// List<CustomStoreVO> customStoreVOList = new ArrayList<>();
// List<CustomStoreEntity> customStores = customStoreMapper.selectList(new LambdaQueryWrapper<CustomStoreEntity>().eq(CustomStoreEntity::getCustomId, id));
// if (CollUtil.isNotEmpty(customStores)){
// for (CustomStoreEntity customStore : customStores) {
// CustomStoreVO customStoreVO = new CustomStoreVO();
// BeanUtils.copyProperties(customStore, customStoreVO);
// customStoreVOList.add(customStoreVO);
// }
// }
// customVO.setCustomStoreVOList(customStoreVOList);
List<CustomStoreVO> customStoreVOList = new ArrayList<>();
List<CustomStoreEntity> customStores = customStoreService.selectListByCustomId(id);
if (CollUtil.isNotEmpty(customStores)) {
for (CustomStoreEntity customStore : customStores) {
CustomStoreVO customStoreVO = new CustomStoreVO();
BeanUtils.copyProperties(customStore, customStoreVO);
customStoreVOList.add(customStoreVO);
}
}
customVO.setCustomStoreVOList(customStoreVOList);
return customVO;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteApprovalFormById(Long id) {
Boolean result = customStoreService.deleteByCustomId(id);
log.info("========================= delete result as {} =========================", result);
return SqlHelper.retBool(baseMapper.deleteById(id));
}
@Override
public Boolean auditFormById(ChangeCustomDTO dto) {
Long id = dto.getCustomId();
Integer status = dto.getStatus();
CustomEntity customEntity = baseMapper.selectById(id);
if (ObjectUtil.isNotNull(customEntity)) {
if (ObjectUtil.isNotNull(status) && status == 0) {
customEntity.setType(3);
return SqlHelper.retBool(baseMapper.updateById(customEntity));
}
Gson gson = new Gson();
AddressDTO address = new AddressDTO();
List<ClueDTO> list = Lists.newArrayList();
BeanUtils.copyProperties(customEntity, address);
String otherClue = gson.toJson(address);
List<CustomStoreEntity> customStores = customStoreService.selectListByCustomId(id);
if (CollUtil.isNotEmpty(customStores)) {
for (CustomStoreEntity store : customStores) {
ClueDTO clueDTO = ClueDTO.builder().originName(ClueSourceEnum.STORE_DISTRIBUTION.getDescription()).nid
(AESUtils.encrypt(customEntity.getCustomNid(), securityProperties.getPasswordSecretKey())).assignedBy
(store.getStoreId()).createBy(customEntity.getCompanyId()).assignedName(store.getStoreName()).otherClue(otherClue).build();
list.add(clueDTO);
}
clueService.saveClueListByStoreInfo(list);
customEntity.setEnrollStatus(2);
return SqlHelper.retBool(baseMapper.updateById(customEntity));
}
}
return Boolean.FALSE;
}
}

@ -5,14 +5,31 @@ import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
import com.baiye.modules.distribute.entity.CustomStoreEntity;
import com.baiye.modules.distribute.mapper.CustomStoreMapper;
import com.baiye.modules.distribute.service.CustomStoreService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class CustomStoreServiceImpl extends ExtendServiceImpl<CustomStoreMapper, CustomStoreEntity> implements CustomStoreService {
@Override
public Boolean deleteByCustomId(Long id) {
return SqlHelper.retBool(baseMapper.delete
(Wrappers.<CustomStoreEntity>lambdaQuery().eq
(CustomStoreEntity::getCustomId, id)));
}
@Override
public List<CustomStoreEntity> selectListByCustomId(Long customId) {
return baseMapper.selectList
(Wrappers.<CustomStoreEntity>lambdaQuery().eq(CustomStoreEntity::getCustomId, customId));
}
@Override

@ -0,0 +1,26 @@
package com.baiye.modules.distribute.vo;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
/**
* @author Enzo
* @date : 2023/9/12
*/
@Data
public class AddressDTO {
@SerializedName("省份")
private String economize;
@SerializedName("城市")
private String market;
@SerializedName("区域")
private String distinguish;
@SerializedName("详细地址")
private String detailAddress;
}

@ -21,5 +21,5 @@ public class CustomStoreVO {
private String storeName;
@Schema(title = "预约时间")
private LocalDateTime reservationTime;
private String reservationTime;
}

@ -9,6 +9,10 @@ import java.util.List;
@Data
public class CustomVO {
@Schema(description = "编号")
private String batchNo;
@Schema(title = "ID")
private Long customId;
@ -41,4 +45,10 @@ public class CustomVO {
@Schema(title = "门店信息")
private List<CustomStoreVO> customStoreVOList;
@Schema(description = "审核类型 1初审 2复审")
private Integer type;
@Schema(description = "公司id")
private Long companyId;
}

@ -1,6 +1,5 @@
package com.baiye.modules.distribute.vo;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

@ -0,0 +1,25 @@
package com.baiye.utils;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @author Enzo
* @date : 2023/9/8
*/
public class SerialCode {
/**
*
* 1 HSJC-yyyyMMdd01
* 21
*
* @param code
*/
public static String getNum(Integer code) {
AtomicInteger intCode = new AtomicInteger(code);
int andIncrement = intCode.incrementAndGet();
int length = String.valueOf(code).length() + 1;
return String.format("%0".concat(String.valueOf(length).concat("d")), andIncrement);
}
}

@ -22,4 +22,11 @@
${ew.customSqlSegment}
</select>
</mapper>
<select id="selectMaxBatchNoByCompanyId" resultType="java.lang.String">
select max(batch_no)
from tb_custom
where batch_no like concat(#{code}, '%')
and company_id = #{companyId}
</select>
</mapper>

@ -0,0 +1,74 @@
import cn.hutool.json.JSONUtil;
import com.baiye.AdminApplication;
import com.baiye.modules.distribute.dto.CustomDTO;
import com.baiye.modules.distribute.entity.CustomStoreEntity;
import com.baiye.modules.distribute.service.CustomService;
import com.baiye.modules.distribute.vo.AddressDTO;
import com.google.common.collect.Lists;
import com.google.gson.Gson;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.util.List;
/**
* @author Enzo
* @date : 2022/9/23
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = AdminApplication.class,
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class CustomTest {
@Resource
private CustomService customService;
@Test
public void saveRecord() {
CustomDTO customDTO = new CustomDTO();
List<CustomStoreEntity> newed = Lists.newArrayList();
customDTO.setCustomName("xXX");
customDTO.setCustomNid("12345678");
customDTO.setEconomize("浙江");
customDTO.setMarket("丽水");
customDTO.setDistinguish("皇后区");
customDTO.setDetailAddress("xxxxxx168");
customDTO.setRadius("18.1923");
customDTO.setEnrollStatus(1);
CustomStoreEntity store = new CustomStoreEntity();
store.setStoreId(1111L);
store.setStoreName("xxxx");
store.setReservationTime("");
newed.add(store);
customDTO.setCustomStoreEntities(newed);
customService.add(customDTO);
}
@Test
public void audit() {
}
@Test
public void json(){
Gson gson = new Gson();
AddressDTO addressDTO = new AddressDTO();
addressDTO.setDetailAddress("xxx");
addressDTO.setDistinguish("xxx");
addressDTO.setEconomize("xxx");
addressDTO.setMarket("xxx");
String jsonStr = JSONUtil.toJsonStr(addressDTO);
System.out.println(gson.toJson(addressDTO));
System.out.println(jsonStr);
}
}

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.baiye</groupId>
<artifactId>ad-distribute</artifactId>
<version>1.1.0</version>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.baiye</groupId>
<artifactId>ad-distribute</artifactId>
<version>1.1.0</version>
<packaging>pom</packaging>
<modules>
@ -17,7 +17,7 @@
<module>ad-distribute-extends</module>
</modules>
<properties>
<properties>
<revision>1.4.0</revision>
<java.version>1.8</java.version>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@ -67,7 +67,7 @@
<protobuf-maven.version>0.6.1</protobuf-maven.version>
<os-maven.version>1.7.1</os-maven.version>
<protobuf.javax.annotation.version>1.3.2</protobuf.javax.annotation.version>
</properties>
</properties>
<dependencyManagement>
<dependencies>
@ -128,12 +128,6 @@
<version>${fastjson.version}</version>
<optional>true</optional>
</dependency>
<!-- 支付宝支付 -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>${alipay-sdk.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
@ -166,17 +160,6 @@
<artifactId>nimbus-jose-jwt</artifactId>
<version>9.15.2</version>
</dependency>
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>oauth2-oidc-sdk</artifactId>
<version>9.20</version>
</dependency>
<!--xxl-job-->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${xxl-job.version}</version>
</dependency>
<!-- ftp用 -->
<dependency>
<groupId>commons-net</groupId>
@ -221,28 +204,6 @@
<artifactId>swagger-models</artifactId>
<version>${swagger.version}</version>
</dependency>
<!-- 虚拟货币处理 -->
<dependency>
<groupId>live.lingting</groupId>
<artifactId>virtual-currency-all</artifactId>
<version>${virtual-currency.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${kafka.version}</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
<version>${kafka.version}</version>
</dependency>
<!--kafka MQ-->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.12</artifactId>
<version>${kafka.version}</version>
</dependency>
<!--poi 依赖 处理-->
<dependency>
<groupId>org.apache.poi</groupId>
@ -307,7 +268,6 @@
<version>${grpc.version}</version>
</dependency>
<!--region ============= 定义ballcat 自身模块版本 ================== -->
<dependency>
<groupId>com.baiye</groupId>
@ -394,8 +354,8 @@
<artifactId>ad-distribute-starter-swagger</artifactId>
<version>1.1.0</version>
</dependency>
<!-- ballcat-stater -->
<!-- ballcat-stater -->
<dependency>
<groupId>com.baiye</groupId>
<artifactId>ad-distribute-starter-websocket</artifactId>
@ -463,34 +423,14 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin.version}</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<goals>deploy</goals>
<releaseProfiles>release</releaseProfiles>
<useReleaseProfile>false</useReleaseProfile>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>${nexus-staging-maven-plugin.version}</version>
<configuration>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<serverId>ossrh</serverId>
</configuration>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
<id>ossrh</id>
</profile>
</profiles>
<!--endregion 结束环境变量-->
<!--endregion 结束环境变量-->
<distributionManagement>
<repository>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
@ -563,37 +503,18 @@
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
</plugin>
<!-- 测试插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>${nexus-staging-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>

Loading…
Cancel
Save