ZQN
2024-06-17 951feaeef11f38701290ced94f71c9e103a419bf
企业信息管理,验证码登录,惠企政策添加
2 文件已重命名
19个文件已添加
11个文件已修改
1426 ■■■■■ 已修改文件
project-admin/src/main/java/com/project/admin/controller/monitor/SysUserOnlineController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-admin/src/main/java/com/project/admin/controller/system/SysDocController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-admin/src/main/java/com/project/admin/controller/system/SysRegionController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-admin/src/main/resources/application.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-common/src/main/java/com/project/common/core/domain/entity/SysUser.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java 146 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/SysCompany.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/SysDoc.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/editBo/SysCompanyBo.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/editBo/SysDocBo.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/editBo/UserPhoneLoginBo.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/queryBo/RegionQueryBo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/queryBo/SysCompanyQueryBo.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/queryBo/SysDocQueryBo.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/bo/queryBo/SysUserOnlineQueryBo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/vo/SysCompanyVo.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/domain/vo/SysDocVo.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/mapper/SysCompanyMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/mapper/SysDocMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/mapper/SysUserMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/service/ISysCompanyService.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/service/ISysDocService.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/service/ISysRegionService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/service/impl/SysDocServiceImpl.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/java/com/project/system/service/impl/SysRegionServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/resources/mapper/system/SysCompanyMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/resources/mapper/system/SysDocMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-system/src/main/resources/mapper/system/SysUserMapper.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
project-admin/src/main/java/com/project/admin/controller/monitor/SysUserOnlineController.java
@@ -5,7 +5,7 @@
import java.util.Collections;
import java.util.List;
import com.project.system.domain.bo.SysUserOnlineQueryBo;
import com.project.system.domain.bo.queryBo.SysUserOnlineQueryBo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java
New file
@@ -0,0 +1,106 @@
package com.project.admin.controller.system;
import java.util.List;
import java.util.Arrays;
import com.project.common.annotation.RepeatSubmit;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.project.common.annotation.Log;
import com.project.common.core.controller.BaseController;
import com.project.common.core.domain.AjaxResult;
import com.project.common.enums.BusinessType;
import com.project.system.domain.vo.SysCompanyVo;
import com.project.system.domain.bo.editBo.SysCompanyBo;
import com.project.system.domain.bo.queryBo.SysCompanyQueryBo;
import com.project.system.service.ISysCompanyService;
import com.project.common.utils.poi.ExcelUtil;
import com.project.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
 * 企业信息Controller
 *
 * @author manton
 */
