Aisell智能销售项目_总结

文章目录

    • day1 集成SpringMVC&前端展示
      • 1 spring+springdatajpa搭建环境
      • 2 springmvc和spring集成
      • 3 创建repository-service-controller层
    • day2 easyui结合项目完成CRUD
        • 1 新增
        • 2 修改
        • 3 新增和修改保存
        • 4 删除
        • 5 查询
        • 6 后台问题:
    • day3 Shrio集成Spring&Authentication身份认证&Authorizing授权
      • 1 认识shiro
      • 2 使用shiro的基本入门
      • 3 认证流程、授权流程
    • day4 登录与权限验证
    • day5 权限判断&菜单配置
    • day6 EasyPoi导入与导出
    • day7 产品模块
    • day8 采购单
    • day9 采购报表功能
    • day10 审核入库订单&&库存预警&&发送邮件

day1 集成SpringMVC&前端展示

搭建环境 sssdj(springmvc+spring+springdatajpa)

1 spring+springdatajpa搭建环境

在spring+jpa环境上面引入

<jpa:repositories base-package="cn.itsource.aisell.repository"
                  transaction-manager-ref="transactionManager"
                  entity-manager-factory-ref="entityManagerFactory"
                    factory-class="cn.itsource.aisell.repository.impl.BaseRepositoryFactoryBean">
jpa:repositories>

2 springmvc和spring集成

<mvc:default-servlet-handler />
<context:component-scan base-package="cn.itsource.aisell.web.controller" />
<mvc:annotation-driven>
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>application/json; charset=UTF-8value>
                    <value>application/x-www-form-urlencoded; charset=UTF-8value>
                list>
            property>
            
            <property name="objectMapper">
                <bean class="cn.itsource.aisell.common.CustomMapper">bean>
            property>
        bean>
    mvc:message-converters>
mvc:annotation-driven>

3 创建repository-service-controller层

详情见https://blog.csdn.net/Java_pipixia/article/details/98363507

day2 easyui结合项目完成CRUD

1 新增

add:function(){
    //清空表单
    purchasebillForm.form('clear');
    //清空表格
    $("#gridItem").datagrid("loadData",[]);
    //新增 --弹出一个对话框--装一个表单
    purchasebillDialog.dialog('center').dialog('open');
}

2 修改

edit:function(){
	//选择一条数据进行修改
	var row = purchasebillGrid.datagrid('getSelected');
	if(row){
	    //弹出对话框
	    purchasebillDialog.dialog('center').dialog('open');
	    //供货商
	    if (row.supplier){
	        row["supplier.id"] = row.supplier.id;
	    }
	    //采购员
	    if (row.buyer){
	        row["buyer.id"] = row.buyer.id;
	    }
	
	    //明细表格回显
	    //加载相应的数据(要看product的名称是否可以对应上)
	    for (var i = 0; i < row.items.length; i++) {
	        var item = row.items[i];
	        item["productId"] = item.product;
	    }
	    var items = $.extend([], row.items);
	    $("#gridItem").datagrid("loadData", items);
	    //修改 -- 回显示数据
	    purchasebillForm.form('load',row);
	}else{
	    //提示用户
	    $.messager.alert('温馨提示:','请选中一条数据进行修改','info');
	    return;
	}
	
	}

3 新增和修改保存

save:function(){
  var url = "/purchasebill/save";
  //获取隐藏域里面id值
  var id = $("#purchasebillId").val();
  if(id){
      url = "/purchasebill/update?cmd=update"
  }
  //保存方法 --提交表单的数据到后台
  purchasebillForm.form('submit', {
      url:url,
      onSubmit: function(param){
          //提交 封装items
          //得到明细表格里面的数据
          var rows = $("#gridItem").datagrid("getRows");
          for (var i = 0; i < rows.length; i++) {
              var rowData = rows[i];
              param["items["+i+"].descs"] = rowData.descs;
              param["items["+i+"].price"] = rowData.price;
              param["items["+i+"].num"] = rowData.num;
              param["items["+i+"].product.id"] = rowData.productId.id;
          }
          // 提交之前的验证
          return purchasebillForm.form('validate');
      },
      success:function(data){
          //字符串 转换成json对象
          var dataJson =  $.parseJSON(data);
          if(dataJson.success){
              $.messager.alert('温馨提示:','操作成功','info');
              //重新加载数据
              purchasebillGrid.datagrid('reload');
              //关闭对话框
              purchasebillDialog.dialog('close');
          }else{
              $.messager.alert('温馨提示:','保存失败'+dataJson.msg,'error');
              purchasebillDialog.dialog('close');
          }
      }
  });
}

