From 31dd1d97e989cded33c000b122a4a848d66458db Mon Sep 17 00:00:00 2001 From: qimingjin <459816669@qq.com> Date: Mon, 10 May 2021 21:47:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E4=BF=AE=E5=A4=8D=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- pom.xml | 2 +- snow-admin/pom.xml | 5 - .../dingtalk/ThirdOauthController.java | 20 +-- .../system/SysOaRegionController.java | 19 ++- .../system/SysProfileController.java | 13 ++ .../system/SysSyncLogController.java | 1 - .../src/main/resources/application-druid.yml | 6 +- .../main/resources/static/img/dingtalk.png | Bin 35065 -> 0 bytes .../main/resources/static/ruoyi/js/common.js | 48 +++++- .../templates/system/customer/edit.html | 8 +- .../resources/templates/system/leave/add.html | 11 +- .../templates/system/leave/edit.html | 22 +-- .../resources/templates/system/log/log.html | 14 +- .../templates/system/region/area.html | 160 ++++++++++++++++++ .../system/user/profile/profile.html | 16 +- snow-common/pom.xml | 8 + .../common/enums/DingTalkListenerType.java | 3 +- .../common/SendMessageEventLister.java | 4 +- .../system/domain/SysDingtalkSyncLog.java | 2 +- .../com/snow/system/domain/SysOaLeave.java | 14 +- .../com/snow/system/mapper/SysUserMapper.java | 2 +- .../system/SysDingtalkSyncLogMapper.xml | 7 + .../mapper/system/SysOaLeaveMapper.xml | 2 + 24 files changed, 312 insertions(+), 79 deletions(-) delete mode 100644 snow-admin/src/main/resources/static/img/dingtalk.png create mode 100644 snow-admin/src/main/resources/templates/system/region/area.html diff --git a/README.md b/README.md index 30f2f9f..fd8aef6 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ V1.4 2021-03-28 V1.5 2021-05-05 - 1.0 集成开源积木报表 - - 可在线设计各类报表(表格类报表和图表类报表)。 + - 可在线设计各类报表(表格类报表和图表类报表) - 2.0 新增业务管理模块 - 新增客户准入流程,添加客户流入客户公海,发起准入流程,准入客户进入客户私海,可业务员拜访跟进,未准入客户进入黑名单 - 原数据大屏并入业务管理 @@ -137,6 +137,7 @@ V1.5 2021-05-05 - 4.0 在线邮件更改为站内邮件,不在调用邮件发送功能,便于系统内用户沟通,跟进业务 - 5.0 修复流程父角色查询所属子角色异常情况 - 6.0 修复添加用户时部门树筛选异常 + - 7.0 新增Snow社区在线文档(地址见友情链接) ## 未来规划 @@ -160,6 +161,7 @@ V1.5 2021-05-05 ## 友情链接 - 博客:http://snowblog.shop.csj361.com - 若依:http://ruoyi.vip + - 在线文档:http://47.114.7.28:9527 ## 最后,特别感谢若依系统提供框架 diff --git a/pom.xml b/pom.xml index 593be10..ea09455 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 3.9.1 2.5 1.3.3 - 3.17 + 4.1.2 1.7 6.4.1 dingtalk-SNAPSHOT diff --git a/snow-admin/pom.xml b/snow-admin/pom.xml index adb41d0..4f1d247 100644 --- a/snow-admin/pom.xml +++ b/snow-admin/pom.xml @@ -22,11 +22,6 @@ org.springframework.boot spring-boot-starter-thymeleaf - - org.apache.commons - commons-lang3 - 3.10 - org.jeecgframework.jimureport diff --git a/snow-admin/src/main/java/com/snow/web/controller/dingtalk/ThirdOauthController.java b/snow-admin/src/main/java/com/snow/web/controller/dingtalk/ThirdOauthController.java index 651c4d4..e243940 100644 --- a/snow-admin/src/main/java/com/snow/web/controller/dingtalk/ThirdOauthController.java +++ b/snow-admin/src/main/java/com/snow/web/controller/dingtalk/ThirdOauthController.java @@ -73,37 +73,33 @@ public class ThirdOauthController extends BaseController { { String appId= iSysConfigService.selectConfigByKey("ding.login.appid"); String appSecret= iSysConfigService.selectConfigByKey("ding.login.appSecret"); - String url="http://workflow.vaiwan.com/third/oauth/dingTalkLogin"; + String redirectUri= iSysConfigService.selectConfigByKey("ding.login.redirectUri"); AuthRequest authRequest = new AuthDingTalkRequest(AuthConfig.builder() .clientId(appId) .clientSecret(appSecret) - .redirectUri(url) + .redirectUri(redirectUri) .build()); String authorizeUrl = authRequest.authorize(AuthStateUtils.createState()); ServletUtils.getResponse().sendRedirect(authorizeUrl); } /** - * 回调结果 + * 钉钉回调 */ @SuppressWarnings("unchecked") @GetMapping("/dingTalkLogin") - public Object callbackAuth(@PathVariable("source") String source, AuthCallback callback, HttpServletRequest request) + public Object callbackAuth(AuthCallback callback, HttpServletRequest request) { - if (StringUtils.isEmpty(source)) - { - return new ModelAndView("error/unauth"); - } - + String source="dingtalk"; String appId= iSysConfigService.selectConfigByKey("ding.login.appid"); String appSecret= iSysConfigService.selectConfigByKey("ding.login.appSecret"); - String url="http://workflow.vaiwan.com/third/oauth/dingTalkLogin"; + String redirectUri= iSysConfigService.selectConfigByKey("ding.login.redirectUri"); AuthRequest authRequest = new AuthDingTalkRequest(AuthConfig.builder() .clientId(appId) .clientSecret(appSecret) - .redirectUri(url) + .redirectUri(redirectUri) .build()); AuthResponse response = authRequest.login(callback); if (response.ok()) @@ -121,7 +117,7 @@ public class ThirdOauthController extends BaseController { authUser.setUuid(source + response.getData().getUuid()); authUser.setUserId(ShiroUtils.getUserId()); authUser.setUserName(response.getData().getNickname()); - authUser.setLoginName(response.getData().getUsername()); + authUser.setLoginName(ShiroUtils.getLoginName()); authUser.setEmail(response.getData().getEmail()); authUser.setSource(source); userMapper.insertAuthUser(authUser); diff --git a/snow-admin/src/main/java/com/snow/web/controller/system/SysOaRegionController.java b/snow-admin/src/main/java/com/snow/web/controller/system/SysOaRegionController.java index 600972b..bb0b0ca 100644 --- a/snow-admin/src/main/java/com/snow/web/controller/system/SysOaRegionController.java +++ b/snow-admin/src/main/java/com/snow/web/controller/system/SysOaRegionController.java @@ -2,6 +2,7 @@ package com.snow.web.controller.system; import java.util.List; +import com.snow.common.core.page.TableDataInfo; import com.snow.system.domain.RegionTreeVO; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -41,7 +42,7 @@ public class SysOaRegionController extends BaseController @GetMapping() public String region() { - return prefix + "/region"; + return prefix + "/area"; } /** @@ -50,10 +51,18 @@ public class SysOaRegionController extends BaseController @RequiresPermissions("system:region:list") @PostMapping("/list") @ResponseBody - public List list(SysOaRegion sysOaRegion) + public TableDataInfo list(SysOaRegion sysOaRegion) { - List list = sysOaRegionService.selectSysOaRegionList(sysOaRegion); - return list; + startPage(); + if(StringUtils.isEmpty(sysOaRegion.getName())){ + List list = sysOaRegionService.selectSysOaRegionList(sysOaRegion); + return getDataTable(list); + }else { + SysOaRegion sysOaRegionName=new SysOaRegion(); + sysOaRegionName.setName(sysOaRegion.getName()); + List list = sysOaRegionService.selectSysOaRegionList(sysOaRegionName); + return getDataTable(list); + } } /** @@ -73,7 +82,7 @@ public class SysOaRegionController extends BaseController /** * 新增地区 */ - @GetMapping(value = { "/add/{code}", "/add/" }) + @GetMapping(value = { "/add/{code}", "/add" }) public String add(@PathVariable(value = "code", required = false) Long code, ModelMap mmap) { if (StringUtils.isNotNull(code)) diff --git a/snow-admin/src/main/java/com/snow/web/controller/system/SysProfileController.java b/snow-admin/src/main/java/com/snow/web/controller/system/SysProfileController.java index d5ae6a5..c40441a 100644 --- a/snow-admin/src/main/java/com/snow/web/controller/system/SysProfileController.java +++ b/snow-admin/src/main/java/com/snow/web/controller/system/SysProfileController.java @@ -1,6 +1,8 @@ package com.snow.web.controller.system; +import com.snow.common.core.page.TableDataInfo; import com.snow.framework.storage.StorageService; +import com.snow.system.domain.SysAuthUser; import com.snow.system.domain.SysFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,6 +27,8 @@ import com.snow.framework.util.ShiroUtils; import com.snow.system.domain.SysUser; import com.snow.system.service.ISysUserService; +import java.util.List; + /** * 个人信息 业务处理 * @@ -55,11 +59,20 @@ public class SysProfileController extends BaseController { SysUser user = ShiroUtils.getSysUser(); mmap.put("user", user); + mmap.put("auths", userService.selectAuthUserListByUserId(user.getUserId())); mmap.put("roleGroup", userService.selectUserRoleGroup(user.getUserId())); mmap.put("postGroup", userService.selectUserPostGroup(user.getUserId())); return prefix + "/profile"; } + @PostMapping("/list") + @ResponseBody + public TableDataInfo getAuthUserList(){ + SysUser user = ShiroUtils.getSysUser(); + List sysAuthUsers = userService.selectAuthUserListByUserId(user.getUserId()); + return getDataTable(sysAuthUsers); + } + @GetMapping("/checkPassword") @ResponseBody public boolean checkPassword(String password) diff --git a/snow-admin/src/main/java/com/snow/web/controller/system/SysSyncLogController.java b/snow-admin/src/main/java/com/snow/web/controller/system/SysSyncLogController.java index e056555..11724ae 100644 --- a/snow-admin/src/main/java/com/snow/web/controller/system/SysSyncLogController.java +++ b/snow-admin/src/main/java/com/snow/web/controller/system/SysSyncLogController.java @@ -67,7 +67,6 @@ public class SysSyncLogController extends BaseController ExcelUtil util = new ExcelUtil(SysDingtalkSyncLog.class); return util.exportExcel(list, "log"); } - /** * 新增钉钉同步日志记录 */ diff --git a/snow-admin/src/main/resources/application-druid.yml b/snow-admin/src/main/resources/application-druid.yml index d650d32..e12ba98 100644 --- a/snow-admin/src/main/resources/application-druid.yml +++ b/snow-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://localhost:3306/snow-dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 - username: root - password: root + url: jdbc:mysql://rm-bp1j1554xv1qs04295o.mysql.rds.aliyuncs.com:3306/snow-dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 + username: cloud_root + password: Jin!152377 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/snow-admin/src/main/resources/static/img/dingtalk.png b/snow-admin/src/main/resources/static/img/dingtalk.png deleted file mode 100644 index a30c7e5fd778d3852645944777a5334742d94ae3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35065 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

