Jelajahi Sumber

客户提交信息

guarantee-lsq 2 tahun lalu
induk
melakukan
ca40ad8ed7

+ 102 - 0
platform-dao/src/main/java/com/platform/dao/dto/operate/CustomerInfoDTO.java

@@ -0,0 +1,102 @@
+package com.platform.dao.dto.operate;
+
+import com.platform.common.bean.BaseDTO;
+import com.platform.common.validation.group.UpdateGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 客户提交信息表DTO
+ * @Author lsq
+ * @Date 2023-02-15 16:22:31
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class CustomerInfoDTO extends BaseDTO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 公司
+     */
+    private String companyName;
+    /**
+     * 电话
+     */
+    private String phone;
+    /**
+     * 邮箱
+     */
+    private String email;
+    /**
+     * 提交信息
+     */
+    private String content;
+    /**
+     * 城市
+     */
+    private String city;
+    /**
+     * 处理备注
+     */
+    private String remark;
+    /**
+     * 提交人ID
+     */
+    private String createdUserId;
+    /**
+     * 姓名
+     */
+    private String createdUserName;
+    /**
+     * 审核人ID
+     */
+    private String updateUserId;
+    /**
+     * 处理人
+     */
+    private String updateUserName;
+    /**
+     * 提交时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 提交时间开始
+     */
+    private LocalDateTime createdTimeStart;
+    /**
+     * 提交时间结束
+     */
+    private LocalDateTime createdTimeEnd;
+    /**
+     * 处理时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 处理时间开始
+     */
+    private LocalDateTime updateTimeStart;
+    /**
+     * 处理时间结束
+     */
+    private LocalDateTime updateTimeEnd;
+    /**
+     * 状态 0 已提交 1 已处理
+     */
+    private Integer status;
+    /**
+     * 关键字
+     */
+    private String keyword;
+
+}

+ 91 - 0
platform-dao/src/main/java/com/platform/dao/entity/operate/CustomerInfo.java

@@ -0,0 +1,91 @@
+package com.platform.dao.entity.operate;
+
+import lombok.Data;
+
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+import lombok.experimental.Accessors;
+import com.platform.common.bean.DataScope;
+
+import javax.persistence.Transient;
+
+/**
+ * @Description 客户提交信息表实体类
+ * @Author lsq
+ * @Date 2023-02-15 16:22:31
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "t_customer_info")
+public class CustomerInfo implements Serializable {
+
+    /**
+     * 主键
+     */
+    @Id
+    private String id;
+    /**
+     * 公司
+     */
+    private String companyName;
+    /**
+     * 电话
+     */
+    private String phone;
+    /**
+     * 邮箱
+     */
+    private String email;
+    /**
+     * 提交信息
+     */
+    private String content;
+    /**
+     * 城市
+     */
+    private String city;
+    /**
+     * 处理备注
+     */
+    private String remark;
+    /**
+     * 提交人ID
+     */
+    private String createdUserId;
+    /**
+     * 姓名
+     */
+    private String createdUserName;
+    /**
+     * 审核人ID
+     */
+    private String updateUserId;
+    /**
+     * 处理人
+     */
+    private String updateUserName;
+    /**
+     * 提交时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 处理时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 状态 0 已提交 1 已处理
+     */
+    private Integer status;
+
+    /**
+     * 数据权限
+     */
+    @Transient
+    private DataScope dataScope;
+
+}

+ 27 - 0
platform-dao/src/main/java/com/platform/dao/enums/CustomerInfoStatusEnum.java

@@ -0,0 +1,27 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 设备显示设备
+ * @Author liuyu
+ * @Date 2020/05/05
+ * @Version Copyright (c) 2019,合肥乾元坤合科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum CustomerInfoStatusEnum {
+
+    /**
+     * 已提交
+     */
+    SUBMIT(0),
+    /**
+     * 已处理
+     */
+    HANDLE(1);
+
+    private final Integer value;
+
+}

+ 26 - 0
platform-dao/src/main/java/com/platform/dao/mapper/operate/CustomerInfoMapper.java

@@ -0,0 +1,26 @@
+package com.platform.dao.mapper.operate;
+
+import com.platform.dao.dto.operate.CustomerInfoDTO;
+import com.platform.dao.config.MyMapper;
+import com.platform.dao.entity.operate.CustomerInfo;
+import com.platform.dao.vo.query.operate.CustomerInfoVO;
+import org.springframework.stereotype.Component;
+import java.util.List;
+
+
+/**
+ * @Description 客户提交信息表 mapper
+ * @Author lsq
+ * @Date 2023-02-15 16:22:31
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Component
+public interface CustomerInfoMapper extends MyMapper<CustomerInfo> {
+    /**
+     * 分页查询
+     * @param dto
+     * @return
+     */
+    List<CustomerInfoVO> selectList(CustomerInfoDTO dto);
+
+}

