diff --git a/hiver-core/src/main/java/cc/hiver/core/common/utils/BeanUtils.java b/hiver-core/src/main/java/cc/hiver/core/common/utils/BeanUtils.java index 8e61c4ea..8d2145e4 100644 --- a/hiver-core/src/main/java/cc/hiver/core/common/utils/BeanUtils.java +++ b/hiver-core/src/main/java/cc/hiver/core/common/utils/BeanUtils.java @@ -15,9 +15,14 @@ limitations under the License. */ package cc.hiver.core.common.utils; +import org.springframework.beans.BeanWrapper; +import org.springframework.beans.BeanWrapperImpl; + import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -117,4 +122,17 @@ public class BeanUtils { public static boolean isMethodPropEquals(String m1, String m2) { return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX)); } + + public static String[] getNullPropertyNames(Object source) { + final BeanWrapper src = new BeanWrapperImpl(source); + java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); + Set emptyNames = new HashSet<>(); + for (java.beans.PropertyDescriptor pd : pds) { + Object srcValue = src.getPropertyValue(pd.getName()); + if (srcValue == null || srcValue == "") emptyNames.add(pd.getName()); + } + String[] result = new String[emptyNames.size()]; + return emptyNames.toArray(result); + } + } 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 ac754f6c..e4efd5af 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 @@ -170,7 +170,7 @@ public class Worker implements Serializable { */ @ApiModelProperty("登录账号") @Column(name = "username") - @Pattern(regexp = NameUtil.regUsername, message = "登录账号不能包含中文、特殊字符 长度不能>16") + //@Pattern(regexp = NameUtil.regUsername, message = "登录账号不能包含中文、特殊字符 长度不能>16") private String username; /** diff --git a/hiver-core/src/main/java/cc/hiver/core/vo/WorkerAppVO.java b/hiver-core/src/main/java/cc/hiver/core/vo/WorkerAppVO.java new file mode 100644 index 00000000..42b9c431 --- /dev/null +++ b/hiver-core/src/main/java/cc/hiver/core/vo/WorkerAppVO.java @@ -0,0 +1,161 @@ +package cc.hiver.core.vo; + +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; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.data.annotation.CreatedBy; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedBy; +import org.springframework.data.annotation.LastModifiedDate; +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; + +@Data +@ApiModel(value = "抢单工管理") +public class WorkerAppVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 抢单工编号 + */ + @ApiModelProperty("抢单工编号") + private String workerId = "W"+SnowFlakeUtil.nextId().toString(); + + /** + * 抢单工名称 + */ + @ApiModelProperty("抢单工名称") + private String workerName; + + /** + * 抢单工简介 + */ + @ApiModelProperty("抢单工简介") + private String workerDescribe; + + /** + * 缴押金总额 + */ + @ApiModelProperty("缴押金总额") + private BigDecimal depoNum = new BigDecimal(0); + + /** + * 押金余额 + */ + @ApiModelProperty("押金余额") + private BigDecimal depoBal = new BigDecimal(0); + + /** + * 接单状态 1-可抢单 2-不可接单(押金不足状态) 3-已禁用(手工预置状态) + */ + @ApiModelProperty("接单状态 1-可抢单 2-不可接单(押金不足状态) 3-已禁用(手工预置状态)") + private Integer workerStatus; + + + @ApiModelProperty("订单工创建人") + private String createBy; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("订单工创建时间") + private Date createTime; + + @ApiModelProperty("订单工修改人") + private String updateBy; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "订单工修改时间") + private Date updateTime; + + /** + * 联系方式 + */ + @ApiModelProperty("联系方式") + private String mobile; + + + /** + * 订单与抢单工映射关系 + * + * 多端中的列键值《外键》指向一端 一对多的单向关联,我们还是推荐使用一张中间表来建立关系。 + */ + /*@OneToMany(targetEntity = Order.class,mappedBy = "orderByWorker",cascade = CascadeType.ALL,fetch = FetchType.EAGER) + private List order;*/ + + /** + * 区域 + */ + @ApiModelProperty("办公区域") + private String region; + + /** + * 人员标识 + */ + @ApiModelProperty("人员标识 1-扛包工 2-快递员") + private String signPerson; + + /** + * 所属公司 + */ + @ApiModelProperty("所属公司") + private String ownerCompany; + + /** + * 描述 + */ + @ApiModelProperty("人员运送内容标准") + private String remark; + + /** + * 描述 + */ + @ApiModelProperty("记录扛包工推送机器id") + private String clientId; + + /** + * 扛包扣减固定金额 + */ + @ApiModelProperty("扛包扣减固定金额") + private BigDecimal fixedAmount = new BigDecimal(0); + + /** + * 登录账号 + */ + @ApiModelProperty("登录账号") + private String username; + + /** + * 登录密码 + */ + @ApiModelProperty("登录密码") + private String password; + + + @ApiModelProperty(value = "省") + private String province; + + @ApiModelProperty(value = "市") + private String city; + + @ApiModelProperty(value = "县区") + private String area; + +} diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/LogiticsCompanyController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/LogiticsCompanyController.java index 6557ce61..450da556 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/LogiticsCompanyController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/LogiticsCompanyController.java @@ -48,6 +48,13 @@ public class LogiticsCompanyController { return new ResultUtil>().setData(list); } + @RequestMapping(value = "/getBackAll", method = RequestMethod.GET) + @ApiOperation(value = "获取全部数据") + public Result> getBackAll(LogiticsCompany company) { + List list = companyService.findByCondition(company); + return new ResultUtil>().setData(list); + } + @RequestMapping(value = "/add", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "添加") 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 9f0982ff..be947d7d 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.core.service.WorkerService; 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.WorkerAppVO; import cc.hiver.core.vo.WorkerQueryVO; import cc.hiver.mall.entity.Recharge; import cc.hiver.mall.service.RechargeService; @@ -95,7 +96,7 @@ public class WorkerController { @RequestMapping(value = "/admin/edit", method = RequestMethod.POST) @ApiOperation(value = "修改抢单工信息", notes = "需要通过下单编号获取订单信息") - public Result edit(@RequestBody Worker u) { + public Result edit(Worker u) { //修改抢单工信息时如涉及到充值押金情况,需要更新余额且重置应缴 if(u.getDepoNum() != null && u.getDepoNum().compareTo(BigDecimal.ZERO)>0){ @@ -118,6 +119,33 @@ public class WorkerController { return ResultUtil.success("修改成功"); } + @RequestMapping(value = "/admin/editApp", method = RequestMethod.POST) + @ApiOperation(value = "修改抢单工信息-APP", notes = "需要通过下单编号获取订单信息") + public Result editApp(WorkerAppVO u) { + //修改抢单工信息时如涉及到充值押金情况,需要更新余额且重置应缴 + Worker worker = workerService.get(u.getWorkerId()); + if(u.getDepoNum() != null && u.getDepoNum().compareTo(BigDecimal.ZERO)>0){ + + Recharge recharge = new Recharge(); + + recharge.setRechargeName(u.getWorkerName()); + recharge.setRechargeDescribe(u.getWorkerDescribe()); + recharge.setRechargeWorkerId(u.getWorkerId()); + recharge.setRechargeNum(u.getDepoNum()); + recharge.setMobile(u.getMobile()); + + rechargeService.save(recharge); + + u.setDepoBal(worker.getDepoBal().add(u.getDepoNum())); + u.setDepoNum(new BigDecimal(0)); + } + // 将SourceEntity的非空属性复制到TargetEntity中 + org.springframework.beans.BeanUtils.copyProperties(u, worker, BeanUtils.getNullPropertyNames(u)); + workerService.update(worker); + + return ResultUtil.success("修改成功"); + } + @RequestMapping(value = "/admin/disable/{workerId}", method = RequestMethod.POST) @ApiOperation(value = "后台人工禁用抢单工") public Result disable(@ApiParam("用户唯一id标识") @PathVariable String workerId) {