7 files modified
217 ■■■■■ changed files
src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityOrderController.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java 61 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/activity/ApiCheckOrderVo.java 3 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/index.html 136 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -178,7 +178,7 @@
    @Bean
    public Queue activityOrderCheckQueue() {
        return new Queue(QueueConstants.ACTIVITY_ORDER_ITEM_CHECK);
        return new Queue(RabbitQueueEnum.ACTIVITY_ORDER_ITEM_CHECK.getQueue());
    }
    @Bean
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -36,5 +36,6 @@
        registration.excludePathPatterns("/api/happyCategory/allCategory");
        registration.excludePathPatterns("/api/happyCategory/indexCategory");
        registration.excludePathPatterns("/api/happyActivity/activityList");
        registration.excludePathPatterns("/api/happyActivity/activityInfo");
    }
}
src/main/java/cc/mrbird/febs/mall/controller/activity/ApiHappyActivityOrderController.java
@@ -120,7 +120,7 @@
        return happyActivityService.orderDelete(id);
    }
    @ApiOperation(value = "核销门票", notes = "核销门票")
    @ApiOperation(value = "核销门票-详细信息", notes = "核销门票-详细信息")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiCheckOrderVo.class)
    })
@@ -130,6 +130,16 @@
        return happyActivityService.checkOrder(dto);
    }
    @ApiOperation(value = "核销门票-确认核销", notes = "核销门票-确认核销")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = ApiCheckOrderVo.class)
    })
    @PostMapping(value = "/insureOrder")
    public FebsResponse insureOrder(@RequestBody @Validated ApiCheckOrderDto dto) {
        return happyActivityService.insureOrder(dto);
    }
    @ApiOperation(value = "我的报名-评价", notes = "我的报名-评价")
    @PostMapping(value = "/addComment")
    public FebsResponse addComment(@RequestBody @Validated ApiPayOrderAddCommentDto dto) {
src/main/java/cc/mrbird/febs/mall/service/HappyActivityService.java
@@ -70,6 +70,8 @@
    FebsResponse checkOrder(ApiCheckOrderDto dto);
    FebsResponse insureOrder(ApiCheckOrderDto dto);
    void checkActivityItem(Long orderId);
    void overtimeJob();
src/main/java/cc/mrbird/febs/mall/service/impl/HappyActivityServiceImpl.java
@@ -795,7 +795,7 @@
        List<HappyActivityOrderItem> happyActivityOrderItems = happyActivityOrderItemMapper.selectList(
                new LambdaQueryWrapper<HappyActivityOrderItem>()
                        .eq(HappyActivityOrderItem::getOrderId, happyActivityOrder.getActivityId())
                        .eq(HappyActivityOrderItem::getOrderId, happyActivityOrder.getId())
                .eq(HappyActivityOrderItem::getMemberId, memberId)
        );
        if(CollUtil.isNotEmpty(happyActivityOrderItems)){
@@ -899,31 +899,56 @@
        HappyActivityOrderItem happyActivityOrderItem = happyActivityOrderItemMapper.selectOne(
                new LambdaQueryWrapper<HappyActivityOrderItem>()
                        .eq(HappyActivityOrderItem::getCode, orderItemCode)
                        .eq(HappyActivityOrderItem::getState, StateUpDownEnum.DOWN.getCode())
                .last("limit 1")
        );
        if(happyActivityOrderItem == null){
            throw new FebsException("票号异常!");
        }
        HappyActivity happyActivity = this.baseMapper.selectById(happyActivityOrderItem.getActivityId());
        ApiCheckOrderVo apiCheckOrderVo = new ApiCheckOrderVo();
        apiCheckOrderVo.setActivityName(happyActivity.getName());
        apiCheckOrderVo.setActivityStartTime(happyActivity.getStartTime());
        apiCheckOrderVo.setActivityEndTime(happyActivity.getEndTime());
        apiCheckOrderVo.setActivityAddress(happyActivity.getAddress());
        apiCheckOrderVo.setCode(happyActivityOrderItem.getCode());
        apiCheckOrderVo.setName(happyActivityOrderItem.getName());
        apiCheckOrderVo.setPhone(happyActivityOrderItem.getPhone());
        apiCheckOrderVo.setPrice(happyActivityOrderItem.getPrice());
        apiCheckOrderVo.setState(happyActivityOrderItem.getState());
        return new FebsResponse().success().data(apiCheckOrderVo);
    }
    @Override
    public FebsResponse insureOrder(ApiCheckOrderDto dto) {
        // 获取当前登录用户的ID
        Long memberId = LoginUserUtil.getLoginUser().getId();
        MallMember mallMember = mallMemberMapper.selectById(memberId);
        if(StateUpDownEnum.UP.getCode() != mallMember.getCheckOrder()){
            throw new FebsException("您不是核销员!");
        }
        String orderItemCode = dto.getOrderItemCode();
        HappyActivityOrderItem happyActivityOrderItem = happyActivityOrderItemMapper.selectOne(
                new LambdaQueryWrapper<HappyActivityOrderItem>()
                        .eq(HappyActivityOrderItem::getCode, orderItemCode)
                        .last("limit 1")
        );
        if(happyActivityOrderItem != null){
            if(StateUpDownEnum.UP.getCode() == happyActivityOrderItem.getState()){
                throw new FebsException("票号已核销!");
            }
            happyActivityOrderItem.setState(StateUpDownEnum.UP.getCode());
            happyActivityOrderItem.setTransferItemId(memberId);
            happyActivityOrderItemMapper.updateById(happyActivityOrderItem);
            agentProducer.sendCheckActivityItem(happyActivityOrderItem.getOrderId());
            HappyActivity happyActivity = this.baseMapper.selectById(happyActivityOrderItem.getActivityId());
            ApiCheckOrderVo apiCheckOrderVo = new ApiCheckOrderVo();
            apiCheckOrderVo.setActivityName(happyActivity.getName());
            apiCheckOrderVo.setActivityStartTime(happyActivity.getStartTime());
            apiCheckOrderVo.setActivityEndTime(happyActivity.getEndTime());
            apiCheckOrderVo.setActivityAddress(happyActivity.getAddress());
            apiCheckOrderVo.setCode(happyActivityOrderItem.getCode());
            apiCheckOrderVo.setName(happyActivityOrderItem.getName());
            apiCheckOrderVo.setPhone(happyActivityOrderItem.getPhone());
            apiCheckOrderVo.setPrice(happyActivityOrderItem.getPrice());
            return new FebsResponse().success().data(apiCheckOrderVo);
        }
        return new FebsResponse().fail().message("核销失败!");
        return new FebsResponse().success().message("操作成功");
    }
    /**
src/main/java/cc/mrbird/febs/mall/vo/activity/ApiCheckOrderVo.java
@@ -37,5 +37,8 @@
    @ApiModelProperty(value = "实付金额")
    private BigDecimal price;
    @ApiModelProperty(value = "票据状态 0-待使用 1-已使用")
    private Integer state;
}
src/main/resources/templates/febs/views/index.html
@@ -133,76 +133,76 @@
                    </div>
                </div>
                <div class="layui-card-body layui-anim layui-anim-fadein">
                    <div class="layui-row">
                        <div class="m-title">订单付款</div>
                        <div class="layui-row layui-col-space15">
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">微信支付</p>
                                        <p class="num"><span id="wechatPay"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">余额支付</p>
                                        <p class="num"><span id="balancePay"></span></p>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
<!--                <div class="layui-card-body layui-anim layui-anim-fadein">-->
<!--                    <div class="layui-row">-->
<!--                        <div class="m-title">订单付款</div>-->
<!--                        <div class="layui-row layui-col-space15">-->
<!--                            <div class="layui-col-md3">-->
<!--                                <div class="layui-panel">-->
<!--                                    <div class="box">-->
<!--                                        <p class="name">微信支付</p>-->
<!--                                        <p class="num"><span id="wechatPay"></span></p>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                            <div class="layui-col-md3">-->
<!--                                <div class="layui-panel">-->
<!--                                    <div class="box">-->
<!--                                        <p class="name">余额支付</p>-->
<!--                                        <p class="num"><span id="balancePay"></span></p>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>-->
                <div class="layui-card-body layui-anim layui-anim-fadein">
                    <div class="layui-row">
                        <div class="m-title">会员注册</div>
                        <div class="layui-row layui-col-space15">
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">用户注册总数</p>
                                        <p class="num"><span id="totalMember"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">本日注册用户数</p>
                                        <p class="num"><span id="todayMember"></span></p>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
<!--                <div class="layui-card-body layui-anim layui-anim-fadein">-->
<!--                    <div class="layui-row">-->
<!--                        <div class="m-title">会员注册</div>-->
<!--                        <div class="layui-row layui-col-space15">-->
<!--                            <div class="layui-col-md3">-->
<!--                                <div class="layui-panel">-->
<!--                                    <div class="box">-->
<!--                                        <p class="name">用户注册总数</p>-->
<!--                                        <p class="num"><span id="totalMember"></span></p>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                            <div class="layui-col-md3">-->
<!--                                <div class="layui-panel">-->
<!--                                    <div class="box">-->
<!--                                        <p class="name">本日注册用户数</p>-->
<!--                                        <p class="num"><span id="todayMember"></span></p>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>-->
                <div class="layui-card-body layui-anim layui-anim-fadein">
                    <div class="layui-row">
                        <div class="layui-row layui-col-space15">
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">本月注册用户数</p>
                                        <p class="num"><span id="thisMonthMember"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">上月注册用户数</p>
                                        <p class="num"><span id="lastMonthMember"></span></p>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
<!--                <div class="layui-card-body layui-anim layui-anim-fadein">-->
<!--                    <div class="layui-row">-->
<!--                        <div class="layui-row layui-col-space15">-->
<!--                            <div class="layui-col-md3">-->
<!--                                <div class="layui-panel">-->
<!--                                    <div class="box">-->
<!--                                        <p class="name">本月注册用户数</p>-->
<!--                                        <p class="num"><span id="thisMonthMember"></span></p>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                            <div class="layui-col-md3">-->
<!--                                <div class="layui-panel">-->
<!--                                    <div class="box">-->
<!--                                        <p class="name">上月注册用户数</p>-->
<!--                                        <p class="num"><span id="lastMonthMember"></span></p>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>-->
            </div>
        </div>