浏览代码

开发了部门管理相关的接口

jinshihui 1 天之前
父节点
当前提交
ed3a907573
共有 21 个文件被更改,包括 800 次插入349 次删除
  1. 3 2
      nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/TFareSettingController.java
  2. 64 28
      nightFragrance-admin/src/main/java/com/ylx/web/controller/system/SysDeptController.java
  3. 27 49
      nightFragrance-admin/src/main/java/com/ylx/web/controller/system/SysUserController.java
  4. 3 49
      nightFragrance-common/src/main/java/com/ylx/common/core/domain/BaseEntity.java
  5. 20 23
      nightFragrance-common/src/main/java/com/ylx/common/core/domain/TreeSelect.java
  6. 30 104
      nightFragrance-common/src/main/java/com/ylx/common/core/domain/entity/SysDept.java
  7. 63 0
      nightFragrance-massage/src/main/java/com/ylx/giftCard/controller/GiftCardOrderController.java
  8. 37 0
      nightFragrance-massage/src/main/java/com/ylx/giftCard/domain/dto/GiftCardOrderQueryDTO.java
  9. 81 0
      nightFragrance-massage/src/main/java/com/ylx/giftCard/domain/vo/GiftCardOrderExportVO.java
  10. 93 0
      nightFragrance-massage/src/main/java/com/ylx/giftCard/domain/vo/GiftCardOrderPageVO.java
  11. 24 0
      nightFragrance-massage/src/main/java/com/ylx/giftCard/mapper/GiftCardOrderMapper.java
  12. 22 0
      nightFragrance-massage/src/main/java/com/ylx/giftCard/service/IGiftCardOrderService.java
  13. 31 0
      nightFragrance-massage/src/main/java/com/ylx/giftCard/service/impl/GiftCardOrderServiceImpl.java
  14. 5 1
      nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TGeoFenceServiceImpl.java
  15. 66 0
      nightFragrance-massage/src/main/resources/mapper/giftCard/GiftCardOrderMapper.xml
  16. 53 0
      nightFragrance-massage/src/test/java/com/ylx/giftCard/mapper/GiftCardOrderMapperXmlTest.java
  17. 39 0
      nightFragrance-system/src/main/java/com/ylx/system/domain/dto/SysDeptPageQueryDTO.java
  18. 15 3
      nightFragrance-system/src/main/java/com/ylx/system/mapper/SysDeptMapper.java
  19. 14 2
      nightFragrance-system/src/main/java/com/ylx/system/service/ISysDeptService.java
  20. 71 77
      nightFragrance-system/src/main/java/com/ylx/system/service/impl/SysDeptServiceImpl.java
  21. 39 11
      nightFragrance-system/src/main/resources/mapper/system/SysDeptMapper.xml

+ 3 - 2
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/TFareSettingController.java