+ 106 - 0
platform-dao/src/main/java/com/platform/dao/vo/export/operate/ExportCustomerInfoVO.java

@@ -0,0 +1,106 @@
+package com.platform.dao.vo.export.operate;
+
+import com.platform.office.annotation.Excel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 客户提交信息表导出VO
+ * @Author lsq
+ * @Date 2023-02-15 16:22:31
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+public class ExportCustomerInfoVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    @Excel(name = "主键", orderNum = "1")
+    private String id;
+
+    /**
+     * 公司
+     */
+    @Excel(name = "公司", orderNum = "2")
+    private String companyName;
+
+    /**
+     * 电话
+     */
+    @Excel(name = "电话", orderNum = "3")
+    private String phone;
+
+    /**
+     * 邮箱
+     */
+    @Excel(name = "邮箱", orderNum = "4")
+    private String email;
+
+    /**
+     * 提交信息
+     */
+    @Excel(name = "提交信息", orderNum = "5")
+    private String content;
+
+    /**
+     * 城市
+     */
+    @Excel(name = "城市", orderNum = "6")
+    private String city;
+
+    /**
+     * 处理备注
+     */
+    @Excel(name = "处理备注", orderNum = "7")
+    private String remark;
+
+    /**
+     * 提交人ID
+     */
+    @Excel(name = "提交人ID", orderNum = "8")
+    private String createdUserId;
+
+    /**
+     * 姓名
+     */
+    @Excel(name = "姓名", orderNum = "9")
+    private String createdUserName;
+
+    /**
+     * 审核人ID
+     */
+    @Excel(name = "审核人ID", orderNum = "10")
+    private String updateUserId;
+
+    /**
+     * 处理人
+     */
+    @Excel(name = "处理人", orderNum = "11")
+    private String updateUserName;
+
+    /**
+     * 提交时间
+     */
+    @Excel(name = "提交时间", orderNum = "12")
+    private LocalDateTime createdTime;
+
+    /**
+     * 处理时间
+     */
+    @Excel(name = "处理时间", orderNum = "13")
+    private LocalDateTime updateTime;
+
+    /**
+     * 状态 0 已提交 1 已处理
+     */
+    @Excel(name = "状态 0 已提交 1 已处理", orderNum = "14")
+    private Integer status;
+
+
+}

+ 84 - 0
platform-dao/src/main/java/com/platform/dao/vo/query/operate/CustomerInfoVO.java

@@ -0,0 +1,84 @@
+package com.platform.dao.vo.query.operate;
+
+import lombok.Data;
+import com.platform.common.bean.BaseVO;
+import com.platform.common.bean.BaseDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalDate;
+
+/**
+ * @Description 客户提交信息表VO结果类
+ * @Author lsq
+ * @Date 2023-02-15 16:22:31
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = true)
+public class CustomerInfoVO extends BaseVO implements Serializable {
+
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 公司
+     */
+    private String companyName;
+    /**
+     * 电话
+     */
+    private String phone;
+    /**
+     * 邮箱
+     */
+    private String email;
+    /**
+     * 提交信息
+     */
+    private String content;
+    /**
+     * 城市
+     */
+    private String city;
+    /**
+     * 处理备注
+     */
+    private String remark;
+    /**
+     * 提交人ID
+     */
+    private String createdUserId;
+    /**
+     * 姓名
+     */
+    private String createdUserName;
+    /**
+     * 审核人ID
+     */
+    private String updateUserId;
+    /**
+     * 处理人
+     */
+    private String updateUserName;
+    /**
+     * 提交时间
+     */
+    private LocalDateTime createdTime;
+    /**
+     * 处理时间
+     */
+    private LocalDateTime updateTime;
+    /**
+     * 状态 0 已提交 1 已处理
+     */
+    private Integer status;
+
+
+}

+ 158 - 0
platform-rest/src/main/java/com/platform/rest/controller/operate/CustomerInfoController.java

