diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/app/AppPartnerOwnController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/app/AppPartnerOwnController.java new file mode 100644 index 00000000..6df8f533 --- /dev/null +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/app/AppPartnerOwnController.java @@ -0,0 +1,857 @@ +package cn.iocoder.yudao.module.inspection.controller.app; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.core.controller.BaseController; +import cn.iocoder.yudao.module.inspection.entity.*; +import cn.iocoder.yudao.module.inspection.query.OrderTableQuery; +import cn.iocoder.yudao.module.inspection.service.AppInspectionPartnerService; +import cn.iocoder.yudao.module.inspection.vo.*; +import cn.iocoder.yudao.module.partner.entity.PartnerBalanceDetail; +import cn.iocoder.yudao.module.partner.entity.PartnerWorker; +import cn.iocoder.yudao.module.partner.service.IPartnerWorkerService; +import cn.iocoder.yudao.module.payment.entity.OrderInfo; +import cn.iocoder.yudao.module.shop.entity.ShopCouponTemplate; +import cn.iocoder.yudao.module.shop.entity.ShopMallPartners; +import cn.iocoder.yudao.module.system.api.user.dto.UserDTO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; +import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; +import cn.iocoder.yudao.module.system.service.dict.DictDataService; +import cn.iocoder.yudao.module.system.service.dict.DictTypeService; +import cn.iocoder.yudao.module.system.service.permission.RoleService; +import cn.iocoder.yudao.util.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/partnerOwn/partner") +public class AppPartnerOwnController extends BaseController { + @Autowired + private AppInspectionPartnerService partnerList; + @Autowired + private IPartnerWorkerService partnerWorkerService; + @Autowired + private DictTypeService dictTypeService; + @Autowired + private DictDataService dictDataService; + @Autowired + private RoleService roleService; + + /** + * 获取店铺详情 + */ + @GetMapping("/shopInfo") + public CommonResult shopInfo() throws Exception { + return success(partnerList.shopInfo()); + } + + @GetMapping("/shopInfoByUserId") + public CommonResult shopInfoByUserId() throws Exception { + return success(partnerList.shopInfoByUserId()); + } + + /** + * 获取上门取车 和 预约条数 + */ + @GetMapping("/getAppointAndPickNum") + public CommonResult getAppointAndPickNum() throws Exception { + return success(partnerList.getAppointAndPickNum()); + } + + + /** + * 开始或者停止营业 + */ + @PostMapping("/startOrEnd") + public CommonResult startOrEnd(Long partnerId) { + partnerList.startOrEnd(partnerId); + return success(); + } + + /** + * 首页 顶部数据统计 + */ + @GetMapping("/statisticsInfo") + public CommonResult statisticsInfo() { + return success(partnerList.statisticsInfo(null)); + } + + /** + * 检测线图 + */ + @GetMapping("/chartInfoAmount") + public CommonResult chartInfoAmount(Long partnerId, String unit) { + return success(partnerList.chartInfoAmount(partnerId, unit)); + } + + /** + * 新检测线图 + */ + @GetMapping("/newChartInfoAmount") + public CommonResult newChartInfoAmount(String unit) { + return success(partnerList.newChartInfoAmount(unit)); + } + + /** + * staticsTable1 + * 检测数量折线图 + */ + @GetMapping("/chartLineInspectionNum") + public CommonResult chartLineInspectionNum(Long partnerId, String unit) { + return success(partnerList.chartLineInspectionNum(partnerId, unit)); + } + + /** + * staticsTable1 + * 新检测数量折线图 + */ + @GetMapping("/newChartLineInspectionNum") + public CommonResult newChartLineInspectionNum(String unit) { + return success(partnerList.newChartLineInspectionNum(unit)); + } + + /** + * 检测金额折线图 + */ + @GetMapping("/chartLineInspectionAmount") + public CommonResult chartLineInspectionAmount(Long partnerId, String unit) { + return success(partnerList.chartLineInspectionAmount(partnerId, unit)); + } + + /** + * 新检测金额折线图 + */ + @GetMapping("/newChartLineInspectionAmount") + public CommonResult newChartLineInspectionAmount(String unit) { + return success(partnerList.newChartLineInspectionAmount(unit)); + } + + /** + * 检测线图 + */ + @GetMapping("/chartInfoNum") + public CommonResult chartInfoNum(Long partnerId, String unit) { + return success(partnerList.chartInfoNum(partnerId, unit)); + } + + /** + * 新检测线图 + */ + @GetMapping("/newChartInfoNum") + public CommonResult newChartInfoNum(String unit) { + return success(partnerList.newChartInfoNum(unit)); + } + + /** + * 检测线图 + */ + @GetMapping("/chartInfoRatio") + public CommonResult chartInfoRatio(Long partnerId, String unit) throws Exception { + if (ObjectUtil.isNull(partnerId)) { + partnerId = partnerList.shopInfoByUserId().getPartnerId(); + } + return success(partnerList.chartInfoRatio(partnerId, unit)); + } + + /** + * 新检测线图 + */ + @GetMapping("/newChartInfoRatio") + public CommonResult newChartInfoRatio(String unit) { + return success(partnerList.newChartInfoRatio(unit)); + } + + /** + * 首页 订单信息 + */ + @GetMapping("/orderInfo") + public CommonResult orderInfo(Long partnerId) { + return success(partnerList.orderInfo(partnerId)); + } + + /** + * 热销商品列表 + */ + @GetMapping("/hotGoodsList") + public CommonResult hotGoodsList(Long partnerId) { + return success(partnerList.hotGoodsList(partnerId)); + } + + /** + * 热销商品列表 + */ + @GetMapping("/newHotGoodsList") + public CommonResult newHotGoodsList() { + return success(partnerList.newHotGoodsList()); + } + + + /** + * 分页查询所有数据 + * + * @return 所有数据 + */ + @GetMapping("/categoryList") + public CommonResult categoryList(Long partnerId) { + + return success(partnerList.categoryList(partnerId)); + } + + /** + * 发布商品 + */ + @PostMapping("/addGoods") + public CommonResult addGoods(@RequestBody ShopInspectionGoods goods) throws Exception { + partnerList.addGoods(goods); + return success(); + } + + /** + * 商品管理列表 + */ + @GetMapping("/goodsList") + public CommonResult goodsList(Long partnerId, String isListing, String goodsTitle, + @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { +// LoginUser user = SecurityFrameworkUtils.getLoginUser(); +// ShopMallPartners partners = partnerList.getById(partnerId); +// if (!partners.getUserId().equals(user.getId())) { +// return null; +// } + Page page = new Page<>(pageNum, pageSize); + IPage list = partnerList.goodsList(page, partnerId, isListing, goodsTitle); + return success(list); + } + + /** + * 商品管理列表 + */ + @GetMapping("/canUsegoods") + public CommonResult canUseGoods(Long partnerId) { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + ShopMallPartners partners = partnerList.getById(partnerId); + if (!partners.getUserId().equals(user.getId())) { + return null; + } + return success(partnerList.canUseGoods(partnerId)); + } + + /** + * 商品详细信息 + */ + @GetMapping("/goodsDetail") + public CommonResult goodsDetail(Long goodsId) { + return success(partnerList.goodsDetail(goodsId)); + } + + /** + * 修改商品 + */ + @PostMapping("/editGoods") + public CommonResult editGoods(@RequestBody ShopInspectionGoods goods) throws Exception { + partnerList.editGoods(goods); + return success(); + } + + @PostMapping("/editSkuPrice") + public CommonResult editSkuPrice(@RequestBody ShopInspectionGoods goods) throws Exception { + partnerList.editSkuPrice(goods); + return success(); + } + + /** + * 上下架 + */ + @PostMapping("/changeListing") + public CommonResult changeListing(Long goodsId) throws Exception { + partnerList.changeListing(goodsId); + return success(); + } + + /** + * 删除商品 + */ + @PostMapping("/delGoods") + public CommonResult delGoods(Long goodsId) throws Exception { + partnerList.delGoods(goodsId); + return success(); + } + + /** + * 管理店铺信息 + */ + @PostMapping("/getPartnerInfo") + public CommonResult getPartnerInfo(Long partnerId) { + return success(partnerList.getPartnerInfo(partnerId)); + } + + /** + * 管理店铺信息 + */ + @PostMapping("/editPartnerInfo") + public CommonResult editPartnerInfo(@RequestBody ShopMallPartners partners) { + partnerList.editPartnerInfo(partners); + return success(); + } + + /** + * 店铺账户信息 + */ + @GetMapping("/accountInfo") + public CommonResult accountInfo(Long partnerId) { + return success(partnerList.accountInfo(partnerId)); + } + + /** + * 店铺账户信息 + */ + @GetMapping("/accountDetail") + public CommonResult accountDetail(Long partnerId, + @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNum, pageSize); + IPage details = partnerList.accountDetail(page, partnerId, pageNum, pageSize); + return success(details); + } + + /** + * 当前店铺的订单信息 + */ + @GetMapping("/orderList") + public CommonResult orderList(Long partnerId, String phoneNum, String title, + @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + ShopMallPartners partnersTmp = partnerList.getById(partnerId); + if (!partnersTmp.getUserId().equals(user.getId())) { + return null; + } + Page page = new Page<>(pageNum, pageSize); + IPage orderInfos = partnerList.orderList(page, partnerId, phoneNum, title); + return success(orderInfos); + } + + /** + * 通过核销码获取订单信息 + */ + @GetMapping("/orderDetailByCode") + public CommonResult orderDetailByCode(Long partnerId, String code) throws Exception { + Long orderId = partnerList.orderDetailByCode(partnerId, code); + return success(orderId); + } + + /** + * 当前的订单信息 + */ + @GetMapping("/orderDetail") + public CommonResult orderDetail(Long partnerId, Long orderId) { + OrderAppDetail orderInfos = partnerList.orderDetail(partnerId, orderId); + return success(orderInfos); + } + + /** + * 店铺核销功能 + */ + @PostMapping("/takeOut") + public CommonResult takeOut(@RequestBody InspectionInfo inspectionInfo) throws Exception { + partnerList.takeOut(inspectionInfo); + return success(); + } + + @PostMapping("/addWorker") + public CommonResult addWorker(Long partnerId, String realName, String phoneNum, Long postId) throws Exception { + + partnerList.addWorker(partnerId, realName, phoneNum, postId); + return success(); + } + + /** + * 获取员工信息 + */ + @GetMapping("/getWorkList") + public CommonResult> getWorkList(Long partnerId, String workName, String phoneNum, Long postId, Integer pageNum, Integer pageSize) { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); +// ShopMallPartners partnersTmp = partnerList.getById(partnerId); +// if (!partnersTmp.getUserId().equals(user.getId())){ +// return null; +// } + /*获取检测的用户*/ + RolePageReqVO reqVO = new RolePageReqVO(); + reqVO.setPageNo(pageNum); + reqVO.setNickname(workName); + reqVO.setPageSize(pageSize); + IPage userDTOIPage = roleService.selectListByRoleId(reqVO); +// Page page = new Page<>(pageNum, pageSize); +// IPage workList = partnerList.pageWorkList(partnerId,postId, workName, phoneNum,page); + return CommonResult.success(userDTOIPage); + } + + @PostMapping("/delWorker") + public CommonResult delWorker(Long partnerId, String workIdStr) { + String[] workIds = workIdStr.split(","); + for (String workId : workIds) { + partnerList.delWorker(partnerId, Long.parseLong(workId)); + } + return success(); + } + + //获取检测的数据 + @GetMapping("/inspectionList") + public CommonResult inspectionList(Long partnerId, String status, String carNum, Integer pageSize, Integer pageNum) throws Exception { + ShopMallPartners partners = partnerList.shopInfo(); + if (!partnerId.equals(partners.getPartnerId())) { + return null; + } + Page page = new Page<>(pageNum, pageSize); + IPage inspectionInfos = partnerList.inspectionList(page, partnerId, status, carNum); + return success(inspectionInfos); + } + + //获取检测的详细信息 + @GetMapping("/inspectionDetail") + public CommonResult inspectionDetail(Long inspectionInfoId) { + return CommonResult.success(partnerList.inspectionDetail(inspectionInfoId)); + } + + //获取检测的数据 + @GetMapping("/workerInspectionList") + public CommonResult workerInspectionList(Long partnerId, String status, String searchValue, Integer pageSize, Integer pageNum) { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PartnerWorker::getUserId, user.getId()).eq(PartnerWorker::getPartnerId, partnerId); + PartnerWorker worker = partnerWorkerService.getOne(queryWrapper); + if (ObjectUtil.isEmpty(worker)) { + return null; + } + Page page = new Page<>(pageNum, pageSize); + IPage inspectionInfos = partnerList.inspectionList(page, partnerId, status, searchValue); + return success(inspectionInfos); + } + + //增加检测步骤信息 + @PostMapping("/addStepInfo") + public CommonResult addStepInfo(@RequestBody InspectionStepInfo stepInfo) { + partnerList.addStepInfo(stepInfo); + return success(); + } + + //增加检测结果 + @PostMapping("/stopInspection") + public CommonResult editInspection(@RequestBody InspectionInfo info) throws Exception { + partnerList.stopInspection(info); + return success(); + } + + //完成制证 + @PostMapping("/makeCertOk") + public CommonResult makeCertOk(Long inspectionId) { + partnerList.makeCertOk(inspectionId); + return success(); + } + + //获取到店预约的数据 + @GetMapping("/getAppointmentList") + public CommonResult getAppointmentList(Long partnerId, String phoneNum, Integer pageSize, Integer pageNum) { +// LoginUser user = SecurityFrameworkUtils.getLoginUser(); +// ShopMallPartners partnersTmp = partnerList.getById(partnerId); +// if (!partnersTmp.getUserId().equals(user.getId())){ +// return null; +// } + Page page = new Page<>(pageNum, pageSize); + IPage appointments = partnerList.getAppointmentList(page, partnerId, phoneNum); + return success(appointments); + } + + //获取上门取车数据 + @GetMapping("/getPickCarList") + public CommonResult getPickCarList(Long partnerId, String phoneNum, String pickStatus, Integer pageSize, Integer pageNum) { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); +// ShopMallPartners partnersTmp = partnerList.getById(partnerId); +// if (!partnersTmp.getUserId().equals(user.getId())){ +// return null; +// } + Page page = new Page<>(pageNum, pageSize); + IPage pickCarList = partnerList.getPickCarList(page, partnerId, phoneNum, pickStatus); + return success(pickCarList); + } + + //获取上门取车详情页 + @GetMapping("/getPickCarDetail") + public CommonResult getPickCarDetail(Long dataId) { + InspectionPickCar pickCar = partnerList.getPickCarDetail(dataId); + return success(pickCar); + } + + // 核销记录By核销人Id + @GetMapping("/validationList") + public CommonResult validationList(Long partnerId, String searchValue, + @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + ShopMallPartners partnersTmp = partnerList.getById(partnerId); + if (!partnersTmp.getUserId().equals(user.getId())) { + return null; + } + Page page = new Page<>(pageNum, pageSize); + IPage orderInfos = partnerList.validationList(page, partnerId, searchValue); + return success(orderInfos); + } + + //送券功能 + @PostMapping("/sendCoupon") + public CommonResult sendCoupon(@RequestBody ShopCouponTemplate template) throws Exception { + partnerList.sendCoupon(template); + return success(); + } + + //优惠券列表 + @GetMapping("/listCoupon") + public CommonResult listCoupon(Long partnerId, String searchValue, + @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + ShopMallPartners partnersTmp = partnerList.getById(partnerId); + if (!partnersTmp.getUserId().equals(user.getId())) { + return success(new ArrayList<>()); + } + Page page = new Page<>(pageNum, pageSize); + IPage shopCouponTemplates = partnerList.listCoupon(page, partnerId, searchValue); + return success(shopCouponTemplates); + } + + //删除优惠券 + @PostMapping("/delCoupon") + public CommonResult delCoupon(Long partnerId, Long id) { + partnerList.delCoupon(partnerId, id); + return success(); + } + + //指派工人上门取车 + @PostMapping("/designatePickCarWorker") + public CommonResult designatePickCarWorker(Long pickCarId, Long workerId) { + partnerList.designatePickCarWorker(pickCarId, workerId); + return success(); + } + + //获取上门取车数据 + @GetMapping("/getPickCarListOfWorker") + public CommonResult getPickCarListOfWorker(Long partnerId, String phoneNum, + @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + // .eq(PartnerWorker::getUserId,user.getId()) +// LambdaQueryWrapper queryWrapper =new LambdaQueryWrapper<>(); +// queryWrapper.eq(PartnerWorker::getPartnerId,partnerId); +// PartnerWorker worker = partnerWorkerService.getOne(queryWrapper); +// if (ObjectUtil.isEmpty(worker)){ +// return null; +// } + Page page = new Page<>(pageNum, pageSize); + IPage pickCarList = partnerList.getPickCarListOfWorker(page, user.getId(), phoneNum); + return success(pickCarList); + } + + //获取客户来源 + @GetMapping("/getCustomerSource") + public CommonResult getCustomerSource(String searchValue) throws Exception { + ShopMallPartners partners = partnerList.shopInfoByUserId(); + String dictStr = "customer_source-" + partners.getPartnerId(); + DictTypeDO sysDictType = dictTypeService.getDictType(dictStr); + if (ObjectUtil.isEmpty(sysDictType)) { + //初始化 + DictTypeSaveReqVO save = new DictTypeSaveReqVO(); + save.setName("客户来源-" + partners.getPartnerName()); + save.setStatus(0); + save.setType(dictStr); + dictTypeService.createDictType(save); + } + List dataList = dictDataService.getDictDataListByDictType(dictStr); + if (CollectionUtil.isEmpty(dataList)) { + dataList = new ArrayList<>(); + } + if (StringUtils.isNotEmpty(searchValue)) { + dataList = dataList.stream().filter(it -> { + return it.getLabel().contains(searchValue); + }).collect(Collectors.toList()); + } + return success(dataList); + } + + //新增客户来源 + @PostMapping("/addCustomerSource") + public CommonResult addCustomerSource(@RequestBody SysDictData dictData) throws Exception { + ShopMallPartners partners = partnerList.shopInfo(); + String dictStr = "customer_source-" + partners.getPartnerId(); + DictTypeDO sysDictType = dictTypeService.getDictType(dictStr); + + DictDataSaveReqVO dictSave = new DictDataSaveReqVO(); + dictSave.setLabel(dictData.getDictLabel()); + dictSave.setDictType(sysDictType.getType()); + dictSave.setStatus(0); + dictSave.setValue(dictData.getDictLabel()); + dictSave.setCssClass("default"); + dictSave.setRemark(dictData.getRemark()); + dictDataService.createDictData(dictSave); + return success(); + } + + //新增客户来源 + @PostMapping("/delCustomerSource") + public CommonResult delCustomerSource(Long dictId) { + dictDataService.deleteDictData(dictId); + return success(); + } + + //批量删除客户来源 + @PostMapping("/delCustomerSourceBatch") + public CommonResult delCustomerSourceBatch(@RequestBody List dictIds) { + dictDataService.deleteDictDataBatch(dictIds); + return success(); + } + + @PostMapping("/vehicleLicenseOCR") + public CommonResult vehicleLicenseOCR(String imagePath) throws Exception { + return success(partnerList.vehicleLicenseOCR(imagePath)); + } + + //线下收费 + @PostMapping("/offlineCharging") + public CommonResult offlineCharging(@RequestBody InspectionInfoVo infoVo) { + partnerList.offlineCharging(infoVo); + return success(); + } + + + //获取收款账号 + @GetMapping("/getBankAccountList") + public CommonResult getBankAccountList(String searchValue) throws Exception { + ShopMallPartners partners = partnerList.shopInfoByUserId(); + String dictStr = "partner_bankList-" + partners.getPartnerId(); + DictTypeDO sysDictType = dictTypeService.getDictType(dictStr); + if (ObjectUtil.isEmpty(sysDictType)) { + //初始化 + DictTypeSaveReqVO sysDictTypeSave = new DictTypeSaveReqVO(); + sysDictTypeSave.setName("收款账户-" + partners.getPartnerName()); + sysDictTypeSave.setStatus(0); + sysDictTypeSave.setType(dictStr); + dictTypeService.createDictType(sysDictTypeSave); + } + List dataList = dictDataService.getDictDataListByDictType(dictStr); + if (CollectionUtil.isEmpty(dataList)) { + dataList = new ArrayList<>(); + } + if (StringUtils.isNotEmpty(searchValue)) { + dataList = dataList.stream().filter(it -> { + return it.getLabel().contains(searchValue); + }).collect(Collectors.toList()); + } + return success(dataList); + } + + //新增银行卡账户 + @PostMapping("/addBankAccount") + public CommonResult addBankAccount(@RequestBody SysDictData dictData) throws Exception { + ShopMallPartners partners = partnerList.shopInfo(); + String dictStr = "partner_bankList-" + partners.getPartnerId(); + DictTypeDO sysDictType = dictTypeService.getDictType(dictStr); + + DictDataSaveReqVO dictSave = new DictDataSaveReqVO(); + + dictSave.setDictType(sysDictType.getType()); + dictSave.setStatus(0); + dictSave.setLabel(dictData.getDictLabel()); + dictSave.setValue(dictData.getDictValue()); + dictSave.setRemark(dictData.getRemark()); + dictSave.setCssClass("default"); + dictDataService.createDictData(dictSave); + return success(); + } + + //删除银行卡账户 + @PostMapping("/delBankAccount") + public CommonResult delBankAccount(Long dictId) { + dictDataService.deleteDictData(dictId); + return success(); + } + + //工单预览 + @GetMapping("/workOrderView") + public CommonResult workOrderView(Long inspectionId) { + return success(partnerList.workOrderView(inspectionId)); + } + + //岗位信息 + @GetMapping("/inspectionPostInfo") + public CommonResult inspectionPostInfo() { + return success(partnerList.inspectionPostInfo()); + } + + //统计表格1 + @GetMapping("/staticsTable1") + public CommonResult staticsTable1(String startTime, String endTime) throws Exception { + ShopMallPartners partners = partnerList.shopInfo(); + return success(partnerList.staticsTable1(partners.getPartnerId(), startTime, endTime)); + } + + //统计表格1 + @GetMapping("/newStaticsTable1") + public CommonResult newStaticsTable1(String startTime, String endTime) throws Exception { + return success(partnerList.newStaticsTable1(startTime, endTime)); + } + + //统计表格2 + @GetMapping("/staticsTable2") + public CommonResult staticsTable2(String startTime, String endTime) throws Exception { + ShopMallPartners partners = partnerList.shopInfo(); + return success(partnerList.staticsTable2(partners.getPartnerId(), startTime, endTime)); + } + + //新统计表格2 + @GetMapping("/newStaticsTable2") + public CommonResult newStaticsTable2(String startTime, String endTime) throws Exception { + return success(partnerList.newStaticsTable2(startTime, endTime)); + } + + //统计表格3 + @GetMapping("/staticsTable3") + public CommonResult staticsTable3(String startTime, String endTime) throws Exception { + ShopMallPartners partners = partnerList.shopInfo(); + return success(partnerList.staticsTable3(partners.getPartnerId(), startTime, endTime)); + } + + //新统计表格3 + @GetMapping("/newStaticsTable3") + public CommonResult newStaticsTable3(String startTime, String endTime) throws Exception { + return success(partnerList.newStaticsTable3(startTime, endTime)); + } + + //统计表格3 + @GetMapping("/staticsTable3Detail") + public CommonResult staticsTable3Detail(String startTime, String endTime, String remark) throws Exception { + ShopMallPartners partners = partnerList.shopInfo(); + return success(partnerList.staticsTable3Detail(partners.getPartnerId(), startTime, endTime, remark)); + } + + //统计表格4 + @GetMapping("/staticsTable4") + public CommonResult staticsTable4(String startTime, String endTime) throws Exception { + ShopMallPartners partners = partnerList.shopInfo(); + return success(partnerList.staticsTable4(partners.getPartnerId(), startTime, endTime)); + } + + //统计表格5 + @GetMapping("/staticsTable5") + public CommonResult staticsTable5(String startTime, String endTime) throws Exception { + ShopMallPartners partners = partnerList.shopInfo(); + return success(partnerList.staticsTable5(partners.getPartnerId(), startTime, endTime)); + } + + /** + * 查询检测类型统计 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 结果 + */ + @GetMapping("/queryInspectionSkuList") + public CommonResult queryInspectionSkuList(String startTime, String endTime) { + if (StrUtil.isEmpty(startTime) || StrUtil.isEmpty(endTime)) { + startTime = DateUtil.format(new Date(), "yyyy-MM-dd"); + endTime = DateUtil.format(new Date(), "yyyy-MM-dd"); + } + return success(partnerList.queryInspectionSkuList(startTime, endTime)); + } + + /** + * 根据inspection_info的id查有的项目名称 + * + * @param ids inspection_info的id + * @author 小李 + * @date 14:52 2024/12/10 + **/ + @GetMapping("/getProjectByIds") + public CommonResult getProjectByIds(Long[] ids) { + return success(partnerList.getProjectByIds(ids)); + } + + /** + * 根据时间查订单 + * + * @param startTime 开始时间 非必传 + * @param endTime 结束时间 非必传 + * @param pageNum 页码 + * @param pageSize 条数 + * @author 小李 + * @date 14:39 2024/12/12 + **/ + @GetMapping("/getOrderByDate") + public CommonResult getOrderByDate(OrderTableQuery query, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNum, pageSize); + return success(partnerList.getOrderByDate(query, page)); + } + + /** + * 根据时间查订单 + * + * @param startTime 开始时间 非必传 + * @param endTime 结束时间 非必传 + * @param pageNum 页码 + * @param pageSize 条数 + * @author 小李 + * @date 14:39 2024/12/12 + **/ + @GetMapping("/getOrderApp") + public CommonResult getOrderApp(@RequestParam(value = "startTime", required = false) String startTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "chooseStatus", required = false) String chooseStatus, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNum, pageSize); + return success(partnerList.getOrderApp(startTime, endTime, chooseStatus, page)); + } + + /** + * 分类计数 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param chooseStatus 状态 + * @author 小李 + * @date 17:14 2024/12/16 + **/ + @GetMapping("/getTypeCount") + public CommonResult getTypeCount(@RequestParam(value = "startTime", required = false) String startTime, + @RequestParam(value = "endTime", required = false) String endTime, + @RequestParam(value = "chooseStatus", required = false) String chooseStatus) { + return success(partnerList.getTypeCount(startTime, endTime, chooseStatus)); + } + + /** + * 获取员工统计 + * + * @param dlInspectionProject 项目 + * @return 结果 + */ + @PostMapping("/getStaffCount") + public CommonResult getStaffCount(@RequestBody DlInspectionProject dlInspectionProject) { + return success(partnerList.getStaffCount(dlInspectionProject)); + } +} diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionOrderServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionOrderServiceImpl.java index cfaa3981..64b57d91 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionOrderServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionOrderServiceImpl.java @@ -99,8 +99,8 @@ public class AppInspectionOrderServiceImpl extends ServiceImpllambdaUpdate() + .eq(InspectionAppointment::getId, orderInfo.getAppointmentId()) + .set(InspectionAppointment::getOrderId, createOrder.getId())); + //处理预约记录 + orderInfo.setId(createOrder.getId()); + this.dealAppointment(orderInfo); + + } return createOrder.getId(); } diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml index 89c8f79d..a908dfe9 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionAppointmentMapper.xml @@ -101,7 +101,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left JOIN order_info oi ON ip.order_id = oi.id and oi.deleted=0 left join shop_user_car suc on suc.car_id = oi.user_car_id and suc.deleted=0 LEFT JOIN inspection_goods_sku igs on igs.id = ip.sku_id - where ip.deleted=0 and ip.partner_id = #{partnerId} + where ip.deleted=0 and ip.partner_id = #{partnerId} and oi.validation_time IS NULL and su.mobile like concat('%',#{phoneNum},'%') diff --git a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java index 38ca80c4..209ac0df 100644 --- a/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java +++ b/yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java @@ -88,60 +88,61 @@ public class DeptDataPermissionRule implements DataPermissionRule { @Override public Expression getExpression(String tableName, Alias tableAlias) { - // 只有有登陆用户的情况下,才进行数据权限的处理 - LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); - if (loginUser == null) { - return null; - } - // 只有管理员类型的用户,才进行数据权限的处理 - if (ObjectUtil.notEqual(loginUser.getUserType(), UserTypeEnum.ADMIN.getValue())) { - return null; - } - - // 获得数据权限 - DeptDataPermissionRespDTO deptDataPermission = loginUser.getContext(CONTEXT_KEY, DeptDataPermissionRespDTO.class); - // 从上下文中拿不到,则调用逻辑进行获取 - if (deptDataPermission == null) { - deptDataPermission = permissionApi.getDeptDataPermission(loginUser.getId()); - if (deptDataPermission == null) { - log.error("[getExpression][LoginUser({}) 获取数据权限为 null]", JsonUtils.toJsonString(loginUser)); - throw new NullPointerException(String.format("LoginUser(%d) Table(%s/%s) 未返回数据权限", - loginUser.getId(), tableName, tableAlias.getName())); - } - // 添加到上下文中,避免重复计算 - loginUser.setContext(CONTEXT_KEY, deptDataPermission); - } - - // 情况一,如果是 ALL 可查看全部,则无需拼接条件 - if (deptDataPermission.getAll()) { - return null; - } - - // 情况二,即不能查看部门,又不能查看自己,则说明 100% 无权限 - if (CollUtil.isEmpty(deptDataPermission.getDeptIds()) - && Boolean.FALSE.equals(deptDataPermission.getSelf())) { - return new EqualsTo(null, null); // WHERE null = null,可以保证返回的数据为空 - } - - // 情况三,拼接 Dept 和 User 的条件,最后组合 - Expression deptExpression = buildDeptExpression(tableName,tableAlias, deptDataPermission.getDeptIds()); - Expression userExpression = buildUserExpression(tableName, tableAlias, deptDataPermission.getSelf(), loginUser.getId()); - if (deptExpression == null && userExpression == null) { - // TODO 芋艿:获得不到条件的时候,暂时不抛出异常,而是不返回数据 - log.warn("[getExpression][LoginUser({}) Table({}/{}) DeptDataPermission({}) 构建的条件为空]", - JsonUtils.toJsonString(loginUser), tableName, tableAlias, JsonUtils.toJsonString(deptDataPermission)); -// throw new NullPointerException(String.format("LoginUser(%d) Table(%s/%s) 构建的条件为空", -// loginUser.getId(), tableName, tableAlias.getName())); - return EXPRESSION_NULL; - } - if (deptExpression == null) { - return userExpression; - } - if (userExpression == null) { - return deptExpression; - } - // 目前,如果有指定部门 + 可查看自己,采用 OR 条件。即,WHERE (dept_id IN ? OR user_id = ?) - return new Parenthesis(new OrExpression(deptExpression, userExpression)); + return null; +// // 只有有登陆用户的情况下,才进行数据权限的处理 +// +// if (loginUser == null) { +// return null; +// } +// // 只有管理员类型的用户,才进行数据权限的处理 +// if (ObjectUtil.notEqual(loginUser.getUserType(), UserTypeEnum.ADMIN.getValue())) { +// return null; +// } +// +// // 获得数据权限 +// DeptDataPermissionRespDTO deptDataPermission = loginUser.getContext(CONTEXT_KEY, DeptDataPermissionRespDTO.class); +// // 从上下文中拿不到,则调用逻辑进行获取 +// if (deptDataPermission == null) { +// deptDataPermission = permissionApi.getDeptDataPermission(loginUser.getId()); +// if (deptDataPermission == null) { +// log.error("[getExpression][LoginUser({}) 获取数据权限为 null]", JsonUtils.toJsonString(loginUser)); +// throw new NullPointerException(String.format("LoginUser(%d) Table(%s/%s) 未返回数据权限", +// loginUser.getId(), tableName, tableAlias.getName())); +// } +// // 添加到上下文中,避免重复计算 +// loginUser.setContext(CONTEXT_KEY, deptDataPermission); +// } +// +// // 情况一,如果是 ALL 可查看全部,则无需拼接条件 +// if (deptDataPermission.getAll()) { +// return null; +// } +// +// // 情况二,即不能查看部门,又不能查看自己,则说明 100% 无权限 +// if (CollUtil.isEmpty(deptDataPermission.getDeptIds()) +// && Boolean.FALSE.equals(deptDataPermission.getSelf())) { +// return new EqualsTo(null, null); // WHERE null = null,可以保证返回的数据为空 +// } +// +// // 情况三,拼接 Dept 和 User 的条件,最后组合 +// Expression deptExpression = buildDeptExpression(tableName,tableAlias, deptDataPermission.getDeptIds()); +// Expression userExpression = buildUserExpression(tableName, tableAlias, deptDataPermission.getSelf(), loginUser.getId()); +// if (deptExpression == null && userExpression == null) { +// // TODO 芋艿:获得不到条件的时候,暂时不抛出异常,而是不返回数据 +// log.warn("[getExpression][LoginUser({}) Table({}/{}) DeptDataPermission({}) 构建的条件为空]", +// JsonUtils.toJsonString(loginUser), tableName, tableAlias, JsonUtils.toJsonString(deptDataPermission)); +//// throw new NullPointerException(String.format("LoginUser(%d) Table(%s/%s) 构建的条件为空", +//// loginUser.getId(), tableName, tableAlias.getName())); +// return EXPRESSION_NULL; +// } +// if (deptExpression == null) { +// return userExpression; +// } +// if (userExpression == null) { +// return deptExpression; +// } +// // 目前,如果有指定部门 + 可查看自己,采用 OR 条件。即,WHERE (dept_id IN ? OR user_id = ?) +// return new Parenthesis(new OrExpression(deptExpression, userExpression)); } private Expression buildDeptExpression(String tableName, Alias tableAlias, Set deptIds) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java index 1ea50183..395e80df 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.system.service.user; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserImportExcelVO; @@ -292,4 +293,5 @@ public interface AdminUserService extends IService { * @return */ List selectByRoleId(Long roleId); + }