Browse Source

Merge remote-tracking branch 'origin/develop' into develop

FengChaoYu 6 months ago
parent
commit
7a7ad7458b

+ 24 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/policy/PolicyDetail.java

@@ -0,0 +1,24 @@
+package com.gree.mall.miniapp.bean.policy;
+
+
+import com.gree.mall.miniapp.plus.entity.Policy;
+import com.gree.mall.miniapp.plus.entity.PolicyRange;
+import com.gree.mall.miniapp.plus.entity.PolicyWebsit;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class PolicyDetail extends Policy {
+
+
+    @ApiModelProperty(value = "保单范围")
+    private List<PolicyRange> policyRanges;
+
+
+    @ApiModelProperty(value = "网点")
+    private List<PolicyWebsit> policyWebsits;
+}

+ 21 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/policy/PolicyOrderDetail.java

@@ -0,0 +1,21 @@
+package com.gree.mall.miniapp.bean.policy;
+
+import com.gree.mall.miniapp.plus.entity.Policy;
+import com.gree.mall.miniapp.plus.entity.PolicyOrder;
+import com.gree.mall.miniapp.plus.entity.PolicyRange;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class PolicyOrderDetail extends PolicyOrder {
+
+    @ApiModelProperty(value = "保单范围")
+    private List<PolicyRange> policyRanges;
+
+    @ApiModelProperty(value = "保单")
+    private Policy policy;
+}

+ 19 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/policy/WorkerRemind.java

@@ -0,0 +1,19 @@
+package com.gree.mall.miniapp.bean.policy;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class WorkerRemind {
+
+    @ApiModelProperty("网点名称")
+    private String websitName;
+
+    @ApiModelProperty("网点id")
+    private String websitId;
+
+    @ApiModelProperty("1保险购买提示,2意外到期提醒,3意外已到期")
+    private Integer remindIn;
+}

+ 27 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/user/UserApplyBean.java

@@ -2,10 +2,12 @@ package com.gree.mall.miniapp.bean.user;
 
 import com.gree.mall.miniapp.enums.UserTypeEnum;
 import com.gree.mall.miniapp.plus.entity.WorkerImg;
+import com.gree.mall.miniapp.plus.entity.WorkerPolicy;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -32,4 +34,29 @@ public class UserApplyBean {
 
     @ApiModelProperty("银行卡")
     private String bankAccount;
+
+    @ApiModelProperty("身份证开始日期")
+    private Date idCardStartTime;
+
+    @ApiModelProperty("身份证结束日期")
+    private Date idCardEndTime;
+
+
+    @ApiModelProperty("高空证开始日期")
+    private Date startTime;
+
+
+    @ApiModelProperty("高空证结束日期")
+    private Date endTime;
+
+    @ApiModelProperty("高空证号码")
+    private String number;
+
+    @ApiModelProperty("高空证复审日期")
+    private Date hightExamineTime;
+
+
+    @ApiModelProperty("意外险信息")
+    private WorkerPolicy workerPolicy;
+
 }

+ 111 - 45
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/user/WorkerController.java