@@ -57,8 +57,9 @@ public class TFareSettingController extends BaseController {
     public R selectAll(Page<TFareSetting> page, TFareSetting tFareSetting) {
         try {
             LambdaQueryWrapper<TFareSetting> queryWrapper = new LambdaQueryWrapper<>();
-            if(StringUtils.isNotBlank(tFareSetting.getCityName())){
-                queryWrapper.like(TFareSetting::getCityName, tFareSetting.getCityName());
+            // 城市编码查询
+            if(StringUtils.isNotBlank(tFareSetting.getCityCode())){
+                queryWrapper.like(TFareSetting::getCityCode, tFareSetting.getCityCode());
             }
             return R.ok(this.tFareSettingService.page(page, queryWrapper));
         } catch (Exception e) {

+ 64 - 28
nightFragrance-admin/src/main/java/com/ylx/web/controller/system/SysDeptController.java

@@ -2,6 +2,8 @@ package com.ylx.web.controller.system;
 
 import java.util.List;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -21,6 +23,7 @@ import com.ylx.common.core.domain.AjaxResult;
 import com.ylx.common.core.domain.entity.SysDept;
 import com.ylx.common.enums.BusinessType;
 import com.ylx.common.utils.StringUtils;
+import com.ylx.system.domain.dto.SysDeptPageQueryDTO;
 import com.ylx.system.service.ISysDeptService;
 
 /**
@@ -31,24 +34,32 @@ import com.ylx.system.service.ISysDeptService;
 @RestController
 @RequestMapping("/system/dept")
 public class SysDeptController extends BaseController {
+
     @Autowired
     private ISysDeptService deptService;
 
     /**
-     * 获取部门列表
+     * 分页查询部门列表
      *
-     * @param dept 部门信息
-     * @return AjaxResult 部门列表
+     * @param page 分页参数
+     * @param dto 查询条件
+     * @return AjaxResult 部门分页列表
      */
-//    @PreAuthorize("@ss.hasPermi('system:dept:list')")
     @GetMapping("/list")
-    public AjaxResult list(SysDept dept) {
-        List<SysDept> depts = deptService.selectDeptList(dept);
-        return success(depts);
+    public AjaxResult list(Page<SysDept> page, SysDeptPageQueryDTO dto) {
+        try {
+            return success(deptService.selectDeptPage(page, dto));
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
     }
 
     /**
      * 查询部门列表(排除节点)
+     *
+     * @param deptId 部门ID
+     * @return AjaxResult 部门列表
      */
     @PreAuthorize("@ss.hasPermi('system:dept:list')")
     @GetMapping("/list/exclude/{deptId}")
@@ -70,52 +81,77 @@ public class SysDeptController extends BaseController {
 
     /**
      * 新增部门
+     *
+     * @param dept 部门信息
+     * @return AjaxResult 新增结果
      */
     @PreAuthorize("@ss.hasPermi('system:dept:add')")
     @Log(title = "部门管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysDept dept) {
-        if (!deptService.checkDeptNameUnique(dept)) {
-            return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        try {
+            logger.info("新增部门请求参数:{}", JSON.toJSONString(dept));
+            if (!deptService.checkDeptNameUnique(dept)) {
+                return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+            }
+            dept.setCreateBy(getUsername());
+            return toAjax(deptService.insertDept(dept));
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
         }
-        dept.setCreateBy(getUsername());
-        return toAjax(deptService.insertDept(dept));
     }
 
     /**
      * 修改部门
+     *
+     * @param dept 部门信息
+     * @return AjaxResult 修改结果
      */
     @PreAuthorize("@ss.hasPermi('system:dept:edit')")
     @Log(title = "部门管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysDept dept) {
-        Long deptId = dept.getDeptId();
-        deptService.checkDeptDataScope(deptId);
-        if (!deptService.checkDeptNameUnique(dept)) {
-            return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
-        } else if (dept.getParentId().equals(deptId)) {
-            return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
-        } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) {
-            return error("该部门包含未停用的子部门!");
+        try {
+            Long deptId = dept.getDeptId();
+            deptService.checkDeptDataScope(deptId);
+            if (!deptService.checkDeptNameUnique(dept)) {
+                return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+            } else if (dept.getParentId().equals(deptId)) {
+                return error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
+            } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0) {
+                return error("该部门包含未停用的子部门!");
+            }
+            dept.setUpdateBy(getUsername());
+            return toAjax(deptService.updateDept(dept));
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
         }
-        dept.setUpdateBy(getUsername());
-        return toAjax(deptService.updateDept(dept));
     }
 
     /**
      * 删除部门
+     *
+     * @param deptId 部门ID
+     * @return AjaxResult 删除结果
      */
     @PreAuthorize("@ss.hasPermi('system:dept:remove')")
     @Log(title = "部门管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{deptId}")
     public AjaxResult remove(@PathVariable Long deptId) {
-        if (deptService.hasChildByDeptId(deptId)) {
-            return warn("存在下级部门,不允许删除");
-        }
-        if (deptService.checkDeptExistUser(deptId)) {
-            return warn("部门存在用户,不允许删除");
+        try {
+            if (deptService.hasChildByDeptId(deptId)) {
+                return warn("存在下级部门,不允许删除");
+            }
+            /*if (deptService.checkDeptExistUser(deptId)) {
+                return warn("部门存在用户,不允许删除");
+            }*/
+            deptService.checkDeptDataScope(deptId);
+            return toAjax(deptService.deleteDeptById(deptId));
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
         }
-        deptService.checkDeptDataScope(deptId);
-        return toAjax(deptService.deleteDeptById(deptId));
     }
 }

+ 27 - 49
nightFragrance-admin/src/main/java/com/ylx/web/controller/system/SysUserController.java

@@ -3,6 +3,7 @@ package com.ylx.web.controller.system;
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
+
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -39,8 +40,7 @@ import com.ylx.system.service.ISysUserService;
  */
 @RestController
 @RequestMapping("/system/user")
-public class SysUserController extends BaseController
-{
+public class SysUserController extends BaseController {
     @Autowired
     private ISysUserService userService;
 
@@ -58,8 +58,7 @@ public class SysUserController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('system:user:list')")
     @GetMapping("/list")
-    public TableDataInfo list(SysUser user)
-    {
+    public TableDataInfo list(SysUser user) {
         startPage();
         List<SysUser> list = userService.selectUserList(user);
         return getDataTable(list);
@@ -68,8 +67,7 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:user:export')")
     @PostMapping("/export")
-    public void export(HttpServletResponse response, SysUser user)
-    {
+    public void export(HttpServletResponse response, SysUser user) {
         List<SysUser> list = userService.selectUserList(user);
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         util.exportExcel(response, list, "用户数据");
@@ -78,8 +76,7 @@ public class SysUserController extends BaseController
     @Log(title = "用户管理", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('system:user:import')")
     @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
-    {
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         List<SysUser> userList = util.importExcel(file.getInputStream());
         String operName = getUsername();
@@ -88,8 +85,7 @@ public class SysUserController extends BaseController
     }
 
     @PostMapping("/importTemplate")
-    public void importTemplate(HttpServletResponse response)
-    {
+    public void importTemplate(HttpServletResponse response) {
         ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
         util.importTemplateExcel(response, "用户数据");
     }
@@ -98,16 +94,14 @@ public class SysUserController extends BaseController
      * 根据用户编号获取详细信息
      */
     @PreAuthorize("@ss.hasPermi('system:user:query')")
-    @GetMapping(value = { "/", "/{userId}" })
-    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
-    {
+    @GetMapping(value = {"/", "/{userId}"})
+    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) {
         userService.checkUserDataScope(userId);
         AjaxResult ajax = AjaxResult.success();
         List<SysRole> roles = roleService.selectRoleAll();
         ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
         ajax.put("posts", postService.selectPostAll());
-        if (StringUtils.isNotNull(userId))
-        {
+        if (StringUtils.isNotNull(userId)) {
             SysUser sysUser = userService.selectUserById(userId);
             ajax.put(AjaxResult.DATA_TAG, sysUser);
             ajax.put("postIds", postService.selectPostListByUserId(userId));
@@ -122,18 +116,12 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:add')")
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@Validated @RequestBody SysUser user)
-    {
-        if (!userService.checkUserNameUnique(user))
-        {
+    public AjaxResult add(@Validated @RequestBody SysUser user) {
+        if (!userService.checkUserNameUnique(user)) {
             return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
-        }
-        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
-        {
+        } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
             return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
-        }
-        else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
-        {
+        } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
             return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         user.setCreateBy(getUsername());
@@ -147,20 +135,14 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@Validated @RequestBody SysUser user)
-    {
+    public AjaxResult edit(@Validated @RequestBody SysUser user) {
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
-        if (!userService.checkUserNameUnique(user))
-        {
+        if (!userService.checkUserNameUnique(user)) {
             return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
-        }
-        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
-        {
+        } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
             return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
-        }
-        else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
-        {
+        } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
             return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
         user.setUpdateBy(getUsername());
@@ -173,10 +155,8 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:remove')")
     @Log(title = "用户管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
-    public AjaxResult remove(@PathVariable Long[] userIds)
-    {
-        if (ArrayUtils.contains(userIds, getUserId()))
-        {
+    public AjaxResult remove(@PathVariable Long[] userIds) {
+        if (ArrayUtils.contains(userIds, getUserId())) {
             return error("当前用户不能删除");
         }
         return toAjax(userService.deleteUserByIds(userIds));
@@ -188,8 +168,7 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/resetPwd")
-    public AjaxResult resetPwd(@RequestBody SysUser user)
-    {
+    public AjaxResult resetPwd(@RequestBody SysUser user) {
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
@@ -203,8 +182,7 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/changeStatus")
-    public AjaxResult changeStatus(@RequestBody SysUser user)
-    {
+    public AjaxResult changeStatus(@RequestBody SysUser user) {
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
         user.setUpdateBy(getUsername());
@@ -216,8 +194,7 @@ public class SysUserController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('system:user:query')")
     @GetMapping("/authRole/{userId}")
-    public AjaxResult authRole(@PathVariable("userId") Long userId)
-    {
+    public AjaxResult authRole(@PathVariable("userId") Long userId) {
         AjaxResult ajax = AjaxResult.success();
         SysUser user = userService.selectUserById(userId);
         List<SysRole> roles = roleService.selectRolesByUserId(userId);
@@ -232,8 +209,7 @@ public class SysUserController extends BaseController
     @PreAuthorize("@ss.hasPermi('system:user:edit')")
     @Log(title = "用户管理", businessType = BusinessType.GRANT)
     @PutMapping("/authRole")
-    public AjaxResult insertAuthRole(Long userId, Long[] roleIds)
-    {
+    public AjaxResult insertAuthRole(Long userId, Long[] roleIds) {
         userService.checkUserDataScope(userId);
         userService.insertUserAuth(userId, roleIds);
         return success();
@@ -241,11 +217,13 @@ public class SysUserController extends BaseController
 
     /**
      * 获取部门树列表
+     *
+     * @param dept 部门信息
+     * @return AjaxResult 部门树信息集合
      */
     @PreAuthorize("@ss.hasPermi('system:user:list')")
     @GetMapping("/deptTree")
-    public AjaxResult deptTree(SysDept dept)
-    {
+    public AjaxResult deptTree(SysDept dept) {
         return success(deptService.selectDeptTreeList(dept));
     }
 }

+ 3 - 49
nightFragrance-common/src/main/java/com/ylx/common/core/domain/BaseEntity.java

@@ -1,21 +1,21 @@
 package com.ylx.common.core.domain;
-
 import java.io.Serializable;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
-
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
-
+import lombok.Data;
 /**
  * Entity基类
  *
  * @author ylx
  */
+@Data
 public class BaseEntity implements Serializable {
+
     private static final long serialVersionUID = 1L;
 
     /**
@@ -60,53 +60,7 @@ public class BaseEntity implements Serializable {
     @TableField(exist = false)
     private Map<String, Object> params;
 
-    public String getSearchValue() {
-        return searchValue;
-    }
-
-    public void setSearchValue(String searchValue) {
-        this.searchValue = searchValue;
-    }
-
-    public String getCreateBy() {
-        return createBy;
-    }
-
-    public void setCreateBy(String createBy) {
-        this.createBy = createBy;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public String getUpdateBy() {
-        return updateBy;
-    }
 
-    public void setUpdateBy(String updateBy) {
-        this.updateBy = updateBy;
-    }
-
-    public Date getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(Date updateTime) {
-        this.updateTime = updateTime;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
 
     public Map<String, Object> getParams() {
         if (params == null) {

+ 20 - 23
nightFragrance-common/src/main/java/com/ylx/common/core/domain/TreeSelect.java

@@ -3,6 +3,7 @@ package com.ylx.common.core.domain;
 import java.io.Serializable;
 import java.util.List;
 import java.util.stream.Collectors;
+
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.ylx.common.core.domain.entity.SysDept;
 import com.ylx.common.core.domain.entity.SysMenu;
@@ -12,66 +13,62 @@ import com.ylx.common.core.domain.entity.SysMenu;
  *
  * @author ylx
  */
-public class TreeSelect implements Serializable
-{
+public class TreeSelect implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    /** 节点ID */
+    /**
+     * 节点ID
+     */
     private Long id;
 
-    /** 节点名称 */
+    /**
+     * 节点名称
+     */
     private String label;
 
-    /** 子节点 */
+    /**
+     * 子节点
+     */
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
     private List<TreeSelect> children;
 
-    public TreeSelect()
-    {
+    public TreeSelect() {
 
     }
 
-    public TreeSelect(SysDept dept)
-    {
+    public TreeSelect(SysDept dept) {
         this.id = dept.getDeptId();
         this.label = dept.getDeptName();
         this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
     }
 
-    public TreeSelect(SysMenu menu)
-    {
+    public TreeSelect(SysMenu menu) {
         this.id = menu.getMenuId();
         this.label = menu.getMenuName();
         this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
     }
 
-    public Long getId()
-    {
+    public Long getId() {
         return id;
     }
 
-    public void setId(Long id)
-    {
+    public void setId(Long id) {
         this.id = id;
     }
 
-    public String getLabel()
-    {
+    public String getLabel() {
         return label;
     }
 
-    public void setLabel(String label)
-    {
+    public void setLabel(String label) {
         this.label = label;
     }
 
-    public List<TreeSelect> getChildren()
-    {
+    public List<TreeSelect> getChildren() {
         return children;
     }
 
-    public void setChildren(List<TreeSelect> children)
-    {
+    public void setChildren(List<TreeSelect> children) {
         this.children = children;
     }
 }

+ 30 - 104
nightFragrance-common/src/main/java/com/ylx/common/core/domain/entity/SysDept.java

@@ -7,6 +7,12 @@ import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ylx.common.core.domain.BaseEntity;
@@ -16,12 +22,16 @@ import com.ylx.common.core.domain.BaseEntity;
  *
  * @author ylx
  */
+@Data
+@TableName("sys_dept")
 public class SysDept extends BaseEntity {
+
     private static final long serialVersionUID = 1L;
 
     /**
      * 部门ID
      */
+    @TableId(type = IdType.AUTO)
     private Long deptId;
 
     /**
@@ -37,11 +47,24 @@ public class SysDept extends BaseEntity {
     /**
      * 部门名称
      */
+    @NotBlank(message = "部门名称不能为空")
+    @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
     private String deptName;
 
+    /**
+     * 城市编码
+     */
+    private String cityCode;
+
+    /**
+     * 城市名称
+     */
+    private String cityName;
+
     /**
      * 显示顺序
      */
+    @NotNull(message = "显示顺序不能为空")
     private Integer orderNum;
 
     /**
@@ -52,11 +75,14 @@ public class SysDept extends BaseEntity {
     /**
      * 联系电话
      */
+    @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
     private String phone;
 
     /**
      * 邮箱
      */
+    @Email(message = "邮箱格式不正确")
+    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
     private String email;
 
     /**
@@ -65,9 +91,10 @@ public class SysDept extends BaseEntity {
     private String status;
 
     /**
-     * 删除标志(0代表存在 2代表删除)
+     * 删除标志(0代表存在 1代表删除)
      */
-    private String delFlag;
+    @TableLogic
+    private Integer isDelete;
 
     /**
      * 父部门名称
@@ -79,107 +106,6 @@ public class SysDept extends BaseEntity {
      */
     private List<SysDept> children = new ArrayList<SysDept>();
 
-    public Long getDeptId() {
-        return deptId;
-    }
-
-    public void setDeptId(Long deptId) {
-        this.deptId = deptId;
-    }
-
-    public Long getParentId() {
-        return parentId;
-    }
-
-    public void setParentId(Long parentId) {
-        this.parentId = parentId;
-    }
-
-    public String getAncestors() {
-        return ancestors;
-    }
-
-    public void setAncestors(String ancestors) {
-        this.ancestors = ancestors;
-    }
-
-    @NotBlank(message = "部门名称不能为空")
-    @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
-    public String getDeptName() {
-        return deptName;
-    }
-
-    public void setDeptName(String deptName) {
-        this.deptName = deptName;
-    }
-
-    @NotNull(message = "显示顺序不能为空")
-    public Integer getOrderNum() {
-        return orderNum;
-    }
-
-    public void setOrderNum(Integer orderNum) {
-        this.orderNum = orderNum;
-    }
-
-    public String getLeader() {
-        return leader;
-    }
-
-    public void setLeader(String leader) {
-        this.leader = leader;
-    }
-
-    @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
-    public String getPhone() {
-        return phone;
-    }
-
-    public void setPhone(String phone) {
-        this.phone = phone;
-    }
-
-    @Email(message = "邮箱格式不正确")
-    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
-    public String getEmail() {
-        return email;
-    }
-
-    public void setEmail(String email) {
-        this.email = email;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getDelFlag() {
-        return delFlag;
-    }
-
-    public void setDelFlag(String delFlag) {
-        this.delFlag = delFlag;
-    }
-
-    public String getParentName() {
-        return parentName;
-    }
-
-    public void setParentName(String parentName) {
-        this.parentName = parentName;
-    }
-
-    public List<SysDept> getChildren() {
-        return children;
-    }
-
-    public void setChildren(List<SysDept> children) {
-        this.children = children;
-    }
 
     @Override
     public String toString() {
@@ -193,7 +119,7 @@ public class SysDept extends BaseEntity {
                 .append("phone", getPhone())
                 .append("email", getEmail())
                 .append("status", getStatus())
-                .append("delFlag", getDelFlag())
+                .append("isDelete", getIsDelete())
                 .append("createBy", getCreateBy())
                 .append("createTime", getCreateTime())
                 .append("updateBy", getUpdateBy())

+ 63 - 0
nightFragrance-massage/src/main/java/com/ylx/giftCard/controller/GiftCardOrderController.java

@@ -1,13 +1,76 @@
 package com.ylx.giftCard.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ylx.common.annotation.Log;
+import com.ylx.common.core.domain.R;
+import com.ylx.common.enums.BusinessType;
+import com.ylx.common.exception.ServiceException;
+import com.ylx.common.utils.poi.ExcelUtil;
+import com.ylx.giftCard.domain.dto.GiftCardOrderQueryDTO;
+import com.ylx.giftCard.domain.vo.GiftCardOrderExportVO;
+import com.ylx.giftCard.domain.vo.GiftCardOrderPageVO;
+import com.ylx.giftCard.service.IGiftCardOrderService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
 @RestController
 @RequestMapping("/gift/card/order")
 @Api(tags = {"购物卡订单"})
 @Slf4j
 public class GiftCardOrderController {
+
+    @Resource
+    private IGiftCardOrderService giftCardOrderService;
+
+    /**
+     * 分页查询购物卡订单
+     *
+     * @param page 分页参数
+     * @param dto 查询条件
+     * @return 购物卡订单分页列表
+     */
+    @GetMapping("/page")
+    @ApiOperation("分页查询购物卡订单")
+    public R<Page<GiftCardOrderPageVO>> page(Page<GiftCardOrderPageVO> page, GiftCardOrderQueryDTO dto) {
+        try {
+            return R.ok(giftCardOrderService.getAdminGiftCardOrderPage(page, dto));
+        } catch (ServiceException e) {
+            return R.fail(e.getMessage());
+        } catch (Exception e) {
+            log.error("分页查询购物卡订单异常", e);
+            return R.fail("分页查询购物卡订单失败");
+        }
+    }
+
+    /**
+     * 导出购物卡订单
+     *
+     * @param response 响应对象
+     * @param dto 查询条件
+     */
+    @PostMapping("/export")
+    @ApiOperation("导出购物卡订单")
+    @Log(title = "导出购物卡订单", businessType = BusinessType.EXPORT)
+    public void export(HttpServletResponse response, GiftCardOrderQueryDTO dto) {
+        try {
+            List<GiftCardOrderExportVO> list = giftCardOrderService.getAdminGiftCardOrderExportList(dto);
+            ExcelUtil<GiftCardOrderExportVO> util = new ExcelUtil<>(GiftCardOrderExportVO.class);
+            util.exportExcel(response, list, "购物卡订单");
+        } catch (ServiceException e) {
+            log.error("导出购物卡订单参数异常", e);
+            throw e;
+        } catch (Exception e) {
+            log.error("导出购物卡订单异常", e);
+            throw new RuntimeException("导出购物卡订单失败", e);
+        }
+    }
 }

+ 37 - 0
nightFragrance-massage/src/main/java/com/ylx/giftCard/domain/dto/GiftCardOrderQueryDTO.java

@@ -0,0 +1,37 @@
+package com.ylx.giftCard.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 购物卡订单分页查询DTO
+ */
+@Data
+@ApiModel("购物卡订单分页查询DTO")
+public class GiftCardOrderQueryDTO {
+
+    /**
+     * 用户姓名
+     */
+    @ApiModelProperty("用户姓名")
+    private String userName;
+
+    /**
+     * 商户姓名
+     */
+    @ApiModelProperty("商户姓名")
+    private String merchantName;
+
+    /**
+     * 下单开始时间
+     */
+    @ApiModelProperty("下单开始时间")
+    private String startTime;
+
+    /**
+     * 下单结束时间
+     */
+    @ApiModelProperty("下单结束时间")
+    private String endTime;
+}

+ 81 - 0
nightFragrance-massage/src/main/java/com/ylx/giftCard/domain/vo/GiftCardOrderExportVO.java

@@ -0,0 +1,81 @@
+package com.ylx.giftCard.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ylx.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 购物卡订单导出VO
+ */
+@Data
+@ApiModel("购物卡订单导出VO")
+public class GiftCardOrderExportVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单ID,导出展示购物卡订单编号
+     */
+    @Excel(name = "订单ID", sort = 1)
+    private String orderId;
+
+    /**
+     * 购物卡名称
+     */
+    @Excel(name = "购物卡名称", sort = 2)
+    private String giftCardName;
+
+    /**
+     * 订单金额
+     */
+    @Excel(name = "金额", sort = 3)
+    private BigDecimal payAmount;
+
+    /**
+     * 下单用户姓名
+     */
+    @Excel(name = "用户姓名", sort = 4)
+    private String userName;
+
+    /**
+     * 下单用户电话
+     */
+    @Excel(name = "用户电话", sort = 5)
+    private String userPhone;
+
+    /**
+     * 下单时间
+     */
+    @Excel(name = "下单时间", sort = 6, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date orderTime;
+
+    /**
+     * 商户提成金额
+     */
+    @Excel(name = "商户提成金额", sort = 7)
+    private BigDecimal commissionAmount;
+
+    /**
+     * 商户账户,取ma_technician.te_phone
+     */
+    @Excel(name = "商户账户", sort = 8)
+    private String merchantAccount;
+
+    /**
+     * 商户姓名
+     */
+    @Excel(name = "商户姓名", sort = 9)
+    private String merchantName;
+
+    /**
+     * 商户昵称
+     */
+    @Excel(name = "商户昵称", sort = 10)
+    private String merchantNickName;
+}

+ 93 - 0
nightFragrance-massage/src/main/java/com/ylx/giftCard/domain/vo/GiftCardOrderPageVO.java

@@ -0,0 +1,93 @@
+package com.ylx.giftCard.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 购物卡订单分页VO
+ */
+@Data
+@ApiModel("购物卡订单分页VO")
+public class GiftCardOrderPageVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单ID
+     */
+    @ApiModelProperty("订单ID")
+    private Long id;
+
+    /**
+     * 原型图展示的订单ID
+     */
+    @ApiModelProperty("原型图展示的订单ID")
+    private String orderId;
+
+    /**
+     * 订单编号
+     */
+    @ApiModelProperty("订单编号")
+    private String orderNo;
+
+    /**
+     * 购物卡名称
+     */
+    @ApiModelProperty("购物卡名称")
+    private String giftCardName;
+
+    /**
+     * 金额
+     */
+    @ApiModelProperty("金额")
+    private BigDecimal payAmount;
+
+    /**
+     * 用户姓名
+     */
+    @ApiModelProperty("用户姓名")
+    private String userName;
+
+    /**
+     * 用户电话
+     */
+    @ApiModelProperty("用户电话")
+    private String userPhone;
+
+    /**
+     * 下单时间
+     */
+    @ApiModelProperty("下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date orderTime;
+
+    /**
+     * 商户提成金额
+     */
+    @ApiModelProperty("商户提成金额")
+    private BigDecimal commissionAmount;
+
+    /**
+     * 商户账户,取ma_technician.te_phone
+     */
+    @ApiModelProperty("商户账户")
+    private String merchantAccount;
+
+    /**
+     * 商户姓名
+     */
+    @ApiModelProperty("商户姓名")
+    private String merchantName;
+
+    /**
+     * 商户昵称
+     */
+    @ApiModelProperty("商户昵称")
+    private String merchantNickName;
+}

+ 24 - 0
nightFragrance-massage/src/main/java/com/ylx/giftCard/mapper/GiftCardOrderMapper.java

@@ -3,13 +3,37 @@ package com.ylx.giftCard.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ylx.giftCard.domain.GiftCardOrder;
+import com.ylx.giftCard.domain.dto.GiftCardOrderQueryDTO;
 import com.ylx.giftCard.domain.dto.UserShoppingFundsDetailQueryDTO;
+import com.ylx.giftCard.domain.vo.GiftCardOrderExportVO;
+import com.ylx.giftCard.domain.vo.GiftCardOrderPageVO;
 import com.ylx.giftCard.domain.vo.UserShoppingFundsDetailItemVO;
 import com.ylx.giftCard.domain.vo.UserShoppingFundsSummaryVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface GiftCardOrderMapper extends BaseMapper<GiftCardOrder> {
 
+    /**
+     * 分页查询后台购物卡订单
+     *
+     * @param page 分页参数
+     * @param dto 查询条件
+     * @return 购物卡订单分页列表
+     */
+    Page<GiftCardOrderPageVO> selectAdminGiftCardOrderPage(
+            Page<GiftCardOrderPageVO> page,
+            @Param("dto") GiftCardOrderQueryDTO dto);
+
+    /**
+     * 查询后台购物卡订单导出列表
+     *
+     * @param dto 查询条件
+     * @return 购物卡订单导出列表
+     */
+    List<GiftCardOrderExportVO> selectAdminGiftCardOrderExportList(@Param("dto") GiftCardOrderQueryDTO dto);
+
     /**
      * 查询PC端用户购买购物卡明细
      *

+ 22 - 0
nightFragrance-massage/src/main/java/com/ylx/giftCard/service/IGiftCardOrderService.java

@@ -6,11 +6,16 @@ import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyV3Result;
 import com.ylx.common.core.domain.model.WxLoginUser;
 import com.ylx.giftCard.domain.GiftCard;
 import com.ylx.giftCard.domain.GiftCardOrder;
+import com.ylx.giftCard.domain.dto.GiftCardOrderQueryDTO;
 import com.ylx.giftCard.domain.dto.UserShoppingFundsDetailQueryDTO;
+import com.ylx.giftCard.domain.vo.GiftCardOrderExportVO;
+import com.ylx.giftCard.domain.vo.GiftCardOrderPageVO;
 import com.ylx.giftCard.domain.vo.UserShoppingFundsDetailItemVO;
 import com.ylx.giftCard.domain.vo.UserShoppingFundsDetailVO;
 import com.ylx.massage.domain.TWxUser;
 
+import java.util.List;
+
 public interface IGiftCardOrderService extends IService<GiftCardOrder> {
 
     GiftCardOrder buildOrder(GiftCard card, Integer quantity, String merchantId, WxLoginUser wxLoginUser);
@@ -19,6 +24,23 @@ public interface IGiftCardOrderService extends IService<GiftCardOrder> {
 
     void processGiftCardPayment(WxPayOrderNotifyV3Result.DecryptNotifyResult result, TWxUser wxUser, GiftCardOrder cardOrder);
 
+    /**
+     * 分页查询后台购物卡订单
+     *
+     * @param page 分页参数
+     * @param dto 查询条件
+     * @return 购物卡订单分页列表
+     */
+    Page<GiftCardOrderPageVO> getAdminGiftCardOrderPage(Page<GiftCardOrderPageVO> page, GiftCardOrderQueryDTO dto);
+
+    /**
+     * 查询后台购物卡订单导出列表
+     *
+     * @param dto 查询条件
+     * @return 购物卡订单导出列表
+     */
+    List<GiftCardOrderExportVO> getAdminGiftCardOrderExportList(GiftCardOrderQueryDTO dto);
+
     /**
      * 查询PC端用户购物金明细
      *

+ 31 - 0
nightFragrance-massage/src/main/java/com/ylx/giftCard/service/impl/GiftCardOrderServiceImpl.java

@@ -11,7 +11,10 @@ import com.ylx.common.exception.ServiceException;
 import com.ylx.common.utils.DateUtils;
 import com.ylx.giftCard.domain.GiftCard;
 import com.ylx.giftCard.domain.GiftCardOrder;
+import com.ylx.giftCard.domain.dto.GiftCardOrderQueryDTO;
 import com.ylx.giftCard.domain.dto.UserShoppingFundsDetailQueryDTO;
+import com.ylx.giftCard.domain.vo.GiftCardOrderExportVO;
+import com.ylx.giftCard.domain.vo.GiftCardOrderPageVO;
 import com.ylx.giftCard.domain.vo.UserShoppingFundsDetailItemVO;
 import com.ylx.giftCard.domain.vo.UserShoppingFundsDetailVO;
 import com.ylx.giftCard.domain.vo.UserShoppingFundsSummaryVO;
@@ -34,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.List;
 
 @Slf4j // 添加日志注解
 @Service
@@ -151,6 +155,20 @@ public class GiftCardOrderServiceImpl extends ServiceImpl<GiftCardOrderMapper, G
         shoppingFundsDetailService.addShoppingFundsDetail(dto);
     }
 
+    @Override
+    public Page<GiftCardOrderPageVO> getAdminGiftCardOrderPage(Page<GiftCardOrderPageVO> page, GiftCardOrderQueryDTO dto) {
+        GiftCardOrderQueryDTO query = dto == null ? new GiftCardOrderQueryDTO() : dto;
+        normalizeOrderTimeRange(query);
+        return baseMapper.selectAdminGiftCardOrderPage(page, query);
+    }
+
+    @Override
+    public List<GiftCardOrderExportVO> getAdminGiftCardOrderExportList(GiftCardOrderQueryDTO dto) {
+        GiftCardOrderQueryDTO query = dto == null ? new GiftCardOrderQueryDTO() : dto;
+        normalizeOrderTimeRange(query);
+        return baseMapper.selectAdminGiftCardOrderExportList(query);
+    }
+
     @Override
     public UserShoppingFundsDetailVO getPcUserShoppingFundsDetail(Page<UserShoppingFundsDetailItemVO> page, UserShoppingFundsDetailQueryDTO dto) {
         validateShoppingFundsDetailQuery(dto);
@@ -207,6 +225,19 @@ public class GiftCardOrderServiceImpl extends ServiceImpl<GiftCardOrderMapper, G
         }
     }
 
+    /**
+     * 格式化购物卡订单查询时间范围
+     * @param dto
+     */
+    private void normalizeOrderTimeRange(GiftCardOrderQueryDTO dto) {
+        if (StringUtils.isNotBlank(dto.getStartTime()) && dto.getStartTime().trim().length() == 10) {
+            dto.setStartTime(dto.getStartTime().trim() + " 00:00:00");
+        }
+        if (StringUtils.isNotBlank(dto.getEndTime()) && dto.getEndTime().trim().length() == 10) {
+            dto.setEndTime(dto.getEndTime().trim() + " 23:59:59");
+        }
+    }
+
     private BigDecimal defaultAmount(BigDecimal amount) {
         return amount == null ? BigDecimal.ZERO : amount;
     }

+ 5 - 1
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TGeoFenceServiceImpl.java

@@ -156,11 +156,15 @@ public class TGeoFenceServiceImpl extends ServiceImpl<TGeoFenceMapper, TGeoFence
         return riskLevel != null && (riskLevel == RISK_LOW || riskLevel == RISK_MEDIUM || riskLevel == RISK_HIGH);
     }
 
+    /**
+     * 构建查询条件。
+     * @param geoFence
+     * @return LambdaQueryWrapper<TGeoFence>
+     */
     private LambdaQueryWrapper<TGeoFence> buildQueryWrapper(TGeoFence geoFence) {
         LambdaQueryWrapper<TGeoFence> queryWrapper = new LambdaQueryWrapper<>();
         if (geoFence != null) {
             queryWrapper.eq(StringUtils.isNotBlank(geoFence.getCityCode()), TGeoFence::getCityCode, geoFence.getCityCode())
-                    .eq(StringUtils.isNotBlank(geoFence.getCityName()), TGeoFence::getCityName, geoFence.getCityName())
                     .like(StringUtils.isNotBlank(geoFence.getFenceName()), TGeoFence::getFenceName, geoFence.getFenceName())
                     .like(StringUtils.isNotBlank(geoFence.getAddress()), TGeoFence::getAddress, geoFence.getAddress());
         }

+ 66 - 0
nightFragrance-massage/src/main/resources/mapper/giftCard/GiftCardOrderMapper.xml

@@ -4,6 +4,72 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ylx.giftCard.mapper.GiftCardOrderMapper">
 
+    <select id="selectAdminGiftCardOrderPage" resultType="com.ylx.giftCard.domain.vo.GiftCardOrderPageVO">
+        SELECT
+            gco.id,
+            gco.order_no AS orderId,
+            gco.order_no AS orderNo,
+            gco.gift_card_name AS giftCardName,
+            gco.pay_amount AS payAmount,
+            gco.user_name AS userName,
+            gco.user_phone AS userPhone,
+            gco.create_time AS orderTime,
+            gco.commission_amount AS commissionAmount,
+            mt.te_phone AS merchantAccount,
+            gco.merchant_name AS merchantName,
+            gco.merchant_nick_name AS merchantNickName
+        FROM gift_card_order gco
+        LEFT JOIN ma_technician mt ON mt.id = gco.merchant_id
+        <where>
+            <if test="dto.userName != null and dto.userName != ''">
+                AND gco.user_name LIKE CONCAT('%', #{dto.userName}, '%')
+            </if>
+            <if test="dto.merchantName != null and dto.merchantName != ''">
+                AND gco.merchant_name LIKE CONCAT('%', #{dto.merchantName}, '%')
+            </if>
+            <if test="dto.startTime != null and dto.startTime != ''">
+                AND gco.create_time &gt;= #{dto.startTime}
+            </if>
+            <if test="dto.endTime != null and dto.endTime != ''">
+                AND gco.create_time &lt;= #{dto.endTime}
+            </if>
+        </where>
+        ORDER BY
+            gco.create_time DESC
+    </select>
+
+    <select id="selectAdminGiftCardOrderExportList" resultType="com.ylx.giftCard.domain.vo.GiftCardOrderExportVO">
+        SELECT
+            gco.id AS orderId,
+            gco.gift_card_name AS giftCardName,
+            gco.pay_amount AS payAmount,
+            gco.user_name AS userName,
+            gco.user_phone AS userPhone,
+            gco.create_time AS orderTime,
+            gco.commission_amount AS commissionAmount,
+            mt.te_phone AS merchantAccount,
+            gco.merchant_name AS merchantName,
+            gco.merchant_nick_name AS merchantNickName
+        FROM gift_card_order gco
+        LEFT JOIN ma_technician mt ON mt.id = gco.merchant_id
+        <where>
+            <if test="dto.userName != null and dto.userName != ''">
+                AND gco.user_name LIKE CONCAT('%', #{dto.userName}, '%')
+            </if>
+            <if test="dto.merchantName != null and dto.merchantName != ''">
+                AND gco.merchant_name LIKE CONCAT('%', #{dto.merchantName}, '%')
+            </if>
+            <if test="dto.startTime != null and dto.startTime != ''">
+                AND gco.create_time &gt;= #{dto.startTime}
+            </if>
+            <if test="dto.endTime != null and dto.endTime != ''">
+                AND gco.create_time &lt;= #{dto.endTime}
+            </if>
+        </where>
+        ORDER BY
+            gco.create_time DESC
+    </select>
+
     <select id="selectPcPurchaseShoppingFundsDetail" resultType="com.ylx.giftCard.domain.vo.UserShoppingFundsDetailItemVO">
         SELECT
             gco.order_no AS orderNo,

+ 53 - 0
nightFragrance-massage/src/test/java/com/ylx/giftCard/mapper/GiftCardOrderMapperXmlTest.java

@@ -3,6 +3,8 @@ package com.ylx.giftCard.mapper;
 import org.junit.jupiter.api.Test;
 
 import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.nio.charset.StandardCharsets;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -24,6 +26,57 @@ public class GiftCardOrderMapperXmlTest {
         assertTrue(xml.contains("gco.create_time DESC"));
     }
 
+    @Test
+    public void adminGiftCardOrderPageSqlJoinsMerchantPhoneAndFiltersPrototypeFields() throws Exception {
+        String xml = readMapperXml();
+
+        assertTrue(xml.contains("selectAdminGiftCardOrderPage"));
+        assertTrue(xml.contains("gco.order_no AS orderId"));
+        assertTrue(xml.contains("gco.order_no AS orderNo"));
+        assertTrue(xml.contains("LEFT JOIN ma_technician mt ON mt.id = gco.merchant_id"));
+        assertTrue(xml.contains("mt.te_phone AS merchantAccount"));
+        assertTrue(xml.contains("gco.user_name LIKE CONCAT('%', #{dto.userName}, '%')"));
+        assertTrue(xml.contains("gco.merchant_name LIKE CONCAT('%', #{dto.merchantName}, '%')"));
+        assertTrue(xml.contains("gco.create_time &gt;= #{dto.startTime}"));
+        assertTrue(xml.contains("gco.create_time &lt;= #{dto.endTime}"));
+        assertTrue(xml.contains("gco.create_time DESC"));
+    }
+
+    @Test
+    public void adminGiftCardOrderExportSqlExportsAllListColumnsWithSameFilters() throws Exception {
+        String xml = readMapperXml();
+
+        assertTrue(xml.contains("selectAdminGiftCardOrderExportList"));
+        assertTrue(xml.contains("gco.order_no AS orderId"));
+        assertTrue(xml.contains("gco.gift_card_name AS giftCardName"));
+        assertTrue(xml.contains("gco.pay_amount AS payAmount"));
+        assertTrue(xml.contains("gco.user_name AS userName"));
+        assertTrue(xml.contains("gco.user_phone AS userPhone"));
+        assertTrue(xml.contains("gco.create_time AS orderTime"));
+        assertTrue(xml.contains("gco.commission_amount AS commissionAmount"));
+        assertTrue(xml.contains("mt.te_phone AS merchantAccount"));
+        assertTrue(xml.contains("gco.merchant_name AS merchantName"));
+        assertTrue(xml.contains("gco.merchant_nick_name AS merchantNickName"));
+        assertTrue(xml.contains("LEFT JOIN ma_technician mt ON mt.id = gco.merchant_id"));
+    }
+
+    @Test
+    public void giftCardOrderExportVoUsesPrototypeColumnNames() throws Exception {
+        String source = new String(Files.readAllBytes(Paths.get(
+                "src/main/java/com/ylx/giftCard/domain/vo/GiftCardOrderExportVO.java")), StandardCharsets.UTF_8);
+
+        assertTrue(source.contains("@Excel(name = \"订单ID\", sort = 1)"));
+        assertTrue(source.contains("@Excel(name = \"购物卡名称\", sort = 2)"));
+        assertTrue(source.contains("@Excel(name = \"金额\", sort = 3)"));
+        assertTrue(source.contains("@Excel(name = \"用户姓名\", sort = 4)"));
+        assertTrue(source.contains("@Excel(name = \"用户电话\", sort = 5)"));
+        assertTrue(source.contains("@Excel(name = \"下单时间\", sort = 6"));
+        assertTrue(source.contains("@Excel(name = \"商户提成金额\", sort = 7)"));
+        assertTrue(source.contains("@Excel(name = \"商户账户\", sort = 8)"));
+        assertTrue(source.contains("@Excel(name = \"商户姓名\", sort = 9)"));
+        assertTrue(source.contains("@Excel(name = \"商户昵称\", sort = 10)"));
+    }
+
     private String readMapperXml() throws Exception {
         try (InputStream inputStream = getClass().getClassLoader()
                 .getResourceAsStream("mapper/giftCard/GiftCardOrderMapper.xml")) {

+ 39 - 0
nightFragrance-system/src/main/java/com/ylx/system/domain/dto/SysDeptPageQueryDTO.java

@@ -0,0 +1,39 @@
+package com.ylx.system.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 部门分页查询DTO
+ */
+@Data
+public class SysDeptPageQueryDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 部门ID
+     */
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 部门状态:0正常,1停用
+     */
+    private String status;
+
+    /**
+     * 创建开始时间
+     */
+    private String startTime;
+
+    /**
+     * 创建结束时间
+     */
+    private String endTime;
+}

+ 15 - 3
nightFragrance-system/src/main/java/com/ylx/system/mapper/SysDeptMapper.java

@@ -1,16 +1,19 @@
 package com.ylx.system.mapper;
 
 import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import com.ylx.common.core.domain.entity.SysDept;
+import com.ylx.system.domain.dto.SysDeptPageQueryDTO;
 
 /**
  * 部门管理 数据层
  *
  * @author ylx
  */
-public interface SysDeptMapper
-{
+public interface SysDeptMapper extends BaseMapper<SysDept> {
     /**
      * 查询部门管理数据
      *
@@ -19,10 +22,19 @@ public interface SysDeptMapper
      */
     public List<SysDept> selectDeptList(SysDept dept);
 
+    /**
+     * 分页查询部门管理数据
+     *
+     * @param page 分页参数
+     * @param dto  查询条件
+     * @return 部门分页信息
+     */
+    public Page<SysDept> selectDeptPage(Page<SysDept> page, @Param("dto") SysDeptPageQueryDTO dto);
+
     /**
      * 根据角色ID查询部门树信息
      *
-     * @param roleId 角色ID
+     * @param roleId            角色ID
      * @param deptCheckStrictly 部门树选择项是否关联显示
      * @return 选中部门列表
      */

+ 14 - 2
nightFragrance-system/src/main/java/com/ylx/system/service/ISysDeptService.java

@@ -1,16 +1,19 @@
 package com.ylx.system.service;
 
 import java.util.List;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ylx.common.core.domain.TreeSelect;
 import com.ylx.common.core.domain.entity.SysDept;
+import com.ylx.system.domain.dto.SysDeptPageQueryDTO;
 
 /**
  * 部门管理 服务层
  *
  * @author ylx
  */
-public interface ISysDeptService
-{
+public interface ISysDeptService extends IService<SysDept> {
     /**
      * 查询部门管理数据
      *
@@ -19,6 +22,15 @@ public interface ISysDeptService
      */
     public List<SysDept> selectDeptList(SysDept dept);
 
+    /**
+     * 分页查询部门管理数据
+     *
+     * @param page 分页参数
+     * @param dto  查询条件
+     * @return 部门分页信息
+     */
+    public Page<SysDept> selectDeptPage(Page<SysDept> page, SysDeptPageQueryDTO dto);
+
     /**
      * 查询部门树结构信息
      *

+ 71 - 77
nightFragrance-system/src/main/java/com/ylx/system/service/impl/SysDeptServiceImpl.java

@@ -1,9 +1,10 @@
 package com.ylx.system.service.impl;
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ylx.common.annotation.DataScope;
@@ -17,18 +18,18 @@ import com.ylx.common.exception.ServiceException;
 import com.ylx.common.utils.SecurityUtils;
 import com.ylx.common.utils.StringUtils;
 import com.ylx.common.utils.spring.SpringUtils;
+import com.ylx.system.domain.dto.SysDeptPageQueryDTO;
 import com.ylx.system.mapper.SysDeptMapper;
 import com.ylx.system.mapper.SysRoleMapper;
 import com.ylx.system.service.ISysDeptService;
-
 /**
  * 部门管理 服务实现
  *
  * @author ylx
  */
 @Service
-public class SysDeptServiceImpl implements ISysDeptService
-{
+public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> implements ISysDeptService {
+
     @Autowired
     private SysDeptMapper deptMapper;
 
@@ -43,11 +44,38 @@ public class SysDeptServiceImpl implements ISysDeptService
      */
     @Override
 //    @DataScope(deptAlias = "d")
-    public List<SysDept> selectDeptList(SysDept dept)
-    {
+    public List<SysDept> selectDeptList(SysDept dept) {
         return deptMapper.selectDeptList(dept);
     }
 
+    /**
+     * 分页查询部门管理数据
+     *
+     * @param page 分页参数
+     * @param dto 查询条件
+     * @return 部门分页信息
+     */
+    @Override
+    public Page<SysDept> selectDeptPage(Page<SysDept> page, SysDeptPageQueryDTO dto) {
+        SysDeptPageQueryDTO query = dto == null ? new SysDeptPageQueryDTO() : dto;
+        normalizeDeptPageTimeRange(query);
+        return deptMapper.selectDeptPage(page, query);
+    }
+
+    /**
+     * 格式化部门分页查询创建时间范围
+     *
+     * @param dto 查询条件
+     */
+    private void normalizeDeptPageTimeRange(SysDeptPageQueryDTO dto) {
+        if (StringUtils.isNotBlank(dto.getStartTime()) && dto.getStartTime().trim().length() == 10) {
+            dto.setStartTime(dto.getStartTime().trim() + " 00:00:00");
+        }
+        if (StringUtils.isNotBlank(dto.getEndTime()) && dto.getEndTime().trim().length() == 10) {
+            dto.setEndTime(dto.getEndTime().trim() + " 23:59:59");
+        }
+    }
+
     /**
      * 查询部门树结构信息
      *
@@ -55,8 +83,7 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 部门树信息集合
      */
     @Override
-    public List<TreeSelect> selectDeptTreeList(SysDept dept)
-    {
+    public List<TreeSelect> selectDeptTreeList(SysDept dept) {
 //        List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
         List<SysDept> sysDepts = selectDeptList(dept);
         return buildDeptTreeSelect(sysDepts);
@@ -69,21 +96,17 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 树结构列表
      */
     @Override
-    public List<SysDept> buildDeptTree(List<SysDept> depts)
-    {
+    public List<SysDept> buildDeptTree(List<SysDept> depts) {
         List<SysDept> returnList = new ArrayList<SysDept>();
         List<Long> tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList());
-        for (SysDept dept : depts)
-        {
+        for (SysDept dept : depts) {
             // 如果是顶级节点, 遍历该父节点的所有子节点
-            if (!tempList.contains(dept.getParentId()))
-            {
+            if (!tempList.contains(dept.getParentId())) {
                 recursionFn(depts, dept);
                 returnList.add(dept);
             }
         }
-        if (returnList.isEmpty())
-        {
+        if (returnList.isEmpty()) {
             returnList = depts;
         }
         return returnList;
@@ -96,8 +119,7 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 下拉树结构列表
      */
     @Override
-    public List<TreeSelect> buildDeptTreeSelect(List<SysDept> depts)
-    {
+    public List<TreeSelect> buildDeptTreeSelect(List<SysDept> depts) {
         List<SysDept> deptTrees = buildDeptTree(depts);
         return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
     }
@@ -109,8 +131,7 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 选中部门列表
      */
     @Override
-    public List<Long> selectDeptListByRoleId(Long roleId)
-    {
+    public List<Long> selectDeptListByRoleId(Long roleId) {
         SysRole role = roleMapper.selectRoleById(roleId);
         return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly());
     }
@@ -122,8 +143,7 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 部门信息
      */
     @Override
-    public SysDept selectDeptById(Long deptId)
-    {
+    public SysDept selectDeptById(Long deptId) {
         return deptMapper.selectDeptById(deptId);
     }
 
@@ -134,8 +154,7 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 子部门数
      */
     @Override
-    public int selectNormalChildrenDeptById(Long deptId)
-    {
+    public int selectNormalChildrenDeptById(Long deptId) {
         return deptMapper.selectNormalChildrenDeptById(deptId);
     }
 
@@ -146,8 +165,7 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 结果
      */
     @Override
-    public boolean hasChildByDeptId(Long deptId)
-    {
+    public boolean hasChildByDeptId(Long deptId) {
         int result = deptMapper.hasChildByDeptId(deptId);
         return result > 0;
     }
@@ -159,8 +177,7 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 结果 true 存在 false 不存在
      */
     @Override
-    public boolean checkDeptExistUser(Long deptId)
-    {
+    public boolean checkDeptExistUser(Long deptId) {
         int result = deptMapper.checkDeptExistUser(deptId);
         return result > 0;
     }
@@ -169,15 +186,13 @@ public class SysDeptServiceImpl implements ISysDeptService
      * 校验部门名称是否唯一
      *
      * @param dept 部门信息
-     * @return 结果
+     * @return boolean 结果
      */
     @Override
-    public boolean checkDeptNameUnique(SysDept dept)
-    {
+    public boolean checkDeptNameUnique(SysDept dept) {
         Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId();
         SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId());
-        if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue())
-        {
+        if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -189,15 +204,12 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @param deptId 部门id
      */
     @Override
-    public void checkDeptDataScope(Long deptId)
-    {
-        if (!SysUser.isAdmin(SecurityUtils.getUserId()))
-        {
+    public void checkDeptDataScope(Long deptId) {
+        if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
             SysDept dept = new SysDept();
             dept.setDeptId(deptId);
             List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
-            if (StringUtils.isEmpty(depts))
-            {
+            if (StringUtils.isEmpty(depts)) {
                 throw new ServiceException("没有权限访问部门数据!");
             }
         }
@@ -210,12 +222,10 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 结果
      */
     @Override
-    public int insertDept(SysDept dept)
-    {
+    public int insertDept(SysDept dept) {
         SysDept info = deptMapper.selectDeptById(dept.getParentId());
         // 如果父节点不为正常状态,则不允许新增子节点
-        if (!UserConstants.DEPT_NORMAL.equals(info.getStatus()))
-        {
+        if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) {
             throw new ServiceException("部门停用,不允许新增");
         }
         dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
@@ -229,21 +239,17 @@ public class SysDeptServiceImpl implements ISysDeptService
      * @return 结果
      */
     @Override
-    public int updateDept(SysDept dept)
-    {
+    public int updateDept(SysDept dept) {
         SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId());
         SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId());
-        if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept))
-        {
+        if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) {
             String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId();
             String oldAncestors = oldDept.getAncestors();
             dept.setAncestors(newAncestors);
             updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors);
         }
         int result = deptMapper.updateDept(dept);
-        if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
-                && !StringUtils.equals("0", dept.getAncestors()))
-        {
+        if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) && !StringUtils.equals("0", dept.getAncestors())) {
             // 如果该部门是启用状态,则启用该部门的所有上级部门
             updateParentDeptStatusNormal(dept);
         }
@@ -255,8 +261,7 @@ public class SysDeptServiceImpl implements ISysDeptService
      *
      * @param dept 当前部门
      */
-    private void updateParentDeptStatusNormal(SysDept dept)
-    {
+    private void updateParentDeptStatusNormal(SysDept dept) {
         String ancestors = dept.getAncestors();
         Long[] deptIds = Convert.toLongArray(ancestors);
         deptMapper.updateDeptStatusNormal(deptIds);
@@ -265,19 +270,16 @@ public class SysDeptServiceImpl implements ISysDeptService
     /**
      * 修改子元素关系
      *
-     * @param deptId 被修改的部门ID
+     * @param deptId       被修改的部门ID
      * @param newAncestors 新的父ID集合
      * @param oldAncestors 旧的父ID集合
      */
-    public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors)
-    {
+    public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) {
         List<SysDept> children = deptMapper.selectChildrenDeptById(deptId);
-        for (SysDept child : children)
-        {
+        for (SysDept child : children) {
             child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors));
         }
-        if (children.size() > 0)
-        {
+        if (children.size() > 0) {
             deptMapper.updateDeptChildren(children);
         }
     }
@@ -286,26 +288,22 @@ public class SysDeptServiceImpl implements ISysDeptService
      * 删除部门管理信息
      *
      * @param deptId 部门ID
-     * @return 结果
+     * @return int 结果
      */
     @Override
-    public int deleteDeptById(Long deptId)
-    {
-        return deptMapper.deleteDeptById(deptId);
+    public int deleteDeptById(Long deptId) {
+        return deptMapper.deleteById(deptId);
     }
 
     /**
      * 递归列表
      */
-    private void recursionFn(List<SysDept> list, SysDept t)
-    {
+    private void recursionFn(List<SysDept> list, SysDept t) {
         // 得到子节点列表
         List<SysDept> childList = getChildList(list, t);
         t.setChildren(childList);
-        for (SysDept tChild : childList)
-        {
-            if (hasChild(list, tChild))
-            {
+        for (SysDept tChild : childList) {
+            if (hasChild(list, tChild)) {
                 recursionFn(list, tChild);
             }
         }
@@ -314,15 +312,12 @@ public class SysDeptServiceImpl implements ISysDeptService
     /**
      * 得到子节点列表
      */
-    private List<SysDept> getChildList(List<SysDept> list, SysDept t)
-    {
+    private List<SysDept> getChildList(List<SysDept> list, SysDept t) {
         List<SysDept> tlist = new ArrayList<SysDept>();
         Iterator<SysDept> it = list.iterator();
-        while (it.hasNext())
-        {
+        while (it.hasNext()) {
             SysDept n = (SysDept) it.next();
-            if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue())
-            {
+            if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) {
                 tlist.add(n);
             }
         }
@@ -332,8 +327,7 @@ public class SysDeptServiceImpl implements ISysDeptService
     /**
      * 判断是否有子节点
      */
-    private boolean hasChild(List<SysDept> list, SysDept t)
-    {
+    private boolean hasChild(List<SysDept> list, SysDept t) {
         return getChildList(list, t).size() > 0;
     }
 }

+ 39 - 11
nightFragrance-system/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -9,12 +9,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="parentId"   column="parent_id"   />
 		<result property="ancestors"  column="ancestors"   />
 		<result property="deptName"   column="dept_name"   />
+		<result property="cityCode"   column="city_code"   />
+		<result property="cityName"   column="city_name"   />
 		<result property="orderNum"   column="order_num"   />
 		<result property="leader"     column="leader"      />
 		<result property="phone"      column="phone"       />
 		<result property="email"      column="email"       />
 		<result property="status"     column="status"      />
-		<result property="delFlag"    column="del_flag"    />
+		<result property="isDelete"    column="is_delete"   />
 		<result property="parentName" column="parent_name" />
 		<result property="createBy"   column="create_by"   />
 		<result property="createTime" column="create_time" />
@@ -23,13 +25,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 
 	<sql id="selectDeptVo">
-        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
+        select d.dept_id, d.parent_id, d.ancestors, d.dept_name,d.city_code,d.city_name, d.order_num, d.leader, d.phone, d.email, d.status, d.is_delete, d.create_by, d.create_time
         from sys_dept d
     </sql>
 
+	<!-- 查询部门列表 -->
 	<select id="selectDeptList" parameterType="SysDept" resultMap="SysDeptResult">
         <include refid="selectDeptVo"/>
-        where d.del_flag = '0'
+        where d.is_delete = 0
 		<if test="deptId != null and deptId != 0">
 			AND dept_id = #{deptId}
 		</if>
@@ -47,6 +50,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		order by d.parent_id, d.order_num
     </select>
 
+	<!-- 分页查询部门列表 -->
+	<select id="selectDeptPage" resultMap="SysDeptResult">
+        <include refid="selectDeptVo"/>
+        where d.is_delete = 0
+		<if test="dto.deptId != null and dto.deptId != 0">
+			AND dept_id = #{dto.deptId}
+		</if>
+		<if test="dto.deptName != null and dto.deptName != ''">
+			AND dept_name like concat('%', #{dto.deptName}, '%')
+		</if>
+		<if test="dto.status != null and dto.status != ''">
+			AND status = #{dto.status}
+		</if>
+		<if test="dto.startTime != null and dto.startTime != ''">
+			AND d.create_time &gt;= #{dto.startTime}
+		</if>
+		<if test="dto.endTime != null and dto.endTime != ''">
+			AND d.create_time &lt;= #{dto.endTime}
+		</if>
+		order by d.parent_id, d.order_num
+    </select>
+
     <select id="selectDeptListByRoleId" resultType="Long">
 		select d.dept_id
 		from sys_dept d
@@ -69,9 +94,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0'
 	</select>
 
+	<!-- 查询部门是否存在下级部门 -->
 	<select id="hasChildByDeptId" parameterType="Long" resultType="int">
 		select count(1) from sys_dept
-		where del_flag = '0' and parent_id = #{deptId} limit 1
+		where is_delete = 0 and parent_id = #{deptId} limit 1
 	</select>
 
 	<select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
@@ -79,20 +105,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</select>
 
 	<select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int">
-		select count(*) from sys_dept where status = 0 and del_flag = '0' and find_in_set(#{deptId}, ancestors)
+		select count(*) from sys_dept where status = 0 and is_delete = 0 and find_in_set(#{deptId}, ancestors)
 	</select>
 
+	<!-- 校验部门名称是否唯一 -->
 	<select id="checkDeptNameUnique" resultMap="SysDeptResult">
 	    <include refid="selectDeptVo"/>
-		where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
+		where dept_name=#{deptName} and parent_id = #{parentId} and is_delete = 0 limit 1
 	</select>
 
+	<!-- 新增部门 -->
     <insert id="insertDept" parameterType="SysDept">
  		insert into sys_dept(
  			<if test="deptId != null and deptId != 0">dept_id,</if>
  			<if test="parentId != null and parentId != 0">parent_id,</if>
  			<if test="deptName != null and deptName != ''">dept_name,</if>
- 			<if test="ancestors != null and ancestors != ''">ancestors,</if>
+			<if test="cityCode != null and cityCode != ''">city_code,</if>
+			<if test="cityName != null and cityName != ''">city_name,</if>
+			<if test="ancestors != null and ancestors != ''">ancestors,</if>
  			<if test="orderNum != null">order_num,</if>
  			<if test="leader != null and leader != ''">leader,</if>
  			<if test="phone != null and phone != ''">phone,</if>
@@ -104,6 +134,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="deptId != null and deptId != 0">#{deptId},</if>
  			<if test="parentId != null and parentId != 0">#{parentId},</if>
  			<if test="deptName != null and deptName != ''">#{deptName},</if>
+			<if test="cityCode != null and cityCode != ''">#{cityCode},</if>
+			<if test="cityName != null and cityName != ''">#{cityName},</if>
  			<if test="ancestors != null and ancestors != ''">#{ancestors},</if>
  			<if test="orderNum != null">#{orderNum},</if>
  			<if test="leader != null and leader != ''">#{leader},</if>
@@ -152,8 +184,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
 	</update>
 
-	<delete id="deleteDeptById" parameterType="Long">
-		update sys_dept set del_flag = '2' where dept_id = #{deptId}
-	</delete>
-
 </mapper>