谷健git测试

gujian_branch
gj 1 year ago
parent 8920f92d84
commit bbfa7d5b2f

@ -182,3 +182,136 @@ public class GoodsController {
}
// GoodsController类使用了@RestController注解表明它是Spring框架下用于构建RESTful API的控制器类主要负责处理与商品Goods相关的各种HTTP请求
// 并将处理结果以合适的格式如JSON返回给客户端通常是前端应用在前后端交互中起着关键的桥梁作用方便前端对商品信息进行查询、添加、修改、删除等操作。
// 通过@RequestMapping("/goods")注解,为该控制器下所有的请求映射路径设置了公共前缀"/goods",便于对商品相关的接口进行统一管理和分类,便于代码维护以及前端接口调用。
// 使用@Autowired注解自动注入IGoodsService接口的实现类对象通过这个服务对象可以调用与商品相关的核心业务逻辑方法
// 例如分页查询商品信息、添加商品、更新商品信息、删除商品以及获取库存预警商品等操作具体的业务实现细节则在IGoodsService接口对应的实现类中完成这里只是进行调用触发相应的业务逻辑流程。
// 通过@Autowired注解注入IProviderService接口的实现类对象用于获取供应商相关的业务服务。在查询商品信息、加载可用商品等操作时借助该服务根据供应商ID查询供应商的详细信息
// 以便将供应商名称等相关信息补充到商品记录中,使返回给前端的数据更加完整,方便前端展示和业务操作时能呈现更全面的供应商相关情况,让用户清楚知道商品对应的供应商是谁。
/**
*
* @param goodsVo ID
* 便
* @return DataGridView
* 便
*/
// 创建一个IPage对象用于实现分页功能通过传入从goodsVo对象中获取的当前页码goodsVo.getPage()和每页显示记录数量goodsVo.getLimit())来确定分页范围,
// 例如当页码为2且每页显示数量为10时表示要获取第2页每页显示10条商品记录的那部分数据这样可以对大量的商品记录进行分页管理提升前端展示效果以及用户查看数据的体验。
// 创建一个QueryWrapper对象用于构建查询条件它类似于构建SQL语句中的WHERE子句部分能够灵活地添加各种筛选条件从而精确地查询出符合特定要求的商品记录。
// 对供应商进行查询如果从goodsVo对象中获取的供应商IDgoodsVo.getProviderid()不为空且不等于0说明前端传入了供应商筛选条件
// 则添加一个相等性查询条件,在数据库表中对应"providerid"字段查找与传入的供应商ID相等的商品记录以此实现按供应商来筛选商品信息的功能方便查看特定供应商提供的商品情况。
// 对商品名称进行模糊查询如果从goodsVo对象中获取的商品名称goodsVo.getGoodsname()不为空字符串通过StringUtils.isNotBlank方法判断
// 则添加一个模糊查询条件,在数据库表中对应"goodsname"字段,查找包含传入商品名称的商品记录,便于根据部分商品名称来查找相关商品,满足更灵活的查询需求。
// 对产品编码进行模糊查询同理当goodsVo对象中获取的产品编码goodsVo.getProductcode())不为空字符串时,添加一个模糊查询条件,
// 在数据库表的"productcode"字段上进行模糊匹配,查找包含传入产品编码的商品记录,方便根据产品编码来定位商品。
// 对助记码进行模糊查询若goodsVo对象中获取的助记码goodsVo.getPromitcode())不为空字符串,就在"promitcode"字段添加模糊查询条件,
// 查找包含传入助记码的商品记录,有助于通过助记码快速查找特定商品,提高查询的便捷性。
// 对商品描述进行模糊查询当goodsVo对象中获取的描述信息goodsVo.getDescription())不为空字符串时,添加一个模糊查询条件,
// 在数据库表的"description"字段进行模糊匹配,查找包含传入描述内容的商品记录,方便根据商品的相关描述来查找商品。
// 对商品规格进行模糊查询类似地若goodsVo对象中获取的规格信息goodsVo.getSize())不为空字符串,就在"size"字段添加模糊查询条件,
// 查找包含传入规格的商品记录,便于根据商品规格来筛选商品,满足不同业务场景下对商品数据的查询需求。
// 通过商品的ID对查询结果进行降序排序添加一个按照"id"字段推测是商品的唯一标识符字段进行降序排序的条件使得查询返回的商品记录按照ID从大到小的顺序排列
// 这样在前端展示时,用户能先看到较新添加或更新的商品记录,更符合一般的数据查看习惯,方便查看和分析近期的商品情况。
// 调用goodsService的page方法传入构建好的分页对象page和查询条件包装器queryWrapper服务层会根据这些条件执行数据库查询操作
// 获取符合条件的商品数据并将数据填充到page对象中例如设置page对象中的总记录数、当前页的记录列表等属性以便后续返回完整的分页数据信息。
// 获取查询结果中当前页的商品记录列表,方便后续对每条记录进行补充相关信息的操作,比如添加供应商名称等,使返回给前端的数据更加丰富详细,更具业务价值。
// 遍历当前页查询到的每条商品记录,为每条记录补充供应商名称信息,使其展示的数据更加完整全面,方便前端展示以及业务查看和操作使用。
// 通过providerService的getById方法根据当前商品记录中的供应商IDgoods.getProviderid()从数据库中查询对应的供应商详细信息获取到一个Provider对象如果存在的话
// 如果查询到了对应的供应商信息将供应商的名称设置到当前商品记录goods以便前端展示商品记录时能同时显示供应商名称让数据更直观、完整便于业务人员查看商品对应的供应商情况。
// 创建一个DataGridView对象将查询得到的商品记录的总数量通过page.getTotal()获取以及当前页补充完整信息后的商品记录列表page.getRecords())进行封装,
// 最终返回给前端,使得前端能够按照分页逻辑展示商品信息,并且展示的数据包含了丰富的关联信息(供应商名称等),满足业务查看和操作的实际需求。
/**
*
* @param goodsVo ID
*
* @return ResultObjResultObjADD_SUCCESSADD_ERROR
* 便
*/
// 打印商品图片相关信息(可能用于调试查看图片相关情况,比如确认前端传入的图片路径等是否正确),此处输出只是辅助开发阶段查看相关数据情况,在正式环境可根据需求决定是否保留。
// 判断商品图片路径是否不为空且以"_temp"结尾,如果满足该条件,说明可能是临时的图片文件名,需要进行重命名处理。
// 调用AppFileUtils的renameFile方法对临时的商品图片文件名进行重命名操作得到新的文件名并将新文件名设置回goodsVo对象的"goodsimg"属性中,
// 以便后续保存商品信息时使用正确的图片文件名,保证图片存储和关联的正确性。
// 调用goodsService的save方法将包含完整商品信息已处理好图片文件名等情况的goodsVo对象传递过去触发服务层中处理添加商品的业务逻辑
// 该逻辑可能涉及到向数据库的商品表中插入一条新记录、将商品图片存储到指定的文件存储位置(如果有图片存储相关逻辑)以及其他关联业务模块的数据交互等一系列复杂操作,
// 如果整个操作过程顺利完成,不会抛出异常;若在执行过程中出现问题(比如数据库插入失败、文件存储失败、业务规则校验不通过等情况),则会抛出异常。
// 如果在添加商品的过程中出现异常,通过打印异常堆栈信息(这有助于开发人员在排查问题时了解详细的异常发生位置和原因),
// 然后返回表示添加商品失败的ResultObj.ADD_ERROR结果对象给前端使得前端能够知晓操作未成功进而采取相应的提示告知用户或者其他补救措施等。
/**
*
* @param goodsVo
// 例如修改商品名称、规格、图片等信息后,将新的值封装在这个对象中传递过来进行更新操作。
* @return ResultObjResultObjUPDATE_SUCCESSUPDATE_ERROR
* 便
*/
// 判断商品图片是否不是默认图片这里通过判断图片路径不为空且不等于默认图片路径Constast.DEFAULT_IMG_GOODS应该是项目中定义的表示默认商品图片的常量来确定
// 如果不是默认图片,说明可能需要进行图片相关的更新处理操作,比如更换了商品图片等情况。
// 进一步判断商品图片路径是否以"_temp"结尾,如果是,说明可能是新上传的临时图片文件名,需要进行重命名处理,以符合实际存储和使用的规范。
// 调用AppFileUtils的renameFile方法对临时的商品图片文件名进行重命名操作得到新的文件名并将新文件名设置回goodsVo对象的"goodsimg"属性中,
// 确保后续更新商品信息时使用正确的图片文件名进行关联。
// 获取原先商品记录中的图片路径通过调用goodsService的getById方法根据商品IDgoodsVo.getId()获取对应的商品记录再获取其图片路径getGoodsimg方法
// 以便后续删除原来的旧图片,避免图片文件冗余,保持文件存储与商品信息的一致性。
// 调用AppFileUtils的removeFileByPath方法根据获取到的旧图片路径删除原先的商品图片文件实现图片文件的更新替换操作。
// 调用goodsService的updateById方法将包含更新后商品信息的goodsVo对象传递过去服务层会根据对象中的主键信息通常是商品记录的ID
// 在数据库中找到对应的商品记录并将其他属性值更新为goodsVo对象中传入的新值实现更新商品信息的功能例如修改商品记录中的名称、规格等字段的值
// 如果更新操作顺利完成则无异常抛出,若出现问题(比如找不到对应记录、更新数据违反约束等情况)则会抛出异常。
// 如果在更新商品信息的过程中出现异常打印异常堆栈信息便于开发人员排查问题根源然后返回表示更新操作失败的ResultObj.UPDATE_ERROR结果对象给前端
// 让前端知晓更新操作未成功,以便采取相应的提示或者其他处理措施,比如告知用户更新失败,可尝试再次操作等。
/**
*
* @param id IDID
* @param goodsimg
* @return ResultObjResultObjDELETE_SUCCESSDELETE_ERROR
* 便
*/
// 调用AppFileUtils的removeFileByPath方法根据传入的商品图片路径goodsimg删除对应的商品图片文件实现删除商品图片的操作
// 避免商品记录删除后图片文件仍残留,浪费存储空间且可能导致数据不一致的问题。
// 调用goodsService的deleteGoodsById方法假设该方法用于根据商品ID删除商品记录具体实现逻辑在IGoodsService接口对应的实现类中传入要删除的商品ID
// 服务层会根据这个ID在数据库中找到对应的商品记录并执行删除操作实现删除商品记录的功能
// 如果删除操作顺利完成则无异常抛出,若出现问题(比如存在关联数据、违反数据库约束等情况)则会抛出异常。