@@ -1,45 +1,111 @@
-//package com.gree.mall.miniapp.controller.user;
-//
-//import com.gree.mall.miniapp.exception.RemoteServiceException;
-//import com.gree.mall.miniapp.helper.ResponseHelper;
-//import com.gree.mall.miniapp.logic.user.WorkerLogic;
-//import io.swagger.annotations.Api;
-//import io.swagger.annotations.ApiOperation;
-//import io.swagger.annotations.ApiParam;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.web.bind.annotation.*;
-//
-//import javax.servlet.http.HttpServletRequest;
-//
-//@Slf4j
-//@RestController
-//@Api(value = "申请成为业务员", tags ={"申请成为业务员"} )
-//@RequestMapping(value = "/worker", produces = "application/json; charset=utf-8")
-//public class WorkerController {
-//    @Autowired
-//    private WorkerLogic workerLogic;
-//
-//    @PostMapping("/sms/send")
-//    @ApiOperation(value = "发送验证码")
-//    public ResponseHelper sendSms(@ApiParam(value = "手机号码",required = true) @RequestParam String phone,
-//                                  @ApiParam(value = "滑动验证key",required = false) @RequestParam(required = false) String key,
-//                                  @ApiParam(value = "滑动验证数值",required = false) @RequestParam(required = false) String vrifyCode)
-//            throws Exception {
-//        workerLogic.sendSms(phone,key,vrifyCode);
-//        return ResponseHelper.success();
-//    }
-//
-//    @PostMapping("/bind")
-//    @ApiOperation(value = "绑定业务员")
-//    public ResponseHelper bind(HttpServletRequest request,@ApiParam(value = "手机号码",required = true) @RequestParam String phone,
-//                               @ApiParam(value = "短信验证码",required = true) @RequestParam String code)
-//            throws RemoteServiceException {
-//
-//        workerLogic.bind(request,phone,code);
-//        return ResponseHelper.success();
-//    }
-//
-//
-//
-//}
+package com.gree.mall.miniapp.controller.user;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.miniapp.bean.PayDetail;
+import com.gree.mall.miniapp.bean.policy.PolicyDetail;
+import com.gree.mall.miniapp.bean.policy.PolicyOrderDetail;
+import com.gree.mall.miniapp.bean.policy.WorkerRemind;
+import com.gree.mall.miniapp.helper.ResponseHelper;
+import com.gree.mall.miniapp.logic.policy.WorkerLogic;
+import com.gree.mall.miniapp.plus.entity.Policy;
+import com.gree.mall.miniapp.plus.entity.PolicyOrder;
+import com.gree.mall.miniapp.plus.entity.WorkerPolicy;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.util.List;
+
+@Slf4j
+@RestController
+@Api(value = "师傅保险API", tags ={"师傅保险API"} )
+@RequestMapping(value = "/worker", produces = "application/json; charset=utf-8")
+public class WorkerController {
+
+    @Autowired
+    WorkerLogic workerLogic;
+
+
+    @PostMapping("/remind")
+    @ApiOperation(value = "查询师傅是否存在意外险需要提示或购买,1保险购买提示,2意外到期提醒,3意外已到期")
+    public ResponseHelper<List<WorkerRemind>> remind(
+    ){
+        List<WorkerRemind> workerReminds = workerLogic.remind();
+        return ResponseHelper.success(workerReminds);
+    }
+
+
+    @PostMapping("/myPolicy")
+    @ApiOperation("我的意外保险")
+    public ResponseHelper<Page<WorkerPolicy>> myPolicy(
+            @ApiParam(required = true, value = "用户id") @RequestParam(required = true) String userId,
+            @ApiParam(required = true, value = "pageNum") @RequestParam(required = true) Integer pageNum,
+            @ApiParam(required = true, value = "pageSize") @RequestParam(required = true)Integer pageSize
+    ){
+        Page<WorkerPolicy> workerPolicies = workerLogic.myPolicy(userId,pageNum,pageSize);
+        return ResponseHelper.success(workerPolicies);
+    }
+
+    @PostMapping("/myDetail")
+    @ApiOperation("我的保险详情")
+    public ResponseHelper<PolicyOrderDetail> myDetail(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        PolicyOrderDetail policyDetail = workerLogic.myDetail(id);
+        return ResponseHelper.success(policyDetail);
+    }
+
+
+    @PostMapping("/policy")
+    @ApiOperation("购买意外保险")
+    public ResponseHelper<Page<Policy>> policy(
+            @ApiParam(required = true, value = "网点id") @RequestParam(required = true) String websitId,
+            @ApiParam(required = true, value = "pageNum") @RequestParam(required = true) Integer pageNum,
+            @ApiParam(required = true, value = "pageSize") @RequestParam(required = true)Integer pageSize
+    ){
+        Page<Policy> workerPolicies = workerLogic.policy(websitId,pageNum,pageSize);
+        return ResponseHelper.success(workerPolicies);
+    }
+
+    @PostMapping("/detail")
+    @ApiOperation("意外保险详情")
+    public ResponseHelper<PolicyDetail> detail(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        PolicyDetail policyDetail = workerLogic.detail(id);
+        return ResponseHelper.success(policyDetail);
+    }
+
+    @PostMapping("/buy")
+    @ApiOperation("购买生成订单")
+    public ResponseHelper<PolicyOrder> order(
+            @ApiParam(value = "保险id", required = true) @RequestParam String policyId,
+            @ApiParam(value = "网点id", required = true) @RequestParam String websitId,
+            @ApiParam(value = "用户id", required = true) @RequestParam String userId,
+            HttpServletRequest request
+    ) throws ParseException {
+        PolicyOrder order = workerLogic.order(policyId,websitId,userId);
+        return ResponseHelper.success(order);
+    }
+
+
+    @PostMapping("/pay")
+    @ApiOperation("发起支付")
+    public ResponseHelper<PayDetail> pay(
+            @ApiParam(value = "订单号", required = true) @RequestParam String policyOrderId,
+            HttpServletRequest request
+    ) throws ParseException {
+        PayDetail payDetail = workerLogic.pay(policyOrderId,request);
+        return ResponseHelper.success(payDetail);
+    }
+
+
+}