@@ -0,0 +1,158 @@
+package com.platform.rest.controller.operate;
+
+import com.platform.common.util.R;
+import com.platform.dao.dto.operate.CustomerInfoDTO;
+import com.platform.dao.dto.repair.RepairApplicationFormDTO;
+import com.platform.dao.entity.operate.CustomerInfo;
+import com.platform.dao.enums.RepairApplicationFormTypeEnum;
+import com.platform.service.operate.CustomerInfoService;
+import com.platform.dao.util.ExcelUtil;
+import com.platform.dao.vo.export.operate.ExportCustomerInfoVO;
+import com.platform.dao.vo.query.operate.CustomerInfoVO;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.validation.group.AddGroup;
+import com.platform.common.validation.group.UpdateGroup;
+import com.platform.service.repair.strategy.RepairStrategyFactory;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import lombok.AllArgsConstructor;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.rest.log.annotation.SysLog;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description 客户提交信息表 控制器
+ * @Author lsq
+ * @Date 2023-02-15 16:22:31
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/operate/customers")
+public class CustomerInfoController {
+
+  private final  CustomerInfoService customerInfoService;
+
+  /**
+   * 通过id查询单条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @GetMapping("/{id}")
+  public R<CustomerInfo> getById(@PathVariable("id") String id){
+      return new R<>(customerInfoService.getModelById(id));
+  }
+
+  /**
+   * 新增记录
+   *
+   * @param customerInfoDTO 客户提交信息表DTO
+   * @return R
+   */
+  @SysLog("新增客户提交信息表")
+  @PostMapping
+  public R save(@Validated({AddGroup.class}) @RequestBody CustomerInfoDTO customerInfoDTO) {
+      return new R<>(customerInfoService.saveModelByDTO(customerInfoDTO));
+  }
+
+  /**
+   * 修改记录
+   *
+   * @param customerInfoDTO 客户提交信息表DTO
+   * @return R
+   */
+  @SysLog("修改客户提交信息表")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('operate-customers-edit')")
+  public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody CustomerInfoDTO customerInfoDTO) {
+      customerInfoService.modModelByDTO(customerInfoDTO);
+      return new R<>();
+  }
+
+
+                                                                                      
+  /**
+   * 通过id删除一条记录
+   *
+   * @param id 主键
+   * @return R
+   */
+  @SysLog("删除客户提交信息表")
+  @DeleteMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('operate-customers-del')")
+  public R removeById(@PathVariable String id){
+    customerInfoService.deleteByPrimaryKey(id);
+    return new R<>();
+  }
+
+    /**
+     * 批量记录
+     *
+     * @param ids 主键
+     * @return R
+     */
+    @SysLog("批量删除客户提交信息表")
+    @DeleteMapping("")
+    @PreAuthorize("@pms.hasPermission('operate-customers-del')")
+    public R removeIds(@RequestBody List<String> ids){
+        customerInfoService.batchDelete(ids);
+        return new R<>();
+    }
+
+  /**
+   * 获取分页
+   *
+   * @param pageNum 当前页码
+   * @param pageSize 每页条数
+   * @param customerInfoDTO 客户提交信息表DTO
+   * @return R
+   */
+  @GetMapping("/page")
+  public R<AbstractPageResultBean<CustomerInfoVO>> query(CustomerInfoDTO customerInfoDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
+      return new R<>(customerInfoService.selectPageList(customerInfoDTO, pageNum, pageSize));
+  }
+
+  /**
+   * 获取列表
+   *
+   * @param customerInfoDTO 客户提交信息表DTO
+   * @return R
+   */
+  @GetMapping("")
+  public R query(CustomerInfoDTO customerInfoDTO) {
+      return new R<>(customerInfoService.getModelListByDTO(customerInfoDTO));
+  }
+
+  /**
+     * 客户提交信息表导出
+     *
+     * @param customerInfoDTO 客户提交信息表DTO
+     * @return R
+     */
+  @GetMapping("/export")
+  @SysLog("客户提交信息表导出")
+  @PreAuthorize("@pms.hasPermission('operate-customers-export')")
+  public void export(HttpServletResponse response, CustomerInfoDTO customerInfoDTO) {
+    List<CustomerInfo> list = customerInfoService.getModelListByDTO(customerInfoDTO);
+    ExcelUtil.exportResponseDict(response, ExportCustomerInfoVO.class, BeanConverterUtil.copyListProperties(list, ExportCustomerInfoVO.class), "客户提交信息表");
+  }
+
+  /**
+   * 处理客户信息
+   *
+   * @param customerInfoDTO 处理客户
+   * @return R
+   */
+  @SysLog("处理客户信息")
+  @PutMapping("/{id}")
+  @PreAuthorize("@pms.hasPermission('operate-customers-edit')")
+  public R handle(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody CustomerInfoDTO customerInfoDTO) {
+    customerInfoDTO.setId(id);
+    customerInfoService.handleInfo(customerInfoDTO);
+    return new R<>();
+  }
+
+}

+ 1 - 0
platform-rest/src/main/resources/application-dev.yml