R3&HM+py=* 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 O(799ECsS3;0{<6i^0(0d diff --git a/snow-admin/src/main/resources/static/ruoyi/js/common.js b/snow-admin/src/main/resources/static/ruoyi/js/common.js index 59a14d2..c093992 100644 --- a/snow-admin/src/main/resources/static/ruoyi/js/common.js +++ b/snow-admin/src/main/resources/static/ruoyi/js/common.js @@ -103,7 +103,53 @@ $(function() { }); }); } - + //时间 带时分秒的 + if ($(".datetime-input").length > 0) { + layui.use('laydate', function () { + var com = layui.laydate; + $(".datetime-input").each(function (index, item) { + var time = $(item); + // 控制控件外观 + var type = time.attr("data-type") || 'datetime'; + // 控制回显格式 + var format = time.attr("data-format") || 'yyyy-MM-dd HH:mm:ss'; + // 控制日期控件按钮 + var buttons = time.attr("data-btn") || 'clear|now|confirm', newBtnArr = []; + // 日期控件选择完成后回调处理 + var callback = time.attr("data-callback") || {}; + if (buttons) { + if (buttons.indexOf("|") > 0) { + var btnArr = buttons.split("|"), btnLen = btnArr.length; + for (var j = 0; j < btnLen; j++) { + if ("clear" === btnArr[j] || "now" === btnArr[j] || "confirm" === btnArr[j]) { + newBtnArr.push(btnArr[j]); + } + } + } else { + if ("clear" === buttons || "now" === buttons || "confirm" === buttons) { + newBtnArr.push(buttons); + } + } + } else { + newBtnArr = ['clear', 'now', 'confirm']; + } + com.render({ + elem: item, + theme: 'molv', + trigger: 'click', + type: type, + format: format, + btns: newBtnArr, + done: function (value, data) { + if (typeof window[callback] != 'undefined' + && window[callback] instanceof Function) { + window[callback](value, data); + } + } + }); + }); + }); + } // laydate time-input 时间控件绑定 if ($(".time-input").length > 0) { layui.use('laydate', function () { diff --git a/snow-admin/src/main/resources/templates/system/customer/edit.html b/snow-admin/src/main/resources/templates/system/customer/edit.html index ac51f01..a09afb1 100644 --- a/snow-admin/src/main/resources/templates/system/customer/edit.html +++ b/snow-admin/src/main/resources/templates/system/customer/edit.html @@ -32,12 +32,14 @@

