当前位置: 首页 > news >正文

公司网站建设开发维护工作常用的网络营销方法

公司网站建设开发维护工作,常用的网络营销方法,html动态页面,潍坊+网站建设1、报文入参尽量避免使用实体类(如果用实体类接受参数,一定要写好注解,具体用到了实体类的哪一个属性) /*** * Description: 新增玉米观测记录主表信息* param param params* param return 参数* return Result 返回类型* author…

1、报文入参尽量避免使用实体类(如果用实体类接受参数,一定要写好注解,具体用到了实体类的哪一个属性

/*** * @Description: 新增玉米观测记录主表信息* @param @param params* @param @return 参数* @return Result 返回类型* @author 魏振申* @throws*/@ApiOperation(value = "玉米选定测产信息新增", notes = "玉米选定测产信息新增接口")@ApiResponses(value = { @ApiResponse(code = 200, message = "查询成功", responseContainer = "com.rhxt.util.Result"),@ApiResponse(code = 650, message = "参数缺失")})@RequestMapping(value = "/insertMaizeRInfo", method = RequestMethod.POST)public Result insertMaizeRInfo(@ApiJsonObject(name = "insertMaizeRInfo", value = {@ApiJsonProperty(key = "userId", example = "1", description = "当前登录用户id ", type = "string", required = true),})@RequestBody JSONObject params) {Result result = new Result();Map<String, Object> dataMap = new HashMap<>();if (JSONUtils.checkParams(params, "userId", "testCode", "cropKind")) {String rowNum = params.containsKey("rowNum")?params.getString("rowNum"):null;String rowLength = params.containsKey("rowLength")?params.getString("rowLength"):null;String spikeNum = params.containsKey("spikeNum")?params.getString("spikeNum"):null;String plantNum = params.containsKey("plantNum")?params.getString("plantNum"):null;String doubleSpikeNum = params.containsKey("doubleSpikeNum")?params.getString("doubleSpikeNum"):null;String emptyRodNum = params.containsKey("emptyRodNum")?params.getString("emptyRodNum"):null;String downNum = params.containsKey("downNum")?params.getString("downNum"):null;String theoryYield = params.containsKey("theoryYield")?params.getString("theoryYield"):null;String actualYield = params.containsKey("actualYield")?params.getString("actualYield"):null;String quadratArea = params.containsKey("quadratArea")?params.getString("quadratArea"):null;String maizeRId = params.containsKey("maizeRId")?params.getString("maizeRId"):null;String userId = params.getString("userId");String testCode = params.getString("testCode");String cropKind = params.getString("cropKind");int count = iMaizeTestService.insertMaizeRInfo(rowNum, rowLength, spikeNum, plantNum, doubleSpikeNum, emptyRodNum, downNum, theoryYield, actualYield, quadratArea, userId, testCode, cropKind, maizeRId);switch (count) {case 0: case 2: case 3:result.setCode(ResponseEnum.OPERATION_ERROR.getCode());result.setMsg(ResponseEnum.OPERATION_ERROR.getMsg());break;case 1:result.setCode(ResponseEnum.OPERATION_SUCCESS.getCode());result.setMsg(ResponseEnum.OPERATION_SUCCESS.getMsg());dataMap = iMaizeTestService.selectMaizeYieldInfo(testCode);break;default:break;}} else {result.setCode(ResponseEnum.PARAM_LOSE_EXCEPTION.getCode());result.setMsg(ResponseEnum.PARAM_LOSE_EXCEPTION.getMsg());}result.setObj(dataMap);return result;}


2、入参必填校验务必要做,入参类型为map、JSONObject类型的我们均配置的有统一校验方法

JSONUtils.checkParams(params, "userId", "testCode", "cropKind")


3、响应数据务必使用封装好的枚举类及对应的结果类

响应枚举类尽量放在controller层处理
4、修改数据配合前端失焦及延时保存传值,应做到哪个发生变化,修改哪个,而不是每次全行修改


