修改短信模板

master
bynt 3 years ago
parent 110db65271
commit d4613c136f

@ -15,75 +15,64 @@
*/ */
package me.zhengjie.modules.sms.domain; package me.zhengjie.modules.sms.domain;
import lombok.Data;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import cn.hutool.core.bean.copier.CopyOptions;
import lombok.Setter;
import me.zhengjie.base.BaseEntity;
import me.zhengjie.base.OperatorBaseEntity;
import javax.persistence.*; import javax.persistence.*;
import javax.validation.constraints.NotNull; import javax.validation.constraints.*;
import java.io.Serializable;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.io.Serializable;
/** /**
* @website https://el-admin.vip * @website https://el-admin.vip
* @description / * @description /
* @author Enzo * @author Enzo
* @date 2021-04-14 * @date 2021-04-16
**/ **/
@Entity @Entity
@Getter @Data
@Setter
@Table(name="tb_template") @Table(name="tb_template")
public class TbTemplate extends OperatorBaseEntity implements Serializable { public class TbTemplate implements Serializable {
@Id @Id
@Column(name = "id")
@NotNull(groups = BaseEntity.Update.class)
@ApiModelProperty(value = "ID", hidden = true)
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
@ApiModelProperty(value = "id")
private Long id; private Long id;
@Column(name = "template_name")
@ApiModelProperty(value = "模板名称")
private String templateName;
@Column(name = "template_status")
@ApiModelProperty(value = "审核状态 0-申请中 1-申请通过 1-未通过")
private Integer templateStatus;
@Column(name = "send_message") @Column(name = "send_message")
@ApiModelProperty(value = "发送的信息") @ApiModelProperty(value = "发送的信息")
private String sendMessage; private String sendMessage;
@Column(name = "audit_time")
@ApiModelProperty(value = "审核时间")
private Timestamp auditTime;
@Column(name = "last_update_time") @Column(name = "last_update_time")
@ApiModelProperty(value = "生成时间") @ApiModelProperty(value = "生成时间")
private Timestamp lastUpdateTime; private Timestamp lastUpdateTime;
@Column(name = "remark")
@ApiModelProperty(value = "备注")
private String remark;
@Column(name = "reviewer") @Column(name = "reviewer")
@ApiModelProperty(value = "审核人员") @ApiModelProperty(value = "审核人员")
private String reviewer; private String reviewer;
@Column(name = "rejected_msg") @Column(name = "gmt_create")
@ApiModelProperty(value = "驳回原因") @ApiModelProperty(value = "生成时间")
private String rejectedMsg; private Timestamp gmtCreate;
@Column(name = "gmt_modified")
@ApiModelProperty(value = "修改时间")
private Timestamp gmtModified;
@Column(name = "operator")
@ApiModelProperty(value = "操作人")
private String operator;
@Column(name = "link_url") @Column(name = "link_url")
@ApiModelProperty(value = "跳转链接") @ApiModelProperty(value = "跳转url")
private String linkUrl; private String linkUrl;
@Column(name = "task_name")
@ApiModelProperty(value = "业务名称")
private String taskName;
public void copy(TbTemplate source){ public void copy(TbTemplate source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
} }

@ -23,15 +23,7 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/** /**
* @website https://el-admin.vip * @website https://el-admin.vip
* @author Enzo * @author Enzo
* @date 2021-04-14 * @date 2021-04-16
**/ **/
public interface TbTemplateRepository extends JpaRepository<TbTemplate, Long>, JpaSpecificationExecutor<TbTemplate> { public interface TbTemplateRepository extends JpaRepository<TbTemplate, Long>, JpaSpecificationExecutor<TbTemplate> {
/**
*
* @param name
* @return /
*/
TbTemplate findByTemplateName(String name);
} }

@ -16,7 +16,7 @@
package me.zhengjie.modules.sms.rest; package me.zhengjie.modules.sms.rest;
import me.zhengjie.annotation.Log; import me.zhengjie.annotation.Log;
;
import me.zhengjie.modules.sms.domain.TbTemplate; import me.zhengjie.modules.sms.domain.TbTemplate;
import me.zhengjie.modules.sms.service.TbTemplateService; import me.zhengjie.modules.sms.service.TbTemplateService;
import me.zhengjie.modules.sms.service.dto.TbTemplateQueryCriteria; import me.zhengjie.modules.sms.service.dto.TbTemplateQueryCriteria;
@ -34,7 +34,7 @@ import javax.servlet.http.HttpServletResponse;
/** /**
* @website https://el-admin.vip * @website https://el-admin.vip
* @author Enzo * @author Enzo
* @date 2021-04-14 * @date 2021-04-16
**/ **/
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@ -60,14 +60,12 @@ public class TbTemplateController {
return new ResponseEntity<>(tbTemplateService.queryAll(criteria,pageable),HttpStatus.OK); return new ResponseEntity<>(tbTemplateService.queryAll(criteria,pageable),HttpStatus.OK);
} }
@PostMapping
@Log("新增TemplateController") @Log("新增TemplateController")
@ApiOperation("新增TemplateController") @ApiOperation("新增TemplateController")
@PostMapping
@PreAuthorize("@el.check('tbTemplate:add')") @PreAuthorize("@el.check('tbTemplate:add')")
public ResponseEntity<Object> create(@Validated @RequestBody TbTemplate resources){ public ResponseEntity<Object> create(@Validated @RequestBody TbTemplate resources){
tbTemplateService.create(resources); return new ResponseEntity<>(tbTemplateService.create(resources),HttpStatus.CREATED);
return new ResponseEntity<>(HttpStatus.CREATED);
} }
@PutMapping @PutMapping
@ -87,14 +85,4 @@ public class TbTemplateController {
tbTemplateService.deleteAll(ids); tbTemplateService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@Log("审核TemplateController")
@ApiOperation("审核TemplateController")
@PreAuthorize("@el.check('tbTemplate:review')")
@PostMapping("/review")
public ResponseEntity<Object> review(@Validated @RequestBody TbTemplate resources){
tbTemplateService.review(resources);
return new ResponseEntity<>(HttpStatus.OK);
}
} }