+ 23 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/enums/ExamineWorkerStatusEnum.java

@@ -0,0 +1,23 @@
+package com.gree.mall.miniapp.enums;
+
+
+import lombok.Getter;
+
+@Getter
+public enum ExamineWorkerStatusEnum   {
+    WAIT_WORKER("WAIT_WORKER","待师傅购买"),
+    POLICY_WAIT("POLICY_WAIT","保险待审核"),
+    WAIT("WAIT","入驻待审核"),
+    FAIL("FAIL","驳回"),
+    EXPIRED("EXPIRED","证件快过期"),
+    OVERDUE("OVERDUE","证件已过期"),
+    QUIT("QUIT","已离职"),
+    STOP("STOP","已暂停"),
+    OK("OK","审核通过");
+
+    ExamineWorkerStatusEnum(String key, String remark) {
+        this.key=key;this.remark = remark;
+    }
+    private String key;
+    private String remark;
+}

+ 246 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/policy/WorkerLogic.java

@@ -0,0 +1,246 @@
+package com.gree.mall.miniapp.logic.policy;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.miniapp.bean.PayDetail;
+import com.gree.mall.miniapp.bean.policy.PolicyDetail;
+import com.gree.mall.miniapp.bean.policy.PolicyOrderDetail;
+import com.gree.mall.miniapp.bean.policy.WorkerRemind;
+import com.gree.mall.miniapp.bean.user.CurrentCompanyWechat;
+import com.gree.mall.miniapp.enums.ExamineWorkerStatusEnum;
+import com.gree.mall.miniapp.enums.IsEnum;
+import com.gree.mall.miniapp.enums.IsYesNoEnum;
+import com.gree.mall.miniapp.logic.common.CommonLogic;
+import com.gree.mall.miniapp.logic.common.outside.WechatLogic;
+import com.gree.mall.miniapp.plus.entity.*;
+import com.gree.mall.miniapp.plus.service.*;
+import com.gree.mall.miniapp.utils.IpUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class WorkerLogic {
+
+
+    @Autowired
+    WebsitUserService websitUserService;
+
+    @Autowired
+    CommonLogic commonLogic;
+
+    @Autowired
+    WorkerPolicyService workerPolicyService;
+
+    @Autowired
+    AdminWebsitService adminWebsitService;
+
+    @Autowired
+    PolicyService policyService;
+
+    @Autowired
+    PolicyRangeService policyRangeService;
+
+    @Autowired
+    PolicyWebsitService policyWebsitService;
+
+    @Autowired
+    WechatLogic wechatLogic;
+
+    @Autowired
+    PolicyOrderService policyOrderService;
+
+
+
+    public List<WorkerRemind> remind() {
+
+        CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
+
+        List<WebsitUser> websitUsers = websitUserService.lambdaQuery().list();
+
+        List<WorkerRemind> workerReminds = new ArrayList<>();
+
+        for (WebsitUser websitUser : websitUsers) {
+            //保险购买状态,没有购买的意外险
+            if (websitUser.getExamineStatus().equals(ExamineWorkerStatusEnum.WAIT_WORKER.getKey()) &&
+                    workerPolicyService.lambdaQuery()
+                    .in(WorkerPolicy::getStatus,"ON","WAIT_ON")
+                    .eq(WorkerPolicy::getPolicyType,"AC")
+                    .eq(WorkerPolicy::getWebsitUserId,websitUser.getId())
+                    .count() < 1) {
+
+                AdminWebsit adminWebsit = adminWebsitService.getById(websitUser.getWebsitId());
+
+                WorkerRemind workerRemind = new WorkerRemind();
+                workerRemind.setWebsitId(websitUser.getWebsitId());
+                workerRemind.setWebsitName(adminWebsit.getName());
+                workerRemind.setRemindIn(1);
+
+                workerReminds.add(workerRemind);
+            }
+
+            // 购买的意外险,七天后过期 每天提醒一次
+            if (  workerPolicyService.lambdaQuery()
+                    .in(WorkerPolicy::getStatus,"ON","WAIT_ON")
+                    .le(WorkerPolicy::getEndTime, DateUtil.offsetDay(new Date(),7))
+                    .eq(WorkerPolicy::getPolicyType,"AC")
+                    .eq(WorkerPolicy::getWebsitUserId,websitUser.getId())
+                    .le(WorkerPolicy::getExTime,new Date())
+                    .count() > 0){
+
+                workerPolicyService.lambdaUpdate()
+                        .in(WorkerPolicy::getStatus,"OFF")
+                        .notIn(WorkerPolicy::getStatus,"ON","WAIT_ON")
+                        .eq(WorkerPolicy::getPolicyType,"AC")
+                        .eq(WorkerPolicy::getWebsitUserId,websitUser.getId())
+                        .set(WorkerPolicy::getExTime,DateUtil.endOfDay(new Date())).update();
+
+                AdminWebsit adminWebsit = adminWebsitService.getById(websitUser.getWebsitId());
+
+                WorkerRemind workerRemind = new WorkerRemind();
+                workerRemind.setWebsitId(websitUser.getWebsitId());
+                workerRemind.setWebsitName(adminWebsit.getName());
+                workerRemind.setRemindIn(2);
+
+                workerReminds.add(workerRemind);
+            }
+
+            // 意外险失效,没有购买的意外险
+            if (  workerPolicyService.lambdaQuery()
+                    .in(WorkerPolicy::getStatus,"OFF")
+                    .notIn(WorkerPolicy::getStatus,"ON","WAIT_ON")
+                    .eq(WorkerPolicy::getPolicyType,"AC")
+                    .eq(WorkerPolicy::getWebsitUserId,websitUser.getId())
+                    .le(WorkerPolicy::getExTime,new Date())
+                    .count() > 0){
+
+                workerPolicyService.lambdaUpdate()
+                        .in(WorkerPolicy::getStatus,"OFF")
+                        .notIn(WorkerPolicy::getStatus,"ON","WAIT_ON")
+                        .eq(WorkerPolicy::getPolicyType,"AC")
+                        .eq(WorkerPolicy::getWebsitUserId,websitUser.getId())
+                        .set(WorkerPolicy::getExTime,DateUtil.endOfDay(new Date())).update();
+
+                AdminWebsit adminWebsit = adminWebsitService.getById(websitUser.getWebsitId());
+
+                WorkerRemind workerRemind = new WorkerRemind();
+                workerRemind.setWebsitId(websitUser.getWebsitId());
+                workerRemind.setWebsitName(adminWebsit.getName());
+                workerRemind.setRemindIn(3);
+
+                workerReminds.add(workerRemind);
+            }
+
+        }
+
+
+
+        return workerReminds;
+
+
+    }
+
+
+    public Page<WorkerPolicy> myPolicy(String userId, Integer pageNum, Integer pageSize) {
+
+        Page<WorkerPolicy> page = workerPolicyService.lambdaQuery()
+                .eq(WorkerPolicy::getWorkerId,userId)
+                .eq(WorkerPolicy::getPolicyType,"AC")
+                .eq(WorkerPolicy::getType,"IN")
+                .page(new Page<>(pageNum, pageSize));
+
+
+        return page;
+
+    }
+
+    public PolicyOrderDetail myDetail(String id) {
+
+        WorkerPolicy workerPolicy = workerPolicyService.getById(id);
+
+        PolicyOrderDetail policyOrderDetail = BeanUtil.toBean(workerPolicy, PolicyOrderDetail.class);
+
+        Policy policy = policyService.getById(workerPolicy.getPolicyId());
+
+
+        List<PolicyRange> policyRanges = policyRangeService.lambdaQuery().eq(PolicyRange::getPolicyId, policy.getId()).list();
+        policyOrderDetail.setPolicy(policy);
+        policyOrderDetail.setPolicyRanges(policyRanges);
+        return policyOrderDetail;
+    }
+
+    public Page<Policy> policy(String websitId,Integer pageNum, Integer pageSize) {
+
+        List<PolicyWebsit> policyWebsits = policyWebsitService.lambdaQuery().eq(PolicyWebsit::getWebsitId, websitId).list();
+
+        if (CollectionUtils.isEmpty(policyWebsits))
+            return new Page<>();
+
+
+
+        Page<Policy> page = policyService.lambdaQuery()
+                .in(Policy::getId,policyWebsits.stream().map(PolicyWebsit::getPolicyId).collect(Collectors.toList()))
+                .eq(Policy::getIsBuy, IsYesNoEnum.YES.getKey())
+                .le(Policy::getStartTime,new Date())
+                .ge(Policy::getEndTime,new Date())
+                .page(new Page<>(pageNum, pageSize));
+
+
+        return page;
+    }
+
+    public PolicyDetail detail(String id) {
+
+        Policy policy = policyService.getById(id);
+        PolicyDetail policyDetail = BeanUtil.toBean(policy, PolicyDetail.class);
+
+        List<PolicyRange> policyRanges = policyRangeService.lambdaQuery().eq(PolicyRange::getPolicyId, policyDetail.getId()).list();
+
+        policyDetail.setPolicyRanges(policyRanges);
+
+        return policyDetail;
+    }
+
+    public PolicyOrder order(String policyId, String websitId, String userId) {
+        CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
+        Policy policy = policyService.getById(policyId);
+
+        AdminWebsit adminWebsit = adminWebsitService.getById(websitId);
+
+        PolicyOrder policyOrder = new PolicyOrder();
+        policyOrder.insert();
+
+        return policyOrder;
+    }
+
+    public PayDetail pay(String policyOrderId, HttpServletRequest request) {
+
+        String ip = IpUtil.getIpAddr(request);
+
+        CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
+
+        String source = commonLogic.getSource();
+
+        PayDetail payDetail = new PayDetail();
+
+        PolicyOrder policyOrder = policyOrderService.getById(policyOrderId);
+
+        if (source.equals("B")) {
+            payDetail = wechatLogic.paymentH5(policyOrder.getId(), policyOrder.getPayAmount(), currentCompanyWechat.getUser().getOpenId(),
+                    "N", ip, currentCompanyWechat.getCompanyWechatId());
+        } else {
+            payDetail = wechatLogic.payment(policyOrder.getId(), policyOrder.getPayAmount(),
+                    currentCompanyWechat.getUser().getOpenId(),
+                    "N", ip, currentCompanyWechat.getCompanyWechatId(), true);
+        }
+
+        return payDetail;
+    }
+}

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

