| | |
| | | package com.ruoyi.shop.controller.business; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.security.utils.SecurityUtils; |
| | | import com.ruoyi.shop.domain.dto.*; |
| | | import com.ruoyi.shop.domain.pojo.shop.ShopRelUser; |
| | | import com.ruoyi.shop.domain.vo.MerAgencyPageVo; |
| | | import com.ruoyi.shop.domain.vo.MerShopCertificateListVo; |
| | | import com.ruoyi.shop.domain.vo.MerShopSuggestVo; |
| | | import com.ruoyi.shop.domain.vo.MerchantBasicdataSettlementVo; |
| | | import com.ruoyi.shop.domain.vo.*; |
| | | import com.ruoyi.shop.service.shop.*; |
| | | import com.ruoyi.system.api.domain.dto.*; |
| | | import com.ruoyi.system.api.domain.dto.MerBaseDto; |
| | | import com.ruoyi.system.api.domain.dto.MerBaseGetDto; |
| | | import com.ruoyi.system.api.domain.dto.MerEditUserDto; |
| | | import com.ruoyi.system.api.domain.dto.MerPageDto; |
| | | import com.ruoyi.system.api.domain.poji.shop.Shop; |
| | | import com.ruoyi.system.api.domain.poji.shop.ShopAppointableTime; |
| | | import com.ruoyi.system.api.domain.poji.shop.ShopNonAppointableTime; |
| | | import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; |
| | | import com.ruoyi.system.api.domain.vo.MerStaffInfoVo; |
| | | import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.Comparator; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author jqs34 |
| | |
| | | @Resource |
| | | private ShopSuggestService shopSuggestService; |
| | | |
| | | @Resource |
| | | private ShopNonAppointableTimeService shopNonAppointableTimeService; |
| | | |
| | | @Resource |
| | | private ShopAppointableTimeService shopAppointableTimeService; |
| | | |
| | | |
| | | /** |
| | | * 未完成实际统计 |
| | | * |
| | | * @param merBaseDto |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "/getMerHomeTotal", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取商户端商业统计") |
| | | @ApiOperation(value = "获取商户端商业统计【2.0】") |
| | | public R<MerHomeShopTotalVo> getMerHomeTotal(@RequestBody MerBaseDto merBaseDto) { |
| | | Long userId = SecurityUtils.getUserId(); |
| | | merBaseDto.setUserId(userId); |
| | |
| | | } |
| | | |
| | | @RequestMapping(value = "/getShopStaffInfo", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取员工信息") |
| | | public R<MerStaffInfoVo> getShopStaffInfo() { |
| | | @ApiOperation(value = "获取员工信息【2.0】") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "当前商户id", name = "shopId", required = true, dataType = "Long", paramType = "query") |
| | | }) |
| | | public R<MerStaffInfoVo> getShopStaffInfo(@RequestParam("shopId") Long shopId) { |
| | | Long userId = SecurityUtils.getUserId(); |
| | | ShopRelUser shopRelUser = shopRelUserService.getByUserId(userId); |
| | | Shop shop = shopService.getByShopId(shopRelUser.getShopId()); |
| | | Shop shop = shopService.getByShopId(shopId); |
| | | MerStaffInfoVo merStaffInfoVo = shopStaffService.getShopStaffInfo(userId,shop); |
| | | return R.ok(merStaffInfoVo); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping(value = "/listShopByShop", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取商户下属代理商") |
| | | public R<List<MgtSimpleShopVo>> listShopByShop(@RequestBody MerBaseDto merBaseDto) |
| | | { |
| | | public R<List<MgtSimpleShopVo>> listShopByShop(@RequestBody MerBaseDto merBaseDto) { |
| | | List<MgtSimpleShopVo> mgtShopListSimpleVos = shopService.listShopByShop(merBaseDto.getShopId()); |
| | | return R.ok(mgtShopListSimpleVos); |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping(value = "/getShopMerchantBasicDataSettlement", method = RequestMethod.POST) |
| | |
| | | public R<List<MerchantBasicdataSettlementVo>> getMerchantBasicDataSettlement(@Validated @RequestBody MerchantBasicdataSettlementDto mgtShopShareRatioSetDto){ |
| | | return shopService.getMerchantBasicDataSettlement(mgtShopShareRatioSetDto); |
| | | } |
| | | |
| | | @RequestMapping(value = "/getUserShopList", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取切换门店列表【2.0】") |
| | | public R<List<Shop>> getUserShopList() { |
| | | List<ShopRelUser> shopRelUsers = shopRelUserService.getByUserId(SecurityUtils.getUserId()); |
| | | shopRelUsers.sort(Comparator.comparing(ShopRelUser::getIsDefault)); |
| | | List<Shop> collect = shopRelUsers.stream().map(shopRelUser -> { |
| | | Shop shop = shopService.getById(shopRelUser.getShopId()); |
| | | return shop; |
| | | }).collect(Collectors.toList()); |
| | | return R.ok(collect); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/getShopReservationConfig/{shopId}", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取门店预约管理配置【2.0】") |
| | | public R<ShopReservationConfigVo> getShopReservationConfig(@PathVariable("shopId") Long shopId) { |
| | | Shop shop = shopService.getById(shopId); |
| | | Integer subscribe = shop.getSubscribe(); |
| | | ShopReservationConfigVo vo = new ShopReservationConfigVo(); |
| | | vo.setSubscribe(subscribe); |
| | | List<ShopNonAppointableTime> list = shopNonAppointableTimeService.list(new LambdaQueryWrapper<ShopNonAppointableTime>().eq(ShopNonAppointableTime::getShopId, shopId) |
| | | .orderByAsc(ShopNonAppointableTime::getNonAppointableStartTime)); |
| | | vo.setUnsubscribeTime(list.stream().map(shopNonAppointableTime -> { |
| | | Map<String, String> map = new HashMap<>(); |
| | | String time = shopNonAppointableTime.getNonAppointableStartTime().format(DateTimeFormatter.ofPattern("MM月dd日 HH:mm")) + "-" + shopNonAppointableTime.getNonAppointableEndTime().format(DateTimeFormatter.ofPattern("HH:mm")); |
| | | map.put("time", time); |
| | | map.put("id", shopNonAppointableTime.getId()); |
| | | return map; |
| | | }).collect(Collectors.toList())); |
| | | return R.ok(vo); |
| | | } |
| | | |
| | | @RequestMapping(value = "/addShopNonAppointableTime", method = RequestMethod.POST) |
| | | @ApiOperation(value = "门店添加不可预约时间段【2.0】") |
| | | public R addShopNonAppointableTime(@RequestBody ShopNonAppointableTimeDto dto) { |
| | | ShopNonAppointableTime shopNonAppointableTime = new ShopNonAppointableTime(); |
| | | shopNonAppointableTime.setShopId(dto.getShopId()); |
| | | shopNonAppointableTime.setNonAppointableStartTime(dto.getNonAppointableStartTime()); |
| | | shopNonAppointableTime.setNonAppointableEndTime(dto.getNonAppointableEndTime()); |
| | | shopNonAppointableTimeService.save(shopNonAppointableTime); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/switchAppointment/{shopId}/{subscribe}", method = RequestMethod.POST) |
| | | @ApiOperation(value = "开关门店预约配置【2.0】") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "门店id", name = "shopId", required = true, dataType = "Long", paramType = "path"), |
| | | @ApiImplicitParam(value = "预约开关(0=关,1=开)", name = "subscribe", required = true, dataType = "Integer", paramType = "path") |
| | | }) |
| | | public R switchAppointment(@PathVariable("shopId") Long shopId, @PathVariable("subscribe") Integer subscribe) { |
| | | Shop shop = shopService.getById(shopId); |
| | | shop.setSubscribe(subscribe); |
| | | shopService.updateById(shop); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @RequestMapping(value = "/getShopAppointableTimeList", method = RequestMethod.POST) |
| | | @ApiOperation(value = "商户获取预约列表【2.0】") |
| | | public R<Page<ShopAppointableTimeListVo>> getShopAppointableTimeList(@RequestBody ShopAppointableTimeListDto dto) { |
| | | Page<ShopAppointableTimeListVo> page = new Page<>(); |
| | | page.setSize(dto.getPageSize()); |
| | | page.setCurrent(dto.getPageNum()); |
| | | List<ShopAppointableTimeListVo> shopAppointableTimeList = shopAppointableTimeService.getShopAppointableTimeList(page, dto); |
| | | return R.ok(page.setRecords(shopAppointableTimeList)); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/confirmReservation/{id}", method = RequestMethod.POST) |
| | | @ApiOperation(value = "商户确认预约【2.0】") |
| | | public R confirmReservation(@PathVariable("id") String id) { |
| | | ShopAppointableTime shopAppointableTime = shopAppointableTimeService.getById(id); |
| | | if (null == shopAppointableTime) { |
| | | return R.fail("预约不存在"); |
| | | } |
| | | if (1 != shopAppointableTime.getStatus()) { |
| | | return R.fail("确认预约失败"); |
| | | } |
| | | shopAppointableTime.setStatus(2); |
| | | shopAppointableTimeService.updateById(shopAppointableTime); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/cancelReservation", method = RequestMethod.POST) |
| | | @ApiOperation(value = "商户取消预约【2.0】") |
| | | public R cancelReservation(@RequestBody CancelReservationDto dto) { |
| | | ShopAppointableTime shopAppointableTime = shopAppointableTimeService.getById(dto.getId()); |
| | | if (null == shopAppointableTime) { |
| | | return R.fail("预约不存在"); |
| | | } |
| | | if (0 == shopAppointableTime.getStatus()) { |
| | | return R.fail("不能重复操作"); |
| | | } |
| | | shopAppointableTime.setStatus(0); |
| | | shopAppointableTime.setReason(dto.getReason()); |
| | | shopAppointableTimeService.updateById(shopAppointableTime); |
| | | return R.ok(); |
| | | } |
| | | } |