diff --git a/snow-admin/src/main/resources/templates/system/leave/add.html b/snow-admin/src/main/resources/templates/system/leave/add.html index 4cdb4fe..46b45ee 100644 --- a/snow-admin/src/main/resources/templates/system/leave/add.html +++ b/snow-admin/src/main/resources/templates/system/leave/add.html @@ -17,15 +17,15 @@
- +
- - + +
@@ -33,8 +33,9 @@
- - + + +
diff --git a/snow-admin/src/main/resources/templates/system/leave/edit.html b/snow-admin/src/main/resources/templates/system/leave/edit.html index 468a03a..b18d532 100644 --- a/snow-admin/src/main/resources/templates/system/leave/edit.html +++ b/snow-admin/src/main/resources/templates/system/leave/edit.html @@ -1,7 +1,7 @@ - + @@ -18,22 +18,22 @@
- +
- +
- - + +
@@ -41,8 +41,7 @@
- - +
@@ -59,7 +58,7 @@
- +
@@ -108,6 +107,8 @@ $(this).fileinput('_initFileActions'); }); + + function formatBetweenTime(date1,date2) { var date3 = date2.getTime() - date1.getTime() //时间差的毫秒数 console.log(date3) @@ -131,15 +132,10 @@ \ No newline at end of file diff --git a/snow-admin/src/main/resources/templates/system/log/log.html b/snow-admin/src/main/resources/templates/system/log/log.html index 8e3384f..2e8be5f 100644 --- a/snow-admin/src/main/resources/templates/system/log/log.html +++ b/snow-admin/src/main/resources/templates/system/log/log.html @@ -38,16 +38,16 @@
  • -
  • - + - - +
  •  搜索 @@ -145,10 +145,10 @@ field: 'deptName', title: '部门名称' }, - { + /* { field: 'operIp', title: '主机地址' - }, + },*/ { field: 'operLocation', title: '操作地点' @@ -175,10 +175,10 @@ align: 'center', formatter: function(value, row, index) { var actions = []; - if(row.status==1){ + /* if(row.status==1){ actions.push('手工同步 '); } - +*/ actions.push('删除 '); diff --git a/snow-admin/src/main/resources/templates/system/region/area.html b/snow-admin/src/main/resources/templates/system/region/area.html new file mode 100644 index 0000000..31a7b2c --- /dev/null +++ b/snow-admin/src/main/resources/templates/system/region/area.html @@ -0,0 +1,160 @@ + + + + + + + + +
    +
    +
    +
    + 省市区 +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + + +
    + +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/snow-admin/src/main/resources/templates/system/user/profile/profile.html b/snow-admin/src/main/resources/templates/system/user/profile/profile.html index 7acd18f..75d127d 100644 --- a/snow-admin/src/main/resources/templates/system/user/profile/profile.html +++ b/snow-admin/src/main/resources/templates/system/user/profile/profile.html @@ -148,14 +148,9 @@

    你可以绑定以下第三方帐号用于DingFlow系统

    - - + + DingTalk - - WeiXin @@ -329,9 +324,8 @@ // 第三方授权列表 $(function() { - var auths = [[${auths}]] var options = { - data: auths, + url:"/system/user/profile/list", sidePagination: "client", showSearch: false, showRefresh: false, @@ -374,6 +368,8 @@ }] }; $.table.init(options); + + }); // 解除绑定 @@ -381,7 +377,7 @@ $.modal.confirm("您确定要解除" + source + "的账号绑定吗?", function() { $.ajax({ type: "post", - url: ctx + "/third/oauth/unlock", + url: "/third/oauth/unlock", data: { "authId": authId }, success: function(r) { if (r.code == web_status.SUCCESS) { diff --git a/snow-common/pom.xml b/snow-common/pom.xml index 31f686d..560a244 100644 --- a/snow-common/pom.xml +++ b/snow-common/pom.xml @@ -149,6 +149,14 @@ org.apache.httpcomponents httpclient + + + + commons-lang + commons-lang + 2.6 + + \ No newline at end of file diff --git a/snow-common/src/main/java/com/snow/common/enums/DingTalkListenerType.java b/snow-common/src/main/java/com/snow/common/enums/DingTalkListenerType.java index e41b4f5..178b2b1 100644 --- a/snow-common/src/main/java/com/snow/common/enums/DingTalkListenerType.java +++ b/snow-common/src/main/java/com/snow/common/enums/DingTalkListenerType.java @@ -7,6 +7,7 @@ package com.snow.common.enums; * @date 2020/9/18 10:18 */ public enum DingTalkListenerType { + DEPARTMENT_CREATE(1, 2,"org_dept_create"), DEPARTMENT_UPDATE(2, 2,"org_dept_modify"), @@ -17,7 +18,7 @@ public enum DingTalkListenerType { USER_DELETE(3,1,"user_leave_org"), - CALL_BACK_CHECK_URL(1,10, "check_url"), + CALL_BACK_CHECK_URL(1,10, "回调check_url"), CALL_BACK_REGISTER(1,10, "回调注册"), diff --git a/snow-flowable/src/main/java/com/snow/flowable/listener/common/SendMessageEventLister.java b/snow-flowable/src/main/java/com/snow/flowable/listener/common/SendMessageEventLister.java index 567a311..06e12e5 100644 --- a/snow-flowable/src/main/java/com/snow/flowable/listener/common/SendMessageEventLister.java +++ b/snow-flowable/src/main/java/com/snow/flowable/listener/common/SendMessageEventLister.java @@ -145,7 +145,7 @@ public class SendMessageEventLister extends AbstractEventListener { //根据任务ID获取任务获选人 - TaskEntity entity = (TaskEntity) event.getEntity(); + /* TaskEntity entity = (TaskEntity) event.getEntity(); Set flowCandidates = getFlowCandidates(entity); if(CollectionUtils.isNotEmpty(flowCandidates)){ MessageEventDTO messageEventDTO=new MessageEventDTO(MessageEventType.TASK_TODO.getCode()); @@ -153,7 +153,7 @@ public class SendMessageEventLister extends AbstractEventListener { messageEventDTO.setMessageEventType(MessageEventType.TASK_TODO); messageEventDTO.setMessageOutsideId(entity.getId()); applicationContext.publishEvent(messageEventDTO); - } + }*/ } diff --git a/snow-system/src/main/java/com/snow/system/domain/SysDingtalkSyncLog.java b/snow-system/src/main/java/com/snow/system/domain/SysDingtalkSyncLog.java index 7a8ce5f..6278d19 100644 --- a/snow-system/src/main/java/com/snow/system/domain/SysDingtalkSyncLog.java +++ b/snow-system/src/main/java/com/snow/system/domain/SysDingtalkSyncLog.java @@ -33,7 +33,7 @@ public class SysDingtalkSyncLog extends BaseEntity private String title; /** 模块类型(0其它 1用户 2部门 3角色 10回调) */ - @Excel(name = "模块类型", readConverterExp = "0=其它,1=用户,2=部门,3=角色,1=0回调") + @Excel(name = "模块类型", readConverterExp = "0=其它,1=用户,2=部门,3=角色,1=回调") private Integer moduleType; /** 业务类型(0其它 1新增 2修改 3删除) */ diff --git a/snow-system/src/main/java/com/snow/system/domain/SysOaLeave.java b/snow-system/src/main/java/com/snow/system/domain/SysOaLeave.java index 2982b84..957d63e 100644 --- a/snow-system/src/main/java/com/snow/system/domain/SysOaLeave.java +++ b/snow-system/src/main/java/com/snow/system/domain/SysOaLeave.java @@ -22,7 +22,9 @@ public class SysOaLeave extends BaseEntity /** id */ private Integer id; - + /** 请假单号 */ + @Excel(name = "请假单号") + private String leaveNo; /** 请假名称 */ @Excel(name = "请假名称") private String name; @@ -32,17 +34,17 @@ public class SysOaLeave extends BaseEntity private String reason; /** 开始时间 */ - @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; /** 结束时间 */ - @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; /** 流程状态(0--待审批,1-审批中,2--审批通过,3--已驳回) */ - @Excel(name = "流程状态", readConverterExp = "0=--待审批,1-审批中,2--审批通过,3--已驳回") + @Excel(name = "流程状态", readConverterExp = "0=待审批,1=审批中,2=审批通过,3=已驳回") private Integer processStatus; /** 流程实例ID */ @@ -59,9 +61,7 @@ public class SysOaLeave extends BaseEntity /** 附件 */ @Excel(name = "附件") private String fileUrl; - /** 请假单号 */ - @Excel(name = "请假单号") - private String leaveNo; + /** * 请假时长 */ diff --git a/snow-system/src/main/java/com/snow/system/mapper/SysUserMapper.java b/snow-system/src/main/java/com/snow/system/mapper/SysUserMapper.java index 3cfea29..0e538a2 100644 --- a/snow-system/src/main/java/com/snow/system/mapper/SysUserMapper.java +++ b/snow-system/src/main/java/com/snow/system/mapper/SysUserMapper.java @@ -167,7 +167,7 @@ public interface SysUserMapper /** * 根据用户编号查询授权列表 * - * @param loginName 登录账户 + * @param userId 登录账户 * @return 授权列表 */ public List selectAuthUserListByUserId(Long userId); diff --git a/snow-system/src/main/resources/mapper/system/SysDingtalkSyncLogMapper.xml b/snow-system/src/main/resources/mapper/system/SysDingtalkSyncLogMapper.xml index 6628610..400258e 100644 --- a/snow-system/src/main/resources/mapper/system/SysDingtalkSyncLogMapper.xml +++ b/snow-system/src/main/resources/mapper/system/SysDingtalkSyncLogMapper.xml @@ -47,7 +47,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and status = #{status} and oper_time = #{operTime} and log_type = #{logType} + + AND date_format(oper_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') + + + AND date_format(oper_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') + + order by oper_time desc