@ -139,3 +139,129 @@ public class InportController {
}
// InportController类使用了@RestController注解表明它是Spring框架下用于构建RESTful API的控制器类主要负责处理与商品进货Inport相关的HTTP请求
// 并将处理结果以合适的格式如JSON返回给客户端通常是前端应用起到了在前后端之间传递和处理商品进货业务数据的桥梁作用。同时通过@RequestMapping("inport")注解,
// 为该控制器下所有的请求映射路径设置了公共前缀"inport",便于对商品进货相关的接口进行统一管理和分类,方便前端进行接口调用以及后端进行代码维护。
// 使用@Autowired注解自动注入IInportService接口的实现类对象通过这个服务对象可以调用与商品进货相关的核心业务逻辑方法
// 比如分页查询进货记录、添加进货商品、更新进货商品信息以及删除进货商品等操作具体的业务实现细节则在IInportService接口对应的实现类中完成这里只是进行调用触发相应的业务逻辑流程。
// 通过@Autowired注解注入IProviderService接口的实现类对象用于获取供应商相关的业务服务。在查询商品进货信息时借助该服务根据供应商ID查询供应商的详细信息
// 以便将供应商姓名等相关信息补充到进货记录中,使返回给前端的数据更加完整,方便前端展示和业务操作时能呈现更全面的供应商相关情况,例如让用户清楚知道每笔进货对应的供应商是谁。
// 同样使用@Autowired注解注入IGoodsService接口的实现类对象用于获取商品相关的业务服务。在处理进货记录查询结果或者添加、更新进货商品信息时通过该服务依据商品ID查询商品详情如商品名称、规格等
// 然后将这些商品相关信息设置到进货记录中,进一步丰富返回给前端的数据内容,让前端能够展示更详细的商品相关信息,便于业务查看和分析商品进货情况,比如了解进货的具体商品是什么以及其规格特点等。
/**
*
* @param inportVo IDID
* 便
* @return DataGridView
* 便
*/
// 创建一个IPage对象用于实现分页功能通过传入从inportVo对象中获取的当前页码inportVo.getPage()和每页显示记录数量inportVo.getLimit())来确定分页范围,
// 例如当页码为2且每页显示数量为10时表示要获取第2页每页显示10条商品进货记录的那部分数据这样可以对大量的进货记录进行分页管理提升前端展示效果以及用户查看数据的体验。
// 创建一个QueryWrapper对象用于构建查询条件它类似于构建SQL语句中的WHERE子句部分能够灵活地添加各种筛选条件从而精确地查询出符合特定要求的商品进货记录。
// 对供应商进行查询如果从inportVo对象中获取的供应商IDinportVo.getProviderid()不为空且不等于0说明前端传入了供应商筛选条件
// 则添加一个相等性查询条件,在数据库表中对应"providerid"字段查找与传入的供应商ID相等的进货记录以此实现按供应商来筛选进货信息的功能方便查看特定供应商的进货情况例如查看某个供应商的历史进货记录。
// 对商品进行查询同理当inportVo对象中获取的商品IDinportVo.getGoodsid()不为空且不等于0时表明前端传入了商品筛选条件
// 就在数据库表的"goodsid"字段添加相等性查询条件查找与传入商品ID匹配的进货记录便于根据具体商品来查询其进货情况满足不同业务场景下对商品进货数据的查询需求比如查看某类商品的进货频次、数量等情况。
// 对时间进行查询要求大于开始时间小于结束时间当inportVo对象中的开始时间inportVo.getStartTime()不为空时添加一个大于等于ge的查询条件
// 在数据库表的"inporttime"字段推测是商品进货时间字段筛选出进货时间大于等于传入的开始时间的进货记录同样当结束时间inportVo.getEndTime())不为空时,
// 添加一个小于等于le的查询条件筛选出进货时间小于等于传入的结束时间的进货记录这样就能获取到处于指定时间范围内的商品进货信息方便按时间区间进行数据查询、统计分析等操作
// 例如查看某个时间段内的进货总量、不同供应商在该时间段的进货情况等。
// 通过进货时间对商品进行排序,添加一个按照"inporttime"字段(商品进货时间)进行降序排序的条件,使得查询返回的进货记录按照进货时间从近到远的顺序排列,
// 这样在前端展示时,用户能先看到较新的进货记录,更符合一般的数据查看习惯,方便查看和分析近期的进货情况,有助于及时掌握最新的进货动态、发现潜在问题等。
// 调用inportService的page方法传入构建好的分页对象page和查询条件包装器queryWrapper服务层会根据这些条件执行数据库查询操作
// 获取符合条件的商品进货数据并将数据填充到page对象中例如设置page对象中的总记录数、当前页的记录列表等属性以便后续返回完整的分页数据信息。
// 获取查询结果中当前页的进货记录列表,方便后续对每条记录进行补充相关信息的操作,比如添加供应商姓名、商品名称和规格等,使返回给前端的数据更加丰富详细,更具业务价值。
// 遍历当前页查询到的每条商品进货记录,为每条记录补充供应商姓名、商品名称和规格等信息,使其展示的数据更加完整全面,方便前端展示以及业务查看和操作使用。
// 通过providerService的getById方法根据当前进货记录中的供应商IDinport.getProviderid()从数据库中查询对应的供应商详细信息获取到一个Provider对象如果存在的话
// 如果查询到了对应的供应商信息将供应商的姓名设置到当前进货记录inport以便前端展示进货记录时能同时显示供应商姓名让数据更直观、完整便于业务人员查看相关供应商的进货情况。
// 通过goodsService的getById方法依据当前进货记录中的商品IDinport.getGoodsid()从数据库中查询对应的商品详细信息获取到一个Goods对象若存在的话
// 如果查询到了商品信息将商品的名称设置到当前进货记录inport方便前端展示进货记录时能呈现商品名称使数据更具可读性便于了解进货商品的具体情况。
// 同时将商品的规格信息也设置到当前进货记录inport进一步丰富进货记录展示的数据内容方便业务人员更详细地掌握进货商品的规格特点等信息。
// 创建一个DataGridView对象将查询得到的商品进货记录的总数量通过page1.getTotal()获取以及当前页补充完整信息后的进货记录列表page1.getRecords())进行封装,
// 最终返回给前端,使得前端能够按照分页逻辑展示商品进货信息,并且展示的数据包含了丰富的关联信息(供应商姓名、商品名称和规格等),满足业务查看和操作的实际需求。
/**
*
* @param inportVo IDID
*
* @return ResultObjResultObjADD_SUCCESSADD_ERROR
* 便
*/
// 获得当前系统用户通过从WebUtils获取当前会话HttpSession并从中获取名为"user"的属性(推测是在用户登录成功后将用户信息存储在了会话中),
// 然后将其强制转换为User类型这样就能获取到当前操作的用户对象后续可以利用该用户信息记录是谁进行了此次进货操作等相关业务逻辑。
// 设置操作人将获取到的当前用户的姓名通过user.getName()获取设置到inportVo对象中用于记录此次进货操作是由哪个用户执行的
// 这样在数据库的进货记录中就能明确体现操作人信息,方便后续进行操作记录查询、责任追溯等业务需求。
// 设置进货时间创建一个新的Date对象代表当前时间并将其设置到inportVo对象的"inporttime"属性中,以此记录此次进货业务发生的具体时间,
// 确保进货记录中的时间信息准确无误,便于后续按照时间进行数据查询、统计分析等操作。
// 调用inportService的save方法将包含完整进货信息已设置好操作人、进货时间等的inportVo对象传递过去触发服务层中处理添加进货商品的业务逻辑
// 该逻辑可能涉及到向数据库的进货表中插入一条新记录、更新库存数量(增加对应商品的库存)以及其他关联业务模块的数据交互等一系列复杂操作,
// 如果整个操作过程顺利完成,不会抛出异常;若在执行过程中出现问题(比如数据库插入失败、业务规则校验不通过等情况),则会抛出异常。
// 如果在添加进货商品的过程中出现异常,通过打印异常堆栈信息(这有助于开发人员在排查问题时了解详细的异常发生位置和原因),
// 然后返回表示添加进货商品失败的ResultObj.ADD_ERROR结果对象给前端使得前端能够知晓操作未成功进而采取相应的提示告知用户或者其他补救措施等。
/**
*
* @param inportVo
*
* @return ResultObjResultObjUPDATE_SUCCESSUPDATE_ERROR
// 方便前端根据返回结果进行相应的处理或提示用户,比如提示用户更新成功或者告知更新失败的原因等。
*/
// 调用inportService的updateById方法将包含更新后进货商品信息的inportVo对象传递过去服务层会根据对象中的主键信息通常是进货记录的ID
// 在数据库中找到对应的进货记录并将其他属性值更新为inportVo对象中传入的新值实现更新进货商品信息的功能例如修改进货记录中的数量、价格等字段的值
// 如果更新操作顺利完成则无异常抛出,若出现问题(比如找不到对应记录、更新数据违反约束等情况)则会抛出异常。
// 如果在更新进货商品信息的过程中出现异常打印异常堆栈信息便于开发人员排查问题根源然后返回表示更新操作失败的ResultObj.UPDATE_ERROR结果对象给前端
// 让前端知晓更新操作未成功,以便采取相应的提示或者其他处理措施,比如告知用户更新失败,可尝试再次操作等。
/**
*
* @param id IDID
* @return ResultObjResultObjDELETE_SUCCESSDELETE_ERROR
* 便
*/
// 调用inportService的removeById方法传入要删除的进货记录的ID服务层会根据这个ID在数据库中找到对应的进货记录并执行删除操作
// 如果删除操作顺利完成则无异常抛出,若出现问题(比如存在关联数据、违反数据库约束等情况)则会抛出异常。
// 如果在删除进货商品的过程中出现异常打印异常堆栈信息便于开发人员排查问题根源然后返回表示删除操作失败的ResultObj.DELETE_ERROR结果对象给前端
// 让前端知晓删除操作未成功,以便采取相应的提示或者其他处理措施,比如告知用户删除失败,可尝试再次操作等。