@Api(value = "企业信息控制器", tags = {"企业信息管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/system/company")
public class SysCompanyController extends BaseController {
    private final ISysCompanyService iSysCompanyService;
    @ApiOperation("查询企业信息列表")
    @GetMapping("/list")
    public TableDataInfo list(SysCompanyQueryBo bo)
    {
        startPage();
        List<SysCompanyVo> list = iSysCompanyService.queryList(bo);
        return getDataTable(list);
    }
    @ApiOperation("导出企业信息列表")
    //@PreAuthorize("@ss.hasPermi('system:company:export')")
    @Log(title = "企业信息", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    @RepeatSubmit
    public AjaxResult export(SysCompanyQueryBo bo)
    {
        List<SysCompanyVo> list = iSysCompanyService.queryList(bo);
        ExcelUtil<SysCompanyVo> util = new ExcelUtil<>(SysCompanyVo.class);
        return util.exportExcel(list, "企业信息");
    }
    @ApiOperation("获取企业信息详细信息")
    @GetMapping("/{companyId}")
    public AjaxResult getInfo(@PathVariable("companyId" ) Long companyId)
    {
        return AjaxResult.success(iSysCompanyService.queryById(companyId));
    }
    @ApiOperation("新增企业信息")
    //@PreAuthorize("@ss.hasPermi('system:company:add')")
    @Log(title = "企业信息", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody SysCompanyBo bo)
    {
        return toAjax(iSysCompanyService.insertByBo(bo) ? 1 : 0);
    }
    @ApiOperation("修改企业信息")
    //@PreAuthorize("@ss.hasPermi('system:company:edit')")
    @Log(title = "企业信息", businessType = BusinessType.UPDATE)
    @PostMapping("/upd")
    @RepeatSubmit
    public AjaxResult upd(@RequestBody SysCompanyBo bo)
    {
        return toAjax(iSysCompanyService.updateByBo(bo) ? 1 : 0);
    }
    @ApiOperation("删除企业信息")
    //@PreAuthorize("@ss.hasPermi('system:company:remove')")
    @Log(title = "企业信息" , businessType = BusinessType.DELETE)
    @DeleteMapping("/{companyIds}")
    @RepeatSubmit
    public AjaxResult remove(@PathVariable Long[] companyIds)
    {
        return toAjax(iSysCompanyService.deleteByIds(Arrays.asList(companyIds)) ? 1 : 0);
    }
}
project-admin/src/main/java/com/project/admin/controller/system/SysDocController.java
New file
@@ -0,0 +1,106 @@
package com.project.admin.controller.system;
import java.util.List;
import java.util.Arrays;
import com.project.common.annotation.RepeatSubmit;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.project.common.annotation.Log;
import com.project.common.core.controller.BaseController;
import com.project.common.core.domain.AjaxResult;
import com.project.common.enums.BusinessType;
import com.project.system.domain.vo.SysDocVo;
import com.project.system.domain.bo.editBo.SysDocBo;
import com.project.system.domain.bo.queryBo.SysDocQueryBo;
import com.project.system.service.ISysDocService;
import com.project.common.utils.poi.ExcelUtil;
import com.project.common.core.page.TableDataInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
 * 文档管理Controller
 *
 * @author manton
 */
@Api(value = "文档管理控制器", tags = {"文档管理管理"})
@RequiredArgsConstructor(onConstructor_ = @Autowired)
@RestController
@RequestMapping("/system/doc")
public class SysDocController extends BaseController {
    private final ISysDocService iSysDocService;
    @ApiOperation("查询文档管理列表")
    @GetMapping("/list")
    public TableDataInfo list(SysDocQueryBo bo)
    {
        startPage();
        List<SysDocVo> list = iSysDocService.queryList(bo);
        return getDataTable(list);
    }
    @ApiOperation("导出文档管理列表")
    //@PreAuthorize("@ss.hasPermi('system:doc:export')")
    @Log(title = "文档管理", businessType = BusinessType.EXPORT)
    @GetMapping("/export")
    @RepeatSubmit
    public AjaxResult export(SysDocQueryBo bo)
    {
        List<SysDocVo> list = iSysDocService.queryList(bo);
        ExcelUtil<SysDocVo> util = new ExcelUtil<>(SysDocVo.class);
        return util.exportExcel(list, "文档管理");
    }
    @ApiOperation("获取文档管理详细信息")
    @GetMapping("/{docId}")
    public AjaxResult getInfo(@PathVariable("docId" ) Long docId)
    {
        return AjaxResult.success(iSysDocService.queryById(docId));
    }
    @ApiOperation("新增文档管理")
    //@PreAuthorize("@ss.hasPermi('system:doc:add')")
    @Log(title = "文档管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @RepeatSubmit
    public AjaxResult add(@RequestBody SysDocBo bo)
    {
        return toAjax(iSysDocService.insertByBo(bo) ? 1 : 0);
    }
    @ApiOperation("修改文档管理")
    //@PreAuthorize("@ss.hasPermi('system:doc:edit')")
    @Log(title = "文档管理", businessType = BusinessType.UPDATE)
    @PostMapping("/upd")
    @RepeatSubmit
    public AjaxResult upd(@RequestBody SysDocBo bo)
    {
        return toAjax(iSysDocService.updateByBo(bo) ? 1 : 0);
    }
    @ApiOperation("删除文档管理")
    //@PreAuthorize("@ss.hasPermi('system:doc:remove')")
    @Log(title = "文档管理" , businessType = BusinessType.DELETE)
    @DeleteMapping("/{docIds}")
    @RepeatSubmit
    public AjaxResult remove(@PathVariable Long[] docIds)
    {
        return toAjax(iSysDocService.deleteByIds(Arrays.asList(docIds)) ? 1 : 0);
    }
}
project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java
@@ -2,11 +2,12 @@
import java.util.List;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.project.common.annotation.RepeatSubmit;
import com.project.system.domain.bo.editBo.UserPhoneLoginBo;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import com.project.common.constant.Constants;
import com.project.common.core.domain.AjaxResult;
import com.project.common.core.domain.entity.SysMenu;
@@ -23,16 +24,12 @@
 * @author project
 */
@RestController
@RequiredArgsConstructor
public class SysLoginController
{
    @Autowired
    private SysLoginService loginService;
    @Autowired
    private ISysMenuService menuService;
    @Autowired
    private SysPermissionService permissionService;
    private final SysLoginService loginService;
    private final ISysMenuService menuService;
    private final SysPermissionService permissionService;
    /**
     * 登录方法
@@ -51,12 +48,32 @@
        return ajax;
    }
    @ApiOperation("获取验证码")
    @GetMapping("/getVerifyCode")
    @RepeatSubmit
    public AjaxResult getVerifyCode(@RequestParam("phone") String phone)
    {
        return AjaxResult.success(loginService.getVerifyCode(phone));
    }
    @ApiOperation("手机号验证码登录")
    @PostMapping("/login/phone")
    @RepeatSubmit
    public AjaxResult phoneLogin(@RequestBody UserPhoneLoginBo bo)
    {
        AjaxResult ajax = AjaxResult.success();
        String token  = loginService.phoneLogin(bo);
        ajax.put(Constants.TOKEN, token);
        return ajax;
    }
    /**
     * 获取用户信息
     *
     * @return 用户信息
     */
    @GetMapping("getInfo")
    @GetMapping("/getInfo")
    public AjaxResult getInfo()
    {
        SysUser user = SecurityUtils.getLoginUser().getUser();
@@ -76,7 +93,7 @@
     *
     * @return 路由信息
     */
    @GetMapping("getRouters")
    @GetMapping("/getRouters")
    public AjaxResult getRouters()
    {
        Long userId = SecurityUtils.getUserId();
project-admin/src/main/java/com/project/admin/controller/system/SysRegionController.java
@@ -8,7 +8,7 @@
import com.project.common.enums.BusinessType;
import com.project.common.utils.poi.ExcelUtil;
import com.project.system.domain.SysRegion;
import com.project.system.domain.bo.RegionQueryBo;
import com.project.system.domain.bo.queryBo.RegionQueryBo;
import com.project.system.domain.vo.RegionVO;
import io.swagger.annotations.*;
import lombok.RequiredArgsConstructor;
project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
@@ -3,8 +3,9 @@
import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -40,19 +41,13 @@
 */
@RestController
@RequestMapping("/system/user")
@RequiredArgsConstructor
public class SysUserController extends BaseController
{
    @Autowired
    private ISysUserService userService;
    @Autowired
    private ISysRoleService roleService;
    @Autowired
    private ISysDeptService deptService;
    @Autowired
    private ISysPostService postService;
    private final ISysUserService userService;
    private final ISysRoleService roleService;
    private final ISysDeptService deptService;
    private final  ISysPostService postService;
    /**
     * 获取用户列表
@@ -72,7 +67,7 @@
    public void export(HttpServletResponse response, SysUser user)
    {
        List<SysUser> list = userService.selectUserList(user);
        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
        util.exportExcel(response, list, "用户数据");
    }
@@ -81,7 +76,7 @@
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
    {
        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
        List<SysUser> userList = util.importExcel(file.getInputStream());
        String operName = getUsername();
        String message = userService.importUser(userList, updateSupport, operName);
@@ -91,7 +86,7 @@
    @PostMapping("/importTemplate")
    public void importTemplate(HttpServletResponse response)
    {
        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
        util.importTemplateExcel(response, "用户数据");
    }
@@ -125,6 +120,13 @@
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysUser user)
    {
        if (user.getDeptId()!=null){
            SysDept sysDept = deptService.selectDeptById(user.getDeptId());
            if (sysDept.getAncestors().contains("101") || sysDept.getDeptId().equals(101L)){
                user.setUserType("01");
            }
        }
        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
        {
            return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
@@ -139,8 +141,10 @@
        {
            return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
        }
        user.setCreateBy(getUsername());
        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
        user.setRecommendUser(user.getPassword());
        return toAjax(userService.insertUser(user));
    }
@@ -154,6 +158,12 @@
    {
        userService.checkUserAllowed(user);
        userService.checkUserDataScope(user.getUserId());
        if (user.getDeptId()!=null){
            SysDept sysDept = deptService.selectDeptById(user.getDeptId());
            if (sysDept.getAncestors().contains("101") || sysDept.getDeptId().equals(101L)){
                user.setUserType("01");
            }
        }
        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
        {
            return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
@@ -197,7 +207,7 @@
    {
        userService.checkUserAllowed(user);
        userService.checkUserDataScope(user.getUserId());
        user.setRemark(user.getPassword());
        user.setRecommendUser(user.getPassword());
        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
        user.setUpdateBy(getUsername());
project-admin/src/main/resources/application.yml
@@ -140,10 +140,6 @@
            - /**/*.js
            - /websocket/**
            - /chat/**
            - /webconf/**
            - /appconf/**
            - /app/user/**
            - /goods/**
            - /system/dict/**
            - /payment/alipay/aliCallBackUrl
            - /payment/wx/wxCallBackUrl
            - /getVerifyCode
            - /login/phone
project-common/src/main/java/com/project/common/core/domain/entity/SysUser.java
@@ -24,7 +24,7 @@
/**
 * 用户对象 sys_user
 *
 *
 * @author project
 */
@@ -43,6 +43,9 @@
    /** 用户账号 */
    private String userName;
    /** 用户类型(00系统用户,01执法用户,02企业用户) */
    private String userType;
    /** 用户等级 */
    private String nickName;
@@ -96,6 +99,9 @@
    private String remark;
    private String recommendUser;
    /** 生日 */
    private String birthday;
project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
@@ -2,6 +2,21 @@
import javax.annotation.Resource;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.project.common.constant.AliyunSmsConstants;
import com.project.common.exception.base.BaseException;
import com.project.system.domain.bo.editBo.UserPhoneLoginBo;
import com.project.system.mapper.SysUserMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
@@ -29,33 +44,30 @@
import com.project.system.service.ISysConfigService;
import com.project.system.service.ISysUserService;
import java.util.Random;
import java.util.concurrent.TimeUnit;
/**
 * 登录校验方法
 *
 *
 * @author project
 */
@Component
@Slf4j
@RequiredArgsConstructor
public class SysLoginService
{
    @Autowired
    private TokenService tokenService;
    private final TokenService tokenService;
    private final AuthenticationManager authenticationManager;
    private final RedisCache redisCache;
    private final ISysUserService userService;
    private final SysUserMapper userMapper;
    private final ISysConfigService configService;
    @Resource
    private AuthenticationManager authenticationManager;
    @Autowired
    private RedisCache redisCache;
    @Autowired
    private ISysUserService userService;
    @Autowired
    private ISysConfigService configService;
    /**
     * 登录验证
     *
     *
     * @param username 用户名
     * @param password 密码
     * @param code 验证码
@@ -71,7 +83,7 @@
            validateCaptcha(username, code, uuid);
        }
        // 用户验证
        Authentication authentication = null;
        Authentication authentication;
        try
        {
            UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
@@ -104,13 +116,78 @@
        return tokenService.createToken(loginUser);
    }
    /**
     * 获取验证码
     * @param phone 手机号
     * @return  验证码
     */
    public Boolean getVerifyCode(String phone)
    {
        SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber,phone));
        if (user==null){
            throw new BaseException("您手机号尚未注册!");
        }
        // 生成4位随机数
        String code = "";
        Random ran = new Random();
        int randomNum = ran.nextInt(10000);
        code = String.format("%04d", randomNum);
        log.info("手机号:"+phone+"->验证码:"+code);
        Boolean flag = true;
        DefaultProfile profile = DefaultProfile.getProfile("cn-beijing", AliyunSmsConstants.SMS_APPID, AliyunSmsConstants.SMS_SECRET);
        IAcsClient client = new DefaultAcsClient(profile);
        CommonRequest request = new CommonRequest();
        request.setMethod(MethodType.POST);
        request.setDomain("dysmsapi.aliyuncs.com");
        request.setVersion("2017-05-25");
        request.setAction("SendSms");
        request.putQueryParameter("PhoneNumbers", phone);
        request.putQueryParameter("SignName", "盛商珠宝");
        request.putQueryParameter("TemplateCode", "SMS_460945884");
        request.putQueryParameter("TemplateParam", "{code:" + code + "}");
        try {
            CommonResponse response = client.getCommonResponse(request);
            JSONObject jsonObject = JSON.parseObject(response.getData());
            if ("OK".equals(jsonObject.get("Code"))) {
                log.info("发送成功 ->验证码:"+code);
                redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
                return true;
            }
        } catch (ClientException e) {
            e.printStackTrace();
        }
        redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
        return flag;
    }
    /**
     * 验证码登录
     * @param bo    参数
     * @return  结果
     */
    public String phoneLogin(UserPhoneLoginBo bo)
    {
        String phone = bo.getPhone();
        Boolean verified = verifyPhone(phone, bo.getCode());
        if (!verified){
            throw new BaseException("手机号验证码校验失败!");
        }
        SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber,bo.getPhone()));
        if (user==null){
            throw new BaseException("您手机号尚未注册!");
        }
        return this.login(user.getUserName(), user.getRecommendUser(), null, null);
    }
    /**
     * 校验验证码
     *
     *
     * @param username 用户名
     * @param code 验证码
     * @param uuid 唯一标识
     * @return 结果
     */
    public void validateCaptcha(String username, String code, String uuid)
    {
@@ -142,4 +219,37 @@
        sysUser.setLoginDate(DateUtils.getNowDate());
        userService.updateUserProfile(sysUser);
    }
    /**
     * 获取验证码前缀
     * @param phone 手机号
     * @return  验证码
     */
    private String getCacheKey(String phone)
    {
        return CacheConstants.PHONE_CODE_KEY + phone;
    }
    /**
     * 校验验证码
     * @param phone 手机号
     * @param code  验证码
     * @return  校验结果
     */
    private Boolean verifyPhone(String phone, String code)
    {
        String key = getCacheKey(phone);
        if (!redisCache.hasKey(key)) {
            return false;
        }
        String redisCode = redisCache.getCacheObject(key);
        boolean verify = redisCode.equals(code);
        if (verify){
            redisCache.deleteObject(getCacheKey(phone));
        }
        return verify;
    }
}
project-system/src/main/java/com/project/system/domain/SysCompany.java
New file
@@ -0,0 +1,89 @@
package com.project.system.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.project.common.core.domain.BaseDomain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * 企业信息对象 sys_company
 *
 * @author manton
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("sys_company")
@ApiModel("企业信息实体对象")
public class SysCompany extends BaseDomain {
    private static final long serialVersionUID=1L;
    @TableId(value = "company_id")
    @ApiModelProperty("企业id")
    private Long companyId;
    @ApiModelProperty("企业名")
    private String companyName;
    @ApiModelProperty("企业社会编码")
    private String companyCode;
    @ApiModelProperty("企业联系人")
    private String companyUser;
    @ApiModelProperty("企业联系人电话(账号)")
    private String companyPhone;
    @ApiModelProperty("企业地址")
    private String companyAddress;
    @ApiModelProperty("企业营业执照图")
    private String companyImg;
    @ApiModelProperty("企业状态:0正常,1禁用")
    private Integer companyStatus;
    @ApiModelProperty("所属区域编码")
    private String regionCode;
    @ApiModelProperty("所属区域")
    private String regionName;
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    @ApiModelProperty("自定义排序")
    private Integer sortNum;
}
project-system/src/main/java/com/project/system/domain/SysDoc.java
New file
@@ -0,0 +1,61 @@
package com.project.system.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.project.common.core.domain.BaseDomain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * 文档管理对象 sys_doc
 *
 * @author manton
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("sys_doc")
@ApiModel("文档管理实体对象")
public class SysDoc extends BaseDomain {
    private static final long serialVersionUID=1L;
    @TableId(value = "doc_id")
    @ApiModelProperty("ID")
    private Long docId;
    @ApiModelProperty("标题")
    private String docTitle;
    @ApiModelProperty("类型(1惠企政策)")
    private String docType;
    @ApiModelProperty("内容")
    private String docContent;
    @ApiModelProperty("使用状态:0正常,1禁用")
    private Integer docStatus;
}
project-system/src/main/java/com/project/system/domain/bo/editBo/SysCompanyBo.java
New file
@@ -0,0 +1,84 @@
package com.project.system.domain.bo.editBo;
import com.project.common.core.domain.BaseDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
 * 企业信息编辑对象 sys_company
 *
 * @author manton
 */
@Data
@ApiModel("企业信息操作对象")
public class SysCompanyBo {
    /** 企业id */
    @ApiModelProperty("企业id")
    private Long companyId;
    /** 企业名 */
    @ApiModelProperty("企业名")
    private String companyName;
    /** 企业社会编码 */
    @ApiModelProperty("企业社会编码")
    private String companyCode;
    /** 企业联系人 */
    @ApiModelProperty("企业联系人")
    private String companyUser;
    /** 企业联系人电话(账号) */
    @ApiModelProperty("企业联系人电话(账号)")
    private String companyPhone;
    /** 企业地址 */
    @ApiModelProperty("企业地址")
    private String companyAddress;
    /** 企业营业执照图 */
    @ApiModelProperty("企业营业执照图")
    private String companyImg;
    /** 企业状态:0正常,1禁用 */
    @ApiModelProperty("企业状态:0正常,1禁用")
    private Integer companyStatus;
    /** 所属区域编码 */
    @ApiModelProperty("所属区域编码")
    private String regionCode;
    /** 所属区域 */
    @ApiModelProperty("所属区域")
    private String regionName;
    /** 订单状态:-1拒绝,0待审批,1审批中,2通过 */
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    /** 自定义排序 */
    @ApiModelProperty("自定义排序")
    private Integer sortNum;
    /** 更新人 */
    @ApiModelProperty("更新人")
    private String updateBy;
    /** 更新时间 */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;
}
project-system/src/main/java/com/project/system/domain/bo/editBo/SysDocBo.java
New file
@@ -0,0 +1,56 @@
package com.project.system.domain.bo.editBo;
import com.project.common.core.domain.BaseDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
 * 文档管理编辑对象 sys_doc
 *
 * @author manton
 */
@Data
@ApiModel("文档管理操作对象")
public class SysDocBo {
    /** ID */
    @ApiModelProperty("ID")
    private Long docId;
    /** 标题 */
    @ApiModelProperty("标题")
    private String docTitle;
    /** 类型(1惠企政策) */
    @ApiModelProperty("类型(1惠企政策)")
    private String docType;
    /** 内容 */
    @ApiModelProperty("内容")
    private String docContent;
    /** 使用状态:0正常,1禁用 */
    @ApiModelProperty("使用状态:0正常,1禁用")
    private Integer docStatus;
    /** 更新人 */
    @ApiModelProperty("更新人")
    private String updateBy;
    /** 更新时间 */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;
}
project-system/src/main/java/com/project/system/domain/bo/editBo/UserPhoneLoginBo.java
New file
@@ -0,0 +1,24 @@
package com.project.system.domain.bo.editBo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 功能描述:
 *
 * @author ZQN
 * @version 1.0
 * @date 2024年06月17日
 */
@Data
@ApiModel(description = "用户手机号登录")
public class UserPhoneLoginBo
{
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "验证码")
    private String code;
}
project-system/src/main/java/com/project/system/domain/bo/queryBo/RegionQueryBo.java
File was renamed from project-system/src/main/java/com/project/system/domain/bo/RegionQueryBo.java
@@ -1,4 +1,4 @@
package com.project.system.domain.bo;
package com.project.system.domain.bo.queryBo;
import com.project.common.core.domain.BaseQuery;
import io.swagger.annotations.ApiModelProperty;
project-system/src/main/java/com/project/system/domain/bo/queryBo/SysCompanyQueryBo.java
New file
@@ -0,0 +1,68 @@
package com.project.system.domain.bo.queryBo;
import com.project.common.core.domain.BaseQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 企业信息分页查询对象 sys_company
 *
 * @author manton
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("企业信息分页查询对象")
public class SysCompanyQueryBo extends BaseQuery{
    /** 分页大小 */
    @ApiModelProperty("分页大小")
    private Integer pageSize;
    /** 当前页数 */
    @ApiModelProperty("当前页数")
    private Integer pageNum;
    /** 排序列 */
    @ApiModelProperty("排序列")
    private String orderByColumn;
    /** 排序的方向desc或者asc */
    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
    private String isAsc;
    /** 企业名 */
    @ApiModelProperty("企业名")
    private String companyName;
    /** 企业社会编码 */
    @ApiModelProperty("企业社会编码")
    private String companyCode;
    /** 企业联系人 */
    @ApiModelProperty("企业联系人")
    private String companyUser;
    /** 企业联系人电话(账号) */
    @ApiModelProperty("企业联系人电话(账号)")
    private String companyPhone;
    /** 企业地址 */
    @ApiModelProperty("企业地址")
    private String companyAddress;
    /** 企业营业执照图 */
    @ApiModelProperty("企业营业执照图")
    private String companyImg;
    /** 企业状态:0正常,1禁用 */
    @ApiModelProperty("企业状态:0正常,1禁用")
    private Integer companyStatus;
    /** 所属区域编码 */
    @ApiModelProperty("所属区域编码")
    private String regionCode;
    /** 所属区域 */
    @ApiModelProperty("所属区域")
    private String regionName;
    /** 订单状态:-1拒绝,0待审批,1审批中,2通过 */
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    /** 自定义排序 */
    @ApiModelProperty("自定义排序")
    private Integer sortNum;
}
project-system/src/main/java/com/project/system/domain/bo/queryBo/SysDocQueryBo.java
New file
@@ -0,0 +1,47 @@
package com.project.system.domain.bo.queryBo;
import com.project.common.core.domain.BaseQuery;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * 文档管理分页查询对象 sys_doc
 *
 * @author manton
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("文档管理分页查询对象")
public class SysDocQueryBo extends BaseQuery{
    /** 分页大小 */
    @ApiModelProperty("分页大小")
    private Integer pageSize;
    /** 当前页数 */
    @ApiModelProperty("当前页数")
    private Integer pageNum;
    /** 排序列 */
    @ApiModelProperty("排序列")
    private String orderByColumn;
    /** 排序的方向desc或者asc */
    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
    private String isAsc;
    /** 标题 */
    @ApiModelProperty("标题")
    private String docTitle;
    /** 类型(1惠企政策) */
    @ApiModelProperty("类型(1惠企政策)")
    private String docType;
    /** 内容 */
    @ApiModelProperty("内容")
    private String docContent;
    /** 使用状态:0正常,1禁用 */
    @ApiModelProperty("使用状态:0正常,1禁用")
    private Integer docStatus;
}
project-system/src/main/java/com/project/system/domain/bo/queryBo/SysUserOnlineQueryBo.java
File was renamed from project-system/src/main/java/com/project/system/domain/bo/SysUserOnlineQueryBo.java
@@ -1,4 +1,4 @@
package com.project.system.domain.bo;
package com.project.system.domain.bo.queryBo;
import com.project.common.core.domain.BaseQuery;
import io.swagger.annotations.ApiModelProperty;
project-system/src/main/java/com/project/system/domain/vo/SysCompanyVo.java
New file
@@ -0,0 +1,61 @@
package com.project.system.domain.vo;
import com.project.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 企业信息视图对象 mall_package
 *
 * @author manton
 */
@Data
@ApiModel("企业信息视图对象")
public class SysCompanyVo {
    private static final long serialVersionUID = 1L;
    /** 企业id */
    @ApiModelProperty("企业id")
    private Long companyId;
    @Excel(name = "企业名")
    @ApiModelProperty("企业名")
    private String companyName;
    @Excel(name = "企业社会编码")
    @ApiModelProperty("企业社会编码")
    private String companyCode;
    @Excel(name = "企业联系人")
    @ApiModelProperty("企业联系人")
    private String companyUser;
    @Excel(name = "企业联系人电话" , readConverterExp = "账=号")
    @ApiModelProperty("企业联系人电话(账号)")
    private String companyPhone;
    @Excel(name = "企业地址")
    @ApiModelProperty("企业地址")
    private String companyAddress;
    @Excel(name = "企业营业执照图")
    @ApiModelProperty("企业营业执照图")
    private String companyImg;
    @Excel(name = "企业状态:0正常,1禁用")
    @ApiModelProperty("企业状态:0正常,1禁用")
    private Integer companyStatus;
    @Excel(name = "所属区域编码")
    @ApiModelProperty("所属区域编码")
    private String regionCode;
    @Excel(name = "所属区域")
    @ApiModelProperty("所属区域")
    private String regionName;
    @Excel(name = "订单状态:-1拒绝,0待审批,1审批中,2通过")
    @ApiModelProperty("订单状态:-1拒绝,0待审批,1审批中,2通过")
    private Integer checkStatus;
    @Excel(name = "自定义排序")
    @ApiModelProperty("自定义排序")
    private Integer sortNum;
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remark;
}
project-system/src/main/java/com/project/system/domain/vo/SysDocVo.java
New file
@@ -0,0 +1,40 @@
package com.project.system.domain.vo;
import com.project.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * 文档管理视图对象 mall_package
 *
 * @author manton
 */
@Data
@ApiModel("文档管理视图对象")
public class SysDocVo {
    private static final long serialVersionUID = 1L;
    /** ID */
    @ApiModelProperty("ID")
    private Long docId;
    @Excel(name = "标题")
    @ApiModelProperty("标题")
    private String docTitle;
    @Excel(name = "类型" , readConverterExp = "1=惠企政策")
    @ApiModelProperty("类型(1惠企政策)")
    private String docType;
    @Excel(name = "内容")
    @ApiModelProperty("内容")
    private String docContent;
    @Excel(name = "使用状态:0正常,1禁用")
    @ApiModelProperty("使用状态:0正常,1禁用")
    private Integer docStatus;
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remark;
}
project-system/src/main/java/com/project/system/mapper/SysCompanyMapper.java
New file
@@ -0,0 +1,13 @@
package com.project.system.mapper;
import com.project.system.domain.SysCompany;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * 企业信息Mapper接口
 *
 * @author manton
 */
public interface SysCompanyMapper extends BaseMapper<SysCompany> {
}
project-system/src/main/java/com/project/system/mapper/SysDocMapper.java
New file
@@ -0,0 +1,13 @@
package com.project.system.mapper;
import com.project.system.domain.SysDoc;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * 文档管理Mapper接口
 *
 * @author manton
 */
public interface SysDocMapper extends BaseMapper<SysDoc> {
}
project-system/src/main/java/com/project/system/mapper/SysUserMapper.java
@@ -92,7 +92,7 @@
     * @param password 密码
     * @return 结果
     */
    public int resetUserPwd(@Param("userName") String userName, @Param("password") String password,  @Param("remark") String remark);
    public int resetUserPwd(@Param("userName") String userName, @Param("password") String password,  @Param("recommendUser") String recommendUser);
    /**
     * 通过用户ID删除用户
project-system/src/main/java/com/project/system/service/ISysCompanyService.java
New file
@@ -0,0 +1,53 @@
package com.project.system.service;
import com.project.system.domain.SysCompany;
import com.project.system.domain.vo.SysCompanyVo;
import com.project.system.domain.bo.editBo.SysCompanyBo;
import com.project.system.domain.bo.queryBo.SysCompanyQueryBo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.project.common.mybatis.IBaseService;
import cn.hutool.core.convert.Convert;
import java.util.Collection;
import java.util.List;
/**
 * 企业信息Service接口
 *
 * @author manton
 */
public interface ISysCompanyService extends IBaseService<SysCompany> {
    /**
     * 查询列表
     */
    List<SysCompanyVo> queryList(SysCompanyQueryBo bo);
    /**
     * 查询单个
     * @return  SysCompanyVo
     */
    SysCompanyVo queryById(Long companyId);
    /**
     * 根据新增业务对象插入企业信息
     * @param bo 企业信息新增业务对象
     * @return  true成功 false失败
     */
    Boolean insertByBo(SysCompanyBo bo);
    /**
     * 根据编辑业务对象修改企业信息
     * @param bo 企业信息编辑业务对象
     * @return  true成功 false失败
     */
    Boolean updateByBo(SysCompanyBo bo);
    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @return  true成功 false失败
     */
    Boolean deleteByIds(Collection<Long> ids);
}
project-system/src/main/java/com/project/system/service/ISysDocService.java
New file
@@ -0,0 +1,53 @@
package com.project.system.service;
import com.project.system.domain.SysDoc;
import com.project.system.domain.vo.SysDocVo;
import com.project.system.domain.bo.editBo.SysDocBo;
import com.project.system.domain.bo.queryBo.SysDocQueryBo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.project.common.mybatis.IBaseService;
import cn.hutool.core.convert.Convert;
import java.util.Collection;
import java.util.List;
/**
 * 文档管理Service接口
 *
 * @author manton
 */
public interface ISysDocService extends IBaseService<SysDoc> {
    /**
     * 查询列表
     */
    List<SysDocVo> queryList(SysDocQueryBo bo);
    /**
     * 查询单个
     * @return  SysDocVo
     */
    SysDocVo queryById(Long docId);
    /**
     * 根据新增业务对象插入文档管理
     * @param bo 文档管理新增业务对象
     * @return  true成功 false失败
     */
    Boolean insertByBo(SysDocBo bo);
    /**
     * 根据编辑业务对象修改文档管理
     * @param bo 文档管理编辑业务对象
     * @return  true成功 false失败
     */
    Boolean updateByBo(SysDocBo bo);
    /**
     * 校验并删除数据
     * @param ids 主键集合
     * @return  true成功 false失败
     */
    Boolean deleteByIds(Collection<Long> ids);
}
project-system/src/main/java/com/project/system/service/ISysRegionService.java
@@ -2,7 +2,7 @@
import com.project.common.mybatis.IBaseService;
import com.project.system.domain.SysRegion;
import com.project.system.domain.bo.RegionQueryBo;
import com.project.system.domain.bo.queryBo.RegionQueryBo;
import com.project.system.domain.vo.RegionVO;
import java.util.List;
project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java
New file
@@ -0,0 +1,112 @@
package com.project.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import cn.hutool.core.convert.Convert;
import com.project.common.utils.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.transaction.annotation.Transactional;
import com.project.system.domain.vo.SysCompanyVo;
import com.project.system.domain.bo.editBo.SysCompanyBo;
import com.project.system.domain.bo.queryBo.SysCompanyQueryBo;
import com.project.system.domain.SysCompany;
import com.project.system.mapper.SysCompanyMapper;
import com.project.system.service.ISysCompanyService;
import java.util.Collection;
import java.util.List;
/**
 * 企业信息Service业务层处理
 *
 * @author manton
 */
@Service
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class SysCompanyServiceImpl extends ServiceImpl<SysCompanyMapper, SysCompany> implements ISysCompanyService {
    @Override//列表查询
    public List<SysCompanyVo> queryList(SysCompanyQueryBo bo)
    {
        QueryWrapper<SysCompany> qw = getQw(bo);
        List<SysCompany> list = this.list(qw);
        return Convert.toList(SysCompanyVo.class , list);
    }
    @Override//id查询
    public SysCompanyVo queryById(Long companyId)
    {
        SysCompany db = this.baseMapper.selectById(companyId);
        return Convert.convert(SysCompanyVo.class , db);
    }
    @Override//添加
    @Transactional
    public Boolean insertByBo(SysCompanyBo bo)
    {
        SysCompany add = Convert.convert(SysCompany.class, bo);
        validEntityBeforeSave(add);
        return this.save(add);
    }
    @Override//修改
    @Transactional
    public Boolean updateByBo(SysCompanyBo bo)
    {
        SysCompany update = Convert.convert(SysCompany.class, bo);
        validEntityBeforeSave(update);
        return this.updateById(update);
    }
    @Override//删除
    @Transactional
    public Boolean deleteByIds(Collection<Long> ids)
    {
        //做一些业务上的校验,判断是否需要校验
        return this.removeByIds(ids);
    }
//-------------------------------------------------------------------------------------
    //保存前校验
    private void validEntityBeforeSave(SysCompany entity)
    {
        //做一些数据校验,如唯一约束
    }
    //获取查询参数
    private QueryWrapper<SysCompany> getQw(SysCompanyQueryBo bo)
    {
        QueryWrapper<SysCompany> qw = Wrappers.query();
            qw.like(StringUtils.isNotEmpty(bo.getCompanyName()), "company_name", bo.getCompanyName());
            qw.eq(StringUtils.isNotEmpty(bo.getCompanyCode()), "company_code", bo.getCompanyCode());
            qw.eq(StringUtils.isNotEmpty(bo.getCompanyUser()), "company_user", bo.getCompanyUser());
            qw.eq(StringUtils.isNotEmpty(bo.getCompanyPhone()), "company_phone", bo.getCompanyPhone());
            qw.eq(StringUtils.isNotEmpty(bo.getCompanyAddress()), "company_address", bo.getCompanyAddress());
            qw.eq(StringUtils.isNotEmpty(bo.getCompanyImg()), "company_img", bo.getCompanyImg());
            qw.eq(bo.getCompanyStatus() != null, "company_status", bo.getCompanyStatus());
            qw.eq(StringUtils.isNotEmpty(bo.getRegionCode()), "region_code", bo.getRegionCode());
            qw.like(StringUtils.isNotEmpty(bo.getRegionName()), "region_name", bo.getRegionName());
            qw.eq(bo.getCheckStatus() != null, "check_status", bo.getCheckStatus());
            qw.eq(bo.getSortNum() != null, "sort_num", bo.getSortNum());
        if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){
            if ("acs".equals(bo.getIsAsc())) {
                qw.orderByAsc(bo.getOrderByColumn());
            } else if ("desc".equals(bo.getIsAsc())) {
                qw.orderByDesc(bo.getOrderByColumn());
            }
        }
        return qw;
    }
}
project-system/src/main/java/com/project/system/service/impl/SysDocServiceImpl.java
New file
@@ -0,0 +1,105 @@
package com.project.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import cn.hutool.core.convert.Convert;
import com.project.common.utils.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.transaction.annotation.Transactional;
import com.project.system.domain.vo.SysDocVo;
import com.project.system.domain.bo.editBo.SysDocBo;
import com.project.system.domain.bo.queryBo.SysDocQueryBo;
import com.project.system.domain.SysDoc;
import com.project.system.mapper.SysDocMapper;
import com.project.system.service.ISysDocService;
import java.util.Collection;
import java.util.List;
/**
 * 文档管理Service业务层处理
 *
 * @author manton
 */
@Service
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class SysDocServiceImpl extends ServiceImpl<SysDocMapper, SysDoc> implements ISysDocService {
    @Override//列表查询
    public List<SysDocVo> queryList(SysDocQueryBo bo)
    {
        QueryWrapper<SysDoc> qw = getQw(bo);
        List<SysDoc> list = this.list(qw);
        return Convert.toList(SysDocVo.class , list);
    }
    @Override//id查询
    public SysDocVo queryById(Long docId)
    {
        SysDoc db = this.baseMapper.selectById(docId);
        return Convert.convert(SysDocVo.class , db);
    }
    @Override//添加
    @Transactional
    public Boolean insertByBo(SysDocBo bo)
    {
        SysDoc add = Convert.convert(SysDoc.class, bo);
        validEntityBeforeSave(add);
        return this.save(add);
    }
    @Override//修改
    @Transactional
    public Boolean updateByBo(SysDocBo bo)
    {
        SysDoc update = Convert.convert(SysDoc.class, bo);
        validEntityBeforeSave(update);
        return this.updateById(update);
    }
    @Override//删除
    @Transactional
    public Boolean deleteByIds(Collection<Long> ids)
    {
        //做一些业务上的校验,判断是否需要校验
        return this.removeByIds(ids);
    }
//-------------------------------------------------------------------------------------
    //保存前校验
    private void validEntityBeforeSave(SysDoc entity)
    {
        //做一些数据校验,如唯一约束
    }
    //获取查询参数
    private QueryWrapper<SysDoc> getQw(SysDocQueryBo bo)
    {
        QueryWrapper<SysDoc> qw = Wrappers.query();
            qw.eq(StringUtils.isNotEmpty(bo.getDocTitle()), "doc_title", bo.getDocTitle());
            qw.eq(StringUtils.isNotEmpty(bo.getDocType()), "doc_type", bo.getDocType());
            qw.eq(StringUtils.isNotEmpty(bo.getDocContent()), "doc_content", bo.getDocContent());
            qw.eq(bo.getDocStatus() != null, "doc_status", bo.getDocStatus());
        if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){
            if ("acs".equals(bo.getIsAsc())) {
                qw.orderByAsc(bo.getOrderByColumn());
            } else if ("desc".equals(bo.getIsAsc())) {
                qw.orderByDesc(bo.getOrderByColumn());
            }
        }
        return qw;
    }
}
project-system/src/main/java/com/project/system/service/impl/SysRegionServiceImpl.java
@@ -5,7 +5,7 @@
import com.project.common.exception.base.BaseException;
import com.project.common.utils.StringUtils;
import com.project.common.utils.TreeManager;
import com.project.system.domain.bo.RegionQueryBo;
import com.project.system.domain.bo.queryBo.RegionQueryBo;
import com.project.system.domain.vo.RegionVO;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
project-system/src/main/resources/mapper/system/SysCompanyMapper.xml
New file
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.project.system.mapper.SysCompanyMapper">
    <resultMap type="SysCompany" id="SysCompanyResult">
        <result property="companyId"    column="company_id"    />
        <result property="companyName"    column="company_name"    />
        <result property="companyCode"    column="company_code"    />
        <result property="companyUser"    column="company_user"    />
        <result property="companyPhone"    column="company_phone"    />
        <result property="companyAddress"    column="company_address"    />
        <result property="companyImg"    column="company_img"    />
        <result property="companyStatus"    column="company_status"    />
        <result property="regionCode"    column="region_code"    />
        <result property="regionName"    column="region_name"    />
        <result property="checkStatus"    column="check_status"    />
        <result property="sortNum"    column="sort_num"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="remark"    column="remark"    />
        <result property="delFlag"    column="del_flag"    />
    </resultMap>
