Browse Source

服务事项

master
yinzuomei 4 years ago
parent
commit
5846ce237a
  1. 33
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ServiceItemAddFormDTO.java
  2. 20
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ServiceItemPageFormDTO.java
  3. 3
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/StatusFormDTO.java
  4. 19
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/ServiceItemResultDTO.java
  5. 3
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java
  6. 71
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceItemDictController.java
  7. 37
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceItemDictDao.java
  8. 83
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceItemDictEntity.java
  9. 55
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceItemDictService.java
  10. 1
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java
  11. 126
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceItemDictServiceImpl.java
  12. 21
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceItemDictDao.xml

33
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ServiceItemAddFormDTO.java

@ -0,0 +1,33 @@
package com.epmet.dto.form.demand;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 新增或者修改服务事项分类
*/
@Data
public class ServiceItemAddFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
private String customerId;
@NotBlank(message = "分类名称不能为空", groups = AddUserShowGroup.class)
@Length(max = 100, message = "分类名称至多输入100字", groups = AddUserShowGroup.class)
private String categoryName;
@NotNull(message = "", groups = AddUserShowGroup.class)
private Integer awardPoint;
private String categoryId;
}

20
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/ServiceItemPageFormDTO.java

@ -0,0 +1,20 @@
package com.epmet.dto.form.demand;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 服务事项分类列表查询入参
* 目前不分页
*/
@Data
public class ServiceItemPageFormDTO extends PageFormDTO implements Serializable {
public interface AddUserInternalGroup {}
@NotBlank(message = "客户id不能为空",groups = AddUserInternalGroup.class)
private String customerId;
}

3
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/StatusFormDTO.java

@ -17,4 +17,7 @@ public class StatusFormDTO implements Serializable {
@NotNull(message = "usableFlag不能为空", groups = AddUserInternalGroup.class)
private Boolean usableFlag;
@NotBlank(message = "userId不能为空", groups = AddUserInternalGroup.class)
private String userId;
}

19
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/ServiceItemResultDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.result.demand;
import lombok.Data;
import java.io.Serializable;
/**
* 服务事项分类列表查询返参
* 目前不分页
*/
@Data
public class ServiceItemResultDTO implements Serializable {
private static final long serialVersionUID = -590440160577071133L;
private String categoryId;
private String categoryName;
private Integer awardPoint;
private Boolean usableFlag;
}

3
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcResiDemandDictController.java

@ -114,7 +114,8 @@ public class IcResiDemandDictController {
* @return
*/
@PostMapping("updatestatus")
public Result updateStatus(@RequestBody StatusFormDTO formDTO){
public Result updateStatus(@LoginUser TokenDto tokenDto,@RequestBody StatusFormDTO formDTO){
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO,StatusFormDTO.AddUserInternalGroup.class);
icResiDemandDictService.updateStatus(formDTO);
return new Result();

71
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcServiceItemDictController.java

@ -0,0 +1,71 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.demand.ServiceItemAddFormDTO;
import com.epmet.dto.form.demand.ServiceItemPageFormDTO;
import com.epmet.dto.form.demand.StatusFormDTO;
import com.epmet.dto.result.demand.ServiceItemResultDTO;
import com.epmet.service.IcServiceItemDictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 服务事项分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-27
*/
@RestController
@RequestMapping("serviceitem")
public class IcServiceItemDictController {
@Autowired
private IcServiceItemDictService icServiceItemDictService;
/**
* 01分页列表查询
*
* @param formDTO
* @return
*/
@PostMapping("list")
public Result<PageData<ServiceItemResultDTO>> page(@RequestBody ServiceItemPageFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,ServiceItemPageFormDTO.AddUserInternalGroup.class);
PageData<ServiceItemResultDTO> page = icServiceItemDictService.page(formDTO);
return new Result<PageData<ServiceItemResultDTO>>().ok(page);
}
/**
* 02新增分类
* @param formDTO
* @return
*/
@PostMapping("saveorupdate")
public Result addOrUpdate(@RequestBody ServiceItemAddFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, ServiceItemAddFormDTO.AddUserShowGroup.class,ServiceItemAddFormDTO.AddUserInternalGroup.class);
icServiceItemDictService.addOrUpdate(formDTO);
return new Result();
}
/**
* 03启用或者禁用分类
* @param formDTO
* @return
*/
@PostMapping("updatestatus")
public Result updateStatus(@LoginUser TokenDto tokenDto, @RequestBody StatusFormDTO formDTO){
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO,StatusFormDTO.AddUserInternalGroup.class);
icServiceItemDictService.updateStatus(formDTO);
return new Result();
}
}