@ -114,3 +114,101 @@ public class OutportController {
}
// OutportController类使用了@RestController注解表明这是一个Spring框架中的RESTful风格的控制器类
// 用于处理与商品退货Outport相关的HTTP请求并将处理结果以JSON等格式返回给客户端通常是前端页面是连接前端与后端业务逻辑的重要环节。
// 同时通过@RequestMapping("/outport")注解,为该控制器下的所有请求映射路径设置了一个公共的前缀"/outport"方便对相关的API进行统一管理和区分。
// 使用@Autowired注解自动注入IOutportService接口的实现类对象用于调用与商品退货相关的业务逻辑方法
// 例如添加退货信息、分页查询退货记录、删除退货信息等操作,具体的业务实现是在对应的服务层接口实现类中完成的,这里只是进行调用触发相应逻辑。
// 同样通过@Autowired注解注入IProviderService接口的实现类对象用于获取供应商相关的业务服务
// 在查询商品退货信息时会借助该服务根据供应商ID查询供应商详细信息以便补充到退货记录中展示更完整的数据。
// 注入IGoodsService接口的实现类对象用于获取商品相关的业务服务在查询商品退货信息时通过该服务依据商品ID查询商品详情如名称、规格等
// 然后将这些商品相关信息设置到退货记录中,使返回给前端的数据更加丰富全面,方便前端展示和业务操作。
/**
* 退
* @param id ID退
* @param number 退退退
* @param remark 退退退
* @return ResultObjResultObjBACKINPORT_SUCCESSBACKINPORT_ERROR退便
*/
// 调用outportService的addOutport方法将前端传入的进货单ID、退货数量和备注信息传递过去触发服务层的添加退货信息业务逻辑
// 该逻辑可能涉及到更新库存、在数据库中插入退货记录、处理与财务等相关模块的数据交互等一系列复杂操作,如果操作顺利完成则无异常抛出,若过程中出现问题(比如数据库操作失败、业务规则校验不通过等)则会抛出异常。
// 如果在添加退货信息过程中出现异常打印异常堆栈信息方便开发人员排查问题根源然后返回表示添加退货信息失败的ResultObj.BACKINPORT_ERROR结果对象给前端
// 使得前端能够知晓操作未成功,进而进行相应的提示告知用户或者采取其他补救措施等。
/**
* 退
* @param outportVo IDID便
* @return DataGridView退退便
*/
// 创建一个IPage对象用于实现分页功能通过传入从outportVo对象中获取的当前页码outportVo.getPage()和每页显示记录数量outportVo.getLimit())来确定分页范围,
// 例如当页码为2且每页显示数量为10时表示要获取第2页每页显示10条商品退货记录的那部分数据方便对大量退货记录进行分页展示提升前端展示和用户查看数据的体验。
// 创建一个QueryWrapper对象用于构建查询条件类似于构建SQL语句中的WHERE子句部分方便灵活地添加各种筛选条件来精确查询符合要求的商品退货记录。
// 对供应商进行查询如果outportVo对象中获取的供应商IDoutportVo.getProviderid()不为空且不等于0说明前端传入了供应商筛选条件
// 则添加一个相等性查询条件,在数据库表中对应"providerid"字段查找与传入的供应商ID相等的退货记录以此实现按供应商筛选退货信息的功能。
// 对商品进行查询同理当outportVo对象中获取的商品IDoutportVo.getGoodsid()不为空且不等于0时表明前端传入了商品筛选条件
// 就在数据库表的"goodsid"字段添加相等性查询条件查找与传入商品ID匹配的退货记录便于根据具体商品来查询其退货情况。
// 对时间进行查询要求大于开始时间小于结束时间当outportVo对象中的开始时间outportVo.getStartTime()不为空时添加一个大于等于ge的查询条件
// 在数据库表的"outputtime"字段推测是退货时间字段筛选出退货时间大于等于传入的开始时间的退货记录同样当结束时间outportVo.getEndTime())不为空时,
// 添加一个小于等于le的查询条件筛选出退货时间小于等于传入的结束时间的退货记录这样就能获取到处于指定时间范围内的商品退货信息方便按时间区间进行数据查询和统计分析等操作。
// 通过进货时间对商品进行排序,添加一个按照"outputtime"字段(退货时间)进行降序排序的条件,使得查询返回的退货记录按照退货时间从近到远的顺序排列,
// 这样在前端展示时,用户能先看到较新的退货记录,更符合一般的数据查看习惯,方便查看和分析近期的退货情况。
// 调用outportService的page方法传入构建好的分页对象page和查询条件包装器queryWrapper服务层会根据这些条件执行数据库查询操作
// 获取符合条件的商品退货数据并将数据填充到page对象中例如设置page对象中的总记录数、当前页的记录列表等属性最终返回填充好数据的page对象赋值给page1。
// 获取查询结果中当前页的退货记录列表,方便后续对每条记录进行补充相关信息的操作,比如添加供应商名称、商品名称和规格等,使返回给前端的数据更加完整详细。
// 遍历当前页查询到的每条商品退货记录,为每条记录补充供应商名称、商品名称和规格等信息,使其展示的数据更加丰富全面,方便前端展示和业务查看使用。
// 通过providerService的getById方法根据当前退货记录中的供应商IDouport.getProviderid()从数据库中查询对应的供应商详细信息获取到一个Provider对象如果存在的话
// 如果查询到了对应的供应商信息将供应商的名称设置到当前退货记录ouport以便前端展示退货记录时能同时显示供应商名称让数据更直观、完整。
// 通过goodsService的getById方法依据当前退货记录中的商品IDouport.getGoodsid()从数据库中查询对应的商品详细信息获取到一个Goods对象若存在的话
// 如果查询到了商品信息将商品的名称设置到当前退货记录ouport方便前端展示退货记录时能呈现商品名称使数据更具可读性。
// 同时将商品的规格信息也设置到当前退货记录ouport进一步丰富退货记录展示的数据内容便于业务操作和查看详细情况。
// 创建一个DataGridView对象将查询得到的商品退货记录的总数量通过page1.getTotal()获取以及当前页补充完整信息后的退货记录列表page1.getRecords())进行封装,
// 最终返回给前端,使得前端能够按照分页逻辑展示商品退货信息,并且展示的数据包含了丰富的关联信息(供应商名称、商品名称和规格等),满足业务查看和操作的需求。
/**
* 退
* @param id 退IDID退
* @return ResultObjResultObjDELETE_SUCCESSDELETE_ERROR退便
*/
// 调用outportService的removeById方法传入要删除的退货记录的ID服务层会根据这个ID在数据库中找到对应的退货记录并执行删除操作
// 如果删除操作顺利完成则无异常抛出,若出现问题(比如存在关联数据、违反数据库约束等)则会抛出异常。
// 如果在删除退货信息过程中出现异常打印异常堆栈信息便于开发人员排查问题然后返回表示删除操作失败的ResultObj.DELETE_ERROR结果对象给前端
// 让前端知晓删除操作未成功,以便采取相应的提示或其他处理措施。

