jiangping
2023-12-14 70bf66a2817cd51877820ae1ec4c39647c5196e7
海康接口对接开发
已添加12个文件
已修改3个文件
861 ■■■■■ 文件已修改
coderd.json 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/business.user_action.permissions.sql 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/db/business.user_action.permissions.sql 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/api/UserActionController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/CarEventMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/UserActionMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/UserActionService.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/doumee/api/business/UserActionController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/doumee/dao/business/UserActionMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/doumee/dao/business/model/UserAction.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/doumee/service/business/UserActionService.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
coderd.json
@@ -1 +1,11 @@
{}
{
  "project": 6594,
  "template": {
    "alias": "eva",
    "command": "interface",
    "versionNo": "v2.2.7",
    "option": {
      "resources": "user_action"
    }
  }
}
db/business.user_action.permissions.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:create', '新建人员操作记录日志', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:delete', '删除人员操作记录日志', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:update', '修改人员操作记录日志', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:query', '查询人员操作记录日志', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:exportExcel', '导出人员操作记录日志(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
server/db/business.user_action.permissions.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:create', '新建人员操作记录日志', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:delete', '删除人员操作记录日志', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:update', '修改人员操作记录日志', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:query', '查询人员操作记录日志', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:useraction:exportExcel', '导出人员操作记录日志(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
server/dmvisit_admin/src/main/java/com/doumee/api/UserActionController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.doumee.api;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.UserAction;
import com.doumee.service.business.UserActionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:57
 */
@Api(tags = "人员操作记录日志")
@RestController
@RequestMapping("/business/userAction")
public class UserActionController extends BaseController {
    @Autowired
    private UserActionService userActionService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:useraction:create")
    public ApiResponse create(@RequestBody UserAction userAction) {
        return ApiResponse.success(userActionService.create(userAction));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:useraction:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        userActionService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:useraction:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        userActionService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:useraction:update")
    public ApiResponse updateById(@RequestBody UserAction userAction) {
        userActionService.updateById(userAction);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:useraction:query")
    public ApiResponse<PageData<UserAction>> findPage (@RequestBody PageWrap<UserAction> pageWrap) {
        return ApiResponse.success(userActionService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:useraction:exportExcel")
    public void exportExcel (@RequestBody PageWrap<UserAction> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(UserAction.class).export(userActionService.findPage(pageWrap).getRecords(), "人员操作记录日志", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:useraction:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(userActionService.findById(id));
    }
}
server/dmvisit_service/src/main/java/com/doumee/dao/business/CarEventMapper.java
@@ -3,10 +3,13 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.CarEvent;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
public interface CarEventMapper extends BaseMapper<CarEvent> {
    void insertBatchSomeColumn(List<CarEvent> list);
}
server/dmvisit_service/src/main/java/com/doumee/dao/business/UserActionMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.UserAction;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:57
 */
public interface UserActionMapper extends BaseMapper<UserAction> {
}
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
 * äººå‘˜æ“ä½œè®°å½•日志
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:57
 */
@Data
@ApiModel("人员操作记录日志")
@TableName("`user_action`")
public class UserAction {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "类型 0解冻 1冻结 2拉黑 3恢复 4设为拜访人 5取消拜访人 6设为高级审批人 7取消高级审批人 8手动离场 9删除", example = "1")
    @ExcelColumn(name="类型 0解冻 1冻结 2拉黑 3恢复 4设为拜访人 5取消拜访人 6设为高级审批人 7取消高级审批人 8手动离场 9删除")
    private Integer type;
    @ApiModelProperty(value = "人员操作记录日志")
    @ExcelColumn(name="人员操作记录日志")
    private String memberId;
    @ApiModelProperty(value = "操作前状态 0解冻 1冻结 2拉黑 3恢复 4设为拜访人 5取消拜访人 6设为高级审批人 7取消高级审批人 8手动离场 9删除", example = "1")
    @ExcelColumn(name="操作前状态 0解冻 1冻结 2拉黑 3恢复 4设为拜访人 5取消拜访人 6设为高级审批人 7取消高级审批人 8手动离场 9删除")
    private Integer beforeStatus;
}
server/dmvisit_service/src/main/java/com/doumee/service/business/UserActionService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.UserAction;
import java.util.List;
/**
 * äººå‘˜æ“ä½œè®°å½•日志Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:57
 */
public interface UserActionService {
    /**
     * åˆ›å»º
     *
     * @param userAction å®žä½“对象
     * @return Integer
     */
    Integer create(UserAction userAction);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param userAction å®žä½“对象
     */
    void delete(UserAction userAction);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param userAction å®žä½“对象
     */
    void updateById(UserAction userAction);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param userActions å®žä½“集
     */
    void updateByIdInBatch(List<UserAction> userActions);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return UserAction
     */
    UserAction findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param userAction å®žä½“对象
     * @return UserAction
     */
    UserAction findOne(UserAction userAction);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param userAction å®žä½“对象
     * @return List<UserAction>
     */
    List<UserAction> findList(UserAction userAction);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<UserAction>
     */
    PageData<UserAction> findPage(PageWrap<UserAction> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param userAction å®žä½“对象
     * @return long
     */
    long count(UserAction userAction);
}
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,139 @@
package com.doumee.service.business.impl;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.UserActionMapper;
import com.doumee.dao.business.model.UserAction;
import com.doumee.service.business.UserActionService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
 * äººå‘˜æ“ä½œè®°å½•日志Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:57
 */
@Service
public class UserActionServiceImpl implements UserActionService {
    @Autowired
    private UserActionMapper userActionMapper;
    @Override
    public Integer create(UserAction userAction) {
        userActionMapper.insert(userAction);
        return userAction.getId();
    }
    @Override
    public void deleteById(Integer id) {
        userActionMapper.deleteById(id);
    }
    @Override
    public void delete(UserAction userAction) {
        UpdateWrapper<UserAction> deleteWrapper = new UpdateWrapper<>(userAction);
        userActionMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        userActionMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(UserAction userAction) {
        userActionMapper.updateById(userAction);
    }
    @Override
    public void updateByIdInBatch(List<UserAction> userActions) {
        if (CollectionUtils.isEmpty(userActions)) {
            return;
        }
        for (UserAction userAction: userActions) {
            this.updateById(userAction);
        }
    }
    @Override
    public UserAction findById(Integer id) {
        return userActionMapper.selectById(id);
    }
    @Override
    public UserAction findOne(UserAction userAction) {
        QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
        return userActionMapper.selectOne(wrapper);
    }
    @Override
    public List<UserAction> findList(UserAction userAction) {
        QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
        return userActionMapper.selectList(wrapper);
    }
    @Override
    public PageData<UserAction> findPage(PageWrap<UserAction> pageWrap) {
        IPage<UserAction> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<UserAction> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(UserAction::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(UserAction::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(UserAction::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(UserAction::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(UserAction::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(UserAction::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(UserAction::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(UserAction::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(UserAction::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(UserAction::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.lambda().eq(UserAction::getMemberId, pageWrap.getModel().getMemberId());
        }
        if (pageWrap.getModel().getBeforeStatus() != null) {
            queryWrapper.lambda().eq(UserAction::getBeforeStatus, pageWrap.getModel().getBeforeStatus());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(userActionMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(UserAction userAction) {
        QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
        return userActionMapper.selectCount(wrapper);
    }
}
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -8,6 +8,7 @@
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsInfoRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkInfoRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitDataRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitInfoRequest;
@@ -399,7 +400,23 @@
        String result = null;
        log.info("【海康停车场事件推送】========开始=========:\n"+JSONObject.toJSONString(param));
        try {
            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
                return null;
            }
            //门禁事件集合
            List<EventParkInfoRequest> events  = param.getParams().getEvents();
            List<CarEvent> list = new ArrayList<>();
            for(EventParkInfoRequest request : events){
                if(request.getData() ==null ||StringUtils.isBlank(request.getData().getPlateNo())){
                    continue;
                }
                //封装事件信息表对象
                list.add(getParkEventModelByRequest(request));
            }
            if(list.size()>0){
                //插入门禁记录
                carEventMapper.insertBatchSomeColumn(list);
            }
            log.error("【海康停车场事件推送】========成功=======");
        }catch (Exception e){
@@ -409,6 +426,13 @@
        return  null;
    }
    private CarEvent getParkEventModelByRequest(EventParkInfoRequest request) {
        CarEvent event = new CarEvent();
        return event;
    }
    private void saveInterfaceLog(Object param, String path,String result) {
        InterfaceLog hkMonitoryLogDO=new InterfaceLog();
        hkMonitoryLogDO.setType(1);
src/main/java/com/doumee/api/business/UserActionController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.UserAction;
import com.doumee.service.business.UserActionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:55
 */
@Api(tags = "人员操作记录日志")
@RestController
@RequestMapping("/business/userAction")
public class UserActionController extends BaseController {
    @Autowired
    private UserActionService userActionService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:useraction:create")
    public ApiResponse create(@RequestBody UserAction userAction) {
        return ApiResponse.success(userActionService.create(userAction));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:useraction:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        userActionService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:useraction:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        userActionService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:useraction:update")
    public ApiResponse updateById(@RequestBody UserAction userAction) {
        userActionService.updateById(userAction);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:useraction:query")
    public ApiResponse<PageData<UserAction>> findPage (@RequestBody PageWrap<UserAction> pageWrap) {
        return ApiResponse.success(userActionService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:useraction:exportExcel")
    public void exportExcel (@RequestBody PageWrap<UserAction> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(UserAction.class).export(userActionService.findPage(pageWrap).getRecords(), "人员操作记录日志", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:useraction:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(userActionService.findById(id));
    }
}
src/main/java/com/doumee/dao/business/UserActionMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.UserAction;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:55
 */
public interface UserActionMapper extends BaseMapper<UserAction> {
}
src/main/java/com/doumee/dao/business/model/UserAction.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
 * äººå‘˜æ“ä½œè®°å½•日志
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:55
 */
@Data
@ApiModel("人员操作记录日志")
@TableName("`user_action`")
public class UserAction {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "类型 0解冻 1冻结 2拉黑 3恢复 4设为拜访人 5取消拜访人 6设为高级审批人 7取消高级审批人 8手动离场 9删除", example = "1")
    @ExcelColumn(name="类型 0解冻 1冻结 2拉黑 3恢复 4设为拜访人 5取消拜访人 6设为高级审批人 7取消高级审批人 8手动离场 9删除")
    private Integer type;
    @ApiModelProperty(value = "人员操作记录日志")
    @ExcelColumn(name="人员操作记录日志")
    private String memberId;
    @ApiModelProperty(value = "操作前状态 0解冻 1冻结 2拉黑 3恢复 4设为拜访人 5取消拜访人 6设为高级审批人 7取消高级审批人 8手动离场 9删除", example = "1")
    @ExcelColumn(name="操作前状态 0解冻 1冻结 2拉黑 3恢复 4设为拜访人 5取消拜访人 6设为高级审批人 7取消高级审批人 8手动离场 9删除")
    private Integer beforeStatus;
}
src/main/java/com/doumee/service/business/UserActionService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.UserAction;
import java.util.List;
/**
 * äººå‘˜æ“ä½œè®°å½•日志Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:55
 */
public interface UserActionService {
    /**
     * åˆ›å»º
     *
     * @param userAction å®žä½“对象
     * @return Integer
     */
    Integer create(UserAction userAction);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param userAction å®žä½“对象
     */
    void delete(UserAction userAction);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param userAction å®žä½“对象
     */
    void updateById(UserAction userAction);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param userActions å®žä½“集
     */
    void updateByIdInBatch(List<UserAction> userActions);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return UserAction
     */
    UserAction findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param userAction å®žä½“对象
     * @return UserAction
     */
    UserAction findOne(UserAction userAction);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param userAction å®žä½“对象
     * @return List<UserAction>
     */
    List<UserAction> findList(UserAction userAction);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<UserAction>
     */
    PageData<UserAction> findPage(PageWrap<UserAction> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param userAction å®žä½“对象
     * @return long
     */
    long count(UserAction userAction);
}
src/main/java/com/doumee/service/business/impl/UserActionServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,139 @@
package com.doumee.service.business.impl;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.UserActionMapper;
import com.doumee.dao.business.model.UserAction;
import com.doumee.service.business.UserActionService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
 * äººå‘˜æ“ä½œè®°å½•日志Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2023/12/14 13:55
 */
@Service
public class UserActionServiceImpl implements UserActionService {
    @Autowired
    private UserActionMapper userActionMapper;
    @Override
    public Integer create(UserAction userAction) {
        userActionMapper.insert(userAction);
        return userAction.getId();
    }
    @Override
    public void deleteById(Integer id) {
        userActionMapper.deleteById(id);
    }
    @Override
    public void delete(UserAction userAction) {
        UpdateWrapper<UserAction> deleteWrapper = new UpdateWrapper<>(userAction);
        userActionMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        userActionMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(UserAction userAction) {
        userActionMapper.updateById(userAction);
    }
    @Override
    public void updateByIdInBatch(List<UserAction> userActions) {
        if (CollectionUtils.isEmpty(userActions)) {
            return;
        }
        for (UserAction userAction: userActions) {
            this.updateById(userAction);
        }
    }
    @Override
    public UserAction findById(Integer id) {
        return userActionMapper.selectById(id);
    }
    @Override
    public UserAction findOne(UserAction userAction) {
        QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
        return userActionMapper.selectOne(wrapper);
    }
    @Override
    public List<UserAction> findList(UserAction userAction) {
        QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
        return userActionMapper.selectList(wrapper);
    }
    @Override
    public PageData<UserAction> findPage(PageWrap<UserAction> pageWrap) {
        IPage<UserAction> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<UserAction> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(UserAction::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(UserAction::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(UserAction::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(UserAction::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(UserAction::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(UserAction::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(UserAction::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(UserAction::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(UserAction::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(UserAction::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.lambda().eq(UserAction::getMemberId, pageWrap.getModel().getMemberId());
        }
        if (pageWrap.getModel().getBeforeStatus() != null) {
            queryWrapper.lambda().eq(UserAction::getBeforeStatus, pageWrap.getModel().getBeforeStatus());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(userActionMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(UserAction userAction) {
        QueryWrapper<UserAction> wrapper = new QueryWrapper<>(userAction);
        return userActionMapper.selectCount(wrapper);
    }
}