37
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcServiceItemDictDao.java

@ -0,0 +1,37 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.demand.ServiceItemResultDTO;
import com.epmet.entity.IcServiceItemDictEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 服务事项分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-01-14
*/
@Mapper
public interface IcServiceItemDictDao extends BaseDao<IcServiceItemDictEntity> {
List<ServiceItemResultDTO> pageList(String customerId);
}

83
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/entity/IcServiceItemDictEntity.java

@ -0,0 +1,83 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 服务事项分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-01-14
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_service_item_dict")
public class IcServiceItemDictEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id
*/
private String customerId;
/**
* 父级,一级默认为0
*/
private String parentCode;
/**
* 分类编码
*/
private String categoryCode;
/**
* 分类名称
*/
private String categoryName;
/**
* 级别
*/
private Integer level;
/**
* 备注
*/
private String remark;
/**
* 排序
*/
private Integer sort;
/**
* 1可用0不可用
*/
private Boolean usableFlag;
/**
* 奖励积分
*/
private Integer awardPoint;
}

55
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcServiceItemDictService.java

@ -0,0 +1,55 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.form.demand.ServiceItemAddFormDTO;
import com.epmet.dto.form.demand.ServiceItemPageFormDTO;
import com.epmet.dto.form.demand.StatusFormDTO;
import com.epmet.dto.result.demand.ServiceItemResultDTO;
import com.epmet.entity.IcServiceItemDictEntity;
/**
* 服务事项分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-01-14
*/
public interface IcServiceItemDictService extends BaseService<IcServiceItemDictEntity> {
/**
* 01列表查询
* @param formDTO
* @return
*/
PageData<ServiceItemResultDTO> page(ServiceItemPageFormDTO formDTO);
/**
* 02添加或者修改分类
* @param formDTO
*/
void addOrUpdate(ServiceItemAddFormDTO formDTO);
/**
* 03启用或者禁用分类
* @param formDTO
* @return
*/
void updateStatus(StatusFormDTO formDTO);
}

1
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcResiDemandDictServiceImpl.java

@ -217,6 +217,7 @@ public class IcResiDemandDictServiceImpl extends BaseServiceImpl<IcResiDemandDic
return list;
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updateStatus(StatusFormDTO formDTO) {
IcResiDemandDictEntity origin = baseDao.selectById(formDTO.getCategoryId());

126
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcServiceItemDictServiceImpl.java

@ -0,0 +1,126 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dao.IcServiceItemDictDao;
import com.epmet.dto.form.demand.ServiceItemAddFormDTO;
import com.epmet.dto.form.demand.ServiceItemPageFormDTO;
import com.epmet.dto.form.demand.StatusFormDTO;
import com.epmet.dto.result.demand.ServiceItemResultDTO;
import com.epmet.entity.IcServiceItemDictEntity;
import com.epmet.service.IcServiceItemDictService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
* 服务事项分类字典表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-01-14
*/
@Slf4j
@Service
public class IcServiceItemDictServiceImpl extends BaseServiceImpl<IcServiceItemDictDao, IcServiceItemDictEntity> implements IcServiceItemDictService {
/**
* 列表查询
*
* @param formDTO
* @return
*/
@Override
public PageData<ServiceItemResultDTO> page(ServiceItemPageFormDTO formDTO) {
//目前不分页,只是接口支持分页
List<ServiceItemResultDTO> list = baseDao.pageList(formDTO.getCustomerId());
return new PageData<>(list, CollectionUtils.isNotEmpty(list) ? list.size() : NumConstant.ZERO);
}
/**
* 02添加或者修改分类
*
* @param formDTO
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void addOrUpdate(ServiceItemAddFormDTO formDTO) {
//分类名称是否唯一
LambdaQueryWrapper<IcServiceItemDictEntity> nameQuery = new LambdaQueryWrapper<>();
nameQuery.eq(IcServiceItemDictEntity::getCustomerId, formDTO.getCustomerId())
.eq(IcServiceItemDictEntity::getCategoryName, formDTO.getCategoryName())
.ne(StringUtils.isNotBlank(formDTO.getCategoryId()), IcServiceItemDictEntity::getId, formDTO.getCategoryId());
if (baseDao.selectCount(nameQuery) > 0) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前客户下,分类名称已存在", "分类名称已存在");
}
if (StringUtils.isNotBlank(formDTO.getCategoryId())) {
LambdaUpdateWrapper<IcServiceItemDictEntity> update = new LambdaUpdateWrapper<>();
update.eq(IcServiceItemDictEntity::getId, formDTO.getCategoryId());
update.set(IcServiceItemDictEntity::getCategoryName, formDTO.getCategoryName())
.set(IcServiceItemDictEntity::getAwardPoint, formDTO.getAwardPoint());
baseDao.update(null, update);
return;
}
LambdaQueryWrapper<IcServiceItemDictEntity> maxQuery = new LambdaQueryWrapper<>();
maxQuery.eq(IcServiceItemDictEntity::getCustomerId, formDTO.getCustomerId())
.orderByDesc(IcServiceItemDictEntity::getCategoryCode).last("limit 1");
IcServiceItemDictEntity max = baseDao.selectOne(maxQuery);
// 获取编码
IcServiceItemDictEntity insert = new IcServiceItemDictEntity();
insert.setCustomerId(formDTO.getCustomerId());
insert.setAwardPoint(formDTO.getAwardPoint());
insert.setCategoryName(formDTO.getCategoryName());
insert.setUsableFlag(true);
insert.setParentCode(NumConstant.ZERO_STR);
insert.setLevel(NumConstant.ONE);
insert.setSort(null != max ? max.getSort() + 1 : NumConstant.ONE);
insert.setCategoryCode(null != max ? String.valueOf(Integer.valueOf(max.getCategoryCode()) + 1) : "1001");
baseDao.insert(insert);
}
/**
* 03启用或者禁用分类
*
* @param formDTO
* @return
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void updateStatus(StatusFormDTO formDTO) {
LambdaUpdateWrapper<IcServiceItemDictEntity> update = new LambdaUpdateWrapper<>();
update.eq(IcServiceItemDictEntity::getId, formDTO.getCategoryId())
.set(IcServiceItemDictEntity::getUsableFlag, formDTO.getUsableFlag())
.set(IcServiceItemDictEntity::getUpdatedTime, new Date())
.set(IcServiceItemDictEntity::getUpdatedBy, formDTO.getUserId());
baseDao.update(null, update);
}
}

21
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcServiceItemDictDao.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.IcServiceItemDictDao">
<select id="pageList" parameterType="java.lang.String" resultType="com.epmet.dto.result.demand.ServiceItemResultDTO">
SELECT
d.id AS categoryId,
d.CATEGORY_NAME AS categoryName,
d.AWARD_POINT AS awardPoint,
d.USABLE_FLAG AS usableFlag
FROM
ic_service_item_dict d
WHERE
d.DEL_FLAG = '0'
AND d.CUSTOMER_ID = #{customerId}
ORDER BY
d.SORT DESC
</select>
</mapper>
Loading…
Cancel
Save