@ -29,7 +29,7 @@ import javax.servlet.http.HttpServletResponse;
* @website https://el-admin.vip * @website https://el-admin.vip
* @description * @description
* @author Enzo * @author Enzo
* @date 2021-04-14 * @date 2021-04-16
**/ **/
public interface TbTemplateService { public interface TbTemplateService {
@ -60,7 +60,7 @@ public interface TbTemplateService {
* @param resources / * @param resources /
* @return TbTemplateDto * @return TbTemplateDto
*/ */
void create(TbTemplate resources); TbTemplateDto create(TbTemplate resources);
/** /**
* *
@ -81,10 +81,4 @@ public interface TbTemplateService {
* @throws IOException / * @throws IOException /
*/ */
void download(List<TbTemplateDto> all, HttpServletResponse response) throws IOException; void download(List<TbTemplateDto> all, HttpServletResponse response) throws IOException;
/**
*
* @param resources
*/
void review(TbTemplate resources);
} }

@ -18,46 +18,27 @@ package me.zhengjie.modules.sms.service.dto;
import lombok.Data; import lombok.Data;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.io.Serializable; import java.io.Serializable;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
/** /**
* @website https://el-admin.vip * @website https://el-admin.vip
* @description / * @description /
* @author Enzo * @author Enzo
* @date 2021-04-14 * @date 2021-04-16
**/ **/
@Data @Data
public class TbTemplateDto implements Serializable { public class TbTemplateDto implements Serializable {
/** 防止精度丢失 */
@JsonSerialize(using= ToStringSerializer.class)
private Long id; private Long id;
/** 模板名称 */
private String templateName;
/** 审核状态 0-申请中 1-申请通过 1-未通过 */
private Integer templateStatus;
/** 发送的信息 */ /** 发送的信息 */
private String sendMessage; private String sendMessage;
/** 审核时间 */
private Timestamp auditTime;
/** 生成时间 */ /** 生成时间 */
private Timestamp lastUpdateTime; private Timestamp lastUpdateTime;
/** 备注 */
private String remark;
/** 审核人员 */ /** 审核人员 */
private String reviewer; private String reviewer;
/** 驳回原因 */
private String rejectedMsg;
/** 生成时间 */ /** 生成时间 */
private Timestamp gmtCreate; private Timestamp gmtCreate;
@ -67,7 +48,9 @@ public class TbTemplateDto implements Serializable {
/** 操作人 */ /** 操作人 */
private String operator; private String operator;
/** 操作人 */ /** 跳转url */
private String linkUrl; private String linkUrl;
/** 业务名称 */
private String taskName;
} }

@ -22,7 +22,7 @@ import me.zhengjie.annotation.Query;
/** /**
* @website https://el-admin.vip * @website https://el-admin.vip
* @author Enzo * @author Enzo
* @date 2021-04-14 * @date 2021-04-16
**/ **/
@Data @Data
public class TbTemplateQueryCriteria{ public class TbTemplateQueryCriteria{

@ -15,34 +15,35 @@
*/ */
package me.zhengjie.modules.sms.service.impl; package me.zhengjie.modules.sms.service.impl;
import lombok.RequiredArgsConstructor;
import me.zhengjie.exception.EntityExistException;
import me.zhengjie.modules.sms.domain.TbTemplate; import me.zhengjie.modules.sms.domain.TbTemplate;
import me.zhengjie.modules.sms.repository.TbTemplateRepository; import me.zhengjie.modules.sms.repository.TbTemplateRepository;
import me.zhengjie.modules.sms.service.TbTemplateService; import me.zhengjie.modules.sms.service.TbTemplateService;
import me.zhengjie.modules.sms.service.dto.TbTemplateDto; import me.zhengjie.modules.sms.service.dto.TbTemplateDto;
import me.zhengjie.modules.sms.service.dto.TbTemplateQueryCriteria; import me.zhengjie.modules.sms.service.dto.TbTemplateQueryCriteria;
import me.zhengjie.modules.sms.service.mapstruct.TbTemplateMapper; import me.zhengjie.modules.sms.service.mapstruct.TbTemplateMapper;
import me.zhengjie.utils.*; import me.zhengjie.utils.ValidationUtil;
import me.zhengjie.utils.enums.StatusEnum; import me.zhengjie.utils.FileUtil;
import org.springframework.data.domain.Page; import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.domain.Page;
import javax.servlet.http.HttpServletResponse; import org.springframework.data.domain.Pageable;
import me.zhengjie.utils.PageUtil;
import me.zhengjie.utils.QueryHelp;
import java.util.List;
import java.util.Map;
import java.io.IOException; import java.io.IOException;
import java.sql.Timestamp; import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/** /**
* @website https://el-admin.vip * @website https://el-admin.vip
* @description * @description
* @author Enzo * @author Enzo
* @date 2021-04-14 * @date 2021-04-16
**/ **/
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@ -72,18 +73,8 @@ public class TbTemplateServiceImpl implements TbTemplateService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void create(TbTemplate resources) { public TbTemplateDto create(TbTemplate resources) {
TbTemplate template = tbTemplateRepository.findByTemplateName(resources.getTemplateName()); return tbTemplateMapper.toDto(tbTemplateRepository.save(resources));
if(template != null){
throw new EntityExistException(TbTemplate.class,"name",resources.getTemplateName());
}
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
resources.setGmtModified(timestamp);
resources.setGmtCreate(timestamp);
resources.setOperator(SecurityUtils.getCurrentUser().getUsername());
resources.setTemplateStatus(StatusEnum.PROCESSING.getValue());
tbTemplateRepository.save(resources);
} }
@Override @Override
@ -91,10 +82,6 @@ public class TbTemplateServiceImpl implements TbTemplateService {
public void update(TbTemplate resources) { public void update(TbTemplate resources) {
TbTemplate tbTemplate = tbTemplateRepository.findById(resources.getId()).orElseGet(TbTemplate::new); TbTemplate tbTemplate = tbTemplateRepository.findById(resources.getId()).orElseGet(TbTemplate::new);
ValidationUtil.isNull( tbTemplate.getId(),"TbTemplate","id",resources.getId()); ValidationUtil.isNull( tbTemplate.getId(),"TbTemplate","id",resources.getId());
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
tbTemplate.setReviewer(SecurityUtils.getCurrentUser().getUsername());
tbTemplate.setAuditTime(timestamp);
tbTemplate.setLastUpdateTime(timestamp);
tbTemplate.copy(resources); tbTemplate.copy(resources);
tbTemplateRepository.save(tbTemplate); tbTemplateRepository.save(tbTemplate);
} }
@ -111,31 +98,16 @@ public class TbTemplateServiceImpl implements TbTemplateService {
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
for (TbTemplateDto tbTemplate : all) { for (TbTemplateDto tbTemplate : all) {
Map<String,Object> map = new LinkedHashMap<>(); Map<String,Object> map = new LinkedHashMap<>();
map.put("模板名称", tbTemplate.getTemplateName());
map.put("审核状态 0-申请中 1-申请通过 1-未通过", tbTemplate.getTemplateStatus());
map.put("发送的信息", tbTemplate.getSendMessage()); map.put("发送的信息", tbTemplate.getSendMessage());
map.put("审核时间", tbTemplate.getAuditTime()); map.put("生成时间", tbTemplate.getLastUpdateTime());
map.put("最后修改时间", tbTemplate.getLastUpdateTime());
map.put("备注", tbTemplate.getRemark());
map.put("审核人员", tbTemplate.getReviewer()); map.put("审核人员", tbTemplate.getReviewer());
map.put("驳回原因", tbTemplate.getRejectedMsg());
map.put("生成时间", tbTemplate.getGmtCreate()); map.put("生成时间", tbTemplate.getGmtCreate());
map.put("修改时间", tbTemplate.getGmtModified()); map.put("修改时间", tbTemplate.getGmtModified());
map.put("操作人", tbTemplate.getOperator()); map.put("操作人", tbTemplate.getOperator());
map.put("跳转url", tbTemplate.getLinkUrl());
map.put("业务名称", tbTemplate.getTaskName());
list.add(map); list.add(map);
} }
FileUtil.downloadExcel(list, response); FileUtil.downloadExcel(list, response);
} }
@Override
public void review(TbTemplate resources) {
TbTemplate tbTemplate = tbTemplateRepository.findById(resources.getId()).orElseGet(TbTemplate::new);
ValidationUtil.isNull(tbTemplate.getId(),"TbTemplate","id",resources.getId());
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
tbTemplate.copy(resources);
tbTemplate.setAuditTime(timestamp);
tbTemplate.setLastUpdateTime(timestamp);
tbTemplateRepository.save(tbTemplate);
}
} }

@ -0,0 +1,33 @@
/*
* 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 me.zhengjie.modules.sms.service.mapstruct;
import me.zhengjie.base.BaseMapper;
import me.zhengjie.modules.sms.domain.TbBlacklist;
import me.zhengjie.modules.sms.service.dto.TbBlacklistDto;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @website https://el-admin.vip
* @author Enzo
* @date 2021-04-14
**/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface TbBlacklistMapper extends BaseMapper<TbBlacklistDto, TbBlacklist> {
}

@ -25,7 +25,7 @@ import org.mapstruct.ReportingPolicy;
/** /**
* @website https://el-admin.vip * @website https://el-admin.vip
* @author Enzo * @author Enzo
* @date 2021-04-14 * @date 2021-04-16
**/ **/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface TbTemplateMapper extends BaseMapper<TbTemplateDto, TbTemplate> { public interface TbTemplateMapper extends BaseMapper<TbTemplateDto, TbTemplate> {

Loading…
Cancel
Save