@@ -1195,6 +1195,7 @@ public class UserLogic {
             workerImgService.saveBatch(workerImgs);
         }
 
+        userApplyBean.getWorkerPolicy().insert();
     }
 
 

+ 25 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/policy/WorkerManagerBean.java

@@ -0,0 +1,25 @@
+package com.gree.mall.manager.bean.policy;
+
+import com.gree.mall.manager.plus.entity.User;
+import com.gree.mall.manager.plus.entity.WebsitUser;
+import com.gree.mall.manager.plus.entity.WorkerImg;
+import com.gree.mall.manager.plus.entity.WorkerPolicy;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class WorkerManagerBean extends WebsitUser {
+
+    @ApiModelProperty(value = "用户详情")
+    private User user;
+
+    @ApiModelProperty(value = "图片")
+    private List<WorkerImg> workerImgs;
+
+    @ApiModelProperty(value = "师傅保险")
+    private List<WorkerPolicy> workerPolicies;
+}

+ 25 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/policy/WorkerManagerDetail.java

@@ -0,0 +1,25 @@
+package com.gree.mall.manager.bean.policy;
+
+import com.gree.mall.manager.plus.entity.User;
+import com.gree.mall.manager.plus.entity.WebsitUser;
+import com.gree.mall.manager.plus.entity.WorkerImg;
+import com.gree.mall.manager.plus.entity.WorkerPolicy;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class WorkerManagerDetail extends WebsitUser {
+
+    @ApiModelProperty(value = "用户详情")
+    private User user;
+
+    @ApiModelProperty(value = "图片")
+    private List<WorkerImg> workerImgs;
+
+    @ApiModelProperty(value = "师傅保险")
+    private List<WorkerPolicy> workerPolicies;
+}