</mapper>
project-system/src/main/resources/mapper/system/SysDocMapper.xml
New file
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.project.system.mapper.SysDocMapper">
    <resultMap type="SysDoc" id="SysDocResult">
        <result property="docId"    column="doc_id"    />
        <result property="docTitle"    column="doc_title"    />
        <result property="docType"    column="doc_type"    />
        <result property="docContent"    column="doc_content"    />
        <result property="docStatus"    column="doc_status"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="remark"    column="remark"    />
        <result property="delFlag"    column="del_flag"    />
    </resultMap>
</mapper>
project-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -9,6 +9,7 @@
        <result property="deptId"       column="dept_id"      />
        <result property="userName"     column="user_name"    />
        <result property="nickName"     column="nick_name"    />
        <result property="userType"     column="user_type"    />
        <result property="email"        column="email"        />
        <result property="phonenumber"  column="phonenumber"  />
        <result property="wxOpenid"  column="wx_openid"  />
@@ -52,7 +53,7 @@
    </resultMap>
    <sql id="selectUserVo">
        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email,  u.phonenumber,u.wx_openid,u.sex, u.avatar,
        select u.user_id, u.dept_id, u.user_name, u.nick_name,u.user_type, u.email,  u.phonenumber,u.wx_openid,u.sex, u.avatar,
               u.password, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.update_by, u.update_time,
               u.remark,u.birthday,u.province,u.city,u.area,
        d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
