| | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | @ApiOperation(value = "师傅列表", tags = {"后台-师傅管理"}) |
| | | @GetMapping(value = "/selectServe") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "师傅姓名", name = "workerName", dataType = "String"), |
| | | @ApiImplicitParam(value = "师傅电话", name = "workerPhone", dataType = "String"), |
| | | @ApiImplicitParam(value = "师傅姓名", name = "name", dataType = "String"), |
| | | @ApiImplicitParam(value = "师傅电话", name = "phone", dataType = "String"), |
| | | @ApiImplicitParam(value = "服务城市", name = "city", dataType = "String"), |
| | | @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true), |
| | | @ApiImplicitParam(value = "每页显示条数", name = "pageSize", dataType = "Integer", required = true) |
| | | }) |
| | | public R<IPage<MasterWorker>> selectServe(String workerName, String workerPhone, String city, |
| | | public R<IPage<MasterWorker>> selectServe(String name, String phone, String city, |
| | | @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, |
| | | @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { |
| | | LambdaQueryChainWrapper<MasterWorker> wrapper = masterWorkerService.lambdaQuery(); |
| | | wrapper = StringUtils.isNotBlank(workerName) ? wrapper.like(MasterWorker::getRealName, workerName) : wrapper; |
| | | wrapper = StringUtils.isNotBlank(workerPhone) ? wrapper.like(MasterWorker::getPhone, workerPhone) : wrapper; |
| | | wrapper = StringUtils.isNotBlank(name) ? wrapper.like(MasterWorker::getRealName, name) : wrapper; |
| | | wrapper = StringUtils.isNotBlank(phone) ? wrapper.like(MasterWorker::getPhone, phone) : wrapper; |
| | | wrapper = StringUtils.isNotBlank(city) ? wrapper.like(MasterWorker::getCity, city) : wrapper; |
| | | return R.ok(wrapper.eq(MasterWorker::getIsDelete, 0) |
| | | .orderByDesc(MasterWorker::getCreateTime).page(Page.of(pageNum, pageSize))); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 新增师傅信息 |
| | | * 根据id批量删除账号 |
| | | * |
| | | * @param ids 账号id拼接 |
| | | */ |
| | | @ApiOperation(value = "删除师傅信息", tags = {"后台-师傅管理-师傅列表管理"}) |
| | | @GetMapping(value = "/batchDelete") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "多条账号id ',' 拼接", name = "ids", dataType = "String", required = true) |
| | | }) |
| | | public R<String> batchDelete(@RequestParam String ids) { |
| | | List<String> idList = Arrays.stream(ids.split(",")).collect(Collectors.toList()); |
| | | List<MasterWorker> list = masterWorkerService.lambdaQuery().in(MasterWorker::getId, idList).list(); |
| | | list.forEach(data -> data.setIsDelete(1)); |
| | | return masterWorkerService.updateBatchById(list) ? R.ok() : R.fail(); |
| | | } |
| | | |
| | | /** |
| | | * 修改师傅信息 |
| | | * |
| | | * @param masterWorker 师傅信息 |
| | | */ |
| | | @ApiOperation(value = "修改师傅信息", tags = {"后台-师傅管理-师傅列表管理"}) |
| | | @PostMapping(value = "/update") |
| | | public R<String> update(@RequestBody MasterWorker masterWorker) { |
| | | return masterWorkerService.updateById(masterWorker) ? R.ok() : R.fail(); |
| | | } |
| | | |
| | | /** |
| | | * 启用/关闭师傅账号 |
| | | * |
| | | * @param id 师傅信息id |
| | | * @param enable 启用/关闭 |
| | | */ |
| | | @ApiOperation(value = "启用/关闭师傅账号", tags = {"后台-师傅管理-师傅列表管理"}) |
| | | @GetMapping(value = "/enable") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "师傅id", name = "id", dataType = "Integer", required = true), |
| | | @ApiImplicitParam(value = "0:关闭;1:启用", name = "enable", dataType = "Integer", required = true) |
| | | }) |
| | | public R<String> enable(@RequestParam Integer id, @RequestParam Integer enable) { |
| | | boolean update = masterWorkerService.lambdaUpdate().set(MasterWorker::getIsEnable, enable) |
| | | .eq(MasterWorker::getId, id).update(); |
| | | return update ? R.ok() : R.fail(); |
| | | } |
| | | |
| | | /** |
| | | * 师傅详细信息 |
| | | * |
| | | * @param workerId 师傅id |
| | | */ |
| | |
| | | List<Evaluate> evaluateList = evaluateService.lambdaQuery().eq(Evaluate::getWorkerId, workerId) |
| | | .eq(Evaluate::getIsDelete, 0).list(); |
| | | List<BigDecimal> star = evaluateList.stream().map(Evaluate::getStarRating).collect(Collectors.toList()); |
| | | // 总评分 / 评价数量 |
| | | BigDecimal starRating = star.stream().reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal result = starRating.divide(new BigDecimal(star.size()), 1, RoundingMode.HALF_UP); |
| | | workerDetail.setStarRating(result); |
| | | return R.fail(workerDetail); |
| | | if (!star.isEmpty()) { |
| | | // 总评分 / 评价数量 |
| | | BigDecimal starRating = star.stream().reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal result = starRating.divide(new BigDecimal(star.size()), 1, RoundingMode.HALF_UP); |
| | | workerDetail.setStarRating(result); |
| | | } |
| | | return R.ok(workerDetail); |
| | | } |
| | | |
| | | } |