+ 45 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/member/WorkerManagerController.java

@@ -10,6 +10,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.UserApplyBean;
 import com.gree.mall.manager.bean.policy.PolicyDetail;
+import com.gree.mall.manager.bean.policy.WorkerManagerBean;
+import com.gree.mall.manager.bean.policy.WorkerManagerDetail;
 import com.gree.mall.manager.bean.user.UserApplyWorkerBean;
 import com.gree.mall.manager.bean.user.UserWxBean;
 import com.gree.mall.manager.enums.ExamineStatusEnum;
@@ -121,5 +123,48 @@ public class WorkerManagerController {
     }
 
 
+    @PostMapping("/update")
+    @ApiOperation("编辑师傅")
+    public ResponseHelper update(
+            @RequestBody WorkerManagerBean workerManagerBean,
+            HttpServletRequest request
+    ) throws ParseException {
+        workerManagerLogic.update(workerManagerBean);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/detail")
+    @ApiOperation("师傅详情")
+    public ResponseHelper<WorkerManagerDetail> detail(
+            @ApiParam(value = "id", required = true) @RequestParam String id,
+            HttpServletRequest request
+    ) throws ParseException {
+        WorkerManagerDetail workerManagerDetail = workerManagerLogic.detail(id);
+        return ResponseHelper.success(workerManagerDetail);
+    }
+
+
+    @PostMapping("/examineWait")
+    @ApiOperation("入驻审批")
+    public ResponseHelper examineWait(
+            @RequestBody WorkerManagerBean workerManagerBean,
+            HttpServletRequest request
+    ) throws ParseException {
+        workerManagerLogic.examineWait(workerManagerBean);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/examine")
+    @ApiOperation("保险审批")
+    public ResponseHelper examine(
+            @RequestBody WorkerManagerBean workerManagerBean,
+            HttpServletRequest request
+    ) throws ParseException {
+        workerManagerLogic.examine(workerManagerBean);
+        return ResponseHelper.success();
+    }
+
 
 }

+ 6 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/admin/AdminWebsitLogic.java

@@ -115,11 +115,16 @@ public class AdminWebsitLogic {
 
         List<AdminWebsitTree> parentList = trees.stream()
                 .filter(x -> (CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()) && x.getParentId().equals("0")) ||
-                        (!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()) && adminUser.getAdminWebsitIds().contains(x.getWebsitId())))
+                        (!CollectionUtils.isEmpty(adminUser.getAdminWebsitIds()) && adminUser.getAdminWebsitIds().contains(x.getWebsitId())
+
+                        ))
                 .collect(Collectors.toList());
         if (CollectionUtils.isEmpty(parentList)) {
             parentList = trees.stream().filter(x -> x.getParentId().equals("0")).collect(Collectors.toList());
         }