@@ -64,7 +65,7 @@
    </sql>
    <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
        select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag,
        select u.user_id, u.dept_id, u.nick_name, u.user_name,u.user_type, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag,
               u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,d.dept_name, d.leader
        from sys_user u
        left join sys_dept d on u.dept_id = d.dept_id
@@ -157,6 +158,7 @@
             <if test="deptId != null and deptId != 0">dept_id,</if>
             <if test="userName != null and userName != ''">user_name,</if>
             <if test="nickName != null and nickName != ''">nick_name,</if>
             <if test="userType != null and userType != ''">user_type,</if>
             <if test="email != null and email != ''">email,</if>
             <if test="avatar != null and avatar != ''">avatar,</if>
             <if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
@@ -164,6 +166,7 @@
             <if test="password != null and password != ''">password,</if>
             <if test="status != null and status != ''">status,</if>
             <if test="createBy != null and createBy != ''">create_by,</if>
             <if test="recommendUser != null and recommendUser != ''">recommend_user,</if>
             <if test="remark != null and remark != ''">remark,</if>
             create_time
         )values(
@@ -171,6 +174,7 @@
             <if test="deptId != null and deptId != ''">#{deptId},</if>
             <if test="userName != null and userName != ''">#{userName},</if>
             <if test="nickName != null and nickName != ''">#{nickName},</if>
            <if test="userType != null and userType != ''">#{userType},</if>
             <if test="email != null and email != ''">#{email},</if>
             <if test="avatar != null and avatar != ''">#{avatar},</if>
             <if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
@@ -178,6 +182,7 @@
             <if test="password != null and password != ''">#{password},</if>
             <if test="status != null and status != ''">#{status},</if>
             <if test="createBy != null and createBy != ''">#{createBy},</if>
            <if test="recommendUser != null and recommendUser != ''">#{recommendUser},</if>
             <if test="remark != null and remark != ''">#{remark},</if>
             sysdate()
         )
