关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、3102411850 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 8395|回复: 2

实现一个自定义的功能的操作笔记

[复制链接]
发表于 2019-3-6 16:59:18 | 显示全部楼层 |阅读模式
本帖最后由 e_yuan 于 2019-3-9 09:36 编辑

            
  • [url=]1. vue+AntD[/url]
    • [url=]1.1. 新增按钮[/url]
    • [url=]1.2. 添加按钮事件处理[/url]
  • [url=]2. controller中添加方法[/url]
  • [url=]3. service中添加方法[/url]
    • [url=]3.1. 简单的处理可直接在service层中完成[/url]
    • [url=]3.2. 复杂的处理,可通过调用dao层完成[/url]
  • [url=]4. dao中添加方法[/url]
    • [url=]4.1. 接口定义[/url]
    • [url=]4.2. mybatis xml[/url]

1. vue+AntD
1.1. 新增按钮在template中添加按钮。
前端页面使用的是AntDesign的组件,可参考antDesignVue的官方文档
<a-button @click="handleCopy" type="primary" icon="copy">复制</a-button>
1.2. 添加按钮事件处理data对象可按照良好的编程规范定义为多个层级,例如url、flag、dict等,不要一股脑的都作为data的属性。
  • data url中添加复制的controller路径
    copy:"/codetemplate/codeTemplate/copy",
  • 在vue的methods中添加handleCopy。

前端JS代码,一些简单的语法,尽量使用ES6,例如let、=>等。
handleCopy: function(){    var that = this;    //获取当前选中行    let id = that.selectedRowKeys[0];    //请求服务端    let params = {id:id};    getAction(this.url.copy,params).then((res)=>{        if(res.success){//复制成功,刷新页面        that.$message.success(res.message);        that.loadData();        }else{//复制失败,提示用户        that.$message.warning(res.message);        }    })},
2. controller中添加方法controller中定义方法使用@GetMapping还是@PostMapping、@PutMapping等根据业务操作逻辑确定,例如删除操作使用Delete、更新使用Put、查询使用Get、提交数据使用Post,这些注解对应于HTTP到谓词。
controller接口方法的该注解与前端调用时使用的HTTP谓词保持一致,该例中复制可使用Get,传递待复制的记录ID值。
@GetMapping(value = "/copy")public Result<CodeTemplate> copy(@RequestParam(name="id", defaultValue="") String id, HttpServletRequest req) {    Result<CodeTemplate> result = new Result<CodeTemplate>();    try {        codeTemplateService.copy(id);        result.success("复制成功!");    } catch (Exception e) {        e.printStackTrace();        log.info(e.getMessage());        result.error500("复制失败!");    }    return result;}
3. service中添加方法
3.1. 简单的处理可直接在service层中完成Service层继承了Mybatis-Plus提供的Service基类,可实现常用的CRUDc操作,可操作MP官网Mybatis-Plus官网文档
@Servicepublic class CodeTemplateServiceImpl extends ServiceImpl<CodeTemplateMapper, CodeTemplate> implements ICodeTemplateService {        @Autowired        CodeTemplateMapper mapper;                @Transactional        public void copy(String id){                //获取原记录                CodeTemplate entity = mapper.selectById(id);                //复制为新记录                CodeTemplate entityDest = new CodeTemplate();                try {                        MyBeanUtils.copyBeanNotNull2Bean(entity,entityDest);                } catch (Exception e) {                         e.printStackTrace();                }                //修改需要更改的内容,例如ID                entityDest.setId(UUID.randomUUID().toString().replaceAll("-", ""));                //保存新记录到数据库                mapper.insert(entityDest);        }}
3.2. 复杂的处理,可通过调用dao层完成使用@Slf4j注解,可以直接使用log对象记录日志,不再需要声明、实例化。
@Service@Slf4jpublic class CodeTemplateServiceImpl extends ServiceImpl<CodeTemplateMapper, CodeTemplate> implements ICodeTemplateService {        @Autowired        CodeTemplateMapper mapper;                @Transactional        public void copy(String id){                String idDest = UUID.randomUUID().toString().replaceAll("-", "");                int rowCount = mapper.copy(id, idDest);                log.info("rowCount:"+rowCount);        }}
4. dao中添加方法
4.1. 接口定义insert\update\delete返回受影响的行数,因此返回值是int。
select返回数据集,可指定resultType,将其映射为列表、实体、基本数据类型等数据类型。
public interface CodeTemplateMapper extends BaseMapper<CodeTemplate> {        public int copy(@Param("id") String id,@Param("idDest") String idDest);}
4.2. mybatis xml有关mybatis的XML配置,可参考mybatis官网文档学习。
<insert id="copy">INSERT INTO  ls_code_template(   id,    bpm_status,    create_name,    create_by,    update_name,    update_by,    sys_org_code,    sys_company_code,    create_time,    update_time)select     #{idDest},    bpm_status,    create_name,    create_by,    update_name,    update_by,    sys_org_code,    sys_company_code,    create_time,    update_timefrom ls_code_template where id = #{id}</insert>      
                                             
发表于 2019-7-23 17:44:59 | 显示全部楼层
十分感谢
发表于 2020-4-8 22:34:45 | 显示全部楼层
写得很仔细,感谢。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表