@ -115,3 +115,90 @@ public class ProviderController {
}
// 假设所在类是一个Spring的RestController通过 @RestController 注解标识用于处理HTTP请求并返回JSON等格式的数据响应用于处理与供应商Provider相关的各种业务请求。
// 注入一个实现了IService<Provider>接口的服务层对象这里假设名为providerService用于调用服务层提供的与供应商相关的业务逻辑方法
// 虽然代码中没有显示注入的语句但在实际的Spring项目中通常会通过依赖注入的方式获取该服务对象比如使用 @Autowired 注解等方式进行注入。
// 根据传入的供应商查询条件封装在ProviderVo对象中加载所有符合条件的供应商信息并进行分页返回。
// 1. 声明一个分页page对象
// 创建一个IPage对象用于实现分页功能它接收当前页码通过providerVo.getPage()获取即从前端传入的页码信息和每页显示的记录数量通过providerVo.getLimit()获取)作为参数,
// 这样就确定了本次查询数据的分页范围例如当page为2且limit为10时表示要获取第2页每页显示10条供应商记录的那部分数据。
// 2. 声明一个queryWrapper
// 创建一个QueryWrapper对象用于构建查询条件它可以方便地通过链式调用的方式添加各种查询条件类似于构建SQL语句中的WHERE子句部分用于筛选符合特定条件的供应商记录。
// 根据供应商名称进行模糊查询如果传入的供应商名称通过providerVo.getProvidername()获取不为空字符串使用StringUtils.isNotBlank方法判断
// 则添加一个模糊查询条件,在数据库表中对应"providername"字段进行模糊匹配(匹配包含传入名称的记录),方便根据名称查找相关的供应商。
// 根据联系人名称进行模糊查询原理同上面的供应商名称查询若传入的联系人名称通过providerVo.getConnectionperson()获取)不为空,就在"connectionperson"字段上添加模糊查询条件,
// 以便筛选出符合联系人名称要求的供应商记录。
// 根据电话号码进行模糊查询同样判断传入的电话号码通过providerVo.getPhone()获取)是否不为空,若不为空,则在"phone"字段添加模糊查询条件,实现按电话号码查找供应商的功能。
// 调用服务层的page方法传入构建好的分页对象page和查询条件包装器queryWrapper服务层会根据这些条件执行数据库查询操作获取符合条件的供应商数据并将数据填充到page对象中
// 例如设置page对象中的总记录数、当前页的记录列表等属性以便后续返回分页数据。
// 创建一个DataGridView对象用于将分页查询得到的结果总记录数通过page.getTotal()获取当前页的记录列表通过page.getRecords()获取)进行封装,
// 最终返回给前端方便前端进行分页数据展示等操作DataGridView对象的具体结构和作用取决于项目中的自定义一般是将数据整理成适合前端接收和展示的格式。
/**
*
* @param providerVo
* @return ResultObjResultObjADD_SUCCESSADD_ERROR
*/
// 调用服务层的save方法将传入的包含供应商信息的providerVo对象传递给服务层服务层会将这些信息保存到数据库中实现添加供应商的功能
// 例如将供应商的基本信息插入到对应的供应商表中,如果保存成功则无异常抛出,若保存过程中出现问题(如数据库连接异常、数据格式不符合要求等)则会抛出异常。
// 如果在保存供应商信息过程中出现异常打印异常堆栈信息方便开发人员排查问题然后返回表示添加失败的ResultObj.ADD_ERROR结果对象给前端
// 让前端知道添加操作没有成功,以便进行相应的提示或处理。
/**
*
* @param providerVo
* @return ResultObjResultObjUPDATE_SUCCESSUPDATE_ERROR
*/
// 调用服务层的updateById方法将传入的包含更新后供应商信息的providerVo对象传递给服务层服务层会根据对象中的主键信息通常是供应商的ID
// 在数据库中找到对应的供应商记录并将其他属性值更新为providerVo对象中传入的新值实现修改供应商信息的功能如果更新成功则无异常抛出若出现问题如找不到对应记录、更新数据违反约束等则会抛出异常。
// 如果在更新供应商信息过程中出现异常打印异常堆栈信息方便开发人员排查问题然后返回表示修改失败的ResultObj.UPDATE_ERROR结果对象给前端
// 让前端知道修改操作没有成功,以便进行相应的提示或处理。
/**
*
* @param id IDID
* @return ResultObjResultObjDELETE_SUCCESSDELETE_ERROR
*/
/**
*
* @return DataGridView便使
*/
// 添加一个相等性查询条件,在数据库表中对应"available"字段查询其值等于Constast.AVAILABLE_TRUE这里Constast应该是项目中定义的一个常量类AVAILABLE_TRUE表示可用状态的常量值的供应商记录
// 以此获取所有处于可用状态的供应商信息。
// 调用服务层的list方法传入构建好的查询条件包装器queryWrapper服务层会根据这个条件执行数据库查询操作获取所有符合可用状态条件的供应商数据并返回一个包含这些供应商对象的列表。
// 创建一个DataGridView对象将查询得到的可用供应商列表进行封装最终返回给前端方便前端进行展示或者其他相关业务操作比如在下拉框中展示可用供应商供用户选择等

