k94314517
2024-10-17 ffa60e83ae945bdd164ce047a2c70a55e9f54ee2
代码初始化
已添加6个文件
已修改3个文件
666 ■■■■■ 文件已修改
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WxNoticeConfigController.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WxNoticeConfigMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/SmsConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WxNoticeConfig.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WxNoticeConfigService.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WxNoticeConfigServiceImpl.java 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WxNoticeConfigController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
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.core.utils.Constants;
import com.doumee.dao.business.model.WxNoticeConfig;
import com.doumee.service.business.WxNoticeConfigService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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 2024/10/17 15:44
 */
@Api(tags = "微信公众号通知配置")
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/wxNoticeConfig")
public class WxNoticeConfigController extends BaseController {
    @Autowired
    private WxNoticeConfigService wxNoticeConfigService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @CloudRequiredPermission("business:wxnoticeconfig:create")
    public ApiResponse create(@RequestBody WxNoticeConfig wxNoticeConfig) {
        return ApiResponse.success(wxNoticeConfigService.create(wxNoticeConfig));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:wxnoticeconfig:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        wxNoticeConfigService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @CloudRequiredPermission("business:wxnoticeconfig: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));
        }
        wxNoticeConfigService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:wxnoticeconfig:update")
    public ApiResponse updateById(@RequestBody WxNoticeConfig wxNoticeConfig) {
        wxNoticeConfigService.updateById(wxNoticeConfig);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @CloudRequiredPermission("business:wxnoticeconfig:query")
    public ApiResponse<PageData<WxNoticeConfig>> findPage (@RequestBody PageWrap<WxNoticeConfig> pageWrap) {
        return ApiResponse.success(wxNoticeConfigService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:wxnoticeconfig:exportExcel")
    public void exportExcel (@RequestBody PageWrap<WxNoticeConfig> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(WxNoticeConfig.class).export(wxNoticeConfigService.findPage(pageWrap).getRecords(), "微信公众号通知配置", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:wxnoticeconfig:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(wxNoticeConfigService.findById(id));
    }
    @ApiOperation("批量禁启用")
    @GetMapping("/updateStatus/batch")
    @CloudRequiredPermission("business:wxnoticeconfig:update")
    public ApiResponse updateStatusBatch(@RequestParam String ids,@RequestParam Integer status) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        wxNoticeConfigService.updateStatusByIdInBatch(idList,status);
        return ApiResponse.success(null);
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,145 @@
package com.doumee.core.wx.wxPlat;
import com.doumee.core.utils.Constants;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/10/17 13:54
 */
public class WxPlatConstants {
    public static final String visit ="1" ;
    public static final String visitReport ="2" ;
    public static final String hiddenDanger ="3" ;
    public static final String carUse ="4" ;
    public static final String meeting ="5" ;
    public static final String platformBook ="6" ;
    public static final String platformJob ="7" ;
    /**
     * è®¿å®¢ç”³è¯·
     */
    public interface visitContent{
        //  æäº¤æˆåŠŸç»™ç”³è¯·äººï¼šç”³è¯·æäº¤æˆåŠŸå¾…å®¡æ ¸
        String visitUpload = "visitUpload";
        // å®¡æ‰¹é€šè¿‡ç»™ç”³è¯·äººï¼šç”³è¯·å·²å®¡æ ¸é€šè¿‡
        String visitAuditSuccess = "visitAuditSuccess";
        //  å®¡æ‰¹é©³å›žç»™ç”³è¯·äººï¼šç”³è¯·å·²è¢«é©³å›ž
        String visitAuditFail = "visitWaitAudit";
        // ç»™å®¡æ‰¹äººï¼šç”³è¯·å¾…您审批
        String visitWaitAudit = "visitWaitAudit";
    }
    /**
     * è®¿å®¢æŠ¥å¤‡
     */
    public interface visitReportContent{
        //  æäº¤æˆåŠŸç»™ç”³è¯·äººï¼šç”³è¯·æäº¤æˆåŠŸå¾…å®¡æ ¸
        String visitReportUpload = "visitReportUpload";
        // å®¡æ‰¹é€šè¿‡ç»™ç”³è¯·äººï¼šç”³è¯·å·²å®¡æ ¸é€šè¿‡
        String visitReportAuditSuccess = "visitReportAuditSuccess";
        //  å®¡æ‰¹é©³å›žç»™ç”³è¯·äººï¼šç”³è¯·å·²è¢«é©³å›ž
        String visitReportAuditFail = "visitReportAuditFail";
        // ç»™å®¡æ‰¹äººï¼šç”³è¯·å¾…您审批
        String visitReportWaitAudit = "visitReportAuditSuccess";
    }
    /**
     * é𐿂£éšæ‰‹æ‹
     */
    public interface hiddenDangerContent{
        //隐患上报通知
        String hiddenDangerUpload = "hiddenDangerUpload";
        //隐患整改通知
        String hiddenDangerDeal = "hiddenDangerDeal";
    }
    /**
     * ç”¨è½¦ç”³è¯·
     */
    public interface carUseBookContent{
        //短信通知模板(给处理人)
        String carUseBookUpload = "carUseBookUpload";
        //用车申请-审批通过通知(给申请人):。
        String carUseBookAuditSuccess = "carUseBookAuditSuccess";
        //用车申请-审批驳回通知(给申请人):。
        String carUseBookAuditFail = "carUseBookAuditFail";
        //用车申请-审批驳回通知(给申请人):。
        String carUseBookWaitAudit = "carUseBookWaitAudit";
    }
    /**
     * ä¼šè®®é€šçŸ¥
     */
    public interface meetingContent{
        //线下会议预约成功通知
        String reservationSuccess = "reservationSuccess";
        //会议取消通知。
        String meetingCancel = "meetingCancel";
        //会议即将开始提醒(订阅消息)
        String meetingBeginA = "meetingBeginA";
        //会议即将结束提醒(订阅消息)
        String meetingEndA = "meetingEndA";
    }
    /**
     * ç‰©æµè½¦é¢„约
     */
    public interface platformBookContent{
        //  æäº¤æˆåŠŸç»™ç”³è¯·äººï¼šç”³è¯·æäº¤æˆåŠŸå¾…å®¡æ ¸
        String platformBookUpload = "platformBookUpload";
        // å®¡æ‰¹é€šè¿‡ç»™ç”³è¯·äººï¼šç”³è¯·å·²å®¡æ ¸é€šè¿‡
        String platformBookAuditSuccess = "platformBookAuditSuccess";
        //  å®¡æ‰¹é©³å›žç»™ç”³è¯·äººï¼šç”³è¯·å·²è¢«é©³å›ž
        String platformBookAuditFail = "platformBookWaitAudit";
        // ç»™å®¡æ‰¹äººï¼šç”³è¯·å¾…您审批
        String platformBookWaitAudit = "platformBookWaitAudit";
    }
    /**
     * ç‰©æµä½œä¸š
     */
    public interface platformJobContent{
        //物流车预约-叫号入园等待(给司机)
        String platformJobCallIn = "platformJobCallIn";
        //物流车预约-月台叫号(给司机)
        String platformJobSingIn = "platformJobSingIn";
        //物流车预约-月台叫号过号(给司机)
        String platformJobOverNum = "platformJobOverNum";
        //物流车预约-作业开始(给司机)
        String platformJobWorking = "platformJobWorking";
        //物流车预约-作业完成(给司机)
        String platformJobFinish = "platformJobFinish";
        //物流车预约-离园授权(给司机)
        String platformJobLevelPower = "platformJobLevelPower";
        //物流车预约-月台转移(给司机)
        String platformJobMove = "platformJobMove";
        //物流车预约-作业异常挂起(给司机)
        String platformJobError = "platformJobError";
        //物流车预约-月台停靠超时(给司机)
        String platformJobTimeOut = "platformJobTimeOut";
        //物流车预约-月台停靠错误(给司机)
        String platformJobStopErr = "platformJobStopErr";
        // è¿è¾“任务下达 ï¼ˆç»™å¸æœºï¼‰
        String platformJobNewJob = "platformJobNewJob";
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -1,6 +1,11 @@
package com.doumee.core.wx.wxPlat;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.WxNoticeConfigMapper;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.business.model.WxNoticeConfig;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
@@ -8,6 +13,9 @@
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Objects;
/**
 * å¾®ä¿¡å…¬ä¼—号通知
@@ -28,8 +36,9 @@
        this.wxMpService = wxMpService;
    }
    /**
     * è®¿å®¢è®°å½•审批业务通知
     * è®¿å®¢ä¸šåŠ¡é€šçŸ¥æŽ¥å£
     */
    public Boolean  sendVisitAuditTemplateNotice(Visits visits,String prefix,String tempId){
        if(StringUtils.isBlank(visits.getOpenid())){
@@ -40,6 +49,8 @@
                .templateId(tempId)
                .url(prefix + visits.getId())
                .build();
        String thing1 = "待审批";
        if(visits.getStatus()==2){
            thing1 = "审核通过";
@@ -66,4 +77,50 @@
    }
    /**
     * è®¿å®¢ä¸šåŠ¡é€šçŸ¥
     */
    public void  sendVisitTemplateNotice(WxNoticeConfigMapper wxNoticeConfigMapper,Visits visits,String objCode, String prefix, String tempId, List<String> openIds){
        if(CollectionUtils.isNotEmpty(openIds)){
           WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.visit)
                    .eq(WxNoticeConfig::getObjCode,objCode)
                           .eq(WxNoticeConfig::getStatus, Constants.ZERO)
                    .last(" limit 1")
            );
           if(Objects.isNull(wxNoticeConfig)){
               return;
           }
            WxMpTemplateMessage templateMessage =  WxMpTemplateMessage.builder()
                    .toUser(visits.getOpenid())
                    .templateId(tempId)
                    .url(prefix + visits.getId())
                    .build();
            templateMessage.addData(new WxMpTemplateData("thing1", visits.getName()))
                    .addData(new WxMpTemplateData("car_number7", StringUtils.isBlank(visits.getCarNos())?visits.getCarNos():"-"))
                    .addData(new WxMpTemplateData("character_string6", Constants.equalsInteger(visits.getMemberNum(),Constants.ZERO)?Constants.ONE+"":visits.getMemberNum().toString()))
                    .addData(new WxMpTemplateData("const9", wxNoticeConfig.getTitile()))
                    .addData(new WxMpTemplateData("thing4", visits.getReason()))
                    ;
            String msgId = null;
            try {
                for (String openId:openIds) {
                    templateMessage.setToUser(openId);
                }
                // å‘送模板消息
                msgId = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
            } catch (WxErrorException e) {
                e.printStackTrace();
            }
            log.warn("·==++--·推送微信模板信息:{}·--++==·", msgId != null ? "成功" : "失败");
        }
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WxNoticeConfigMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.WxNoticeConfig;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/10/17 15:44
 */
public interface WxNoticeConfigMapper extends BaseMapper<WxNoticeConfig> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/SmsConfig.java
@@ -59,6 +59,10 @@
    @ExcelColumn(name="短信编码")
    private String code;
    @ApiModelProperty(value = "标题")
    @ExcelColumn(name="标题")
    private String name;
    @ApiModelProperty(value = "短信内容")
    @ExcelColumn(name="短信内容")
    private String content;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WxNoticeConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
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 2024/10/17 15:44
 */
@Data
@ApiModel("微信公众号通知配置")
@TableName("`wx_notice_config`")
public class WxNoticeConfig {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码")
    @ExcelColumn(name="创建人编码")
    private String creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码")
    @ExcelColumn(name="更新人编码")
    private String edirot;
    @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关闭", example = "1")
    @ExcelColumn(name="开启状态:0开启;1关闭")
    private Integer status;
    @ApiModelProperty(value = "模板ID")
    @ExcelColumn(name="模板ID")
    private String tempId;
    @ApiModelProperty(value = "标题(枚举值)")
    @ExcelColumn(name="标题(枚举值)")
    private String titile;
    @ApiModelProperty(value = "业务编码")
    @ExcelColumn(name="业务编码")
    private String objCode;
    @ApiModelProperty(value = "业务类型 1=访客业务;2=访客报备;3=隐患随手拍;4=用车申请;5=会议室信息;6=物流车预约;7=物流车作业", example = "1")
    @ExcelColumn(name="业务类型 1=访客业务;2=访客报备;3=隐患随手拍;4=用车申请;5=会议室信息;6=物流车预约;7=物流车作业")
    private Integer objType;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -115,7 +115,7 @@
    DriverHomeVO getDriverHome(LoginUserInfo loginUserInfo);
    /**
     * è·ç¦»ç­¾åˆ°
     * è·ç¦»ç­¾åˆ°Â·
     * @param signInDTO
     */
    void signIn(SignInDTO signInDTO);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WxNoticeConfigService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.WxNoticeConfig;
import java.util.List;
/**
 * å¾®ä¿¡å…¬ä¼—号通知配置Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2024/10/17 15:44
 */
public interface WxNoticeConfigService {
    /**
     * åˆ›å»º
     *
     * @param wxNoticeConfig å®žä½“对象
     * @return Integer
     */
    Integer create(WxNoticeConfig wxNoticeConfig);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param wxNoticeConfig å®žä½“对象
     */
    void delete(WxNoticeConfig wxNoticeConfig);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param wxNoticeConfig å®žä½“对象
     */
    void updateById(WxNoticeConfig wxNoticeConfig);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param wxNoticeConfigs å®žä½“集
     */
    void updateByIdInBatch(List<WxNoticeConfig> wxNoticeConfigs);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return WxNoticeConfig
     */
    WxNoticeConfig findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param wxNoticeConfig å®žä½“对象
     * @return WxNoticeConfig
     */
    WxNoticeConfig findOne(WxNoticeConfig wxNoticeConfig);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param wxNoticeConfig å®žä½“对象
     * @return List<WxNoticeConfig>
     */
    List<WxNoticeConfig> findList(WxNoticeConfig wxNoticeConfig);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<WxNoticeConfig>
     */
    PageData<WxNoticeConfig> findPage(PageWrap<WxNoticeConfig> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param wxNoticeConfig å®žä½“对象
     * @return long
     */
    long count(WxNoticeConfig wxNoticeConfig);
    void updateStatusByIdInBatch(List<Integer> ids,Integer status);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WxNoticeConfigServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,160 @@
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.WxNoticeConfigMapper;
import com.doumee.dao.business.model.SmsConfig;
import com.doumee.dao.business.model.WxNoticeConfig;
import com.doumee.service.business.WxNoticeConfigService;
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;
import java.util.Objects;
/**
 * å¾®ä¿¡å…¬ä¼—号通知配置Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2024/10/17 15:44
 */
@Service
public class WxNoticeConfigServiceImpl implements WxNoticeConfigService {
    @Autowired
    private WxNoticeConfigMapper wxNoticeConfigMapper;
    @Override
    public Integer create(WxNoticeConfig wxNoticeConfig) {
        wxNoticeConfigMapper.insert(wxNoticeConfig);
        return wxNoticeConfig.getId();
    }
    @Override
    public void deleteById(Integer id) {
        wxNoticeConfigMapper.deleteById(id);
    }
    @Override
    public void delete(WxNoticeConfig wxNoticeConfig) {
        UpdateWrapper<WxNoticeConfig> deleteWrapper = new UpdateWrapper<>(wxNoticeConfig);
        wxNoticeConfigMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        wxNoticeConfigMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(WxNoticeConfig wxNoticeConfig) {
        wxNoticeConfigMapper.updateById(wxNoticeConfig);
    }
    @Override
    public void updateByIdInBatch(List<WxNoticeConfig> wxNoticeConfigs) {
        if (CollectionUtils.isEmpty(wxNoticeConfigs)) {
            return;
        }
        for (WxNoticeConfig wxNoticeConfig: wxNoticeConfigs) {
            this.updateById(wxNoticeConfig);
        }
    }
    @Override
    public WxNoticeConfig findById(Integer id) {
        return wxNoticeConfigMapper.selectById(id);
    }
    @Override
    public WxNoticeConfig findOne(WxNoticeConfig wxNoticeConfig) {
        QueryWrapper<WxNoticeConfig> wrapper = new QueryWrapper<>(wxNoticeConfig);
        return wxNoticeConfigMapper.selectOne(wrapper);
    }
    @Override
    public List<WxNoticeConfig> findList(WxNoticeConfig wxNoticeConfig) {
        QueryWrapper<WxNoticeConfig> wrapper = new QueryWrapper<>(wxNoticeConfig);
        return wxNoticeConfigMapper.selectList(wrapper);
    }
    @Override
    public PageData<WxNoticeConfig> findPage(PageWrap<WxNoticeConfig> pageWrap) {
        IPage<WxNoticeConfig> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<WxNoticeConfig> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(WxNoticeConfig::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(WxNoticeConfig::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEdirot() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getEdirot, pageWrap.getModel().getEdirot());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(WxNoticeConfig::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(WxNoticeConfig::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getTempId() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getTempId, pageWrap.getModel().getTempId());
        }
        if (pageWrap.getModel().getTitile() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getTitile, pageWrap.getModel().getTitile());
        }
        if (pageWrap.getModel().getObjCode() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getObjCode, pageWrap.getModel().getObjCode());
        }
        if (pageWrap.getModel().getObjType() != null) {
            queryWrapper.lambda().eq(WxNoticeConfig::getObjType, pageWrap.getModel().getObjType());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(wxNoticeConfigMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(WxNoticeConfig wxNoticeConfig) {
        QueryWrapper<WxNoticeConfig> wrapper = new QueryWrapper<>(wxNoticeConfig);
        return wxNoticeConfigMapper.selectCount(wrapper);
    }
    @Override
    public void updateStatusByIdInBatch(List<Integer> ids,Integer status) {
        if (CollectionUtils.isEmpty(ids) || Objects.isNull(status)) {
            return;
        }
        wxNoticeConfigMapper.update(new UpdateWrapper<WxNoticeConfig>()
                .set("status",status)
                .in("id",ids)
        );
    }
}