浏览代码

商户配送员导入,列表,删除

FengChaoYu 3 周之前
父节点
当前提交
99487b60b4
共有 23 个文件被更改,包括 281 次插入201 次删除
  1. 2 2
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/order/OrderBuyBean.java
  2. 2 3
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/order/OrderController.java
  3. 1 0
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/enums/OrderStatusEnum.java
  4. 1 1
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/enums/PayTypeEnum.java
  5. 11 1
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/common/CommonLogic.java
  6. 13 40
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/order/OrderLogic.java
  7. 1 1
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/user/PayLogic.java
  8. 0 11
      mall-server-api/src/main/java/com/gree/mall/manager/bean/member/MemberBean.java
  9. 23 0
      mall-server-api/src/main/java/com/gree/mall/manager/bean/member/UserCompanyAttrBean.java
  10. 21 0
      mall-server-api/src/main/java/com/gree/mall/manager/bean/member/UserCompanyDeliveryBean.java
  11. 28 0
      mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/CommonMapper.java
  12. 0 16
      mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/CustomMemberMapper.java
  13. 0 18
      mall-server-api/src/main/java/com/gree/mall/manager/controller/goods/JxGoodsController.java
  14. 46 2
      mall-server-api/src/main/java/com/gree/mall/manager/controller/member/MemberController.java
  15. 0 20
      mall-server-api/src/main/java/com/gree/mall/manager/controller/order/OrderController.java
  16. 1 1
      mall-server-api/src/main/java/com/gree/mall/manager/enums/material/PayTypeEnum.java
  17. 5 26
      mall-server-api/src/main/java/com/gree/mall/manager/logic/order/OrderLogic.java
  18. 12 18
      mall-server-api/src/main/java/com/gree/mall/manager/logic/order/OrderOfflineLogic.java
  19. 77 2
      mall-server-api/src/main/java/com/gree/mall/manager/logic/user/UserLogic.java
  20. 37 0
      mall-server-api/src/main/resources/mapper/CommonMapper.xml
  21. 0 39
      mall-server-api/src/main/resources/mapper/CustomMemberMapper.xml
  22. 0 0
      mall-server-api/src/main/resources/template/师傅资料初始化.xlsx
  23. 二进制
      mall-server-api/src/main/resources/template/配送员师傅导入.xlsx

+ 2 - 2
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/order/OrderBuyBean.java