5、swagger注解务必添加,并配备真实入参及描述信息


6、如使用@RequestMapping注解,需指定method类型


7、关键点增加日志记录及异常信息捕捉输出


8、service层方法入参应以具体的参数为主,而非对象传参

所有的参数在controller层中接受成具体的属性,之后传到service中


9、mybatis中sql关键字必须大写


10、删除无用引入包、无用变量、无用mapper方法

11、为了避免obj为null的现象,应该这样写

查询

新增 ,修改,删除这样写(在setObj的时候把查询的列表数据放进去,因为前端还要做列表刷新)

/*** * @Description: 新增玉米叶绿素含量记录* @param @param params* @param @return 参数* @return Result 返回类型* @author 魏振申* @throws*/@ApiOperation(value = "新增玉米叶绿素含量记录", notes = "新增玉米叶绿素含量记录")@ApiResponses(value = { @ApiResponse(code = 200, message = "查询成功", responseContainer = "com.rhxt.util.Result"),@ApiResponse(code = 650, message = "参数缺失")})@RequestMapping(value = "/insertChlorophyllInfo", method = RequestMethod.POST)public Result insertChlorophyllInfo(@ApiJsonObject(name = "insertChlorophyllInfo", value = {@ApiJsonProperty(key = "userId", example = "1", description = "当前登录用户id ", type = "string", required = true),})@RequestBody JSONObject params) {Result result = new Result();List<ChlorophyllRPojo> listData = new ArrayList<>();if (JSONUtils.checkParams(params, "userId", "testCode", "cropKind")) {String cropPhase = params.containsKey("cropPhase")?params.getString("cropPhase"):null;String chlorophyll = params.containsKey("chlorophyll")?params.getString("chlorophyll"):null;String chlId = params.containsKey("chlId")?params.getString("chlId"):null;String userId = params.getString("userId");String testCode = params.getString("testCode");String cropKind = params.getString("cropKind");int count = iMaizeTestService.insertChlorophyllInfo(cropPhase, chlorophyll, userId, testCode, cropKind, chlId);switch (count) {case 0:result.setCode(ResponseEnum.OPERATION_ERROR.getCode());result.setMsg(ResponseEnum.OPERATION_ERROR.getMsg());break;case 1:result.setCode(ResponseEnum.OPERATION_SUCCESS.getCode());result.setMsg(ResponseEnum.OPERATION_SUCCESS.getMsg());listData = iMaizeTestService.selectChlorophyllInfo(testCode, cropKind);break;case 2:result.setCode(ResponseEnum.OPERATION_ERROR.getCode());result.setMsg("数据存储入库异常");break;case 3:result.setCode(ResponseEnum.OPERATION_ERROR.getCode());result.setMsg("数据转换异常");break;}} else {result.setCode(ResponseEnum.PARAM_LOSE_EXCEPTION.getCode());result.setMsg(ResponseEnum.PARAM_LOSE_EXCEPTION.getMsg());}result.setObj(listData);return result;}

 12、批量的新增需要批量新增

这种需要处理成批量插入(错误写法)

 正确示范

service

