diff --git a/hiver-core/src/main/java/cc/hiver/core/entity/Worker.java b/hiver-core/src/main/java/cc/hiver/core/entity/Worker.java index 45dfbf3f..ac754f6c 100644 --- a/hiver-core/src/main/java/cc/hiver/core/entity/Worker.java +++ b/hiver-core/src/main/java/cc/hiver/core/entity/Worker.java @@ -1,5 +1,6 @@ package cc.hiver.core.entity; +import cc.hiver.core.common.utils.NameUtil; import cc.hiver.core.common.utils.SnowFlakeUtil; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; @@ -20,6 +21,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; import org.springframework.format.annotation.DateTimeFormat; import javax.persistence.*; +import javax.validation.constraints.Pattern; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; @@ -163,4 +165,32 @@ public class Worker implements Serializable { @Column(name = "fixed_amount") private BigDecimal fixedAmount = new BigDecimal(0); + /** + * 登录账号 + */ + @ApiModelProperty("登录账号") + @Column(name = "username") + @Pattern(regexp = NameUtil.regUsername, message = "登录账号不能包含中文、特殊字符 长度不能>16") + private String username; + + /** + * 登录密码 + */ + @ApiModelProperty("登录密码") + @Column(name = "password") + private String password; + + + @ApiModelProperty(value = "省") + @Column(name = "province") + private String province; + + @ApiModelProperty(value = "市") + @Column(name = "city") + private String city; + + @ApiModelProperty(value = "县区") + @Column(name = "area") + private String area; + } diff --git a/hiver-core/src/main/java/cc/hiver/core/service/WorkerService.java b/hiver-core/src/main/java/cc/hiver/core/service/WorkerService.java index ef8fbf20..c818e946 100644 --- a/hiver-core/src/main/java/cc/hiver/core/service/WorkerService.java +++ b/hiver-core/src/main/java/cc/hiver/core/service/WorkerService.java @@ -3,10 +3,13 @@ package cc.hiver.core.service; import cc.hiver.core.base.HiverBaseService; import cc.hiver.core.common.vo.SearchVo; import cc.hiver.core.entity.Worker; +import cc.hiver.core.vo.WorkerQueryVO; import org.springframework.cache.annotation.CacheConfig; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; +import java.util.List; + /** * 用户接口 * @@ -29,5 +32,5 @@ public interface WorkerService extends HiverBaseService { Worker findByWorkerId(String workerId); - + List findByCondition(WorkerQueryVO worker); } diff --git a/hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java b/hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java index d0908d9f..297fa8e5 100644 --- a/hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java +++ b/hiver-core/src/main/java/cc/hiver/core/serviceimpl/WorkerServiceImpl.java @@ -5,6 +5,7 @@ import cc.hiver.core.common.vo.SearchVo; import cc.hiver.core.dao.WorkerDao; import cc.hiver.core.entity.Worker; import cc.hiver.core.service.WorkerService; +import cc.hiver.core.vo.WorkerQueryVO; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; @@ -104,4 +105,45 @@ public class WorkerServiceImpl implements WorkerService { public Worker findByWorkerId(String orderId) { return workerDao.findByWorkerId(orderId); } + + @Override + public List findByCondition(WorkerQueryVO worker) { + return workerDao.findAll(new Specification() { + @Nullable + @Override + public Predicate toPredicate(Root root, CriteriaQuery cq, CriteriaBuilder cb) { + + Path workerStatusField = root.get("workerStatus"); + Path signPersonField = root.get("signPerson"); + Path regionField = root.get("region"); + + + + List list = new ArrayList<>(); + + if (StrUtil.isNotBlank(worker.getSignPerson())) { + list.add(cb.equal(signPersonField, worker.getSignPerson())); + } + + if (worker.getWorkerStatus() != null) { + list.add(cb.equal(workerStatusField, 1)); + } + + if (StrUtil.isNotBlank(worker.getRegion())) { + list.add(cb.equal(regionField, worker.getRegion())); + } + + if (StrUtil.isNotBlank(worker.getRegion())) { + list.add(cb.equal(regionField, worker.getRegion())); + } + + + // 数据权限 + + Predicate[] arr = new Predicate[list.size()]; + cq.where(list.toArray(arr)); + return null; + } + }); + } } diff --git a/hiver-core/src/main/java/cc/hiver/core/vo/WorkerQueryVO.java b/hiver-core/src/main/java/cc/hiver/core/vo/WorkerQueryVO.java new file mode 100644 index 00000000..caf6e4e5 --- /dev/null +++ b/hiver-core/src/main/java/cc/hiver/core/vo/WorkerQueryVO.java @@ -0,0 +1,81 @@ +package cc.hiver.core.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.persistence.Column; +import javax.validation.constraints.NotNull; +import java.util.Date; + + +@Data +@ApiModel("订单工查询接口") +public class WorkerQueryVO { + + /** + * 抢单工编号 + */ + @ApiModelProperty("抢单工编号") + private String workerId; + + + /** + * 抢单工名称 + */ + @ApiModelProperty("抢单工名称") + private String workerName; + + + /** + * 抢单工简介 + */ + @ApiModelProperty("抢单工简介") + private String workerDescribe; + + + /** + * 缴押金总额 + */ + @ApiModelProperty("缴押金总额") + private Integer depoNum; + + + /** + * 押金余额 + */ + @ApiModelProperty("押金余额") + private Integer depoBal; + + + /** + * 接单状态 1-可抢单 2-不可接单(押金不足状态) 3-已禁用(手工预置状态) + */ + @ApiModelProperty("接单状态 1-可抢单 2-不可接单(押金不足状态) 3-已禁用(手工预置状态)") + private Integer workerStatus; + + /** + * 联系方式 + */ + @ApiModelProperty("联系方式") + private String mobile; + + /** + * 区域 + */ + @ApiModelProperty("办公区域") + private String region; + + /** + * 人员标识 + */ + @ApiModelProperty("人员标识 1-扛包工 2-快递员") + private String signPerson; + + /** + * 所属公司 + */ + @ApiModelProperty("所属公司") + private String ownerCompany; + +} diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/OrderController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/OrderController.java index c8e9956b..0ac6e8f4 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/OrderController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/OrderController.java @@ -92,23 +92,16 @@ public class OrderController { @RequestMapping(value = "/admin/add", method = RequestMethod.POST) @ApiOperation(value = "创建订单") - public Result add(@Valid OrderXd u, - @RequestParam(required = false) String[] roleIds) { - + public Result add(@Valid OrderXd u) { orderService.save(u); - // 发送创建账号消息 - //addMessage.addSendMessage(user.getId()); return ResultUtil.success("创建成功"); } @RequestMapping(value = "/admin/edit", method = RequestMethod.POST) @ApiOperation(value = "修改订单", notes = "需要通过下单编号获取订单信息") - public Result edit(OrderXd u, - @RequestParam(required = false) String[] roleIds) { - + public Result edit(OrderXd u) { orderService.update(u); - return ResultUtil.success("修改成功"); } @@ -140,11 +133,10 @@ public class OrderController { orderxd.setOrderByWorker(u.getOrderByWorker()); // 更新订单状态为已抢单 orderxd.setOrderStatus(2); - orderService.save(orderxd); + orderService.update(orderxd); return ResultUtil.success("抢单成功"); - } else { - // 处理抢单失败的情况 - throw new HiverException("抢单失败,订单状态已被修改"); + }else { + return ResultUtil.error("该笔订单状态有误,请核实!"); } } catch (OptimisticLockingFailureException ex) { // 处理乐观锁失败的情况 @@ -164,12 +156,16 @@ public class OrderController { public Result revoke(@ApiParam("订单唯一id标识") @PathVariable String id) { OrderXd o = orderService.findByOrderId(id); - o.setOrderByWorker(null); - o.setOrderByWorkertime(null); - o.setWorker(null); - o.setOrderStatus(1); - orderService.update(o); - return ResultUtil.success("解绑成功"); + if (o != null && (o.getOrderStatus()==2)) { + o.setOrderByWorker(null); + o.setOrderByWorkertime(null); + o.setWorker(null); + o.setOrderStatus(1); + orderService.update(o); + return ResultUtil.success("解绑成功"); + }else{ + return ResultUtil.error("该笔订单已进入运送阶段,无法取消绑定!"); + } } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java index 0caff3f1..93ee6d1b 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/WorkerController.java @@ -8,6 +8,7 @@ import cc.hiver.mall.common.constant.WorkerConstant; import cc.hiver.core.common.vo.PageVo; import cc.hiver.core.common.vo.Result; import cc.hiver.core.common.vo.SearchVo; +import cc.hiver.core.vo.WorkerQueryVO; import cc.hiver.mall.entity.Recharge; import cc.hiver.mall.service.RechargeService; import io.swagger.annotations.Api; @@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.math.BigDecimal; +import java.util.List; /** * 订单工管理接口 @@ -51,6 +53,13 @@ public class WorkerController { } + @RequestMapping(value = "/getByCondition", method = RequestMethod.GET) + @ApiOperation(value = "多条件获取订单列表-小程序") + public Result> getByCondition(@RequestBody WorkerQueryVO worker) { + List workerList = workerService.findByCondition(worker); + return new ResultUtil>().setData(workerList); + } + @RequestMapping(value = "/delByIds", method = RequestMethod.POST) @ApiOperation(value = "批量通过ids删除") @@ -63,8 +72,7 @@ public class WorkerController { @RequestMapping(value = "/admin/add", method = RequestMethod.POST) @ApiOperation(value = "创建抢单工") - public Result add(@Valid Worker u, - @RequestParam(required = false) String[] roleIds) { + public Result add(@Valid Worker u) { //更新充值记录 Recharge recharge = new Recharge(); @@ -80,22 +88,14 @@ public class WorkerController { //更新余额,重置当次应缴 u.setDepoBal(u.getDepoBal().add(u.getDepoNum())); u.setDepoNum(new BigDecimal(0)); - workerService.save(u); - - - - - // 发送创建账号消息 - //addMessage.addSendMessage(user.getId()); return ResultUtil.success("创建成功"); } @RequestMapping(value = "/admin/edit", method = RequestMethod.POST) @ApiOperation(value = "修改抢单工信息", notes = "需要通过下单编号获取订单信息") - public Result edit(Worker u, - @RequestParam(required = false) String[] roleIds) { + public Result edit(@RequestBody Worker u) { //修改抢单工信息时如涉及到充值押金情况,需要更新余额且重置应缴 if(u.getDepoNum() != null && u.getDepoNum().compareTo(BigDecimal.ZERO)>0){ diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/OrderXd.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/OrderXd.java index f218ca3b..f01dd3f6 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/OrderXd.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/entity/OrderXd.java @@ -193,4 +193,16 @@ public class OrderXd implements Serializable { @ApiModelProperty("version") private Long version; + @ApiModelProperty(value = "省") + @Column(name = "province") + private String province; + + @ApiModelProperty(value = "市") + @Column(name = "city") + private String city; + + @ApiModelProperty(value = "县区") + @Column(name = "area") + private String area; + }