@ -32,7 +32,7 @@ import java.util.List;
*/
@RestController
@RequestMapping("/sales")
public class WSalesController {
public class SalesController {
@Autowired
private ISalesService salesService;

@ -114,3 +114,103 @@ public class SalesbackController {
}
// SalesbackController类使用了@RestController注解表明它是Spring框架下用于构建RESTful API的控制器类主要负责处理与商品销售退货Salesback相关的HTTP请求
// 并将处理结果以合适的格式如JSON返回给客户端通常是前端应用在整个项目的前后端交互中起着桥梁的作用。同时通过@RequestMapping("/salesback")注解,
// 为该控制器下所有的请求映射路径设置了公共前缀"/salesback",便于对商品销售退货相关的接口进行统一管理和分类。
// 使用@Autowired注解自动注入ISalesbackService接口的实现类对象通过这个服务对象可以调用与商品销售退货相关的核心业务逻辑方法
// 比如添加退货信息、分页查询销售退货记录以及删除销售退回信息等操作具体的业务实现细节则在ISalesbackService接口对应的实现类中完成这里只是进行调用触发相应的业务逻辑流程。
// 通过@Autowired注解注入ICustomerService接口的实现类对象用于获取客户相关的业务服务。在查询商品销售退货信息时借助该服务根据客户ID查询客户的详细信息
// 以便将客户姓名等相关信息补充到销售退货记录中,使返回给前端的数据更加完整,方便前端展示和业务操作时能呈现更全面的客户相关情况。
// 同样使用@Autowired注解注入IGoodsService接口的实现类对象用于获取商品相关的业务服务。在处理销售退货记录查询结果时通过该服务依据商品ID查询商品详情如商品名称、规格等
// 然后将这些商品相关信息设置到销售退货记录中,进一步丰富返回给前端的数据内容,让前端能够展示更详细的商品相关信息,便于业务查看和分析销售退货情况。
/**
* 退
* @param id ID退退
* @param number 退退退
* @param remark 退退退
* @return ResultObjResultObjBACKINPORT_SUCCESSBACKINPORT_ERROR退
* 便
*/
// 调用salesbackService的addSalesback方法将前端传入的进货单ID、退货数量以及备注信息传递过去以此触发服务层中处理添加销售退货信息的业务逻辑
// 该逻辑可能涉及到调整库存(将退货商品重新入库)、在数据库中插入销售退货记录、更新与销售退货相关的财务数据以及其他关联业务模块的数据交互等一系列复杂操作,
// 如果整个操作过程顺利完成,不会抛出异常;若在执行过程中出现问题(比如数据库插入失败、业务规则校验不通过等情况),则会抛出异常。
// 如果在添加销售退货信息的过程中出现异常,通过打印异常堆栈信息(这有助于开发人员在排查问题时了解详细的异常发生位置和原因),
// 然后返回表示添加销售退货信息失败的ResultObj.BACKINPORT_ERROR结果对象给前端使得前端能够知晓操作未成功进而采取相应的提示告知用户或者其他补救措施等。
/**
* 退
* @param salesbackVo IDID
* 便退
* @return DataGridView退退
* 便
*/
// 创建一个IPage对象用于实现分页功能通过传入从salesbackVo对象中获取的当前页码salesbackVo.getPage()和每页显示记录数量salesbackVo.getLimit())来确定分页范围,
// 例如当页码为2且每页显示数量为10时表示要获取第2页每页显示10条商品销售退货记录的那部分数据这样可以对大量的销售退货记录进行分页管理提升前端展示效果以及用户查看数据的体验。
// 创建一个QueryWrapper对象用于构建查询条件它类似于构建SQL语句中的WHERE子句部分能够灵活地添加各种筛选条件从而精确地查询出符合特定要求的商品销售退货记录。
// 对客户进行查询如果从salesbackVo对象中获取的客户IDsalesbackVo.getCustomerid()不为空且不等于0说明前端传入了客户筛选条件
// 则添加一个相等性查询条件,在数据库表中对应"customerid"字段查找与传入的客户ID相等的销售退货记录以此实现按客户来筛选销售退货信息的功能方便查看特定客户的销售退货情况。
// 对商品进行查询同理当salesbackVo对象中获取的商品IDsalesbackVo.getGoodsid()不为空且不等于0时表明前端传入了商品筛选条件
// 就在数据库表的"goodsid"字段添加相等性查询条件查找与传入商品ID匹配的销售退货记录便于根据具体商品来查询其销售退货情况满足不同业务场景下对商品销售退货数据的查询需求。
// 对时间进行查询要求大于开始时间小于结束时间当salesbackVo对象中的开始时间salesbackVo.getStartTime()不为空时添加一个大于等于ge的查询条件
// 在数据库表的"salesbacktime"字段推测是商品销售退货时间字段筛选出销售退货时间大于等于传入的开始时间的销售退货记录同样当结束时间salesbackVo.getEndTime())不为空时,
// 添加一个小于等于le的查询条件筛选出销售退货时间小于等于传入的结束时间的销售退货记录这样就能获取到处于指定时间范围内的商品销售退货信息方便按时间区间进行数据查询、统计分析等操作。
// 通过商品退货时间对商品进行排序,添加一个按照"salesbacktime"字段(商品销售退货时间)进行降序排序的条件,使得查询返回的销售退货记录按照退货时间从近到远的顺序排列,
// 这样在前端展示时,用户能先看到较新的销售退货记录,更符合一般的数据查看习惯,方便查看和分析近期的销售退货情况,有助于及时发现问题或者跟踪业务趋势。
// 调用salesbackService的page方法传入构建好的分页对象page和查询条件包装器queryWrapper服务层会根据这些条件执行数据库查询操作
// 获取符合条件的商品销售退货数据并将数据填充到page对象中例如设置page对象中的总记录数、当前页的记录列表等属性以便后续返回完整的分页数据信息。
// 获取查询结果中当前页的销售退货记录列表,方便后续对每条记录进行补充相关信息的操作,比如添加客户姓名、商品名称和规格等,使返回给前端的数据更加丰富详细,更具业务价值。
// 遍历当前页查询到的每条商品销售退货记录,为每条记录补充客户姓名、商品名称和规格等信息,使其展示的数据更加完整全面,方便前端展示以及业务查看和操作使用。
// 通过customerService的getById方法根据当前销售退货记录中的客户IDsalesback.getCustomerid()从数据库中查询对应的客户详细信息获取到一个Customer对象如果存在的话
// 如果查询到了对应的客户信息将客户的姓名设置到当前销售退货记录salesback以便前端展示销售退货记录时能同时显示客户姓名让数据更直观、完整便于业务人员查看相关客户的退货情况。
// 通过goodsService的getById方法依据当前销售退货记录中的商品IDsalesback.getGoodsid()从数据库中查询对应的商品详细信息获取到一个Goods对象若存在的话
// 如果查询到了商品信息将商品的名称设置到当前销售退货记录salesback方便前端展示销售退货记录时能呈现商品名称使数据更具可读性便于了解退货商品的具体情况。
// 同时将商品的规格信息也设置到当前销售退货记录salesback进一步丰富退货记录展示的数据内容方便业务人员更详细地掌握退货商品的规格特点等信息。
// 创建一个DataGridView对象将查询得到的商品销售退货记录的总数量通过page.getTotal()获取以及当前页补充完整信息后的销售退货记录列表page.getRecords())进行封装,
// 最终返回给前端,使得前端能够按照分页逻辑展示商品销售退货信息,并且展示的数据包含了丰富的关联信息(客户姓名、商品名称和规格等),满足业务查看和操作的实际需求。
/**
* 退
* @param id 退IDID退
* @return ResultObjResultObjDELETE_SUCCESSDELETE_ERROR退
* 便
*/
// 调用salesbackService的removeById方法传入要删除的销售退回记录的ID服务层会根据这个ID在数据库中找到对应的销售退回记录并执行删除操作
// 如果删除操作顺利完成则无异常抛出,若出现问题(比如存在关联数据、违反数据库约束等情况)则会抛出异常。
// 如果在删除商品销售退回信息的过程中出现异常打印异常堆栈信息便于开发人员排查问题根源然后返回表示删除操作失败的ResultObj.DELETE_ERROR结果对象给前端
// 让前端知晓删除操作未成功,以便采取相应的提示或者其他处理措施,比如告知用户删除失败,可尝试再次操作等。

Loading…
Cancel
Save