/*** @description: 主阀关联批量添加分阀(新增)* @author: 赵书正* @date: 2023/3/27 17:28* @param: [fCodes, zCode]* @return: int**/@Overridepublic int insertValveZF(String fCodes, String zCode) {int count = 0;//先删除掉所有跟zCode关联的分阀门try {count = valveZFMapper.deleteByZCode(zCode);} catch (Exception e) {log.info("删除掉所有跟zCode关联的分阀门出现异常,异常位置:ValveZFServiceImpl.deleteByZCode,异常原因:", e);}List<ValveZFPojo> list = new ArrayList<>();if (G4Utils.isNotEmpty(fCodes)) {String[] fCodeArr = fCodes.split(",");for (String fCode : fCodeArr) {ValveZFPojo valveZFPojo = new ValveZFPojo();valveZFPojo.setId(G4Utils.getUUID());valveZFPojo.setzCode(zCode);valveZFPojo.setfCode(fCode);valveZFPojo.setCreateTime(G4Utils.getLocalDateTime("yyyy-MM-dd HH:mm:ss"));list.add(valveZFPojo);}try {count = valveZFMapper.insertValveZF(list);} catch (Exception e) {log.info("主阀关联批量添加分阀出现异常,异常位置:ValveZFServiceImpl.insertValveZF,异常原因:", e);}} else {count = 1;}return count;}

xml

<insert id="insertValveZF" parameterType="com.rhxt.platform.basic.pojo.ValveZFPojo">insert into VALVE_Z_F (ID, Z_CODE, F_CODE, CREATE_USE, CREATE_TIME)values<foreach collection="list" index="index" item="item" separator=",">(#{item.id,jdbcType=VARCHAR},#{item.zCode,jdbcType=VARCHAR},#{item.fCode,jdbcType=VARCHAR},#{item.createUse,jdbcType=VARCHAR},#{item.createTime,jdbcType=TIMESTAMP})</foreach></insert>

13.批量删除也要做成批量的

错误写法(改成批量的

 正确写法

/*** @description: 主阀关联批量添加分阀(移除)* @author: 赵书正* @date: 2023/3/27 17:29* @param: [fCodeArr, zCode]* @return: int**/@Overridepublic int deleteValveZF(String[] fCodeArr, String zCode) {int count = 0;try {count = valveZFMapper.deleteValveZF(fCodeArr, zCode);} catch (Exception e) {log.info("主阀关联批量添加分阀出现异常,异常位置:ValveZFServiceImpl.deleteValveZF,异常原因:", e);}return count;}

xml

<delete id="deleteValveZF" parameterType="java.lang.String">delete from VALVE_Z_Fwhere Z_CODE = #{zCode,jdbcType=VARCHAR} AND F_CODE in #{fCodeArr}</delete>

14、无用的定义要去掉(无用的定义,浪费系统资源)

 

http://www.yayakq.cn/news/492698/

相关文章:

  • 一级a做爰片免费网站 小说重庆烤鱼制作
  • python做网站方便么建站公司合同模板
  • 国外网站 网速慢seo引擎优化培训
  • 外地人网站备案怎么查看网站有没有做301
  • 怎么样把网站做火flash网站制作教程
  • 电子商务网站首页设计pacdora 设计网
  • 如何做网站的优化快站app下载
  • 计算机网站开发开题报告范文自媒体平台注册入口快看点
  • 在哪家网站做推广好印度网站域名
  • 个人网站做淘宝客商城做网站的手机软件
  • 网站外链分析工具帮做钓鱼网站会怎样
  • 网站怎么做的防采集网站开发到上线的流程
  • 做网站开发的方案陕西城乡建设网
  • 平台下载素材网站开发怎样可以快速增加网站的反链
  • 企业网站建设合同范本免费微信公众号免费做影视网站
  • 高密网站开发网页设计教程零基础
  • wordpress评论添加新浪表情seo北京优化
  • 合肥网站专业制作永久域名注册网站
  • 网站开发毕业答辩问题自己创免费网站
  • 群推广网站简单网站
  • 什么网站好看用h5做西安网络推广平台公司
  • 广州市 住房建设局网站首页自己可以做网站么
  • 有哪些网站软件可以做网站的原型杭州家装设计公司排名
  • 道里网站运营培训外贸网站建设方案
  • 网站运营频道内容建设3d建模软件手机版
  • 全自动网站制作系统上市公司做家具网站
  • 年度网站建设工作总结安卓app下载
  • 刚做的网站适合做外链吗电子商务中网站开发
  • 智能建网站软件外链平台有哪些
  • 专业定制网站建设公司扬州网站商城建设价格