+        if (parentList.stream().filter(item -> item.getParentId().equals("1")).count() > 0){
+            parentList = trees.stream().filter(x -> x.getParentId().equals("1")).collect(Collectors.toList());
+        }
         for (AdminWebsitTree adminWebsit : parentList) {
             adminWebsit.setChildren(this.treeModule(trees, adminWebsit.getWebsitId()));
         }

+ 143 - 2
mall-server-api/src/main/java/com/gree/mall/manager/logic/policy/WorkerManagerLogic.java

@@ -1,16 +1,23 @@
 package com.gree.mall.manager.logic.policy;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.db.sql.Order;
+import com.gree.mall.manager.bean.policy.WorkerManagerBean;
+import com.gree.mall.manager.bean.policy.WorkerManagerDetail;
 import com.gree.mall.manager.enums.ExamineWorkerStatusEnum;
 import com.gree.mall.manager.enums.OrderStatusEnum;
 import com.gree.mall.manager.enums.workorder.OrderBaseStatusEnum;
 import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.plus.entity.PgOrderBase;
 import com.gree.mall.manager.plus.entity.WebsitUser;
-import com.gree.mall.manager.plus.service.PgOrderBaseService;
-import com.gree.mall.manager.plus.service.WebsitUserService;
+import com.gree.mall.manager.plus.entity.WorkerImg;
+import com.gree.mall.manager.plus.entity.WorkerPolicy;
+import com.gree.mall.manager.plus.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
 
 @Service
 public class WorkerManagerLogic {
@@ -21,6 +28,15 @@ public class WorkerManagerLogic {
     @Autowired
     PgOrderBaseService pgOrderBaseService;
 
+    @Autowired
+    WorkerImgService workerImgService;
+
+    @Autowired
+    WorkerPolicyService workerPolicyService;
+
+    @Autowired
+    UserService userService;
+
 
     public void stop(String id) {
 
@@ -84,4 +100,129 @@ public class WorkerManagerLogic {
         websitUser.setExamineStatus(ExamineWorkerStatusEnum.POLICY_WAIT.getKey());
         websitUser.updateById();
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void update(WorkerManagerBean workerManagerBean) {
+
+        workerManagerBean.updateById();
+
+
+        workerManagerBean.getUser().updateById();
+
+        workerImgService.lambdaUpdate().eq(WorkerImg::getWorkerId,workerManagerBean.getUserId())
+                .remove();
+
+
+        for (WorkerImg workerImg : workerManagerBean.getWorkerImgs()) {
+            workerImg.setWorkerId(workerManagerBean.getUserId());
+        }
+
+
+        workerImgService.saveOrUpdateBatch(workerManagerBean.getWorkerImgs());
+
+        workerPolicyService.lambdaUpdate().eq(WorkerPolicy::getWebsitUserId,workerManagerBean.getId()).remove();
+
+
+        for (WorkerPolicy workerPolicy : workerManagerBean.getWorkerPolicies()) {
+            workerPolicy.setWorkerId(workerManagerBean.getUserId());
+            workerPolicy.setWebsitUserId(workerManagerBean.getId());
+        }
+
+        workerPolicyService.saveOrUpdateBatch(workerManagerBean.getWorkerPolicies());
+
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public WorkerManagerDetail detail(String id) {
+
+        WebsitUser websitUser = websitUserService.getById(id);
+
+        WorkerManagerDetail workerManagerDetail = BeanUtil.toBean(websitUser, WorkerManagerDetail.class);
+
+        workerManagerDetail.setUser(userService.getById(workerManagerDetail.getUser()));
+
+        List<WorkerImg> list = workerImgService.lambdaQuery().eq(WorkerImg::getWorkerId, websitUser.getUserId()).list();
+
+        List<WorkerPolicy> workerPolicies = workerPolicyService.lambdaQuery().eq(WorkerPolicy::getWebsitUserId, websitUser.getId()).list();
+
+        workerManagerDetail.setWorkerImgs(list);
+        workerManagerDetail.setWorkerPolicies(workerPolicies);
+
+        return workerManagerDetail;
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void examineWait(WorkerManagerBean workerManagerBean) {
+
+        //todo 检测保险情况 自建,第三方网点
+
+        workerManagerBean.updateById();
+
+
+        workerManagerBean.getUser().updateById();
+
+        workerImgService.lambdaUpdate().eq(WorkerImg::getWorkerId,workerManagerBean.getUserId())
+                .remove();
+
+
+        for (WorkerImg workerImg : workerManagerBean.getWorkerImgs()) {
+            workerImg.setWorkerId(workerManagerBean.getUserId());
+        }
+
+
+        workerImgService.saveOrUpdateBatch(workerManagerBean.getWorkerImgs());
+
+        workerPolicyService.lambdaUpdate().eq(WorkerPolicy::getWebsitUserId,workerManagerBean.getId()).remove();
+
+
+        for (WorkerPolicy workerPolicy : workerManagerBean.getWorkerPolicies()) {
+            workerPolicy.setWorkerId(workerManagerBean.getUserId());
+            workerPolicy.setWebsitUserId(workerManagerBean.getId());
+        }
+
+        workerPolicyService.saveOrUpdateBatch(workerManagerBean.getWorkerPolicies());
+
+
+        //todo 生成工伤/雇主  自建
+
+
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void examine(WorkerManagerBean workerManagerBean) {
+
+        //todo 检测保险情况 自建,第三方网点
+
+        workerManagerBean.updateById();
+
+
+        workerManagerBean.getUser().updateById();
+
+        workerImgService.lambdaUpdate().eq(WorkerImg::getWorkerId,workerManagerBean.getUserId())
+                .remove();
+
+
+        for (WorkerImg workerImg : workerManagerBean.getWorkerImgs()) {
+            workerImg.setWorkerId(workerManagerBean.getUserId());
+        }
+
+
+        workerImgService.saveOrUpdateBatch(workerManagerBean.getWorkerImgs());
+
+        workerPolicyService.lambdaUpdate().eq(WorkerPolicy::getWebsitUserId,workerManagerBean.getId()).remove();
+
+
+        for (WorkerPolicy workerPolicy : workerManagerBean.getWorkerPolicies()) {
+            workerPolicy.setWorkerId(workerManagerBean.getUserId());
+            workerPolicy.setWebsitUserId(workerManagerBean.getId());
+        }
+
+        workerPolicyService.saveOrUpdateBatch(workerManagerBean.getWorkerPolicies());
+
+
+        //todo 生成工伤/雇主  自建
+    }
 }