4 删除

del:function(){
  //判断表格里面是否选中得数据
  var row = purchasebillGrid.datagrid('getSelected');
  if(row){
      //是否确认要删除数据
      $.messager.confirm('温馨提示','你确定要删除吗?',function(value){
          if(value){
              //获取id值
              //发送ajax到后台进行删除数据
              $.get('/purchasebill/delete',{"id":row.id},function(data){
                  //返回json对象
                  if(data.success){
                      $.messager.alert('温馨提示:','删除成功','info');
                      //重新加载数据
                      purchasebillGrid.datagrid('reload');
                  }else{
                      $.messager.alert('温馨提示:','删除失败'+data.msg,'error');
                  }
              });
          }
      })
  }else{
      //提示用户
      $.messager.alert('温馨提示:','请选中一条数据进行删除','info');
      return;
  }
}

5 查询

search:function(){
    //怎么完成高级查询 jquery.jdirk.js 这个方法 这是jquery扩展方法
    //该方法返回一个 JSON Object,返回对象中的每个数据都表示一个表单控件值。
    var param = searchForm.serializeObject();
    //发送查询数据库 --加载表格 发送请求 /purchasebill/page
    purchasebillGrid.datagrid('load',param);
}

6 后台问题:

​数据丢失 --ModelAttribute
n-to-n问题 --把关联对象设置为null

day3 Shrio集成Spring&Authentication身份认证&Authorizing授权

1 认识shiro

他是apache下面开源的安全方面的框架,可以完成身份认证和授权 以及会话管理和密码学

2 使用shiro的基本入门

shiro.ini 配置 账号 密码 权限 —测试类去测试身份的认证和权限

3 认证流程、授权流程

详情见https://blog.csdn.net/Java_pipixia/article/details/98648890

day4 登录与权限验证

登陆和角色:
登陆流程实现:–就是认证流程
详情见https://blog.csdn.net/Java_pipixia/article/details/98848707

day5 权限判断&菜单配置

权限处理
查询数据库权限放入shiro里面
map.put(url, “perm[sn]”)
访问需要权限的资源的时候,就会判断当前用户是否具备该权限(先数据库查询用户的所有权限)
详情见https://blog.csdn.net/Java_pipixia/article/details/98965788

day6 EasyPoi导入与导出

导入导出
用easypoi去完成导入导出
导出:
ExcelExportUtil.exportExcel
导入:
ExcelImportUtil.importExcel
验证的处理
加入相应的验证包
验证NOTNULL MAX MIN
如果还不行可以自定义验证
详情见https://blog.csdn.net/Java_pipixia/article/details/99195684

day7 产品模块

产品模型
数据字典:一些数据库的初始化的数据
数据字典设计:只需要两个表
数据字典明细表
系统设计:写一个jpql就可以查询数据

@Query("select d from Systemdictionarydetail d join d.types t where t.sn=?1")
List<Systemdictionarydetail> findDetailsBySn(String sn);

产品的增删改查
图片上传 form表单 enctype属性
图片变大图 tooltip扩展组件
颜色选择 type=‘color’
上下级 easy组件

day8 采购单

采购单 purchasebill
采购明细单 purchasebillitem
配置
domain的设计(设计双向)— 这是属于订单 在系统里面 凡是涉及到单据 都是使用组合关系来设计 使用强级联 CascadeType.ALL,配置孤儿删除 ,一方放弃管理 多方来维护
详情见https://blog.csdn.net/Java_pipixia/article/details/99607040

day9 采购报表功能

报表 reports charts
报表 :数据表格报表 – 组件 data-grid - groupview 分组视图表格
详情见https://blog.csdn.net/Java_pipixia/article/details/99650813

day10 审核入库订单&&库存预警&&发送邮件

业务:
​ 基础模块 (产品 员工 部门 数据字典)
​ 权限模块(用户 角色 权限 资源)
核心业务:
​ 采购单
​ 销售单 (采购员修改成销售员 把供应商修改客户)
​ 库存(入库 出库)
​ 盘点单
预警 :qz框架
详情见https://blog.csdn.net/Java_pipixia/article/details/99686968

你可能感兴趣的:(学习)