博客
关于我
谷粒商城项目实战——03商品服务之品牌管理
阅读量:305 次
发布时间:2019-03-03

本文共 4854 字,大约阅读时间需要 16 分钟。

品牌管理

前期工作

可以直接将代码生成器中生成的前端代码拷贝到前端页面,从而实现简单的功能,只需根据业务需求做相应的修改即可。

步骤
  • 使用代码生成器生成相关代码,注意代码生成器所配置的数据库。
  • 将代码生成器中生成的brand.vuebrand-and-or-update.vue两个页面拷贝到项目中。
  • 测试

    由于生成的代码中有权限功能,只有有权限的时候才会生成显示添加和删除等按钮,所以我们现将权限获取全部设置为true,后期再来验证权限。

    页面优化
    1. 快速显示开关

    显示状态栏是通过0,1来展示是否显示,我们需要通过按钮来显示。

    2. 文件上传(OSS)

    采用阿里云的OSS来存储文件,方式:用户向应用服务器请求上传policy,应用服务器返回上传policy,用户直接上传数据到OSS,而不是采用用户将图片传给应用服务器,然后再由应用服务器上传到OSS,因为会增加应用服务器负担。

    第三方工具模块

    创建一个第三方工具模块gulimall-third-party

    Maven依赖
    com.hjf.gulimall
    gulimall-common
    0.0.1-SNAPSHOT
    com.baomidou
    mybatis-plus-boot-starter
    org.springframework.boot
    spring-boot-starter-web
    org.springframework.cloud
    spring-cloud-starter-openfeign
    org.springframework.boot
    spring-boot-starter-test
    test
    com.alibaba.cloud
    spring-cloud-starter-alicloud-oss
    配置信息
    spring.application.name=gulimall-third-partyspring.cloud.nacos.config.server-addr=127.0.0.1:8848spring.cloud.nacos.config.namespace=4c9b6122-5d5d-4700-ade2-eaaf5dae222dspring.cloud.nacos.config.ext-config[0].data-id=oss.ymlspring.cloud.nacos.config.ext-config[0].group=devspring.cloud.nacos.config.ext-config[0].refresh=true
    Controller代码
    @RestControllerpublic class OssController {    @Autowired    private OSS ossClient;    @Value("${spring.cloud.alicloud.access-key}")    private String accessId;    @Value("${spring.cloud.alicloud.oss.endpoint}")    private String endpoint;    @Value("${spring.cloud.alicloud.oss.bucket}")    private String bucket;    @RequestMapping("/oss/policy")    public Map
    policy(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String host = "https://" + bucket + "." + endpoint; PolicyConditions policyConds = new PolicyConditions(); policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1048576000); policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir); String postPolicy = ossClient.generatePostPolicy(expiration, policyConds); byte[] binaryData = postPolicy.getBytes("utf-8"); String encodedPolicy = BinaryUtil.toBase64String(binaryData); String postSignature = ossClient.calculatePostSignature(postPolicy); respMap = new LinkedHashMap(); respMap.put("accessid", accessId); respMap.put("policy", encodedPolicy); respMap.put("signature", postSignature); respMap.put("dir", dir); respMap.put("host", host); respMap.put("expire", String.valueOf(expireEndTime / 1000)); return respMap; }}
    Gateway模块

    配置网关路由

    spring:  cloud:    gateway:      routes:        - id: third_party_route          uri: lb://gulimall-third-party          predicates:            - Path=/api/thirdparty/**          filters:            - RewritePath=/api/thirdparty/(?
    .*),/$\{segment}

    前后端联调

    组件导入

    将文件夹中的upload目录拷贝到src/components中。

    跨域问题

    此时上传文件时会出现跨域问题,因为我们是通过客户端直接上传的。

    解决方案

    在阿里云oss中修改权限管理,允许oss可以跨域访问。

    表单校验

    前端校验

    主要校验首字母和排序两个字段。

    后端校验

    采用JSR303校验,实体中添加注解,并定义自己的message提示。

    分组校验

    创建分组接口,修改实体类,给校验注解标注什么情况下才需要验证。

    自定义校验

    编写自定义的校验注解,编写自定义的校验器,关联自定义的校验器和自定义的校验注解。

    异常处理

    为每个方法编写异常处理方法,太过麻烦,同时会使controller层逻辑复杂,所以我们使用统一异常处理。

    创建异常处理类,集中处理各种异常。

    创建错误码枚举类。

    public enum BizCodeEnume {    UNKNOW_EXCEPTION(10000, "系统未知异常"),    VALID_EXCEPTION(10001, "参数格式化失败");    private int code;    private String msg;    BizCodeEnume(int code, String msg) {        this.code = code;        this.msg = msg;    }    public int getCode() {        return code;    }    public String getMsg() {        return msg;    }}

    创建异常处理类,集中处理各种异常。

    @Slf4j@RestControllerAdvice(basePackages = "com.hjf.gulimall.product.controller")public class GulimallExceptionControllerAdvice {    @ExceptionHandler(value = MethodArgumentNotValidException.class)    public R handleValidException(MethodArgumentNotValidException e) {        log.error("数据校验出现问题 {}, 异常类型: {}", e.getMessage(), e.getClass());        BindingResult bindingResult = e.getBindingResult();        Map
    errorMap = new HashMap<>(); bindingResult.getFieldErrors().forEach((item) -> { errorMap.put(item.getField(), item.getDefaultMessage()); }); return R.error(BizCodeEnume.VAILD_EXCEPTION.getCode(), BizCodeEnume.VAILD_EXCEPTION.getMsg()).put("data", errorMap); } @ExceptionHandler(value = Throwable.class) public R handleException(Throwable throwable) { return R.error(BizCodeEnume.UNKNOW_EXCEPTION.getCode(), BizCodeEnume.UNKNOW_EXCEPTION.getMsg()); }}

    转载地址:http://mtum.baihongyu.com/

    你可能感兴趣的文章
    NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
    查看>>
    NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
    查看>>
    NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
    查看>>
    NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
    查看>>
    nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
    查看>>
    NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
    查看>>
    NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
    查看>>
    NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_处理器介绍_处理过程说明---大数据之Nifi工作笔记0019
    查看>>
    NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_实际操作---大数据之Nifi工作笔记0020
    查看>>
    NIFI大数据进阶_Json内容转换为Hive支持的文本格式_实际操作_02---大数据之Nifi工作笔记0032
    查看>>
    NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
    查看>>
    NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka消费者处理器_来消费kafka数据---大数据之Nifi工作笔记0037
    查看>>
    NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka生产者---大数据之Nifi工作笔记0036
    查看>>
    NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
    查看>>
    NIFI大数据进阶_NIFI监控功能实际操作_Summary查看系统和处理器运行情况_viewDataProvenance查看_---大数据之Nifi工作笔记0026
    查看>>