src/main/java/cc/mrbird/febs/dapp/controller/AdminMallGoodsController.java
@@ -222,6 +222,15 @@ return new FebsResponse().success().data(dataTable); } /** * 订单列表-发货 */ @PostMapping("deliverGoods") @ControllerEndpoint(operation = "订单列表-发货", exceptionMessage = "操作失败") public FebsResponse deliverGoods(@Valid DeliverGoodsDto deliverGoodsDto) { return adminMallGoodsService.deliverGoods(deliverGoodsDto); } @GetMapping(value = "/findDicByType/{type}") public FebsResponse findDicByType(@PathVariable("type") String type) { return new FebsResponse().success().data(adminMallGoodsService.findDataDicByType(type)); src/main/java/cc/mrbird/febs/dapp/controller/ApiDappOrderController.java
@@ -113,6 +113,13 @@ return new FebsResponse().success().message("操作成功"); } @ApiOperation(value = "确认收货", notes = "确认收货") @PostMapping(value = "/confirm/{id}") public FebsResponse confirm(@PathVariable("id") Long id) { dappMemberService.confirmOrder(id); return new FebsResponse().success().message("确认成功"); } @ApiOperation(value = "资产包详情", notes = "资产包详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = PackageInfoVo.class) src/main/java/cc/mrbird/febs/dapp/controller/ViewAdminMallGoodsController.java
@@ -10,6 +10,7 @@ import cc.mrbird.febs.dapp.service.IAdminMallGoodsService; import cc.mrbird.febs.dapp.service.IMallNewsInfoService; import cc.mrbird.febs.dapp.vo.AdminMallGoodsCategoryVo; import cc.mrbird.febs.dapp.vo.AdminMallOrderVo; import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -117,6 +118,21 @@ return FebsUtil.view("goods/orderMoneyFlow"); } /** * 订单-发货 * @param id * @param model * @return */ @GetMapping("deliverGoods/{id}") @RequiresPermissions("orderMoneyFlow:update") // @RequiresPermissions("deliverGoods:update") public String deliverGoods(@PathVariable long id, Model model) { AdminMallOrderVo data = mallGoodsService.getMallOrderInfoById(id); model.addAttribute("deliverInfo", data); return FebsUtil.view("modules/order/deliverGoods"); } @GetMapping("profitSetting") @RequiresPermissions("profitSetting:view") public String profitSetting() { src/main/java/cc/mrbird/febs/dapp/dto/DeliverGoodsDto.java
New file @@ -0,0 +1,20 @@ package cc.mrbird.febs.dapp.dto; import io.swagger.annotations.ApiModel; import lombok.Data; @Data @ApiModel(value = "DeliverGoodsDto", description = "接收参数类") public class DeliverGoodsDto { private Long id; private String expressNo; private String expressCom; private String expressCode; private String orderNo; } src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -108,5 +108,5 @@ IPage<MallAddressInfo> selectShopAddressListInPage(@Param("record")MallGoodsQueryDto queryDto, Page<MallAddressInfo> page); void updateIsDefault(Integer isYourN, Long memberId, Object o); int updateIsDefault(@Param("isDefault") Integer isDefault, @Param("memberId") Long memberId, @Param("id") Long id); } src/main/java/cc/mrbird/febs/dapp/mapper/MallGoodsMapper.java
@@ -3,6 +3,7 @@ import cc.mrbird.febs.dapp.dto.MallOrderInfoDto; import cc.mrbird.febs.dapp.entity.MallGoods; import cc.mrbird.febs.dapp.entity.MallOrderInfo; import cc.mrbird.febs.dapp.vo.AdminMallOrderVo; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -29,4 +30,6 @@ IPage<MallOrderInfo> selectOrderListInPage(Page<MallOrderInfo> page, @Param("record") MallOrderInfoDto mallOrderInfo); List<MallGoods> selectMallGoodsByCategaryId(@Param("categaryId")Long childCategaryId); AdminMallOrderVo getMallOrderInfoById(@Param("id")long id); } src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -106,4 +106,6 @@ FebsResponse findAllBanner(); void setDefaultAddress(Long id); void confirmOrder(Long id); } src/main/java/cc/mrbird/febs/dapp/service/IAdminMallGoodsService.java
@@ -2,14 +2,12 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.dapp.dto.AddMallGoodsDto; import cc.mrbird.febs.dapp.dto.HlmBasicPerkDto; import cc.mrbird.febs.dapp.dto.MallGoodsUpdateDto; import cc.mrbird.febs.dapp.dto.MallOrderInfoDto; import cc.mrbird.febs.dapp.dto.*; import cc.mrbird.febs.dapp.entity.*; import cc.mrbird.febs.dapp.vo.AdminMallGoodsCategoryTreeVo; import cc.mrbird.febs.dapp.vo.AdminMallGoodsCategoryVo; import cc.mrbird.febs.dapp.vo.AdminMallMoneyFlowVo; import cc.mrbird.febs.dapp.vo.AdminMallOrderVo; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -65,4 +63,8 @@ FebsResponse platformBannerDelete(@NotNull(message = "{required}") Long id); void platformBannerAdd(@Valid PlatformBanner platformBannerEntity); AdminMallOrderVo getMallOrderInfoById(long id); FebsResponse deliverGoods(DeliverGoodsDto deliverGoodsDto); } src/main/java/cc/mrbird/febs/dapp/service/impl/AdminMallGoodsService.java
@@ -2,10 +2,7 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.dapp.dto.AddMallGoodsDto; import cc.mrbird.febs.dapp.dto.HlmBasicPerkDto; import cc.mrbird.febs.dapp.dto.MallGoodsUpdateDto; import cc.mrbird.febs.dapp.dto.MallOrderInfoDto; import cc.mrbird.febs.dapp.dto.*; import cc.mrbird.febs.dapp.entity.*; import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum; import cc.mrbird.febs.dapp.mapper.*; @@ -13,6 +10,7 @@ import cc.mrbird.febs.dapp.vo.AdminMallGoodsCategoryTreeVo; import cc.mrbird.febs.dapp.vo.AdminMallGoodsCategoryVo; import cc.mrbird.febs.dapp.vo.AdminMallMoneyFlowVo; import cc.mrbird.febs.dapp.vo.AdminMallOrderVo; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; @@ -418,6 +416,11 @@ } @Override public AdminMallOrderVo getMallOrderInfoById(long id) { return this.baseMapper.getMallOrderInfoById(id); } public void updateDataDic(String type, String code, String value) { DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(type, code); if (dic != null) { @@ -426,4 +429,33 @@ } } @Override public FebsResponse deliverGoods(DeliverGoodsDto deliverGoodsDto) { MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(deliverGoodsDto.getId()); if(ObjectUtil.isEmpty(mallOrderInfo)){ return new FebsResponse().fail().message("订单不存在,刷新后重试"); } Integer status = mallOrderInfo.getStatus(); if(2 != status){ return new FebsResponse().fail().message("订单不是已完成状态"); } Integer deliverState = mallOrderInfo.getDeliverState(); if(1 != deliverState){ return new FebsResponse().fail().message("订单不是待发货状态"); } String expressNo = deliverGoodsDto.getExpressNo(); if(StrUtil.isEmpty(expressNo)){ return new FebsResponse().fail().message("请输入物流单号"); } String expressCom = deliverGoodsDto.getExpressCom(); if(StrUtil.isEmpty(expressCom)){ return new FebsResponse().fail().message("请输入物流公司"); } mallOrderInfo.setDeliverState(2); mallOrderInfo.setDeliverName(expressCom); mallOrderInfo.setDeliverCode(expressNo); mallOrderInfoMapper.updateById(mallOrderInfo); return new FebsResponse().success(); } } src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -1259,6 +1259,25 @@ this.baseMapper.updateIsDefault(MallAddressInfo.IS_YOUR_Y, memberId, id); } @Override public void confirmOrder(Long id) { Long memberId = LoginUserUtil.getAppUser().getId(); MallOrderInfo orderInfo = mallOrderInfoMapper.selectById(id); if (ObjectUtil.isEmpty(orderInfo)) { throw new FebsException("订单不存在"); } if (orderInfo.getStatus() != MallOrderInfo.STATUS_PAY) { throw new FebsException("该状态不能确认收货"); } if (orderInfo.getDeliverState() != MallOrderInfo.DELIVER_STATUS_DONE) { throw new FebsException("该状态不能确认收货"); } orderInfo.setDeliverState(MallOrderInfo.DELIVER_STATUS_OVER); mallOrderInfoMapper.updateById(orderInfo); } public static List<List<String>> partitionList(List<String> originalList, int partitionSize) { List<List<String>> partitionedList = new ArrayList<>(); int size = originalList.size(); src/main/java/cc/mrbird/febs/dapp/vo/AdminMallOrderVo.java
New file @@ -0,0 +1,17 @@ package cc.mrbird.febs.dapp.vo; import io.swagger.annotations.ApiModel; import lombok.Data; @Data @ApiModel(value = "AdminMallOrderVo", description = "信息返回类") public class AdminMallOrderVo { private Long id; private String name; private String phone; private String address; } src/main/resources/mapper/dapp/MallGoodsMapper.xml
@@ -87,4 +87,9 @@ select * from mall_goods a where a.category_id = #{categaryId} </select> <select id="getMallOrderInfoById" resultType="cc.mrbird.febs.dapp.vo.AdminMallOrderVo"> select b.* from mall_address_info b where b.id = (select a.address_id from mall_order_info a where a.id = #{id}) </select> </mapper> src/main/resources/templates/febs/views/goods/orderList.html
@@ -92,6 +92,7 @@ <!-- 表格操作栏 start --> <script type="text/html" id="mall-order-option"> {{# if(d.status === 2) { }} <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="orderMoneyFlow:update" lay-event="deliverGoods">发货</button> <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="orderMoneyFlow:update" lay-event="orderMoneyFlow">资金流水</button> {{# } else if(d.status === 3) { }} <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="orderMoneyFlow:update" lay-event="delOrder">删除</button> @@ -155,6 +156,17 @@ maxmin: true, }); } if (layEvent === 'deliverGoods') { febs.modal.open('发货', 'goodsView/deliverGoods/' + data.id, { btn: ['确认', '取消'], yes: function (index, layero) { $('#deliver-update').find('#submit').trigger('click'); }, btn2: function () { layer.closeAll(); } }); } }); function delOrder(id) { src/main/resources/templates/febs/views/goods/orderdeliverGoods.html
New file @@ -0,0 +1,105 @@ <style> #deliver-update { padding: 20px 25px 25px 0; } #deliver-update .layui-treeSelect .ztree li a, .ztree li span { margin: 0 0 2px 3px !important; } #deliver-update #data-permission-tree-block { border: 1px solid #eee; border-radius: 2px; padding: 3px 0; } #deliver-update .layui-treeSelect .ztree li span.button.switch { top: 1px; left: 3px; } </style> <div class="layui-fluid" id="deliver-update"> <form class="layui-form" action="" lay-filter="deliver-update-form"> <div class="layui-form-item febs-hide"> <label class="layui-form-label febs-form-item-require">id:</label> <div class="layui-input-block"> <input type="text" name="id"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">收货人:</label> <div class="layui-input-block"> <input type="text" name="name" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">联系方式:</label> <div class="layui-input-block"> <input type="text" name="phone" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">地址:</label> <div class="layui-input-block"> <input type="text" name="address" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">物流单号:</label> <div class="layui-input-block"> <input type="text" name="expressNo" autocomplete="off" class="layui-input" > </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">物流公司:</label> <div class="layui-input-block"> <input type="text" name="expressCom" autocomplete="off" class="layui-input" > </div> </div> <div class="layui-form-item febs-hide"> <button class="layui-btn" lay-submit="" lay-filter="deliver-update-form-submit" id="submit"></button> </div> </form> </div> <script data-th-inline="javascript"> layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () { var $ = layui.$, febs = layui.febs, layer = layui.layer, formSelects = layui.formSelects, treeSelect = layui.treeSelect, form = layui.form, eleTree = layui.eleTree, deliverInfo = [[${deliverInfo}]], $view = $('#deliver-update'), validate = layui.validate, _deptTree; form.render(); initUserValue(); function initUserValue() { form.val("deliver-update-form", { "id": deliverInfo.id, "name": deliverInfo.name, "phone": deliverInfo.phone, "address": deliverInfo.address }); } form.on('submit(deliver-update-form-submit)', function (data) { febs.post(ctx + 'admin/goods/deliverGoods', data.field, function () { layer.closeAll(); febs.alert.success('操作成功'); $('#febs-order').find('#reset').click(); }); return false; }); }); </script>