xiaoyong931011
2023-08-16 cacf9bc8c94295ec3296a8cb49bda2b95087afb7
后台修改
11 files modified
3 files added
267 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/controller/AdminMallGoodsController.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ApiDappOrderController.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ViewAdminMallGoodsController.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/dto/DeliverGoodsDto.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/mapper/MallGoodsMapper.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/IAdminMallGoodsService.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/AdminMallGoodsService.java 40 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java 19 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/vo/AdminMallOrderVo.java 17 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/dapp/MallGoodsMapper.xml 5 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/goods/orderList.html 12 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/goods/orderdeliverGoods.html 105 ●●●●● patch | view | raw | blame | history
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>