@@ -77,6 +77,7 @@ ignore:
     - /wechat/**
     - /yongyou/**
     - /store/out-store-forms/**
+    - /operate/customers/*
 
 platform:
   slf4j:

+ 1 - 0
platform-rest/src/main/resources/application-prod.yml

@@ -54,6 +54,7 @@ ignore:
     - /ignores/**
     - /wechat/**
     - /yongyou/**
+    - /operate/customers/*
 
 platform:
   slf4j:

+ 1 - 0
platform-rest/src/main/resources/application-test.yml

@@ -55,6 +55,7 @@ ignore:
     - /wechat/**
     - /yongyou/**
     - /sb/measure-logs/generate/init
+    - /operate/customers/*
 
 platform:
   slf4j:

+ 48 - 0
platform-service/src/main/java/com/platform/service/operate/CustomerInfoService.java

@@ -0,0 +1,48 @@
+package com.platform.service.operate;
+
+import com.platform.dao.vo.query.operate.CustomerInfoVO;
+import com.platform.dao.dto.operate.CustomerInfoDTO;
+import com.platform.dao.entity.operate.CustomerInfo;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.service.base.IBaseService;
+import java.util.List;
+
+/**
+ * @Description 客户提交信息表 service
+ * @Author lsq
+ * @Date 2023-02-15 16:22:31
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+public interface CustomerInfoService extends IBaseService<CustomerInfo, CustomerInfoDTO> {
+
+   /**
+    * 批量删除
+    *
+    * @param ids :
+    * @return :
+    */
+    int batchDelete(List<String> ids);
+
+    /**
+     * 分页查询
+     * @param record
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    AbstractPageResultBean<CustomerInfoVO> selectPageList(CustomerInfoDTO record, int pageNum, int pageSize);
+
+    /**
+     * 网站信息处理
+     * @param record
+     */
+    void handleInfo(CustomerInfoDTO record);
+
+    /**
+     * 保存对象
+     * @param model
+     * @return
+     */
+    CustomerInfo saveModelByDTO(CustomerInfoDTO model);
+
+                                                                                                                                                                            }

+ 80 - 0
platform-service/src/main/java/com/platform/service/operate/impl/CustomerInfoServiceImpl.java

@@ -0,0 +1,80 @@
+package com.platform.service.operate.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.exception.DeniedException;
+import com.platform.common.util.BeanConverterUtil;
+import com.platform.common.util.IdGeneratorUtils;
+import com.platform.common.util.SecurityUtils;
+import com.platform.common.util.StringUtils;
+import com.platform.dao.bean.MyPage;
+import com.platform.dao.dto.operate.CustomerInfoDTO;
+import com.platform.dao.entity.operate.CustomerInfo;
+import com.platform.dao.enums.CustomerInfoStatusEnum;
+import com.platform.dao.mapper.operate.CustomerInfoMapper;
+import com.platform.dao.vo.query.operate.CustomerInfoVO;
+import com.platform.service.base.impl.BaseServiceImpl;
+import com.platform.service.operate.CustomerInfoService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import tk.mybatis.mapper.weekend.Weekend;
+import tk.mybatis.mapper.weekend.WeekendCriteria;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description 客户提交信息表 service 实现类
+ * @Author lsq
+ * @Date 2023-02-15 16:22:31
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@AllArgsConstructor
+@Service("customerInfoService")
+public class CustomerInfoServiceImpl extends BaseServiceImpl<CustomerInfoMapper, CustomerInfo, CustomerInfoDTO> implements CustomerInfoService {
+
+    @Override
+    public int batchDelete(List<String> ids) {
+        Weekend<CustomerInfo> weekend = new Weekend<>(CustomerInfo.class);
+        WeekendCriteria<CustomerInfo, Object> weekendCriteria = weekend.weekendCriteria();
+        weekendCriteria.andIn(CustomerInfo::getId, ids);
+        mapper.deleteByExample(weekend);
+        return 1;
+    }
+
+    @Override
+    public AbstractPageResultBean<CustomerInfoVO> selectPageList(CustomerInfoDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public void handleInfo(CustomerInfoDTO record) {
+        if(StringUtils.isBlank(record.getId())){
+            throw new DeniedException("处理信息Id不能为空");
+        }
+        CustomerInfo info = new CustomerInfo();
+        info.setUpdateTime(LocalDateTime.now());
+        info.setUpdateUserId(SecurityUtils.getUserInfo().getUserId());
+        info.setUpdateUserName(SecurityUtils.getUserInfo().getUsername());
+        info.setRemark(record.getRemark());
+        info.setStatus(CustomerInfoStatusEnum.HANDLE.getValue());
+        mapper.updateByPrimaryKeySelective(info);
+    }
+
+    @Override
+    public AbstractPageResultBean<CustomerInfo> selectPageInfo(CustomerInfoDTO record, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        return new MyPage(mapper.selectList(record));
+    }
+
+    @Override
+    public CustomerInfo saveModelByDTO(CustomerInfoDTO model) {
+        CustomerInfo entity = BeanConverterUtil.copyObjectProperties(model, CustomerInfo.class);
+        entity.setId(IdGeneratorUtils.getObjectId());
+        entity.setCreatedTime(LocalDateTime.now());
+        entity.setStatus(CustomerInfoStatusEnum.SUBMIT.getValue());
+        mapper.insert(entity);
+        return entity;
+    }
+}