@@ -36,8 +36,8 @@ public class OrderBuyBean {
     @ApiModelProperty("wechat pay")
     private Boolean wechatPay = true;
 
-    @ApiModelProperty("WECHAT=微信支付   STORE = 到店支付")
-    private String payTypeId = PayTypeEnum.WECHAT.getKey();
+    @ApiModelProperty("ONLINE=在线支付   STORE = 到店支付")
+    private String payTypeId = PayTypeEnum.ONLINE.getKey();
 
     @ApiModelProperty("是否小程序支付")
     private Boolean miniPay ;

+ 2 - 3
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/order/OrderController.java

@@ -114,12 +114,11 @@ public class OrderController {
     @ApiOperation("我的订单")
     public ResponseHelper<IPage<OrderDetailBean>> myOrder(
             @ApiParam(value = "用户id",required = true) @RequestParam String userId,
-            @ApiParam(value = "订单状态(NOPAY:待付款 DFH:待发货 YFH:已发货 OVER:已完成 CLOSE:已关闭)",required = false) @RequestParam(required = false) String orderStatus,
-            @ApiParam(value = "申请优惠状态 (100=全部  1=待审核 2=已通过 3=已驳回)",required = false) @RequestParam(required = false) Integer promotionApplyStatus,
+            @ApiParam(value = "订单状态(NOPAY:待付款 DFH:待发货 YFH:已发货 OVER:已完成 CLOSE:已关闭)") @RequestParam(required = false) String orderStatus,
             @ApiParam(value = "pageNo",required = true) @RequestParam Integer pageNo,
             @ApiParam(value = "pageSize",required = true) @RequestParam Integer pageSize
     ){
-        IPage<OrderDetailBean> list = orderLogic.list(userId, orderStatus,promotionApplyStatus, pageNo, pageSize);
+        IPage<OrderDetailBean> list = orderLogic.list(userId, orderStatus, pageNo, pageSize);
         return ResponseHelper.success(list);
     }
 

+ 1 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/enums/OrderStatusEnum.java

@@ -11,6 +11,7 @@ public enum OrderStatusEnum {
     YFH("已发货"),
     DPS("待配送"),
     PSZ("配送中"),
+    DTK("待退款"),
     OVER("已完成"),
     CLOSE("已取消"),
     TIMEOUT("超时取消"),

+ 1 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/enums/PayTypeEnum.java

@@ -5,7 +5,7 @@ import lombok.Getter;
 
 @Getter
 public enum PayTypeEnum implements BaseEnum {
-    WECHAT("WECHAT","微信支付"),
+    ONLINE("ONLINE","在线支付"),
     CASH("CASH","现金"),
     TRANSFER("TRANSFER","转账支付"),
     STORE("STORE","到店支付"),

+ 11 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/common/CommonLogic.java

@@ -57,6 +57,8 @@ public class CommonLogic {
     OrderPickTimeConfigService orderPickTimeConfigService;
     @Resource
     UserCompanyAttrService userCompanyAttrService;
+    @Resource
+    UserCompanyDeliveryService userCompanyDeliveryService;
     @Value("${spring.profiles.active}")
     private String profiles;
     @Value("${inf.url}")
@@ -124,13 +126,21 @@ public class CommonLogic {
             currentCompanyWechat.setUser(user);
         }
 
+        // 商户授信用户记录
         final UserCompanyAttr userCompanyAttr = userCompanyAttrService.lambdaQuery()
                 .eq(UserCompanyAttr::getUserId, userId)
                 .eq(UserCompanyAttr::getCompanyWechatId, currentCompanyWechat.getCompanyWechatId())
                 .one();
 
+        // 是否配送员记录
+        final Integer existDelivery = userCompanyDeliveryService.lambdaQuery()
+                .eq(UserCompanyDelivery::getUserId, userId)
+                .eq(UserCompanyDelivery::getCompanyWechatId, currentCompanyWechat.getCompanyWechatId())
+                .count();
+
+        currentCompanyWechat.setIsDelivery(existDelivery > 0);
+
         if (Objects.nonNull(userCompanyAttr)) {
-            currentCompanyWechat.setIsDelivery(userCompanyAttr.getIsDelivery());
             currentCompanyWechat.setCreditLimit(userCompanyAttr.getCreditLimit());
             currentCompanyWechat.setAvailableCredit(userCompanyAttr.getAvailableCredit());
             currentCompanyWechat.setIsCreditEnabled(userCompanyAttr.getIsCreditEnabled());

+ 13 - 40
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/order/OrderLogic.java

@@ -168,7 +168,7 @@ public class OrderLogic {
             throw new RemoteServiceException(1100, "请选择提货方式");
         }
         if (StringUtils.isBlank(orderBuyBean.getUserAddressId())
-                && (orderBuyBean.getPayTypeId().equals(PayTypeEnum.WECHAT.getKey()) || orderBuyBean.getPayTypeId().equals(PayTypeEnum.CREDIT.getKey()))
+                && (orderBuyBean.getPayTypeId().equals(PayTypeEnum.ONLINE.getKey()) || orderBuyBean.getPayTypeId().equals(PayTypeEnum.CREDIT.getKey()))
                 && orderBuyBean.getTakeGoodsType().equals(TakeGoodsTypeEnum.Y.getKey())) {
             throw new RemoteServiceException(1100, "请选择收货地址");
         }
@@ -206,7 +206,7 @@ public class OrderLogic {
         // 收货地址
         UserAddress userAddress = null;
         if (StringUtils.isNotBlank(orderBuyBean.getUserAddressId())
-                && (orderBuyBean.getPayTypeId().equals(PayTypeEnum.WECHAT.getKey()) || orderBuyBean.getPayTypeId().equals(PayTypeEnum.CREDIT.getKey()))
+                && (orderBuyBean.getPayTypeId().equals(PayTypeEnum.ONLINE.getKey()) || orderBuyBean.getPayTypeId().equals(PayTypeEnum.CREDIT.getKey()))
                 && orderBuyBean.getTakeGoodsType().equals(TakeGoodsTypeEnum.Y.getKey())) {
             userAddress = userAddressService.getById(orderBuyBean.getUserAddressId());
         }
@@ -384,7 +384,7 @@ public class OrderLogic {
         PayDetail payDetail = new PayDetail();
         payDetail.setId(orderInfo.getOrderId());
 
-        if (StringUtils.equals(orderBuyBean.getPayTypeId(), PayTypeEnum.WECHAT.getKey())) {
+        if (StringUtils.equals(orderBuyBean.getPayTypeId(), PayTypeEnum.ONLINE.getKey())) {
             // TODO 在线支付逻辑
 
         } else if (StringUtils.equals(orderBuyBean.getPayTypeId(), PayTypeEnum.CREDIT.getKey())) {
@@ -487,45 +487,27 @@ public class OrderLogic {
      *
      * @return
      */
-    public IPage<OrderDetailBean> list(String userId, String orderStatus,Integer promotionApplyStatus, Integer pageNum, Integer pageSize) {
+    public IPage<OrderDetailBean> list(String userId, String orderStatus, Integer pageNum, Integer pageSize) {
         User user = userService.getById(userId);
-        List<Integer> promotionApplyStatusList = new ArrayList<>();
-        if(promotionApplyStatus != null) {
-            if (promotionApplyStatus == 100) {
-                promotionApplyStatusList.add(0);
-                promotionApplyStatusList.add(1);
-                promotionApplyStatusList.add(2);
-                promotionApplyStatusList.add(3);
-                promotionApplyStatusList.add(4);
-            } else if (promotionApplyStatus == 2) {
-                promotionApplyStatusList.add(2);
-                promotionApplyStatusList.add(4);
-            } else {
-                promotionApplyStatusList.add(promotionApplyStatus);
-            }
-            userId = null;
-        }
+
         List<String> orderStatusList = new ArrayList<>();
         if(StringUtils.isNotBlank(orderStatus)) {
             orderStatusList.add(orderStatus);
             if (StringUtils.equals(orderStatus, OrderStatusEnum.CLOSE.toString())) {
                 orderStatusList.add(OrderStatusEnum.REFUND.toString());
-            }
-            if(StringUtils.equals(orderStatus,OrderStatusEnum.YFH.toString())){
-                orderStatusList.add(OrderStatusEnum.DFH.toString());
+                orderStatusList.add(OrderStatusEnum.DTK.toString());
+            } else if (StringUtils.equals(orderStatus, OrderStatusEnum.DFH.toString())) {
+                orderStatusList.add(OrderStatusEnum.DJH.toString());
+            } else if (StringUtils.equals(orderStatus, OrderStatusEnum.DPS.toString())) {
+                orderStatusList.add(OrderStatusEnum.PSZ.toString());
             }
         }
 
         IPage page = orderInfoService.lambdaQuery()
                 .ne(OrderInfo::getOrderStatus,OrderStatusEnum.TIMEOUT.toString())
                 .in(CollectionUtils.isNotEmpty(orderStatusList), OrderInfo::getOrderStatus, orderStatusList)
-                .eq(StringUtils.equals(orderStatus,OrderStatusEnum.OVER.toString()),OrderInfo::getCommentGoods,0)
-                .eq(StringUtils.equals(user.getType(),UserTypeEnum.GENERAL.getKey()),OrderInfo::getUserId, userId)
-                .and(!StringUtils.equals(user.getType(),UserTypeEnum.GENERAL.getKey()), v -> v.eq(OrderInfo::getUserId,user.getUserId()))
-                .and(promotionApplyStatus != null && promotionApplyStatus == 100,v ->
-                        v.eq(OrderInfo::getOrderStatus,OrderStatusEnum.NOPAY.toString())
-                                .or().ne(OrderInfo::getOrderStatus,OrderStatusEnum.NOPAY.toString())
-                )
+                .eq(StringUtils.equals(orderStatus,OrderStatusEnum.OVER.toString()), OrderInfo::getCommentGoods,0)
+                .eq(OrderInfo::getUserId, userId)
                 .orderByDesc(OrderInfo::getCreateTime)
                 .page(new Page<>(pageNum, pageSize));
 
@@ -534,16 +516,7 @@ public class OrderLogic {
             OrderInfo orderInfo = (OrderInfo) o;
             OrderDetailBean orderDetailBean = new OrderDetailBean();
             BeanUtils.copyProperties(orderInfo, orderDetailBean);
-            List<OrderShare> list1 = orderShareService
-                    .lambdaQuery()
-                    .eq(OrderShare::getOrderId, orderInfo.getOrderId())
-                    .list();
-            if (list1 != null && list1.size() > 0) {
-                //此处list1目前最多2条
-                for(OrderShare orderShare : list1) {
-                    orderDetailBean.setOrderShareStatus(orderShare.getStatus());
-                }
-            }
+
             //查询订单详情
             List<OrderDetail> orderDetails = orderDetailService.lambdaQuery().eq(OrderDetail::getOrderId, orderInfo.getOrderId()).list();
             orderDetailBean.setOrderDetails(orderDetails);

+ 1 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/user/PayLogic.java

@@ -73,7 +73,7 @@ public class PayLogic {
             log.info("请勿重复支付,orderId:{}", id);
             return;
         }
-        if(StringUtils.equals(orderInfo.getPayTypeId(),PayTypeEnum.WECHAT.getKey())) {
+        if(StringUtils.equals(orderInfo.getPayTypeId(),PayTypeEnum.ONLINE.getKey())) {
             orderInfo.setOrderStatus(OrderStatusEnum.DFH.toString());
         }else{
             orderInfo.setOrderStatus(OrderStatusEnum.DQR.toString());

+ 0 - 11
mall-server-api/src/main/java/com/gree/mall/manager/bean/member/MemberBean.java

@@ -1,11 +0,0 @@
-package com.gree.mall.manager.bean.member;
-
-import com.gree.mall.manager.plus.entity.User;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@ApiModel
-@Data
-public class MemberBean extends User {
-}

+ 23 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/member/UserCompanyAttrBean.java

@@ -0,0 +1,23 @@
+package com.gree.mall.manager.bean.member;
+
+import com.gree.mall.manager.plus.entity.User;
+import com.gree.mall.manager.plus.entity.UserCompanyAttr;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel
+@Data
+public class UserCompanyAttrBean extends UserCompanyAttr {
+
+    @ApiModelProperty(value = "师傅名称")
+    private String nickName;
+
+    @ApiModelProperty(value = "手机号")
+    private String mobile;
+
+}

+ 21 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/member/UserCompanyDeliveryBean.java

@@ -0,0 +1,21 @@
+package com.gree.mall.manager.bean.member;
+
+import com.gree.mall.manager.plus.entity.User;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel
+@Data
+public class UserCompanyDeliveryBean extends User {
+
+    @ApiModelProperty(value = "商户名称")
+    private String companyName;
+
+    @ApiModelProperty(value = "配送员创建时间")
+    private Date deliveryCreateTime;
+}

+ 28 - 0
mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/CommonMapper.java

@@ -13,6 +13,8 @@ import com.gree.mall.manager.bean.listvo.order.PunishOrderVO;
 import com.gree.mall.manager.bean.listvo.param.ExamineZfireParamBean;
 import com.gree.mall.manager.bean.listvo.param.WorkOrderZfireParam;
 import com.gree.mall.manager.bean.listvo.workorder.*;
+import com.gree.mall.manager.bean.member.UserCompanyAttrBean;
+import com.gree.mall.manager.bean.member.UserCompanyDeliveryBean;
 import com.gree.mall.manager.bean.order.LeaseOrderVO;
 import com.gree.mall.manager.bean.order.refund.OrderOfflineRefundVO;
 import com.gree.mall.manager.bean.settle.SettleExpenseItemVO;
@@ -22,6 +24,7 @@ import com.gree.mall.manager.bean.settle.SettleMonthWagesWorkerVO;
 import com.gree.mall.manager.bean.settle.repair.*;
 import com.gree.mall.manager.bean.workorder.*;
 import com.gree.mall.manager.enums.UserTypeEnum;
+import com.gree.mall.manager.plus.entity.User;
 import com.gree.mall.manager.zfire.bean.WorkerParamBean;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import org.apache.ibatis.annotations.Mapper;
@@ -538,4 +541,29 @@ public interface CommonMapper {
     Integer repairAllCount(@Param("companyWechatIds") List<String> companyWechatIds,
                            @Param("adminWebsitIds") List<String> adminWebsitIds,
                            @Param("status") Integer status);
+
+    /**
+     * 商户配送员
+     * @param companyWechatId
+     * @param nickName
+     * @param mobile
+     * @return
+     */
+    IPage<UserCompanyDeliveryBean> companyDelivery(Page<Object> page,
+                                                   @Param("companyWechatId") String companyWechatId,
+                                                   @Param("nickName") String nickName,
+                                                   @Param("mobile") String mobile);
+
+    /**
+     * 商户授信人员
+     * @param objectPage
+     * @param companyWechatId
+     * @param nickName
+     * @param mobile
+     * @return
+     */
+    IPage<UserCompanyAttrBean> companyCredit(Page<Object> objectPage,
+                                             @Param("companyWechatId") String companyWechatId,
+                                             @Param("nickName") String nickName,
+                                             @Param("mobile") String mobile);
 }

+ 0 - 16
mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/CustomMemberMapper.java

@@ -1,16 +0,0 @@
-package com.gree.mall.manager.commonmapper;
-
-import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
-import com.gree.mall.manager.bean.member.MemberBean;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface CustomMemberMapper {
-    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
-    List<MemberBean> queryUser(@Param("type")String type, @Param("keyword")String keyword,
-                               @Param("websitNos")List<String> websitNos, @Param("startTime")String startTime,
-                               @Param("endTime")String endTime, @Param("companyWechatIds")List<String> companyWechatIds);
-}

+ 0 - 18
mall-server-api/src/main/java/com/gree/mall/manager/controller/goods/JxGoodsController.java

@@ -127,24 +127,6 @@ public class JxGoodsController {
         FieldUtils.exportData(page.getRecords(), zfireParam.getExportFields(), request, response);
     }
 
-
-    @PostMapping("/goods/deliverV2")
-    @ApiOperation("发货")
-    public ResponseHelper deliverV2(
-            @RequestBody SendOrderBody sendOrderBody
-    ) throws Exception {
-        Lock obtain = redisLockRegistry.obtain(Constant.RedisPrefix.LOCK_ORDER + sendOrderBody.getOrderId());
-        if(!obtain.tryLock(10, TimeUnit.SECONDS)){
-            return ResponseHelper.error("系统繁忙,请稍后再试");
-        }
-        try {
-            orderLogic.deliverV2(sendOrderBody);
-        }finally {
-            obtain.unlock();
-        }
-        return ResponseHelper.success();
-    }
-
     @PostMapping("/save")
     @ApiOperation("保存发货条码")
     public ResponseHelper<List<OrderDetailCode>> save(

+ 46 - 2
mall-server-api/src/main/java/com/gree/mall/manager/controller/member/MemberController.java

@@ -9,6 +9,8 @@ import com.gree.mall.manager.bean.listvo.UserCustomerVO;
 import com.gree.mall.manager.bean.listvo.UserVO;
 import com.gree.mall.manager.bean.listvo.workorder.UserWaitVO;
 import com.gree.mall.manager.bean.member.UserApplyBean;
+import com.gree.mall.manager.bean.member.UserCompanyAttrBean;
+import com.gree.mall.manager.bean.member.UserCompanyDeliveryBean;
 import com.gree.mall.manager.bean.user.UserApplyWorkerBean;
 import com.gree.mall.manager.bean.user.UserWxBean;
 import com.gree.mall.manager.enums.ExamineStatusEnum;
@@ -143,7 +145,7 @@ public class MemberController {
     }
 
     @PostMapping("/list/wait2/import")
-    @ApiOperation(value = "师傅分销员资料初始化-导入-v2(模板名称:师傅分销员资料初始化.xlsx)")
+    @ApiOperation(value = "师傅分销员资料初始化-导入-v2(模板名称:师傅资料初始化.xlsx)")
     public ResponseHelper wait2Del(
             @RequestParam MultipartFile file
     ) throws RemoteServiceException, IOException {
@@ -308,7 +310,7 @@ public class MemberController {
     @GetMapping("/coupon")
     @ApiOperation(value = "我的优惠券")
     public ResponseHelper<IPage<UserCoupon>> couponList(
-            @ApiParam(required = true, value = "用户id") @RequestParam(required = true) String userId,
+            @ApiParam(required = true, value = "用户id") @RequestParam String userId,
             @ApiParam(value = "页号", required = true) @RequestParam Integer pageNum,
             @ApiParam(value = "页大小", required = true) @RequestParam Integer pageSize
     ) {
@@ -316,4 +318,46 @@ public class MemberController {
         return ResponseHelper.success(userCouponIPage);
     }
 
+    @PostMapping("/company/delivery")
+    @ApiOperation(value = "商户配送员列表")
+    public ResponseHelper<IPage<UserCompanyDeliveryBean>> companyDelivery(
+            @ApiParam(value = "昵称") @RequestParam(required = false) String nickName,
+            @ApiParam(value = "手机号") @RequestParam(required = false) String mobile,
+            @ApiParam(value = "页号", required = true) @RequestParam Integer pageNum,
+            @ApiParam(value = "页大小", required = true) @RequestParam Integer pageSize
+    ) {
+        IPage<UserCompanyDeliveryBean> list = userLogic.companyDelivery(nickName, mobile, pageNum, pageSize);
+        return ResponseHelper.success(list);
+    }
+
+    @PostMapping("/company/delivery/import")
+    @ApiOperation(value = "配送员师傅-导入(模板名称:配送员师傅导入.xlsx)")
+    public ResponseHelper companyDeliveryImport(
+            @RequestParam MultipartFile file
+    ) throws RemoteServiceException, IOException {
+        List<Object> objects = ExcelUtils.importExcel(file);
+        userLogic.companyDeliveryImport(objects);
+        return ResponseHelper.success();
+    }
+
+    @PostMapping("/company/delivery/del")
+    @ApiOperation(value = "商户配送员删除")
+    public ResponseHelper companyDeliveryDel(
+            @ApiParam(value = "师傅id", required = true) @RequestParam String userId
+    ) {
+        userLogic.companyDeliveryDel(userId);
+        return ResponseHelper.success();
+    }
+
+    @PostMapping("/company/credit")
+    @ApiOperation(value = "商户授信人员列表")
+    public ResponseHelper<IPage<UserCompanyAttrBean>> companyCredit(
+            @ApiParam(value = "昵称") @RequestParam(required = false) String nickName,
+            @ApiParam(value = "手机号") @RequestParam(required = false) String mobile,
+            @ApiParam(value = "页号", required = true) @RequestParam Integer pageNum,
+            @ApiParam(value = "页大小", required = true) @RequestParam Integer pageSize
+    ) {
+        IPage<UserCompanyAttrBean> list = userLogic.companyCredit(nickName, mobile, pageNum, pageSize);
+        return ResponseHelper.success(list);
+    }
 }

+ 0 - 20
mall-server-api/src/main/java/com/gree/mall/manager/controller/order/OrderController.java

@@ -307,26 +307,6 @@ public class OrderController {
         return ResponseHelper.success();
     }
 
-
-    @PostMapping("/goods/deliverV2")
-    @ApiOperation("发货")
-    public ResponseHelper deliverV2(
-            @RequestBody SendOrderBody sendOrderBody
-    ) throws Exception {
-
-        throw new RemoteServiceException("接口已失效");
-       /* Lock obtain = redisLockRegistry.obtain(Constant.RedisPrefix.LOCK_ORDER + sendOrderBody.getOrderId());
-        if(!obtain.tryLock(10,TimeUnit.SECONDS)){
-            return ResponseHelper.error("系统繁忙,请稍后再试");
-        }
-        try {
-            orderLogic.deliverV2(sendOrderBody);
-        }finally {
-            obtain.unlock();
-        }*/
-       // return ResponseHelper.success();
-    }
-
     @PostMapping("/goods/batch/deliver")
     @ApiOperation("批量发货")
     public ResponseHelper deliverBatchGoods(

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/enums/material/PayTypeEnum.java

@@ -11,7 +11,7 @@ import lombok.RequiredArgsConstructor;
 @RequiredArgsConstructor(access = AccessLevel.PRIVATE)
 public enum PayTypeEnum implements BaseEnum {
     CASH("CASH","现金支付"),
-    WECHAT("WECHAT","微信支付"),
+    ONLINE("ONLINE","在线支付"),
     TRANSFER("TRANSFER","转账支付"),
     CREDIT("CREDIT","授信支付")
     ;

+ 5 - 26
mall-server-api/src/main/java/com/gree/mall/manager/logic/order/OrderLogic.java

@@ -143,7 +143,7 @@ public class OrderLogic {
     @Resource
     GoodsMaterialStockLogic goodsMaterialStockLogic;
     @Resource
-    UserCompanyAttrService userCompanyAttrService;
+    UserCompanyDeliveryService userCompanyDeliveryService;
 
 
 
@@ -1181,27 +1181,6 @@ public class OrderLogic {
         return sb.toString();
     }
 
-
-    @Transactional(rollbackFor = Exception.class)
-    public void deliverV2(SendOrderBody sendOrderBody) throws Exception {
-        //判断导入条码是否符合数量
-        List<OrderDetail> list = orderDetailService.lambdaQuery().eq(OrderDetail::getOrderId, sendOrderBody.getOrderId()).list();
-        List<OrderDetailCode> orderDetailCodes = orderDetailCodeService.lambdaQuery().
-                eq(OrderDetailCode::getOrderId, sendOrderBody.getOrderId()).list();
-
-        sendOrderBody.setOrderDetailCodes(orderDetailCodes);
-
-
-
-        //减少库存+减去条码
-        this.subStock(sendOrderBody);
-
-
-        //最后调用发货
-        this.deliverGoods(sendOrderBody.getOrderId(), sendOrderBody.getLogisticsNo(), sendOrderBody.getCompanyCode(), sendOrderBody.getStorageId(), sendOrderBody.getWorkOrder(), sendOrderBody.getExchange()
-        ,sendOrderBody.getPickName(),sendOrderBody.getPickPhone(),sendOrderBody.getPickType());
-    }
-
     private void subStock(SendOrderBody sendOrderBody) throws InterruptedException {
 
         AdminUserCom adminUser = commonLogic.getAdminUser();
@@ -1447,12 +1426,12 @@ public class OrderLogic {
         }
         AdminUserCom adminUser = commonLogic.getAdminUser();
         final User user = userService.getById(userId);
-        final UserCompanyAttr userCompanyAttr = userCompanyAttrService.lambdaQuery()
-                .eq(UserCompanyAttr::getCompanyWechatId, adminUser.getAdminCompanyWechat().getCompanyWechatId())
-                .eq(UserCompanyAttr::getUserId, user.getUserId())
+        final UserCompanyDelivery userCompanyDelivery = userCompanyDeliveryService.lambdaQuery()
+                .eq(UserCompanyDelivery::getUserId, user.getUserId())
+                .eq(UserCompanyDelivery::getCompanyWechatId, adminUser.getAdminCompanyWechat().getCompanyWechatId())
                 .one();
 
-        if (!userCompanyAttr.getIsDelivery()) {
+        if (Objects.isNull(userCompanyDelivery)) {
             throw new RemoteServiceException("非“配送员”,请检查");
         }
 

+ 12 - 18
mall-server-api/src/main/java/com/gree/mall/manager/logic/order/OrderOfflineLogic.java

@@ -11,8 +11,6 @@ import com.gree.mall.manager.bean.goods.GoodsMaterialStockDTO;
 import com.gree.mall.manager.bean.listvo.OrderInfoVO;
 import com.gree.mall.manager.bean.order.OrderInfoAddBean;
 import com.gree.mall.manager.bean.order.OrderInfoDetailBean;
-import com.gree.mall.manager.bean.order.OrderOldProductAdd;
-import com.gree.mall.manager.bean.order.OrderOldProductDTO;
 import com.gree.mall.manager.commonmapper.CommonMapper;
 import com.gree.mall.manager.enums.ExamineStatusEnum;
 import com.gree.mall.manager.enums.IsYesNoEnum;
@@ -27,7 +25,6 @@ import com.gree.mall.manager.logic.common.CommonLogic;
 import com.gree.mall.manager.logic.goods.GoodsMaterialStockLogic;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
-import com.gree.mall.manager.utils.StringUtil;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
 import lombok.RequiredArgsConstructor;
@@ -109,7 +106,7 @@ public class OrderOfflineLogic {
         }
         BeanUtil.copyProperties(orderInfoAddBean, orderInfo, "orderId");
         if (StringUtils.isBlank(orderInfo.getOrderId())) {
-            orderInfo.setOrderId("N" + IdWorker.getIdStr());
+            orderInfo.setOrderId(commonLogic.generateNo(adminUser.getAdminCompanyWechat().getOrderPrefix(), "MALL_ORDER", 13));
         }
         orderInfo.setCompanyWechatId(adminUser.getCompanyWechatId());
         orderInfo.setCompanyName(adminUser.getCompanyName());
@@ -295,22 +292,19 @@ public class OrderOfflineLogic {
                 continue;
             }
 
-            if (!StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.NOPAY.toString())
-                    && !StringUtils.equals(orderInfo.getOrderStatus(), OrderStatusEnum.DFH.toString())) {
+            Integer insideQty = list.stream().filter(v -> v.getType().equals(GoodsMaterialTypeEnum.INSIDE.getKey())).map(GoodsMaterialItem::getQty).reduce(Integer::sum).orElse(0);
+            Integer outQty = list.stream().filter(v -> v.getType().equals(GoodsMaterialTypeEnum.OUT.getKey())).map(GoodsMaterialItem::getQty).reduce(Integer::sum).orElse(0);
+            Integer partsQty = list.stream().filter(v -> v.getType().equals(GoodsMaterialTypeEnum.PARTS.getKey())).map(GoodsMaterialItem::getQty).reduce(Integer::sum).orElse(0);
 
-                Integer insideQty = list.stream().filter(v -> v.getType().equals(GoodsMaterialTypeEnum.INSIDE.getKey())).map(GoodsMaterialItem::getQty).reduce(Integer::sum).orElse(0);
-                Integer outQty = list.stream().filter(v -> v.getType().equals(GoodsMaterialTypeEnum.OUT.getKey())).map(GoodsMaterialItem::getQty).reduce(Integer::sum).orElse(0);
-                Integer partsQty = list.stream().filter(v -> v.getType().equals(GoodsMaterialTypeEnum.PARTS.getKey())).map(GoodsMaterialItem::getQty).reduce(Integer::sum).orElse(0);
+            orderDetail.setInsideNum(insideQty);
+            orderDetail.setOutNum(outQty);
+            orderDetail.setPartNum(partsQty);
 
-                orderDetail.setInsideNum(insideQty);
-                orderDetail.setOutNum(outQty);
-                orderDetail.setPartNum(partsQty);
+            Integer integer = goodsMaterialStorageList.stream().filter(item -> item.getGoodsMaterialId().equals(goodsMaterial.getId())).map(GoodsMaterialStorage::getStockQty).reduce(Integer::sum)
+                    .orElse(0);
 
-                Integer integer = goodsMaterialStorageList.stream().filter(item -> item.getGoodsMaterialId().equals(goodsMaterial.getId())).map(GoodsMaterialStorage::getStockQty).reduce(Integer::sum)
-                        .orElse(0);
+            orderDetail.setStockQty(integer);
 
-                orderDetail.setStockQty(integer);
-            }
         }
         orderInfoDetailBean.setPayType(orderInfo.getPayTypeId());
         orderInfoDetailBean.setOrderDetails(orderDetails);
@@ -351,12 +345,12 @@ public class OrderOfflineLogic {
 
         PayDetail payDetail = new PayDetail().setIsPay(false);
         if (examineStatus.getKey().equals(ExamineStatusEnum.OK.getKey())) {
-            if (orderInfo.getPayTypeId().equals(PayTypeEnum.WECHAT.getKey())) {
+            if (orderInfo.getPayTypeId().equals(PayTypeEnum.ONLINE.getKey())) {
                 //需要微信支付的单审批状态得等到支付成功后才能通过
                 orderInfo.setExamineStatus(ExamineStatusEnum.WAIT.getKey());
                 orderInfo.setExamineTime(null);
             } else {
-                orderInfo.setOrderStatus(OrderStatusEnum.DFH.toString());
+                orderInfo.setOrderStatus(OrderStatusEnum.DJH.toString());
                 orderInfo.setPayTime(new Date());
 
                 // 减物料库存逻辑

+ 77 - 2
mall-server-api/src/main/java/com/gree/mall/manager/logic/user/UserLogic.java

@@ -1,6 +1,8 @@
 package com.gree.mall.manager.logic.user;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -14,6 +16,8 @@ import com.gree.mall.manager.bean.listvo.UserVO;
 import com.gree.mall.manager.bean.listvo.workorder.UserWaitVO;
 import com.gree.mall.manager.bean.member.MemberSortBean;
 import com.gree.mall.manager.bean.member.UserApplyBean;
+import com.gree.mall.manager.bean.member.UserCompanyAttrBean;
+import com.gree.mall.manager.bean.member.UserCompanyDeliveryBean;
 import com.gree.mall.manager.bean.user.UserApplyWorkerBean;
 import com.gree.mall.manager.bean.user.UserDetailBean;
 import com.gree.mall.manager.bean.user.UserWxBean;
@@ -71,6 +75,7 @@ public class UserLogic {
     private final CommonLogic commonLogic;
     private final PgOrderBaseService pgOrderBaseService;
     private final PgOrderWorkerService pgOrderWorkerService;
+    private final UserCompanyDeliveryService userCompanyDeliveryService;
 
 
     /**
@@ -203,8 +208,8 @@ public class UserLogic {
             List<Object> row = (List<Object>) o;
             CommonUtils.initList2(row, 10);
             String name = (String) row.get(0);
-            String mobile = (String) row.get(2);
-            String bankAccount = (String) row.get(5);
+            String mobile = (String) row.get(1);
+            String bankAccount = (String) row.get(2);
 
             if (StringUtils.isAnyBlank(name, mobile)) {
                 throw new RemoteServiceException(errPrefix + "黄色区域为必填项");
@@ -457,4 +462,74 @@ public class UserLogic {
                 .eq(UserWait::getWorkerNumber,userWait.getWorkerNumber())
                 .set(UserWait::getMobile,userWait.getMobile()).update();
     }
+
+    public IPage<UserCompanyDeliveryBean> companyDelivery(String nickName, String mobile, Integer pageNum, Integer pageSize) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        return commonMapper.companyDelivery(new Page<>(pageNum, pageSize), adminUser.getCompanyWechatId(), nickName, mobile);
+    }
+
+    public void companyDeliveryImport(List<Object> datas) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        if (StringUtils.isBlank(adminUser.getCompanyWechatId())) {
+            throw new RemoteServiceException("管理员账号不可操作");
+        }
+        int index = 1;
+
+        final DateTime curDate = DateUtil.date();
+
+        List<UserCompanyDelivery> userCompanyDeliveryList = new ArrayList<>();
+        for (Object o : datas) {
+            index++;
+            String errPrefix = "第" + index + "行";
+            List<Object> row = (List<Object>) o;
+            CommonUtils.initList2(row, 10);
+            String mobile = (String) row.get(0);
+
+            if (StringUtils.isAnyBlank(mobile)) {
+                throw new RemoteServiceException(errPrefix + "黄色区域为必填项");
+            }
+
+            final User user = userService.lambdaQuery()
+                    .eq(User::getMobile, mobile)
+                    .one();
+
+            if (Objects.isNull(user)) {
+                throw new RemoteServiceException(errPrefix + " 没有找到对应师傅信息");
+            }
+
+            final Integer count = userCompanyDeliveryService.lambdaQuery()
+                    .eq(UserCompanyDelivery::getUserId, user.getUserId())
+                    .eq(UserCompanyDelivery::getCompanyWechatId, adminUser.getCompanyWechatId())
+                    .count();
+
+            if (count > 0) {
+                throw new RemoteServiceException(errPrefix + " " + mobile + "已是配送员");
+            }
+
+            UserCompanyDelivery delivery = new UserCompanyDelivery();
+            delivery.setCompanyWechatId(adminUser.getCompanyWechatId())
+                    .setUserId(user.getUserId())
+                    .setId(IdWorker.getIdStr())
+                    .setCreateTime(curDate);
+
+            userCompanyDeliveryList.add(delivery);
+        }
+
+
+        userCompanyDeliveryService.saveBatch(userCompanyDeliveryList);
+    }
+
+    public void companyDeliveryDel(String userId) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+
+        userCompanyDeliveryService.lambdaUpdate()
+                .eq(UserCompanyDelivery::getUserId, userId)
+                .eq(UserCompanyDelivery::getCompanyWechatId, adminUser.getCompanyWechatId())
+                .remove();
+    }
+
+    public IPage<UserCompanyAttrBean> companyCredit(String nickName, String mobile, Integer pageNum, Integer pageSize) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        return commonMapper.companyCredit(new Page<>(pageNum, pageSize), adminUser.getCompanyWechatId(), nickName, mobile);
+    }
 }

+ 37 - 0
mall-server-api/src/main/resources/mapper/CommonMapper.xml

@@ -1048,4 +1048,41 @@
             c.status = #{status}
     </select>
 
+    <select id="companyDelivery" resultType="com.gree.mall.manager.bean.member.UserCompanyDeliveryBean">
+        SELECT
+            a.*,
+            ucd.create_time AS deliveryCreateTime,
+            acw.company_name
+        FROM
+            user a JOIN user_company_delivery ucd ON a.user_id = ucd.user_id
+                LEFT JOIN admin_company_wechat acw ON ucd.company_wechat_id = acw.company_wechat_id
+        WHERE
+            a.type = 'WORKER'
+            AND ucd.company_wechat_id = #{companyWechatId}
+        <if test="nickName != null and nickName != ''">
+            AND a.nick_name LIKE CONCAT('%', #{nickName},'%')
+        </if>
+        <if test="mobile != null and mobile != ''">
+            AND a.mobile LIKE CONCAT('%', #{mobile},'%')
+        </if>
+    </select>
+
+    <select id="companyCredit" resultType="com.gree.mall.manager.bean.member.UserCompanyAttrBean">
+        SELECT
+            uca.*,
+            a.nick_name,
+            a.mobile
+        FROM
+            user a JOIN user_company_attr uca ON a.user_id = uca.user_id
+        WHERE
+            a.type = 'WORKER'
+            AND uca.company_wechat_id = #{companyWechatId}
+        <if test="nickName != null and nickName != ''">
+            AND a.nick_name LIKE CONCAT('%', #{nickName},'%')
+        </if>
+        <if test="mobile != null and mobile != ''">
+            AND a.mobile LIKE CONCAT('%', #{mobile},'%')
+        </if>
+    </select>
+
 </mapper>

+ 0 - 39
mall-server-api/src/main/resources/mapper/CustomMemberMapper.xml

@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.gree.mall.manager.commonmapper.CustomMemberMapper">
-    <select id="queryUser" resultType="com.gree.mall.manager.bean.member.MemberBean">
-        select ur.*
-        from user ur
-        left join enterprise_wechat_worker eww on eww.wechat_user_id = ur.work_user_id
-        left join admin_websit aw on aw.id = eww.main_department
-        where
-        ur.status =1
-        <if test=' companyWechatIds != null and companyWechatIds.size > 0' >
-            and ur.company_wechat_id in
-            <foreach collection="companyWechatIds" open="(" close=")" item="companyWechatId" separator=",">
-                #{companyWechatId}
-            </foreach>
-        </if>
-        <if test="type != null and type !=''">
-            and ur.type = #{type}
-        </if>
-        <if test="startTime != null and endTime != null">
-            and ur.create_time between #{startTime} and #{endTime}
-        </if>
-        <if test="keyword != null and keyword !=''">
-            and (ur.nick_name like concat('%',#{keyword,jdbcType=VARCHAR},'%') or ur.mobile like
-            concat('%',#{keyword,jdbcType=VARCHAR},'%'))
-        </if>
-         <if test="null != websitNos and websitNos.size > 0">
-             and aw.websit_number in
-             <foreach item="item" index="index" collection="websitNos" open="(" separator=","
-                      close=")">
-                 #{item}
-             </foreach>
-        </if>
-        order by ur.create_time
-    </select>
-
-
-
-</mapper>

+ 0 - 0
mall-server-api/src/main/resources/template/师傅分销员资料初始化.xlsx → mall-server-api/src/main/resources/template/师傅资料初始化.xlsx


二进制
mall-server-api/src/main/resources/template/配送员师傅导入.xlsx