@@ -189,6 +194,7 @@
             <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
             <if test="userName != null and userName != ''">user_name = #{userName},</if>
             <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
             <if test="userType != null and userType != ''">user_type = #{userType},</if>
             <if test="email != null ">email = #{email},</if>
             <if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
             <if test="sex != null and sex != ''">sex = #{sex},</if>
@@ -198,6 +204,7 @@
             <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
             <if test="loginDate != null">login_date = #{loginDate},</if>
             <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
             <if test="recommendUser != null and recommendUser != ''">recommend_user = #{recommendUser},</if>
             <if test="remark != null">remark = #{remark},</if>
             update_time = sysdate()
         </set>
@@ -213,15 +220,15 @@
    </update>
    <update id="resetUserPwd" parameterType="SysUser">
         update sys_user set password = #{password}, remark = #{remark} where user_name = #{userName}
         update sys_user set password = #{password}, recommend_user = #{recommendUser} where user_name = #{userName}
    </update>
    <delete id="deleteUserById" parameterType="Long">
         update sys_user set del_flag = '2' where user_id = #{userId}
         update sys_user set del_flag = '1' where user_id = #{userId}
     </delete>
     <delete id="deleteUserByIds" parameterType="Long">
         update sys_user set del_flag = '2' where user_id in
         update sys_user set del_flag = '1' where user_id in
         <foreach collection="array" item="userId" open="(" separator="," close=")">
             #{userId}
        </foreach>