瀏覽代碼

联合丽格改版

zhijiezhao 2 年之前
父節點
當前提交
d74c2bda09
共有 37 個文件被更改,包括 1333 次插入853 次删除
  1. 19 36
      src/main/java/com/caimei/modules/club/controller/CmOperationUserController.java
  2. 58 45
      src/main/java/com/caimei/modules/club/controller/CmUserOrganizeController.java
  3. 1 1
      src/main/java/com/caimei/modules/club/dao/NewCmClubDao.java
  4. 77 40
      src/main/java/com/caimei/modules/club/entity/CmUser.java
  5. 1 0
      src/main/java/com/caimei/modules/club/entity/NewCmClub.java
  6. 3 0
      src/main/java/com/caimei/modules/club/service/CmUserService.java
  7. 10 5
      src/main/java/com/caimei/modules/club/service/impl/CmOperationUserServiceImpl.java
  8. 51 5
      src/main/java/com/caimei/modules/club/service/impl/CmUserServiceImpl.java
  9. 20 0
      src/main/java/com/caimei/modules/groupbuy/controller/GroupBuyController.java
  10. 29 14
      src/main/java/com/caimei/modules/groupbuy/service/ProcureService.java
  11. 31 1
      src/main/java/com/caimei/modules/homepage/controller/CmHomePageController.java
  12. 28 35
      src/main/java/com/caimei/modules/order/controller/CmReturnedPurchaseController.java
  13. 40 0
      src/main/java/com/caimei/modules/order/controller/OrderDeliverController.java
  14. 15 4
      src/main/java/com/caimei/modules/order/controller/OrderPayShopController.java
  15. 15 19
      src/main/java/com/caimei/modules/order/controller/OrganizeOrderController.java
  16. 5 1
      src/main/java/com/caimei/modules/order/dao/NewOrderProductDao.java
  17. 4 0
      src/main/java/com/caimei/modules/order/dao/PayShopDao.java
  18. 101 52
      src/main/java/com/caimei/modules/order/entity/CmReturnedPurchase.java
  19. 111 165
      src/main/java/com/caimei/modules/order/entity/NewOrder.java
  20. 4 2
      src/main/java/com/caimei/modules/order/entity/NewOrderProduct.java
  21. 10 0
      src/main/java/com/caimei/modules/order/entity/NewShopOrder.java
  22. 1 0
      src/main/java/com/caimei/modules/order/service/CmReturnedPurchaseService.java
  23. 11 0
      src/main/java/com/caimei/modules/order/service/OrderDeliverService.java
  24. 5 0
      src/main/java/com/caimei/modules/order/service/PayShopService.java
  25. 9 5
      src/main/java/com/caimei/modules/order/service/impl/CmReturnedPurchaseServiceImpl.java
  26. 40 0
      src/main/java/com/caimei/modules/order/service/impl/OrderDeliverServiceImpl.java
  27. 28 1
      src/main/java/com/caimei/modules/order/service/impl/PayShopServiceImpl.java
  28. 91 0
      src/main/java/com/caimei/modules/order/util/OrderPayUtils.java
  29. 85 77
      src/main/java/com/caimei/modules/order/util/OrderUtils.java
  30. 1 1
      src/main/java/com/caimei/utils/AppKeys.java
  31. 2 2
      src/main/resources/config/dev/application-dev.yml
  32. 1 2
      src/main/resources/mapper/CmMallOrganizeProductsMapper.xml
  33. 91 108
      src/main/resources/mapper/CmUserMapper.xml
  34. 193 191
      src/main/resources/mapper/NewCmClubMapper.xml
  35. 18 0
      src/main/resources/mapper/NewOrderProductMapper.xml
  36. 16 18
      src/main/resources/mapper/OrderUserInfoMapper.xml
  37. 108 23
      src/main/resources/mapper/PayShopDao.xml

+ 19 - 36
src/main/java/com/caimei/modules/club/controller/CmOperationUserController.java

@@ -10,6 +10,8 @@ import com.caimei.utils.RandomCodeGenerator;
 import com.caimei.utils.SMSUtils;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.util.StringUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 import org.thymeleaf.util.StringUtils;
@@ -18,12 +20,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Random;
 
-/**
- * 商城运营人员Controller
- *
- * @author lijun
- * @version 2019-11-22
- */
+@Api(tags = "机构api")
 @RestController
 @RequiredArgsConstructor
 @RequestMapping(value = "/user/cmOperationUser")
@@ -32,9 +29,8 @@ public class CmOperationUserController {
     private final CmOperationUserService cmOperationUserService;
     private final NewCmClubService newCmClubService;
 
-    /**
-     * 查看运营人员
-     */
+
+    @ApiOperation("查看运营人员")
     @GetMapping("/list")
     public JsonModel list(CmOperationUser cmOperationUser, Page page) {
         PageHelper.startPage(page.getIndex(), page.getPageSize());
@@ -43,12 +39,8 @@ public class CmOperationUserController {
         return JsonModel.newInstance().success(userPage);
     }
 
-    /**
-     * 添加运营人员
-     *
-     * @param cmOperationUser
-     * @return
-     */
+
+    @ApiOperation("添加运营人员")
     @PostMapping(value = "save")
     public JsonModel save(@RequestBody CmOperationUser cmOperationUser) {
         JsonModel jsonModel = JsonModel.newInstance();
@@ -58,7 +50,8 @@ public class CmOperationUserController {
             return jsonModel.error("该手机号码已被使用");
         }
         Date date = new Date();
-        if (cmOperationUser.getConfigFlag().equals("2")) {//保存生成邀请码
+        if ("2".equals(cmOperationUser.getConfigFlag())) {
+            //保存生成邀请码
             //生成随机码6位
             Integer flag = getInvitationCode();
             cmOperationUser.setInvitationCode(String.valueOf(flag));
@@ -76,7 +69,8 @@ public class CmOperationUserController {
                 SMSUtils.sendSms(mobile, "欢迎加入" + clubName + ",您的邀请码为:" + flag + ",您可在微信搜索“星范采购商城”小程序,输入邀请码进行登录。");
             }
         }
-        if (cmOperationUser.getId() == null) {//新增
+        if (cmOperationUser.getId() == null) {
+            //新增
             cmOperationUser.setAccount(cmOperationUser.getMobile() + RandomCodeGenerator.generateAccount(2));
             cmOperationUser.setStatus("1");
         }
@@ -87,11 +81,7 @@ public class CmOperationUserController {
         return jsonModel.success();
     }
 
-    /**
-     * 验证获取不重复的邀请码
-     *
-     * @return
-     */
+    @ApiOperation("验证获取不重复的邀请码")
     public Integer getInvitationCode() {
         int flag = new Random().nextInt(999999);
         if (flag < 100000) {
@@ -101,21 +91,18 @@ public class CmOperationUserController {
         CmOperationUser opUser = new CmOperationUser();
         opUser.setInvitationCode(String.valueOf(flag));
         List<CmOperationUser> listByInvitationCode = cmOperationUserService.getListByInvitationCode(opUser);
-        if (null != listByInvitationCode && listByInvitationCode.size() > 0) {//存在邀请码重新获取
+        if (null != listByInvitationCode && listByInvitationCode.size() > 0) {
+            //存在邀请码重新获取
             getInvitationCode();
         }
         return flag;
     }
 
-    /**
-     * 更新邀请码
-     *
-     * @param cmOperationUser
-     * @return
-     */
+    @ApiOperation("更新邀请码")
     @GetMapping(value = "updateInvitationCode")
     public JsonModel updateInvitationCode(CmOperationUser cmOperationUser) {
-        if (!StringUtils.equals("2", cmOperationUser.getStatus())) {//如果已绑定则不更新
+        if (!StringUtils.equals("2", cmOperationUser.getStatus())) {
+            //如果已绑定则不更新
             //生成随机码6位
             int flag = getInvitationCode();
             cmOperationUser.setInvitationCode(String.valueOf(flag));
@@ -137,12 +124,8 @@ public class CmOperationUserController {
         return JsonModel.newInstance().success();
     }
 
-    /**
-     * 解绑
-     *
-     * @param cmOperationUser
-     * @return
-     */
+
+    @ApiOperation("解绑")
     @GetMapping(value = "untiedOperationUser")
     public JsonModel untiedOperationUser(CmOperationUser cmOperationUser) {
         cmOperationUser.setOpenid("");

+ 58 - 45
src/main/java/com/caimei/modules/club/controller/CmUserOrganizeController.java

@@ -7,7 +7,12 @@ import com.caimei.modules.club.service.CmUserService;
 import com.caimei.modules.club.service.NewCmClubService;
 import com.caimei.utils.*;
 import com.github.pagehelper.PageHelper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 
@@ -15,9 +20,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
-/**
- * 会所管理
- */
+@Api(tags = "会所管理")
 @RestController
 @RequiredArgsConstructor
 @RequestMapping(value = "/user/cmUserOrganize")
@@ -27,14 +30,35 @@ public class CmUserOrganizeController {
     private final CmUserService cmUserService;
     private final NewCmClubService newCmClubService;
 
+    @ApiOperation("审核机构")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, name = "userOrganizeId", value = "组织Id"),
+            @ApiImplicitParam(required = true, name = "auditStatus", value = "审核状态 92审核不通过 90审核通过"),
+            @ApiImplicitParam(required = true, name = "clubId", value = "机构Id"),
+            @ApiImplicitParam(required = true, name = "userId", value = "用户Id"),
+            @ApiImplicitParam(required = true, name = "organizeType", value = "0内部结构 1外部机构"),
+            @ApiImplicitParam(required = true, name = "auditNote", value = "审核备注")
+    })
+    @GetMapping(value = "/audit")
+    public ResponseJson checkClub(CmUser cmUser) {
+        if (StringUtils.isBlank(cmUser.getAuditStatus())) {
+            return ResponseJson.error("审核状态不能为空!");
+        }
+        if (null == cmUser.getClubId()) {
+            return ResponseJson.error("机构Id不能为空!");
+        }
+        return cmUserService.auditClubStatus(cmUser);
+    }
+
+    @ApiOperation("机构详情")
+    @ApiImplicitParam(required = true, name = "clubId", value = "机构Id")
     @GetMapping(value = "/clubDetail/{clubId}")
     public JsonModel userDetail(@PathVariable("clubId") Integer clubId) {
         return JsonModel.newInstance().success(newCmClubService.findClubById(clubId));
     }
 
-    /**
-     * 机构列表
-     */
+
+    @ApiOperation("机构列表")
     @GetMapping(value = "/clubList")
     public ResponseJson<Page<CmUser>> toCmOrganizeClubList(CmUser cmUser, Page page) {
         if (null == cmUser.getUserOrganizeId()) {
@@ -46,11 +70,7 @@ public class CmUserOrganizeController {
         return ResponseJson.success(cmUserPage);
     }
 
-    /**
-     * 上线会所(添加,编辑)
-     *
-     * @return
-     */
+    @ApiOperation("上线会所(添加,编辑)")
     @GetMapping(value = "/toAddClubUser")
     public JsonModel toAddClubUser(NewCmClub newCmClub) {
         if (null != newCmClub.getClubId()) {
@@ -75,12 +95,7 @@ public class CmUserOrganizeController {
         return JsonModel.newInstance().success(newCmClub);
     }
 
-    /**
-     * 保存上线会所信息(添加,编辑)
-     *
-     * @param cmUserOrganize
-     * @return
-     */
+    @ApiOperation("保存上线会所信息(添加,编辑)")
     @GetMapping(value = "saveAddClubUser")
     public JsonModel saveAddClubUser(CmUserOrganize cmUserOrganize, NewCmClub newCmClub, CmUser cmUser) throws Exception {
         JsonModel jsonModel = JsonModel.newInstance();
@@ -102,9 +117,11 @@ public class CmUserOrganizeController {
         cmUser.setRealName(newCmClub.getName());
         cmUser.setClubStatus(String.valueOf(newCmClub.getStatus()));
         //添加用户新增信息
-        if (null == userId) {//新增
+        if (null == userId) {
+            //新增
             cmUser = initUser(cmUser, newCmClub);
-            cmUserService.insert(cmUser);//插入新的用户数据
+            //插入新的用户数据
+            cmUserService.insert(cmUser);
         }
         //添加会所表信息
         newCmClub.setSname(newCmClub.getName());
@@ -120,14 +137,16 @@ public class CmUserOrganizeController {
             newCmClubService.insert(newCmClub);
 
             //更新用户绑定关系
-            cmUser.setClubId(String.valueOf(newCmClub.getClubId()));
+            cmUser.setClubId(newCmClub.getClubId());
             cmUser.setCompanyUserId(cmUser.getUserId());
 
             //更新会所绑定关系
             newCmClub.setUserId(cmUser.getUserId());
         }
-        cmUserService.update(cmUser);//更新用户表数据(编辑数据,或新增数据更新)
-        newCmClubService.update(newCmClub);//更新会所表数据(编辑数据,或新增数据更新)
+        //更新用户表数据(编辑数据,或新增数据更新)
+        cmUserService.update(cmUser);
+        //更新会所表数据(编辑数据,或新增数据更新)
+        newCmClubService.update(newCmClub);
         return jsonModel.success("保存成功");
     }
 
@@ -137,12 +156,15 @@ public class CmUserOrganizeController {
      */
     public CmUser initUser(CmUser cmUser, NewCmClub newCmClub) {
         String curTime = DateUtils.getDateTime();
-        cmUser.setRegisterUserTypeId("3");//设置为会所
+        //设置为会所
+        cmUser.setRegisterUserTypeId("3");
         cmUser.setUserIdentity(2);
-        cmUser.setServiceProviderStatus("90");//设置默认协销状态
+        //设置默认协销状态
+        cmUser.setServiceProviderStatus("90");
         cmUser.setServiceProviderId("1342");
         cmUser.setAuditTime(curTime);
-        cmUser.setAuditStatus("1");//审核通过
+        //审核通过
+        cmUser.setAuditStatus("1");
         cmUser.setAuditNote("后台添加用户系统默认审核通过");
         cmUser.setRegisterTime(curTime);
         cmUser.setLoginTime(curTime);
@@ -153,18 +175,13 @@ public class CmUserOrganizeController {
         cmUser.setUserMoney(0d);
         cmUser.setAbleUserMoney(0d);
         cmUser.setUserBeans("0");
-        cmUser.setValidFlag("1");
-        cmUser.setAgreeFlag("1");
+        cmUser.setValidFlag(1);
+        cmUser.setAgreeFlag(1);
         cmUser.setUserPermission(2);
         return cmUser;
     }
 
-    /**
-     * 上下线会所
-     *
-     * @param cmUser
-     * @return
-     */
+    @ApiOperation("上下线会所")
     @GetMapping(value = "switchLine")
     public JsonModel switchLine(CmUser cmUser) {
         if ("91".equals(cmUser.getClubStatus())) {
@@ -172,36 +189,32 @@ public class CmUserOrganizeController {
         } else {
             cmUser.setClubStatus("91");
         }
-        cmUserService.update(cmUser);//更新用户表数据
+        //更新用户表数据
+        cmUserService.update(cmUser);
         NewCmClub newCmClub = new NewCmClub();
-        newCmClub.setClubId(Integer.parseInt(cmUser.getClubId()));
+        newCmClub.setClubId(cmUser.getClubId());
         newCmClub.setUserId(cmUser.getUserId());
         newCmClub.setStatus(Integer.valueOf(cmUser.getClubStatus()));
-        newCmClubService.update(newCmClub);//更新会所表数据
+        //更新会所表数据
+        newCmClubService.update(newCmClub);
         return JsonModel.newInstance().success();
     }
 
-    /**
-     * 省
-     */
+    @ApiOperation("省")
     @GetMapping("/province")
     public JsonModel getProvince() {
         List<Province> provinceList = cmUserOrganizeService.getProvince();
         return JsonModel.newInstance().success(provinceList);
     }
 
-    /**
-     * 市
-     */
+    @ApiOperation("市")
     @GetMapping("/city")
     public JsonModel getCity(Long provinceid) {
         List<City> cityList = cmUserOrganizeService.getCity(provinceid);
         return JsonModel.newInstance().success(cityList);
     }
 
-    /**
-     * 区
-     */
+    @ApiOperation("区")
     @GetMapping("/town")
     public JsonModel getTown(Integer cityid) {
         List<Town> townList = cmUserOrganizeService.getTown(cityid);

+ 1 - 1
src/main/java/com/caimei/modules/club/dao/NewCmClubDao.java

@@ -3,7 +3,7 @@ package com.caimei.modules.club.dao;
 import com.caimei.modules.club.entity.NewCmClub;
 import org.apache.ibatis.annotations.Mapper;
 
-import java.util.List;
+
 
 @Mapper
 public interface NewCmClubDao {

+ 77 - 40
src/main/java/com/caimei/modules/club/entity/CmUser.java

@@ -1,55 +1,92 @@
 package com.caimei.modules.club.entity;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 
-/**
- * 用户Entity
- *
- * @author ZCP
- * @version 2017-10-10
- */
+@ApiModel("用户实体类")
 @Data
 public class CmUser implements Serializable {
 
     private static final long serialVersionUID = 1L;
     private String startTime;
     private String endTime;
-    private Integer userId;        // userId
-    private Integer userOrganizeId;//用户组织Id
-    private String mobile;        // 手机号码
-    private Integer userPermission;        // 用户权限
-    private String email;        // 邮箱
-    private String userName;        // 用户名
-    private String image;        // image
-    private String password;        // 密码
-    private String name;        // 组织名称
-    private String registerUserTypeId;        // 用户类型,见表c_usertype或枚举UserType
-    private String manufacturerStatus;        // 供应商状态,见表c_shopstatus或枚举ShopStatus
-    private String shopId;        // 供应商Id
-    private String auditStatus;        // auditStatus
-    private String auditTime;        // auditTime
-    private String auditNote;        // auditNote
-    private String registerTime;        // 注册时间
-    private String loginTime;        // 登录时间
-    private String validFlag;        // 用户状态,1正常,0冻结
-    private String clubStatus;        // 会所状态,1待审核 90已上线 91已下线 92审核未通过
-    private String clubId;        // 会所Id
-    private String agreeFlag;        // agreeFlag
-    private String serviceProviderStatus;        // 创客状态
-    private String serviceProviderId;        // 创客Id
-    private Double userMoney;        // 账户余额
-    private Double ableUserMoney;        //账户可用余额
-    private String userBeans;        // 采美豆数量
-    private String account;//账号名: 企业账号登录使用
-    private Integer userIdentity;//用户身份
-    private String realName;//真实姓名
-    private Integer companyUserId;//企业用户id
-    private String bindMobile;//企业绑定手机号
-    private String linkMan;//联系人
-    private String businessLicenseImage;//营业执照
-    private String socialCreditCode; //营业执照号
+    @ApiModelProperty("0内部结构 1外部机构")
+    private Integer organizeType;
+    @ApiModelProperty("userId")
+    private Integer userId;
+    @ApiModelProperty("用户组织Id")
+    private Integer userOrganizeId;
+    @ApiModelProperty("手机号码")
+    private String mobile;
+    @ApiModelProperty("用户权限")
+    private Integer userPermission;
+    @ApiModelProperty("邮箱")
+    private String email;
+    @ApiModelProperty("用户名")
+    private String userName;
+    @ApiModelProperty("image")
+    private String image;
+    @ApiModelProperty("密码")
+    private String password;
+    @ApiModelProperty("组织名称")
+    private String name;
+    @ApiModelProperty("用户类型,见表c_usertype或枚举UserType")
+    private String registerUserTypeId;
+    @ApiModelProperty("供应商状态,见表c_shopstatus或枚举ShopStatus")
+    private String manufacturerStatus;
+    @ApiModelProperty("供应商Id")
+    private String shopId;
+    @ApiModelProperty("审核状态 92审核不通过 90审核通过")
+    private String auditStatus;
+    @ApiModelProperty("审核时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String auditTime;
+    @ApiModelProperty("审核备注")
+    private String auditNote;
+    @ApiModelProperty("注册时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String registerTime;
+    @ApiModelProperty("登录时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String loginTime;
+    @ApiModelProperty("用户状态,1正常,0冻结")
+    private Integer validFlag;
+    @ApiModelProperty("会所状态,1待审核 90已上线 91已下线 92审核未通过")
+    private String clubStatus;
+    @ApiModelProperty("会所Id")
+    private Integer clubId;
+    @ApiModelProperty("agreeFlag")
+    private Integer agreeFlag;
+    @ApiModelProperty("创客状态")
+    private String serviceProviderStatus;
+    @ApiModelProperty("创客Id")
+    private String serviceProviderId;
+    @ApiModelProperty("账户余额")
+    private Double userMoney;
+    @ApiModelProperty("账户可用余额")
+    private Double ableUserMoney;
+    @ApiModelProperty("采美豆数量")
+    private String userBeans;
+    @ApiModelProperty("账号名: 企业账号登录使用")
+    private String account;
+    @ApiModelProperty("用户身份")
+    private Integer userIdentity;
+    @ApiModelProperty("真实姓名")
+    private String realName;
+    @ApiModelProperty("企业用户id")
+    private Integer companyUserId;
+    @ApiModelProperty("企业绑定手机号")
+    private String bindMobile;
+    @ApiModelProperty("联系人")
+    private String linkMan;
+    @ApiModelProperty("营业执照")
+    private String businessLicenseImage;
+    @ApiModelProperty("营业执照号")
+    private String socialCreditCode;
 
     //会所用户信息
     private String town; // 区

+ 1 - 0
src/main/java/com/caimei/modules/club/entity/NewCmClub.java

@@ -54,6 +54,7 @@ public class NewCmClub implements Serializable {
     private String department; // 若为医美分类下的门诊和医院则需要填写科室。
     private String medicalPracticeLicenseImg; // 医疗执业许可证
     private String socialCreditCode;//统一社会编码
+    private String checkMan;
 
     /**
      * 非持久化字段

+ 3 - 0
src/main/java/com/caimei/modules/club/service/CmUserService.java

@@ -2,6 +2,7 @@ package com.caimei.modules.club.service;
 
 import com.caimei.modules.club.entity.CmUser;
 import com.caimei.modules.club.entity.NewCmClub;
+import com.caimei.utils.ResponseJson;
 
 import java.util.List;
 
@@ -14,4 +15,6 @@ public interface CmUserService {
     void insert(CmUser cmUser);
 
     void update(CmUser cmUser);
+
+    ResponseJson auditClubStatus(CmUser cmUser);
 }

+ 10 - 5
src/main/java/com/caimei/modules/club/service/impl/CmOperationUserServiceImpl.java

@@ -21,19 +21,24 @@ public class CmOperationUserServiceImpl implements CmOperationUserService {
     public List<CmOperationUser> findList(CmOperationUser cmOperationUser) {
         List<CmOperationUser> operationUserList = cmOperationUserDao.findList(cmOperationUser);
         if (null != operationUserList) {
-            for (CmOperationUser user : operationUserList) {//判断邀请码是否有效
-                String status = user.getStatus();//1未绑定,2已绑定
+            for (CmOperationUser user : operationUserList) {
+                //判断邀请码是否有效
+                // 1未绑定,2已绑定
+                String status = user.getStatus();
                 if (StringUtils.equals("2", status)) {
-                    user.setEffectiveFlag("2");//邀请码是否有效 1有效,2已使用,3已失效
+                    //邀请码是否有效 1有效,2已使用,3已失效
+                    user.setEffectiveFlag("2");
                 } else {
                     Date invitationCodeTime = user.getInvitationCodeTime();
                     if (null != invitationCodeTime) {
                         Calendar calendar = new GregorianCalendar();
                         calendar.setTime(invitationCodeTime);
-                        calendar.add(Calendar.DATE, 7);// num为增加的天数,可以改变的
+                        // num为增加的天数,可以改变的
+                        calendar.add(Calendar.DATE, 7);
                         invitationCodeTime = calendar.getTime();
                         boolean before = invitationCodeTime.before(new Date());
-                        if (before) {//如果验证码时间加上168小时小于当前时间则已过期
+                        if (before) {
+                            //如果验证码时间加上168小时小于当前时间则已过期
                             user.setEffectiveFlag("3");
                         } else {
                             user.setEffectiveFlag("1");

+ 51 - 5
src/main/java/com/caimei/modules/club/service/impl/CmUserServiceImpl.java

@@ -1,20 +1,35 @@
 package com.caimei.modules.club.service.impl;
 
 import com.caimei.modules.club.dao.CmUserDao;
+import com.caimei.modules.club.dao.NewCmClubDao;
 import com.caimei.modules.club.entity.CmUser;
+import com.caimei.modules.club.entity.NewCmClub;
 import com.caimei.modules.club.service.CmUserService;
+import com.caimei.modules.shiro.entity.CmMallAdminUser;
+import com.caimei.utils.AppKeys;
+import com.caimei.utils.DateUtils;
+import com.caimei.utils.ResponseJson;
+import com.caimei.utils.SMSUtils;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
+@Slf4j
 @Service
 public class CmUserServiceImpl implements CmUserService {
 
-    private final CmUserDao cmUserDao;
-
-    public CmUserServiceImpl(CmUserDao cmUserDao) {
-        this.cmUserDao = cmUserDao;
-    }
+    @Resource
+    private CmUserDao cmUserDao;
+    @Resource
+    private NewCmClubDao newCmClubDao;
 
     @Override
     public List<CmUser> findListBuyUserInfo(CmUser cmUser) {
@@ -35,4 +50,35 @@ public class CmUserServiceImpl implements CmUserService {
     public void update(CmUser cmUser) {
         cmUserDao.update(cmUser);
     }
+
+    @Override
+    public ResponseJson auditClubStatus(CmUser cmUser) {
+        String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+        // club修改
+        NewCmClub newCmClub = new NewCmClub();
+        newCmClub.setClubId(cmUser.getClubId());
+        newCmClub.setStatus(Integer.valueOf(cmUser.getAuditStatus()));
+        newCmClub.setAuditTime(format);
+        newCmClub.setAuditNote(cmUser.getAuditNote());
+        CmMallAdminUser principal = (CmMallAdminUser) SecurityUtils.getSubject().getPrincipal();
+        newCmClub.setCheckMan(principal.getAccount());
+        newCmClubDao.update(newCmClub);
+        cmUser.setClubStatus(cmUser.getAuditStatus());
+        //同步到用户表的审核信息中
+        String auditStatus = cmUser.getAuditStatus();
+        String s = "90".equals(auditStatus) ? "1" : "0";
+        cmUser.setAuditStatus(s);
+        cmUser.setAuditNote(cmUser.getAuditNote());
+        if("90".equals(cmUser.getAuditStatus())){
+            cmUser.setUserPermission(2);
+            cmUser.setValidFlag(AppKeys.FLAG_YES);
+        }
+        cmUserDao.update(cmUser);
+        /**
+         *  todo
+         *  审核通过短信模板:【丽格集采联盟】您的资料已审核通过,欢迎前往“联合丽格集采商城”小程序进行采购。
+         *  审核未通过短信模板:【丽格集采联盟】您的资料审核未通过,请前往“联合丽格集采商城”小程序修改资料后重新提交
+         */
+        return ResponseJson.success("审核成功!");
+    }
 }

+ 20 - 0
src/main/java/com/caimei/modules/groupbuy/controller/GroupBuyController.java

@@ -4,12 +4,21 @@ import com.caimei.modules.club.entity.Page;
 import com.caimei.modules.groupbuy.entity.BuyerDto;
 import com.caimei.modules.groupbuy.service.ProcureService;
 import com.caimei.utils.ResponseJson;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Map;
+
 /**
  * @author zzj
  */
+@Api(tags = "集采需求")
+@ApiSupport(author = "zzj")
 @RestController
 @RequiredArgsConstructor
 @RequestMapping("/group/buy")
@@ -17,10 +26,21 @@ public class GroupBuyController {
 
     private final ProcureService procureService;
 
+    @ApiOperation("集采列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, name = "pageNum", value = "当前页码"),
+            @ApiImplicitParam(required = true, name = "pageSize", value = "每页大小")
+    })
     @PostMapping("/buy/list")
     public ResponseJson<Page<BuyerDto>> saveTheme(@RequestBody BuyerDto dto,
                                                   @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                   @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         return ResponseJson.success(procureService.findBuyListByPro(dto, pageNum, pageSize));
     }
+
+    @ApiImplicitParam(required = true, name = "id", value = "集采id")
+    @GetMapping("/detail")
+    public ResponseJson<Map<String, Object>> checkDetail(String id){
+        return ResponseJson.success(procureService.findDetail(id));
+    }
 }

+ 29 - 14
src/main/java/com/caimei/modules/groupbuy/service/ProcureService.java

@@ -15,12 +15,13 @@ import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.stereotype.Service;
-import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.regex.Pattern;
 
 @Service
@@ -30,8 +31,8 @@ public class ProcureService {
     private ProcureRepository procureRepository;
     @Resource
     private MongoTemplate mongoTemplate;
-
-
+    @Resource
+    private AdditionalService additionalService;
     /**
      * 保存
      *
@@ -78,7 +79,7 @@ public class ProcureService {
         List<ProcurePo> procurePos = mongoTemplate.find(query.with(pageable), ProcurePo.class);
         long count = mongoTemplate.count(query, ProcurePo.class);
         PageImpl<ProcurePo> page = new PageImpl<>(procurePos, pageable, count);
-        return pageCopy(page, pageNo, pageSize, procurePos);
+        return pageCopy(page, procurePos);
     }
 
     /**
@@ -147,21 +148,19 @@ public class ProcureService {
             buyerDtos.add(buyerDto);
         });
         long count = mongoTemplate.count(query, ProcurePo.class);
-        PageImpl<ProcurePo> page = new PageImpl<>(procurePos, pageable, count);
-        Page<ProcurePo> procurePoPage = pageCopy(page, pageNum, pageSize, procurePos);
-        procurePoPage.setResults(buyerDtos);
-        return null;
+        PageImpl<BuyerDto> page = new PageImpl<>(buyerDtos, pageable, count);
+        return pageCopy(page, buyerDtos);
     }
 
-    public Page<ProcurePo> pageCopy(PageImpl<ProcurePo> page, Integer pageNum, Integer pageSize, List<ProcurePo> procurePos) {
-        Page<ProcurePo> result = new Page<ProcurePo>();
+    public <T> Page<T> pageCopy(PageImpl<T> page, List<T> info) {
+        Page<T> result = new Page<>();
         result.setTotalPage(page.getTotalPages());
         result.setPageSize(page.getSize());
         result.setHasNextPage(page.hasNext());
         result.setHasPreviousPage(page.hasPrevious());
-        result.setIndex(pageNum);
-        result.setPageSize(pageSize);
-        result.setResults(procurePos);
+        result.setIndex(page.getPageable().getPageNumber());
+        result.setPageSize(page.getPageable().getPageSize());
+        result.setResults(info);
         return result;
     }
 
@@ -184,11 +183,27 @@ public class ProcureService {
             }
         }
         if (StringUtils.isNotBlank(dto.getStartSaveTime())) {
-            criteria.andOperator(Criteria.where("saveTime").gte(dto.getStartSaveTime());
+            criteria.andOperator(Criteria.where("saveTime").gte(dto.getStartSaveTime()));
         }
         if (StringUtils.isNotBlank(dto.getEndSaveTime())) {
             criteria.andOperator(Criteria.where("saveTime")).lte(dto.getEndSaveTime());
         }
         return criteria;
     }
+
+    public Map<String, Object> findDetail(String id) {
+        // 发起者
+        ProcurePo byId = findById(id.toString());
+        // 参与者
+        List<AdditionalPo> procureById = additionalService.findProcureById(byId.getId());
+        List<ProcurePo> procurePos = new ArrayList<>();
+        procureById.forEach(p->{
+            ProcurePo byId1 = findById(p.getProcureId());
+            procurePos.add(byId1);
+        });
+        Map<String, Object> map = new HashMap<>(2);
+        map.put("publishMan",byId);
+        map.put("followMan",procurePos);
+        return map;
+    }
 }

+ 31 - 1
src/main/java/com/caimei/modules/homepage/controller/CmHomePageController.java

@@ -4,6 +4,8 @@ import com.caimei.modules.club.entity.Page;
 import com.caimei.modules.homepage.enity.*;
 import com.caimei.modules.homepage.service.PageService;
 import com.caimei.utils.ResponseJson;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.junit.Assert;
 import org.springframework.web.bind.annotation.*;
@@ -11,6 +13,7 @@ import org.springframework.web.bind.annotation.*;
 /**
  * @author zzj
  */
+@Api(tags = "首页api")
 @RestController
 @RequiredArgsConstructor
 @RequestMapping("/home/page")
@@ -18,151 +21,178 @@ public class CmHomePageController {
 
     private final PageService pageService;
 
+    @ApiOperation("保存楼层")
     @PostMapping("/save/floor")
     public ResponseJson saveTheme(@RequestBody Floor floor) {
         Assert.assertNotNull("组织Id不能为空!", floor.getOrganizeId());
         return ResponseJson.success(pageService.saveFloor(floor));
     }
 
+    @ApiOperation("删除楼层")
     @GetMapping("/del/floor/{id}")
     public ResponseJson delFloor(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.delFloor(id));
     }
 
+    @ApiOperation("楼层排序")
     @GetMapping("/floor/{id}/{sort}")
     public ResponseJson floorSort(@PathVariable("id") Integer id, @PathVariable("sort") Integer sort) {
         return ResponseJson.success(pageService.sortChange(id, sort, 3));
     }
 
+    @ApiOperation("上/下线楼层")
     @GetMapping("/check/floor/status/{id}")
     public ResponseJson checkFloorStatus(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.checkFloorStatus(id));
     }
 
+    @ApiOperation("楼层列表")
     @GetMapping("/floor/list")
     public ResponseJson<Page<Floor>> themeList(Floor floor, Page page) {
         Assert.assertNotNull("组织Id不能为空!", floor.getOrganizeId());
         return ResponseJson.success(pageService.findFloorList(floor, page));
     }
 
+    @ApiOperation("楼层详情")
     @GetMapping("/floor/form/{id}")
     public ResponseJson<Floor> floorForm(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.floorForm(id));
     }
 
-
+    @ApiOperation("banner图排序")
     @GetMapping("/banner/{id}/{sort}")
     public ResponseJson bannerSort(@PathVariable("id") Integer id, @PathVariable("sort") Integer sort) {
         return ResponseJson.success(pageService.sortChange(id, sort, 1));
     }
 
+    @ApiOperation("菜单排序")
     @GetMapping("/menu/{id}/{sort}")
     public ResponseJson menuSort(@PathVariable("id") Integer id, @PathVariable("sort") Integer sort) {
         return ResponseJson.success(pageService.sortChange(id, sort, 2));
     }
 
+    @ApiOperation("专题活动列表")
     @GetMapping("/theme/list")
     public ResponseJson themeList(Theme theme, Page page) {
         Assert.assertNotNull("组织Id不能为空!", theme.getOrganizeId());
         return ResponseJson.success(pageService.findThemeList(theme, page));
     }
 
+    @ApiOperation("专题活动停用/启用")
     @GetMapping("/check/theme/status/{id}")
     public ResponseJson checkThemeStatus(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.checkThemeStatus(id));
     }
 
+    @ApiOperation("保存专题活动")
     @PostMapping("/save/theme")
     public ResponseJson saveTheme(@RequestBody Theme theme) {
         return ResponseJson.success(pageService.saveTheme(theme));
     }
 
+    @ApiOperation("删除专题活动")
     @GetMapping("/del/theme/{id}")
     public ResponseJson delTheme(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.delTheme(id));
     }
 
+    @ApiOperation("专题活动详情")
     @GetMapping("/theme/form/{id}")
     public ResponseJson<Theme> themeForm(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.themeForm(id));
     }
 
+    @ApiOperation("banner图详情")
     @GetMapping("/banner/form/{id}")
     public ResponseJson<Banner> bannerForm(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.findBannerById(id));
     }
 
+    @ApiOperation("banner图列表")
     @GetMapping("/banner/list")
     public ResponseJson bannerList(Banner banner, Page page) {
         Assert.assertNotNull("组织Id不能为空!", banner.getOrganizeId());
         return ResponseJson.success(pageService.findBannerList(banner, page));
     }
 
+    @ApiOperation("保存banner图")
     @PostMapping("/save/banner")
     public ResponseJson addBanner(@RequestBody Banner banner) {
         Assert.assertNotNull("组织Id不能为空!", banner.getOrganizeId());
         return ResponseJson.success(pageService.saveBanner(banner));
     }
 
+    @ApiOperation("banner图启用/停用")
     @GetMapping("/check/banner/status/{id}")
     public ResponseJson checkBannerStatus(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.checkStatus(id));
     }
 
+    @ApiOperation("删除banner图")
     @GetMapping("/del/banner/{id}")
     public ResponseJson delBanner(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.deleteBanner(id));
     }
 
+    @ApiOperation("菜单详情")
     @GetMapping("/menu/form/{id}")
     public ResponseJson<MainMenu> menuForm(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.findMenuById(id));
     }
 
+    @ApiOperation("保存主菜单")
     @PostMapping("/save/menu")
     public ResponseJson saveMainMenu(@RequestBody MainMenu menu) {
         Assert.assertNotNull("组织Id不能为空!", menu.getOrganizeId());
         return ResponseJson.success(pageService.saveMenu(menu));
     }
 
+    @ApiOperation("主菜单列表")
     @GetMapping("/menu/list")
     public ResponseJson menuList(MainMenu menu, Page page) {
         Assert.assertNotNull("组织Id不能为空!", menu.getOrganizeId());
         return ResponseJson.success(pageService.findMenuList(menu, page));
     }
 
+    @ApiOperation("主菜单启用/停用")
     @GetMapping("/check/menu/status/{id}")
     public ResponseJson checkMenuStatus(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.checkMenuStatus(id));
     }
 
+    @ApiOperation("删除主菜单")
     @GetMapping("/del/menu/{id}")
     public ResponseJson delMenu(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.deleteMenu(id));
     }
 
+    @ApiOperation("保存活动")
     @PostMapping("/save/active")
     public ResponseJson saveActive(@RequestBody Active active) {
         Assert.assertNotNull("组织Id不能为空!", active.getOrganizeId());
         return ResponseJson.success(pageService.saveActive(active));
     }
 
+    @ApiOperation("活动列表")
     @GetMapping("/active/list")
     public ResponseJson<Page<Active>> activeList(Active active, Page page) {
         Assert.assertNotNull("组织Id不能为空!", active.getOrganizeId());
         return ResponseJson.success(pageService.findActiveList(active, page));
     }
 
+    @ApiOperation("活动启用/停用")
     @GetMapping("/check/active/status/{id}")
     public ResponseJson checkActiveStatus(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.checkActiveStatus(id));
     }
 
+    @ApiOperation("删除活动")
     @GetMapping("/del/active/{id}")
     public ResponseJson delActive(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.delActive(id));
     }
 
+    @ApiOperation("活动详情")
     @GetMapping("/active/form/{id}")
     public ResponseJson<Active> activeForm(@PathVariable("id") Integer id) {
         return ResponseJson.success(pageService.activeForm(id));

+ 28 - 35
src/main/java/com/caimei/modules/order/controller/CmReturnedPurchaseController.java

@@ -9,6 +9,9 @@ import com.caimei.modules.order.service.CmReturnedPurchaseService;
 import com.caimei.modules.order.service.NewOrderService;
 import com.caimei.utils.JsonModel;
 import com.github.pagehelper.PageHelper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -18,9 +21,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-/**
- * 退货退款Controller
- */
+@Api(tags = "退货退款api")
 @RequiredArgsConstructor
 @RestController
 @RequestMapping(value = "/order/cmReturnedPurchase")
@@ -33,13 +34,7 @@ public class CmReturnedPurchaseController {
     private final BpClauseService bpClauseService;
 
 
-    /**
-     * 用户退款列表
-     *
-     * @param cmReturnedPurchase
-     * @param page
-     * @return
-     */
+    @ApiOperation("用户退款列表")
     @GetMapping(value = "list")
     public JsonModel list(CmReturnedPurchase cmReturnedPurchase, Page page) {
         PageHelper.startPage(page.getIndex(), page.getPageSize());
@@ -48,34 +43,32 @@ public class CmReturnedPurchaseController {
         return JsonModel.newInstance().success(purchasePage);
     }
 
-    /**
-     * 退款详情
-     */
+
+    @ApiImplicitParam(required = true, name = "orderId", value = "订单Id")
+    @ApiOperation("用户退款详情")
     @GetMapping(value = "toRecturnRecord")
-    public JsonModel toRecturnRecord(CmReturnedPurchase cmReturnedPurchase) {
-        Map<String, Object> map = new HashMap();
-        try {
-            NewOrder newOrder = newOrderService.get(cmReturnedPurchase.getOrderId().toString());
-            List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
-            BpClause bpClause = new BpClause();
-            bpClause.setEnabledStatus("1");
-            List<BpClause> bpClauses = bpClauseService.findList(bpClause);
-            Double returnedPurchaseFee = 0D;    //退款(退货)总金额
-            Double refundFee = 0D;  //退款总额(给买家)
-            for (CmReturnedPurchase bean : dataList) {
-                if (!"3".equals(bean.getStatus())) {
-                    returnedPurchaseFee += bean.getReturnedPurchaseFee();
-                    refundFee += bean.getRefundFee();
-                }
+    public JsonModel<Map<String, Object>> toReturnRecord(CmReturnedPurchase cmReturnedPurchase) {
+        Map<String, Object> map = new HashMap(5);
+        NewOrder newOrder = newOrderService.get(cmReturnedPurchase.getOrderId().toString());
+        List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+        BpClause bpClause = new BpClause();
+        bpClause.setEnabledStatus("1");
+        List<BpClause> bpClauses = bpClauseService.findList(bpClause);
+        //退款(退货)总金额
+        Double returnedPurchaseFee = 0D;
+        //退款总额(给买家)
+        Double refundFee = 0D;
+        for (CmReturnedPurchase bean : dataList) {
+            if (!"3".equals(bean.getStatus())) {
+                returnedPurchaseFee += bean.getReturnedPurchaseFee();
+                refundFee += bean.getRefundFee();
             }
-            map.put("bpClauses", bpClauses);
-            map.put("cmReturnedPurchaseList", dataList);
-            map.put("order", newOrder);
-            map.put("returnedPurchaseFee", returnedPurchaseFee);
-            map.put("refundFee", refundFee);
-        } catch (Exception e) {
-            e.printStackTrace();
         }
+        map.put("bpClauses", bpClauses);
+        map.put("cmReturnedPurchaseList", dataList);
+        map.put("order", newOrder);
+        map.put("returnedPurchaseFee", returnedPurchaseFee);
+        map.put("refundFee", refundFee);
         return JsonModel.newInstance().success(map);
     }
 }

+ 40 - 0
src/main/java/com/caimei/modules/order/controller/OrderDeliverController.java

@@ -0,0 +1,40 @@
+package com.caimei.modules.order.controller;
+
+import com.caimei.modules.order.entity.NewOrder;
+import com.caimei.modules.order.service.OrderDeliverService;
+import com.caimei.utils.ResponseJson;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zzj
+ */
+@Api(tags = "订单发货api")
+@ApiSupport(author = "zzj")
+@RestController
+@RequiredArgsConstructor
+@RequestMapping(value = "/order/deliver")
+public class OrderDeliverController {
+
+    @Resource
+    private OrderDeliverService deliverService;
+
+    @ApiOperation("去发货")
+    @ApiImplicitParam(required = true, name = "orderId", value = "订单Id")
+    @GetMapping("/to/deliver/{orderId}")
+    public ResponseJson<NewOrder> toDeliver(@PathVariable("id") Integer orderId) {
+        return ResponseJson.success(deliverService.toDeliver(orderId));
+    }
+
+    @ApiOperation("确认发货")
+    @PostMapping("/confirm/deliver")
+    public ResponseJson confirmDeliver() {
+        return ResponseJson.success(deliverService.confirmDeliver());
+    }
+}

+ 15 - 4
src/main/java/com/caimei/modules/order/controller/OrderPayShopController.java

@@ -13,6 +13,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author zzj
@@ -119,14 +120,24 @@ public class OrderPayShopController {
     }
 
     @ApiOperation("订单财务信息列表")
-    @ApiImplicitParams({
-            @ApiImplicitParam(required = true, name = "pageNum", value = "当前页码"),
-            @ApiImplicitParam(required = true, name = "pageSize", value = "每页大小")
-    })
     @PostMapping
     public ResponseJson<PageInfo<NewOrder>> orderPayInfoList(@RequestBody OrderPayShop orderPayShop,
                                                              @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                              @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         return payShopService.orderPayInfoList(orderPayShop, pageNum, pageSize);
     }
+
+    @ApiOperation("订单分账记录")
+    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
+    @GetMapping("/split/record/{orderId}")
+    public ResponseJson<Map<String,Object>> findSplitRecord(@PathVariable Integer orderId) {
+        return payShopService.findSplitRecord(orderId);
+    }
+
+    @ApiOperation("订单收付款记录")
+    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
+    @GetMapping("/receipt/record/{orderId}")
+    public ResponseJson<Map<String,Object>> findReceiptRecord(@PathVariable Integer orderId) {
+        return payShopService.findReceiptRecord(orderId);
+    }
 }

+ 15 - 19
src/main/java/com/caimei/modules/order/controller/OrganizeOrderController.java

@@ -142,27 +142,23 @@ public class OrganizeOrderController {
     @GetMapping(value = "toRefundRecord")
     public JsonModel toRefundRecord(CmReturnedPurchase cmReturnedPurchase, String from) {
         JsonModel jsonModel = JsonModel.newInstance();
-        Map<String, Object> map = new HashMap();
-        try {
-            NewOrder newOrder = newOrderService.get(cmReturnedPurchase.getOrderId().toString());
-            List<CmReceiptOrderRelation> listRelation = cmReceiptOrderRelationService.findByOrderId(newOrder.getOrderId());
-            List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
-            //退款总额
-            Double refundFee = 0D;
-            for (CmReturnedPurchase bean : dataList) {
-                if (!"3".equals(bean.getStatus())) {
-                    refundFee += bean.getRefundFee();
-                }
+        Map<String, Object> map = new HashMap(6);
+        NewOrder newOrder = newOrderService.get(cmReturnedPurchase.getOrderId().toString());
+        List<CmReceiptOrderRelation> listRelation = cmReceiptOrderRelationService.findByOrderId(newOrder.getOrderId());
+        List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+        //退款总额
+        Double refundFee = 0D;
+        for (CmReturnedPurchase bean : dataList) {
+            if (!"3".equals(bean.getStatus())) {
+                refundFee += bean.getRefundFee();
             }
-            map.put("cmReturnedPurchaseList", dataList);
-            map.put("order", newOrder);
-            map.put("receipt", listRelation);
-            map.put("refundFee", refundFee);
-            map.put("from", from);
-            map.put("orderId", cmReturnedPurchase.getOrderId().toString());
-        } catch (Exception e) {
-            e.printStackTrace();
         }
+        map.put("cmReturnedPurchaseList", dataList);
+        map.put("order", newOrder);
+        map.put("receipt", listRelation);
+        map.put("refundFee", refundFee);
+        map.put("from", from);
+        map.put("orderId", cmReturnedPurchase.getOrderId().toString());
         return jsonModel.success(map);
     }
 

+ 5 - 1
src/main/java/com/caimei/modules/order/dao/NewOrderProductDao.java

@@ -7,7 +7,7 @@ import java.util.List;
 
 @Mapper
 public interface NewOrderProductDao {
-
+    
     NewOrderProduct get(Integer orderProductId);
 
     List<NewOrderProduct> findListByShopOrderId(Integer shopOrderId);
@@ -17,4 +17,8 @@ public interface NewOrderProductDao {
     Integer getReturnedNum(Integer orderProductId);
 
     Integer getReceivedNum(Integer orderProductId);
+
+    List<NewOrderProduct> findListByOrderId(Integer orderId);
+
+    Integer getActualCancelNum(Integer orderProductId);
 }

+ 4 - 0
src/main/java/com/caimei/modules/order/dao/PayShopDao.java

@@ -72,4 +72,8 @@ public interface PayShopDao {
     void deletePayShop(Integer id);
 
     Double findOnlinePayCm(Integer shopOrderId, Integer status);
+
+    List<NewShopOrder> findSplitRecord(Integer orderId);
+
+    List<OrderPayShopRecord> findPayShopRecordsByOrder(Integer orderId);
 }

+ 101 - 52
src/main/java/com/caimei/modules/order/entity/CmReturnedPurchase.java

@@ -1,5 +1,7 @@
 package com.caimei.modules.order.entity;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -7,67 +9,114 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
 
-/**
- * 退货退款Entity
- */
+
+@ApiModel(description= "退货退款实体对象")
 @Data
 public class CmReturnedPurchase implements Serializable {
 
     private static final long serialVersionUID = 1L;
+
     private Integer id;
-    private String returnedNo;        // 退款退货编号
-    private Integer orderId;        // 主订单ID
-    private Integer organizeId;    //组织id
-    private String orderNo;         //主订单号
-    private String userName;        //买家名
-    //	private Integer shopOrderID;		// 子订单Id
-    private Integer userId;        // 用户ID(买家)
-    private String status;        // 状态:1待审核、2审核通过、3审核不通过
-    private String returnedWay;        // 退款方式 1有支付有退款(退款方式可多选具体参考以上金额)、4未支付无退款(未支付发起退款)
-    private String payType;//付款方式 付款方式 1建设银行7297, 2中信银行0897, 3中信银行7172, 4广发银行0115, 5广发银行5461
-    private String returnedBankInfo;        // 退款银行信息(银行名称、户名、开户行、银行账号)【V6.1.1版本已废弃拆分显示】
-    private String operatingOrderStatus;    //发起该操作时订单状态快照:0待确认,11待收待发,12待收部发,13待收全发,21部收待发,22部收部发,23部收全发,31已收待发,32已收部发,33已收全发,4交易完成,5订单完成,6已关闭,7交易全退
-    private Double returnedPurchaseFee;        // 退款(退货)总金额
-    private Double refundFee;        // 退款总额(给买家)
-    private String image1;        // 凭证图片1
-    private String image2;        // 凭证图片2
-    private String image3;        // 凭证图片3
-    private String image4;        // 凭证图片4
-    private String image5;        // 凭证图片5
-
-    private String reviewImage1;        // 凭证图片1
-    private String reviewImage2;        // 凭证图片2
-    private String reviewImage3;        // 凭证图片3
-    private String reviewImage4;        // 凭证图片4
-    private String reviewImage5;        // 凭证图片5
-
-    private String reviewRemarks;   //审核备注
-    private String returnTime;        // 申请退款时间
-    private String confirmReturnTime;        // 确认退款时间(审核退款时间)
-    private String remarks;	// 退款备注
-
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty("退款退货编号")
+    private String returnedNo;
+    @ApiModelProperty("主订单ID")
+    private Integer orderId;
+    @ApiModelProperty("组织id")
+    private Integer organizeId;
+    @ApiModelProperty("主订单号")
+    private String orderNo;
+    @ApiModelProperty("买家名")
+    private String userName;
+    @ApiModelProperty("子订单Id")
+    private Integer shopOrderId;
+
+    private Integer userId;
+    @ApiModelProperty("状态:1待审核、2审核通过、3审核不通过")
+    private String status;
+    @ApiModelProperty("退款方式 1有支付有退款(退款方式可多选具体参考以上金额)、4未支付无退款(未支付发起退款)")
+    private String returnedWay;
+    @ApiModelProperty("付款方式 付款方式 1建设银行7297, 2中信银行0897, 3中信银行7172, 4广发银行0115, 5广发银行5461,6线上分账")
+    private String payType;
+
+    @ApiModelProperty("退款银行信息(银行名称、户名、开户行、银行账号)")
+    private String returnedBankInfo;
+    @ApiModelProperty("发起该操作时订单状态快照:0待确认,11待收待发,12待收部发,13待收全发,21部收待发,22部收部发," +
+            "23部收全发,31已收待发,32已收部发,33已收全发,4交易完成,5订单完成,6已关闭,7交易全退")
+    private String operatingOrderStatus;
+    @ApiModelProperty("退款(退货)总金额")
+    private Double returnedPurchaseFee;
+    @ApiModelProperty("退款总额(给买家)")
+    private Double refundFee;
+
+    @ApiModelProperty("凭证图片1")
+    private String image1;
+    @ApiModelProperty("凭证图片2")
+    private String image2;
+    @ApiModelProperty("凭证图片3")
+    private String image3;
+    @ApiModelProperty("凭证图片4")
+    private String image4;
+    @ApiModelProperty("凭证图片5")
+    private String image5;
+
+    @ApiModelProperty("审核凭证图片1")
+    private String reviewImage1;
+    @ApiModelProperty("审核凭证图片2")
+    private String reviewImage2;
+    @ApiModelProperty("审核凭证图片3")
+    private String reviewImage3;
+    @ApiModelProperty("审核凭证图片4")
+    private String reviewImage4;
+    @ApiModelProperty("审核凭证图片5")
+    private String reviewImage5;
+
+    @ApiModelProperty("审核备注")
+    private String reviewRemarks;
+    @ApiModelProperty("申请退款时间")
+    private String returnTime;
+    @ApiModelProperty("确认退款时间(审核退款时间)")
+    private String confirmReturnTime;
+    @ApiModelProperty("退款备注")
+    private String remarks;
+
+
+    @ApiModelProperty("申请退款起始时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date beginReturnTime;
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty("申请退款终止时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endReturnTime;
 
+    @ApiModelProperty("确认退款起始时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date beginConfirmReturnTime;
+    @ApiModelProperty("确认退款终止时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date endConfirmReturnTime;
 
-    //private List<List<CmReturnedPurchaseProduct>> cmReturnedPurchaseProductList;    //退款退货商品列表(用于前端接收)
-    private List<ShopOrderReturned> shopOrderReturnedList;    //退款退货商品列表
-    //private List<CmReturnedPurchaseProduct> productList;    //退款退货商品列表
-
-    private String bankAccountName;//银行账户名
-    private String bankAccountNo;//开户银行账户
-    private String openBank;//开户银行
-    private String bankAccountType;//账户类型:1公账,2私账
-    private Double refundBalanceFee;//退账户余额
-    private Double refundOnlineFee;//退线上退回
-    private Double refundOfflineFee;//退线下转账
-    private Integer applicationUserId;//申请人ID
-    private Integer reviewUserId;//审核人ID
-    //	private String reviewTime;		// 申请审核时间
-    private String applicationUserName;//申请人
-    private String reviewUserName;//审核人
+    @ApiModelProperty("退款退货商品列表")
+    private List<ShopOrderReturned> shopOrderReturnedList;
+
+    @ApiModelProperty("银行账户名")
+    private String bankAccountName;
+    @ApiModelProperty("开户银行账户")
+    private String bankAccountNo;
+    @ApiModelProperty("开户银行")
+    private String openBank;
+    @ApiModelProperty("账户类型:1公账,2私账")
+    private String bankAccountType;
+    @ApiModelProperty("退账户余额")
+    private Double refundBalanceFee;
+    @ApiModelProperty("退线上退回")
+    private Double refundOnlineFee;
+    @ApiModelProperty("退线下转账")
+    private Double refundOfflineFee;
+    @ApiModelProperty("申请人ID")
+    private Integer applicationUserId;
+    @ApiModelProperty("审核人ID")
+    private Integer reviewUserId;
+    @ApiModelProperty("申请人")
+    private String applicationUserName;
+    @ApiModelProperty("审核人")
+    private String reviewUserName;
 }

+ 111 - 165
src/main/java/com/caimei/modules/order/entity/NewOrder.java

@@ -18,240 +18,186 @@ public class NewOrder implements Serializable {
     private Integer orderId;
 
     private String orderNo;
-    /**
-     *   订单归属人
-     **/
+
+    @ApiModelProperty("订单归属人userId")
     private Integer userId;
-    /**
-     *  采美组织: 默认为null,具体对应cm_mall_organize表Id
-     **/
+
     private Integer organizeId;
 
-    /**
-     * 订单提交类型
-     **/
+    @ApiModelProperty("订单提交类型")
     private String orderSubmitType;
-    /**
-     * 订单状态
-     * 0待确认,11待收待发,12待收部发,13待收全发,21部收待发,22部收部发,23部收全发,31已收待发,32已收部发,
-     * 33已收全发,4交易完成,5订单完成,6已关闭,7交易全退
-     */
+
+    @ApiModelProperty("订单状态0待确认,11待收待发,12待收部发,13待收全发,21部收待发," +
+            "22部收部发,23部收全发,31已收待发,32已收部发,33已收全发,4交易完成,5订单完成,6已关闭,7交易全退")
     private String status;
-    /**
-     * 商品总金额
-     */
+
+    @ApiModelProperty("商品总金额")
     private Double productTotalFee;
-    /**
-     * 应收商品金额==应付合计(只需要付商品金额)
-     */
+
+    @ApiModelProperty("应收商品金额==应付合计(只需要付商品金额)")
     private Double shouldPayProduct;
-    /**
-     * 是否包含活动商品(受订单未支付自动关闭时间影响)  0 否 1 是
-     */
+
+    @ApiModelProperty("是否包含活动商品(受订单未支付自动关闭时间影响)  0 否 1 是")
     private String hasActProduct;
-    /**
-     * 订单总金额
-     */
+
+    @ApiModelProperty("订单总金额")
     private Double orderTotalFee;
-    /**
-     * 应付金额
-     */
+
+    @ApiModelProperty("应付金额")
     private Double payableAmount;
-    /**
-     * 支付金额
-     */
+
+    @ApiModelProperty("支付金额")
     private Double payTotalFee;
-    /**
-     * 余额支付
-     */
+
+    @ApiModelProperty("余额支付")
     private Double balancePayFee;
-    /**
-     * 折扣金额
-     */
+
+    @ApiModelProperty("折扣金额")
     private Double discountFee;
-    /**
-     * 协销id
-     */
+
+    @ApiModelProperty("协销id")
     private Integer spId;
 
-    /**
-     * 订单备注
-     */
+    @ApiModelProperty("订单备注(买家留言)")
     private String note;
 
     private Integer clubId;
 
-    /**
-     * 订单提交时间
-     */
+    @ApiModelProperty("订单提交时间")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private String orderTime;
-    /**
-     * 订单确认时间
-     */
+
+    @ApiModelProperty("订单确认时间")
     private String confirmTime;
-    /**
-     * 订单确认标志
-     */
+
+    @ApiModelProperty("订单确认标志")
     private String confirmFlag;
-    /**
-     * 条款Id
-     */
+
+    @ApiModelProperty("条款Id")
     private Integer clauseId;
-    /**
-     * 条款内容
-     */
+
+    @ApiModelProperty("条款内容")
     private String clauseContent;
-    /**
-     * 条款名称
-     */
+
+    @ApiModelProperty("条款名称")
     private String clauseName;
-    /**
-     * 免邮标志 运费:-1到付,0包邮,1需要运费
-     */
+
+    @ApiModelProperty("免邮标志 运费:-1到付,0包邮,1需要运费")
     private String freePostFlag;
     /**
      * '运费' v5.0版本已废弃,运费已使用商品形式存储,
      */
     private Double freight;
-    /**
-     * 下单人
-     */
+
+    @ApiModelProperty("下单人")
     private Integer buyUserId;
 
+    @ApiModelProperty("子订单")
     private List<NewShopOrder> newShopOrders;
-    /**
-     *  订单用户信息
-     */
+
+    @ApiModelProperty("订单用户信息")
     private OrderUserInfo bpOrderUserinfo;
-    /**
-     *
-     */
+
     private OrderInvoice orderInvoice;
-    /**
-     * 商品总数
-     */
+
+    @ApiModelProperty("商品总数")
     private Integer productCount;
-    /**
-     * 赠送总数
-     */
+
+    @ApiModelProperty("赠送总数")
     private Integer presentCount;
-    /**
-     * 订单支付时间
-     */
+
+    @ApiModelProperty("订单支付时间")
     private String payTime;
-    /**
-     * 是否已支付 未支付0 已支付1
-     */
+
+    @ApiModelProperty("是否已支付 未支付0 已支付1")
     private String payFlag;
-    /**
-     * 能否显示支付 :0 能线上 1 线下
-     */
+
+    @ApiModelProperty("0 能线上 1 线下")
     private String onlinePayFlag;
-    /**
-     * 总优惠 自助下单活动优惠 协销下单price-折后单价
-     */
+
+    @ApiModelProperty("总优惠 自助下单活动优惠 协销下单price-折后单价")
     private Double preferential;
-    /**
-     * 订单取消原因
-     */
+
+    @ApiModelProperty("订单取消原因")
     private String closeReason;
-    /**
-     * 是否开发票 0 不开 1 开发票
-     */
+
+    @ApiModelProperty("是否开发票 0 不开 1 开发票")
     private String invoiceFlag;
-    /**
-     * (收款买家)收款状态:1待收款、2部分收款、3已收款
-     */
+
+    @ApiModelProperty("(收款买家)收款状态:1待收款、2部分收款、3已收款")
     private String receiptStatus;
-    /**
-     * (付款供应商)付款状态:1待付款、2部分付款、3已付款
-     */
+
+    @ApiModelProperty("(付款供应商)付款状态:1待付款、2部分付款、3已付款")
     private String payStatus;
-    /**
-     * 发货状态:1待发货、2部分发货、3已发货
-     */
+
+    @ApiModelProperty("发货状态:1待发货、2部分发货、3已发货")
     private String sendOutStatus;
-    /**
-     *  退货退款类型:1部分退、2全部退
-     */
+
+    @ApiModelProperty("退货退款类型:1部分退、2全部退")
     private String refundType;
-    /**
-     * 邮费订单标识 1是邮费订单  0不是邮费订单
-     */
+
+    @ApiModelProperty("邮费订单标识 1是邮费订单  0不是邮费订单")
     private String postageOrderFlag = "0";
-    /**
-     * 已付金额(用户已支付金额包括余额支付和线上线下支付)
-     */
+
+    @ApiModelProperty("已付金额(用户已支付金额包括余额支付和线上线下支付)")
     private Double paidAmount;
 
-    /**
-     * 虚拟字段
-     *
-     *
-     * 供应商
-     */
+
+    @ApiModelProperty("供应商")
     private String shopName;
-    /**
-     * 收货人
-     */
+
+    @ApiModelProperty("收货人")
     private String receiver;
-    /**
-     * 买家
-     */
+
+    @ApiModelProperty("买家")
     private String buyer;
-    /**
-     * 已收金额(需要包含运费,目前只存在普通订单存在运费)
-     */
-    private String alreadyReceipt;
-    /**
-     * 佣金
-     */
+
+    @ApiModelProperty("已收金额(需要包含运费,目前只存在普通订单存在运费)")
+    private Double alreadyReceipt;
+
+    @ApiModelProperty("佣金")
     private String brokerage;
-    /**
-     * 买家名称
-     */
+
+    @ApiModelProperty("买家名称")
     private String buyerName;
-    /**
-     * 手机
-     */
+
+    @ApiModelProperty("机构名称")
+    private String clubName;
+
+    @ApiModelProperty("手机")
     private String mobile;
-    /**
-     * 地址
-     */
+
+    @ApiModelProperty("地址")
     private String address;
+
     /**
      * 订单提交时间
      */
     private String startTime;
     private String endTime;
-    /**
-     * 总税费
-     */
+
+    @ApiModelProperty("总税费")
     private Double totalAddedValueTax;
-    /**
-     * 退款状态
-     */
+
+    @ApiModelProperty("退款状态")
     private String orderRefundType = "";
-    /**
-     * 1审核中,0不是审核中
-     */
+
+    @ApiModelProperty("退款总额")
+    private Double refundFee;
+
+    @ApiModelProperty("1审核中,0不是审核中")
     private String returnedPurchaseStatus;
-    /**
-     * 0不可以申请,1可以申请(此标记只用于是否存在审核中或者审核不通过记录,存在记录则不可以申请)
-     */
+
+    @ApiModelProperty("0不可以申请,1可以申请(此标记只用于是否存在审核中或者审核不通过记录,存在记录则不可以申请)")
     private String applyReturnedPurchaseFlag;
-    /**
-     *  订单内的商品集合
-     */
+
+    @ApiModelProperty("订单内的商品集合")
     private List<NewOrderProduct> orderProduct;
-    /**
-     * 子订单编号
-     */
+
+    @ApiModelProperty("子订单编号")
     private String shopOrderNo;
-    /**
-     * 有没有收款待审核的订单 , 有的1
-     */
+
+    @ApiModelProperty("有没有收款待审核的订单 , 有的1")
     private String toAudit;
 }
 

+ 4 - 2
src/main/java/com/caimei/modules/order/entity/NewOrderProduct.java

@@ -7,7 +7,7 @@ import lombok.Data;
 
 import java.util.List;
 
-@ApiModel(description= "子订单商品实体")
+@ApiModel(description = "子订单商品实体")
 @Data
 public class NewOrderProduct {
 
@@ -22,7 +22,7 @@ public class NewOrderProduct {
     private Integer productId;
     @ApiModelProperty("商品数量")
     private Integer num;
-    @ApiModelProperty("赠数量")
+    @ApiModelProperty("赠数量")
     private Integer presentNum;
     @ApiModelProperty("skuId")
     private Integer skuId;
@@ -84,6 +84,8 @@ public class NewOrderProduct {
     private String productImage;
     @ApiModelProperty("发货数量")
     private Integer deliveryNum;
+    @ApiModelProperty("未发货数量")
+    private Integer notOutStore;
     @ApiModelProperty("成本价")
     private Double costPrice;
     @ApiModelProperty("库存")

+ 10 - 0
src/main/java/com/caimei/modules/order/entity/NewShopOrder.java

@@ -49,6 +49,13 @@ public class NewShopOrder {
     @ApiModelProperty("待付供应商")
     private Double waitPayShop;
 
+    @ApiModelProperty("虚拟字段:已付组织")
+    private Double paidOrganize;
+    @ApiModelProperty("虚拟字段:应付组织")
+    private Double shouldPayOrganize;
+    @ApiModelProperty("虚拟字段:待付组织")
+    private Double waitPayOrganize;
+
     @ApiModelProperty("供应商名称")
     private String shopName;
     @ApiModelProperty("买家/客户")
@@ -155,4 +162,7 @@ public class NewShopOrder {
     private String splitCode;
     @ApiModelProperty("结算状态 1未结算2部分结算3已结算")
     private Integer settleStatus;
+    @ApiModelProperty("分账时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String splitTime;
 }

+ 1 - 0
src/main/java/com/caimei/modules/order/service/CmReturnedPurchaseService.java

@@ -3,6 +3,7 @@ package com.caimei.modules.order.service;
 import com.caimei.modules.order.entity.CmReturnedPurchase;
 
 import java.util.List;
+import java.util.Map;
 
 public interface CmReturnedPurchaseService {
 

+ 11 - 0
src/main/java/com/caimei/modules/order/service/OrderDeliverService.java

@@ -0,0 +1,11 @@
+package com.caimei.modules.order.service;
+
+import com.caimei.modules.order.entity.NewOrder;
+
+/**
+ * @author zzj
+ */
+public interface OrderDeliverService {
+
+    NewOrder toDeliver(Integer orderId);
+}

+ 5 - 0
src/main/java/com/caimei/modules/order/service/PayShopService.java

@@ -8,6 +8,7 @@ import com.caimei.utils.ResponseJson;
 import com.github.pagehelper.PageInfo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author zzj
@@ -33,4 +34,8 @@ public interface PayShopService {
     OrderPayShopDetail applyPayList(List<Integer> shopOrderIds);
 
     ResponseJson<PageInfo<NewOrder>> orderPayInfoList(OrderPayShop orderPayShop, Integer pageNum, Integer pageSize);
+
+    ResponseJson<Map<String,Object>> findSplitRecord(Integer orderId);
+
+    ResponseJson<Map<String,Object>> findReceiptRecord(Integer orderId);
 }

+ 9 - 5
src/main/java/com/caimei/modules/order/service/impl/CmReturnedPurchaseServiceImpl.java

@@ -1,11 +1,10 @@
 package com.caimei.modules.order.service.impl;
 
-import com.caimei.modules.order.dao.CmReturnedPurchaseDao;
-import com.caimei.modules.order.dao.CmReturnedPurchaseProductDao;
-import com.caimei.modules.order.dao.NewOrderProductDao;
+import com.caimei.modules.order.dao.*;
 import com.caimei.modules.order.entity.*;
 import com.caimei.modules.order.service.CmReturnedPurchaseService;
 import com.caimei.modules.order.service.NewShopOrderService;
+import com.caimei.modules.order.util.OrderUtils;
 import com.caimei.utils.AppUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -16,6 +15,9 @@ import java.util.*;
 @Service
 public class CmReturnedPurchaseServiceImpl implements CmReturnedPurchaseService {
 
+    @Value("${malladmin.domain}")
+    private String domain;
+
     @Resource
     private CmReturnedPurchaseDao cmReturnedPurchaseDao;
     @Resource
@@ -24,8 +26,10 @@ public class CmReturnedPurchaseServiceImpl implements CmReturnedPurchaseService
     private NewOrderProductDao newOrderProductDao;
     @Resource
     private NewShopOrderService newShopOrderService;
-    @Value("${malladmin.domain}")
-    private String domain;
+    @Resource
+    private OrderUtils orderUtils;
+    @Resource
+    private NewOrderDao newOrderDao;
 
     @Override
     public List<Integer> findOrderIdsInApplyReturnFlag(List<Integer> oId) {

+ 40 - 0
src/main/java/com/caimei/modules/order/service/impl/OrderDeliverServiceImpl.java

@@ -0,0 +1,40 @@
+package com.caimei.modules.order.service.impl;
+
+import com.caimei.modules.order.dao.NewOrderDao;
+import com.caimei.modules.order.dao.NewOrderProductDao;
+import com.caimei.modules.order.entity.NewOrder;
+import com.caimei.modules.order.entity.NewOrderProduct;
+import com.caimei.modules.order.service.OrderDeliverService;
+import com.caimei.modules.order.util.OrderUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+ * @author zzj
+ */
+@Slf4j
+@Service
+public class OrderDeliverServiceImpl implements OrderDeliverService {
+
+    @Resource
+    private NewOrderDao orderDao;
+    @Resource
+    private OrderUtils orderUtil;
+    @Resource
+    private NewOrderProductDao orderProductDao;
+
+    @Override
+    public NewOrder toDeliver(Integer orderId) {
+        NewOrder newOrder = orderDao.get(orderId.toString());
+        orderUtil.setReceiverVal(newOrder);
+        List<NewOrderProduct> orderProducts=orderProductDao.findListByOrderId(orderId);
+        orderProducts.forEach(o->{
+            o.setNotOutStore(o.getNotOutStore()-orderProductDao.getActualCancelNum(o.getOrderProductId()));
+        });
+        return newOrder;
+    }
+}

+ 28 - 1
src/main/java/com/caimei/modules/order/service/impl/PayShopServiceImpl.java

@@ -5,6 +5,7 @@ import com.caimei.modules.order.dao.NewOrderDao;
 import com.caimei.modules.order.dao.NewShopOrderDao;
 import com.caimei.modules.order.dao.PayShopDao;
 import com.caimei.modules.order.entity.*;
+import com.caimei.modules.order.service.CmReturnedPurchaseService;
 import com.caimei.modules.order.service.PayShopService;
 import com.caimei.modules.order.util.OrderUtils;
 import com.caimei.modules.shiro.entity.CmMallAdminUser;
@@ -389,10 +390,36 @@ public class PayShopServiceImpl implements PayShopService {
     public ResponseJson<PageInfo<NewOrder>> orderPayInfoList(OrderPayShop orderPayShop, Integer pageNum, Integer pageSize) {
         PageHelper.startPage(pageNum, pageSize);
         List<NewOrder> orderList = newOrderDao.findListByPayShop(orderPayShop);
-        orderUtils.setOrderListValue(orderList);
+        orderList.forEach(o -> orderUtils.setOrderValue(o));
         return ResponseJson.success(new PageInfo<NewOrder>(orderList));
     }
 
+    @Override
+    public ResponseJson<Map<String, Object>> findSplitRecord(Integer orderId) {
+        Map<String, Object> val = new HashMap<>(2);
+        NewOrder newOrder = newOrderDao.get(orderId.toString());
+        orderUtils.setReceiverVal(newOrder);
+        orderUtils.setRefundVal(newOrder);
+        val.put("order", newOrder);
+        List<NewShopOrder> splitRecord = orderUtils.getSplitRecord(newOrder);
+        val.put("splitRecord", splitRecord);
+        return ResponseJson.success(val);
+    }
+
+    @Override
+    public ResponseJson<Map<String, Object>> findReceiptRecord(Integer orderId) {
+        Map<String, Object> val = new HashMap<>(3);
+        NewOrder newOrder = newOrderDao.get(orderId.toString());
+        orderUtils.setReceiverVal(newOrder);
+        orderUtils.setRefundVal(newOrder);
+        val.put("order", newOrder);
+        List<ReceiptVo> receiptVos = orderUtils.getReceiptRecord(newOrder);
+        val.put("receiptList", receiptVos);
+        List<OrderPayShopRecord> payRecords = orderUtils.getPayRecords(newOrder);
+        val.put("payList", payRecords);
+        return null;
+    }
+
     public void setSplitAccountDetail(NewShopOrder shopOrder, PayParamBo payParam, List<SplitAccountPo> list) {
         // 待分账总金额 = 本次支付金额,单位/元
         double splitAmount = payParam.getAllPay();

+ 91 - 0
src/main/java/com/caimei/modules/order/util/OrderPayUtils.java

@@ -0,0 +1,91 @@
+package com.caimei.modules.order.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import okhttp3.*;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author zzj
+ */
+@Slf4j
+@Component
+public class OrderPayUtils {
+
+    public static OkHttpClient client = new OkHttpClient.Builder()
+            .connectTimeout(3, TimeUnit.SECONDS)
+            .readTimeout(20, TimeUnit.SECONDS)
+            .build();
+
+    public Map<String, String> convertBean(Object bean) {
+        Class clazz = bean.getClass();
+        Field[] fields = clazz.getDeclaredFields();
+        for (Field f : fields) {
+            f.setAccessible(true);
+        }
+        try {
+            Map<String, String> retMap = new LinkedHashMap<>();
+            for (Field f : fields) {
+                String key = f.toString().substring(f.toString().lastIndexOf(".") + 1);
+                Object value = f.get(bean);
+                if (value == null) {
+                    value = "";
+                }
+                retMap.put(key, (String) value);
+            }
+            return retMap;
+        } catch (Exception e) {
+            log.info("分账", e);
+            throw new IllegalStateException("分账异常", e);
+        }
+    }
+
+    public <T> T postForm(Map<String, String> params, String url, String sign, Class<T> clazz) {
+        FormBody.Builder builder = new FormBody.Builder();
+        for (Map.Entry<String, String> entry : params.entrySet()) {
+            builder.add(entry.getKey(), entry.getValue());
+        }
+        builder.add("sign", sign);
+        // okHttp post
+        Request request = new Request.Builder()
+                .url(url)
+                .post(builder.build())
+                .build();
+
+        Response response = null;
+        try {
+            response = client.newCall(request).execute();
+        } catch (IOException e) {
+            throw new IllegalStateException("请求出错", e);
+        }
+        if (!response.isSuccessful()) {
+            try {
+                log.info(response.body().string());
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            throw new RuntimeException("请求失败了: http response code: " + response.code());
+        }
+
+        ResponseBody body = response.body();
+        String content = null;
+        try {
+            content = body.string();
+        } catch (IOException e) {
+            throw new IllegalStateException("IO异常", e);
+        }
+        JSONObject res = JSON.parseObject(content);
+        if (!res.getBooleanValue("rt4_success")) {
+            log.error("error: " + res.getString("rt6_retMsg"));
+        }
+        /** rt4_success 为 true,需验签  **/
+        return res.toJavaObject(clazz);
+    }
+}

+ 85 - 77
src/main/java/com/caimei/modules/order/util/OrderUtils.java

@@ -3,10 +3,11 @@ package com.caimei.modules.order.util;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.caimei.modules.order.constant.Constant;
-import com.caimei.modules.order.dao.NewOrderDao;
-import com.caimei.modules.order.dao.NewShopOrderDao;
-import com.caimei.modules.order.dao.PayShopDao;
+import com.caimei.modules.order.dao.*;
 import com.caimei.modules.order.entity.*;
+import com.caimei.modules.order.service.CmReturnedPurchaseService;
+import com.caimei.modules.order.service.impl.CmReturnedPurchaseServiceImpl;
+import com.caimei.utils.AppUtils;
 import com.caimei.utils.Disguiser;
 import com.caimei.utils.MathUtil;
 import com.caimei.utils.RedisService;
@@ -15,6 +16,7 @@ import com.caimei.utils.payUtil.RSA;
 import com.caimei.utils.payUtil.SettlePostFormUtil;
 import lombok.extern.slf4j.Slf4j;
 import okhttp3.*;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -26,7 +28,7 @@ import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
-
+import java.util.stream.Collectors;
 
 
 /**
@@ -36,11 +38,10 @@ import java.util.concurrent.atomic.AtomicReference;
 @Component
 public class OrderUtils {
 
-    public static OkHttpClient client = new OkHttpClient.Builder()
-            .connectTimeout(3, TimeUnit.SECONDS)
-            .readTimeout(20, TimeUnit.SECONDS)
-            .build();
-
+    @Resource
+    private OrderPayUtils orderPayUtil;
+    @Resource
+    private OrderUserInfoDao orderUserInfoDao;
     @Resource
     private NewOrderDao newOrderDao;
     @Resource
@@ -49,6 +50,11 @@ public class OrderUtils {
     private PayShopDao payShopDao;
     @Resource
     private NewShopOrderDao shopOrderDao;
+    @Resource
+    private CmReturnedPurchaseService cmReturnedPurchaseService;
+    @Resource
+    private CmDiscernReceiptDao receiptDao;
+
 
     /**
      * 计算子订单应付
@@ -61,11 +67,13 @@ public class OrderUtils {
         AtomicReference<BigDecimal> organizeFee = new AtomicReference<>();
         AtomicReference<BigDecimal> shopFee = new AtomicReference<>();
         AtomicReference<BigDecimal> totalAmount = new AtomicReference<>();
+        shopOrder.setNewOrderProducts(products);
         products.forEach(p -> {
             // 商品总价 * 供应商成本比例 - 手续费 = 应付供应商
             shopFee.set(MathUtil.add(MathUtil.mul(p.getTotalAmount(), p.getShopPercent(), 2), shopFee.get()));
             // 商品总价 * 组织佣金比例 = 应付组织
             organizeFee.set(MathUtil.add(MathUtil.mul(p.getTotalAmount(), p.getOrganizePercent(), 2), organizeFee.get()));
+            // 商品总价
             totalAmount.set(MathUtil.add(p.getTotalAmount(), totalAmount.get()));
         });
         // 子订单总额 - 付供应商成本 - 付组织 = 应付采美
@@ -108,16 +116,28 @@ public class OrderUtils {
         });
         // 应付供应商
         Double v = MathUtil.sub(shopFee.get(), totalCharge.get()).doubleValue();
+        // 线下已付采美
         Double paidCm = shopOrder.getPayCmAmount();
+        // 线下已付供应商
         Double paidShop = shopOrder.getPayedShopAmount();
+        // 线下由组织代收款,已收金额减已付采美和供应商则为已付组织
+        Double paidOrganize = MathUtil.sub(receiptTotal.get(), (MathUtil.add(paidCm, paidShop))).doubleValue();
         if (onlineFlag.get()) {
-            // 线上计算已付采美
+            // 线上已付采美
             paidCm = payShopDao.findOnlinePayCm(shopOrder.getShopOrderId(), 3);
-            // 线上计算已付供应商
-            paidShop = payShopDao.findOnlinePayCm(shopOrder.getShopOrderId(), 5);
+            // 线上已付供应商
+            paidShop = payShopDao.findOnlinePayCm(shopOrder.getShopOrderId(), 1);
+            // 线上已付组织
+            paidOrganize = payShopDao.findOnlinePayCm(shopOrder.getShopOrderId(), 5);
             shopOrder.setPayCmAmount(paidCm);
             shopOrder.setPayedShopAmount(paidShop);
         }
+        // 待付组织 = 应付 - 已付
+        Double wait = MathUtil.sub(organizeFee.get(), paidOrganize).doubleValue();
+
+        shopOrder.setWaitPayOrganize(wait);
+        shopOrder.setShouldPayOrganize(organizeFee.get().doubleValue());
+        shopOrder.setPaidOrganize(paidOrganize);
         shopOrder.setBrokerage(organizeFee.get().doubleValue());
         shopOrder.setWaitPayCmAmount(MathUtil.sub(cmFee, paidCm).doubleValue());
         shopOrder.setWaitPayShop(MathUtil.sub(v, paidShop).doubleValue());
@@ -204,13 +224,11 @@ public class OrderUtils {
     }
 
 
-    public List<NewOrder> setOrderListValue(List<NewOrder> orderList) {
-        orderList.forEach(o -> {
-            List<NewShopOrder> shopOrders = shopOrderDao.findListByOrderId(o.getOrderId());
-            shopOrders.forEach(this::getShouldPay);
-            o.setNewShopOrders(shopOrders);
-        });
-        return orderList;
+    public NewOrder setOrderValue(NewOrder order) {
+        List<NewShopOrder> shopOrders = shopOrderDao.findListByOrderId(order.getOrderId());
+        shopOrders.forEach(this::getShouldPay);
+        order.setNewShopOrders(shopOrders);
+        return order;
     }
 
     public void splitAccount(List<AccountPayOrder.AccountPayOrderExt.SplitBillRule> splitBillRules, String orderRequestNo,
@@ -252,9 +270,9 @@ public class OrderUtils {
                         .append(accountPayOrder.getP6_ext()).append(Constant.SPLIT)
                         .append(Constant.XUNI);
                 String sign = Disguiser.disguiseMD5(builder.toString().trim());
-                Map<String, String> bean = convertBean(accountPayOrder);
+                Map<String, String> bean = orderPayUtil.convertBean(accountPayOrder);
                 log.info("--------------------> 发送分账参数:  " + bean);
-                Map<String, String> map = postForm(bean, Constant.FZ, sign, Map.class);
+                Map<String, String> map = orderPayUtil.postForm(bean, Constant.FZ, sign, Map.class);
                 log.info("----------------分账返回数据: " + map.toString());
                 if (map != null) {
                     String code = map.get("rt5_retCode");
@@ -279,68 +297,58 @@ public class OrderUtils {
         }
     }
 
-    public Map<String, String> convertBean(Object bean) {
-        Class clazz = bean.getClass();
-        Field[] fields = clazz.getDeclaredFields();
-        for (Field f : fields) {
-            f.setAccessible(true);
-        }
-        try {
-            Map<String, String> retMap = new LinkedHashMap<>();
-            for (Field f : fields) {
-                String key = f.toString().substring(f.toString().lastIndexOf(".") + 1);
-                Object value = f.get(bean);
-                if (value == null) {
-                    value = "";
-                }
-                retMap.put(key, (String) value);
+    /**
+     * 设置收货人信息
+     *
+     * @param newOrder
+     */
+    public void setReceiverVal(NewOrder newOrder) {
+        OrderUserInfo byOrderId = orderUserInfoDao.findByOrderId(newOrder.getOrderId());
+        newOrder.setClubName(byOrderId.getName());
+        newOrder.setAddress(byOrderId.getAddress());
+        newOrder.setReceiver(byOrderId.getShouHuoRen());
+        newOrder.setMobile(byOrderId.getMobile());
+    }
+
+    /**
+     * 设置退款金额
+     *
+     * @param newOrder
+     */
+    public void setRefundVal(NewOrder newOrder) {
+        CmReturnedPurchase cmReturnedPurchase = new CmReturnedPurchase();
+        cmReturnedPurchase.setOrderId(newOrder.getOrderId());
+        List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+        //退款总额(给买家)
+        Double refundFee = 0D;
+        for (CmReturnedPurchase bean : dataList) {
+            if (!"3".equals(bean.getStatus())) {
+                refundFee += bean.getRefundFee();
             }
-            return retMap;
-        } catch (Exception e) {
-            log.info("分账", e);
-            throw new IllegalStateException("分账异常", e);
         }
+        newOrder.setRefundFee(refundFee);
     }
 
-    public <T> T postForm(Map<String, String> params, String url, String sign, Class<T> clazz) {
-        FormBody.Builder builder = new FormBody.Builder();
-        for (Map.Entry<String, String> entry : params.entrySet()) {
-            builder.add(entry.getKey(), entry.getValue());
+    /**
+     * 设置分账记录
+     *
+     * @param newOrder
+     */
+    public List<NewShopOrder> getSplitRecord(NewOrder newOrder) {
+        List<NewShopOrder> shopOrders = payShopDao.findSplitRecord(newOrder.getOrderId());
+        if (null != shopOrders && shopOrders.size() > 0) {
+            shopOrders.forEach(this::getShouldPay);
         }
-        builder.add("sign", sign);
-
-        Request request = new Request.Builder() // okHttp post
-                .url(url)
-                .post(builder.build())
-                .build();
+        return shopOrders;
+    }
 
-        Response response = null;
-        try {
-            response = client.newCall(request).execute();
-        } catch (IOException e) {
-            throw new IllegalStateException("请求出错", e);
-        }
-        if (!response.isSuccessful()) {
-            try {
-                log.info(response.body().string());
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-            throw new RuntimeException("请求失败了: http response code: " + response.code());
-        }
+    public List<ReceiptVo> getReceiptRecord(NewOrder newOrder) {
+        ReceiptVo receiptVo = new ReceiptVo();
+        receiptVo.setOrderId(newOrder.getOrderId().toString());
+        return receiptDao.findReceiptList(receiptVo);
+    }
 
-        ResponseBody body = response.body();
-        String content = null;
-        try {
-            content = body.string();
-        } catch (IOException e) {
-            throw new IllegalStateException("IO异常", e);
-        }
-        JSONObject res = JSON.parseObject(content);
-        if (!res.getBooleanValue("rt4_success")) {
-            log.error("error: " + res.getString("rt6_retMsg"));
-        }
-        /** rt4_success 为 true,需验签  **/
-        return res.toJavaObject(clazz);
+    public List<OrderPayShopRecord> getPayRecords(NewOrder newOrder) {
+        return payShopDao.findPayShopRecordsByOrder(newOrder.getOrderId());
     }
 }

+ 1 - 1
src/main/java/com/caimei/utils/AppKeys.java

@@ -409,7 +409,7 @@ public class AppKeys {
 	public static final String USETCART_INVALID = "userCart_Invalid";
 
 	public static final Integer CLUB_TYPE_NORMAL = 1;
-	public static final String FLAG_YES = "1";
+	public static final Integer FLAG_YES = 1;
 	public static final Integer CLUB_STATUS_UNCHECKED = 1;
 	public static final Integer CLUB_STATUS_CHECKFAILED = 92;
 	public static final String REGSTATUS_UNCHECKED = "2";

+ 2 - 2
src/main/resources/config/dev/application-dev.yml

@@ -12,9 +12,9 @@ spring:
     #数据源连接--start
   datasource:
     driverClassName: com.mysql.jdbc.Driver
-    url: jdbc:mysql://120.79.25.27:3306/caimei?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://192.168.2.100:3306/caimei?characterEncoding=UTF8&serverTimezone=Asia/Shanghai
     username: developer
-    password: J5p3tgOVazNl4ydf
+    password: 05bZ/OxTB:X+yd%1
   data:
     #mongo数据源配置
     mongodb:

+ 1 - 2
src/main/resources/mapper/CmMallOrganizeProductsMapper.xml

@@ -26,7 +26,6 @@
         FROM cm_mall_organize_products a
         <include refid="cmMallOrganizeProductsJoins"/>
         <where>
-
             <if test="id != null and id != ''">
                 AND a.id = #{id}
             </if>
@@ -144,7 +143,7 @@
                cmps.price,
                cs.unit
         from cm_mall_product_sku cmps
-        left join cm_sku cs on cmps.skuId = cs.skuId
+                 left join cm_sku cs on cmps.skuId = cs.skuId
         where cmps.mallProductId = #{productId}
         order by cmps.price asc
     </select>

+ 91 - 108
src/main/resources/mapper/CmUserMapper.xml

@@ -3,6 +3,7 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.modules.club.dao.CmUserDao">
+
     <select id="findListBuyUserInfo" resultType="com.caimei.modules.club.entity.CmUser"
             parameterType="com.caimei.modules.club.entity.CmUser">
         SELECT
@@ -10,12 +11,14 @@
         a.bindMobile,
         a.clubStatus,
         a.registerTime,
+        a.auditTime,
         c.clubId,
         c.linkMan AS "linkMan",
         t.name as "town",
         ci.name as "city",
         p.name as "province",
-        c.address AS "address"
+        c.address AS "address",
+        a.userId
         FROM user a
         LEFT JOIN club c on c.userId = a.userId
         LEFT JOIN town t on t.townId = c.townId
@@ -151,113 +154,93 @@
     </insert>
 
     <update id="update">
-        UPDATE user SET
-        <if test="account != null and account != ''">
-            account = #{account},
-        </if>
-        <if test="bindMobile != null and bindMobile != ''">
-            bindMobile = #{bindMobile},
-        </if>
-        <if test="realName != null and realName != ''">
-            realName = #{realName},
-        </if>
-        <if test="userIdentity != null and userIdentity != ''">
-            userIdentity = #{userIdentity},
-        </if>
-        <if test="mobile != null and mobile != ''">
-            mobile = #{mobile},
-        </if>
-        <if test="userPermission != null and userPermission != ''">
-            userPermission = #{userPermission},
-        </if>
-        <if test="email != null and email != ''">
-            email = #{email},
-        </if>
-        <if test="userName != null and userName != ''">
-            userName = #{userName},
-        </if>
-        <if test="image != null and image != ''">
-            image = #{image},
-        </if>
-        <if test="password != null and password != ''">
-            password = #{password},
-        </if>
-        <if test="name != null and name != ''">
-            name = #{name},
-        </if>
-        <if test="registerUserTypeId != null and registerUserTypeId != ''">
-            registerUserTypeId = #{registerUserTypeId},
-        </if>
-        <if test="manufacturerStatus != null and manufacturerStatus != ''">
-            manufacturerStatus = #{manufacturerStatus},
-        </if>
-        <if test="shopId != null and shopId != ''">
-            shopId = #{shopId},
-        </if>
-        <if test="auditStatus != null and auditStatus != ''">
-            auditStatus = #{auditStatus},
-        </if>
-        <if test="auditTime != null">
-            auditTime = #{auditTime},
-        </if>
-        <if test="auditNote != null and auditNote != ''">
-            auditNote = #{auditNote},
-        </if>
-        <if test="registerTime != null ">
-            registerTime = #{registerTime},
-        </if>
-        <if test="registerIP != null and registerIP != ''">
-            registerIP = #{registerIP},
-        </if>
-        <if test="loginTime != null and loginTime != ''">
-            loginTime = #{loginTime},
-        </if>
-        <if test="loginFailTime != null and loginFailTime != ''">
-            loginFailTime = #{loginFailTime},
-        </if>
-        <if test="loginIP != null and loginIP != ''">
-            loginIP = #{loginIP},
-        </if>
-        <if test="validFlag != null and validFlag != ''">
-            validFlag = #{validFlag},
-        </if>
-        <if test="clubStatus != null and clubStatus != ''">
-            clubStatus = #{clubStatus},
-        </if>
-        <if test="clubId != null and clubId != ''">
-            clubId = #{clubId},
-        </if>
-        <if test="agreeFlag != null and agreeFlag != ''">
-            agreeFlag = #{agreeFlag},
-        </if>
-        <if test="serviceProviderStatus != null and serviceProviderStatus != ''">
-            serviceProviderStatus = #{serviceProviderStatus},
-        </if>
-        <if test="serviceProviderId != null and serviceProviderId != ''">
-            serviceProviderId = #{serviceProviderId},
-        </if>
-        <if test="userMoney != null and userMoney != ''">
-            userMoney = #{userMoney},
-        </if>
-        <if test="logoffTime != null and logoffTime != ''">
-            logoffTime = #{logoffTime},
-        </if>
-        <if test="appKey != null and appKey != ''">
-            appKey = #{appKey},
-        </if>
-        <if test="appSecret != null and appSecret != ''">
-            appSecret = #{appSecret},
-        </if>
-        <if test="scanFlag != null and scanFlag != ''">
-            scanFlag = #{scanFlag},
-        </if>
-        <if test="userBeans != null and userBeans != ''">
-            userBeans = #{userBeans},
-        </if>
-        <if test="guideFlag != null and guideFlag != ''">
-            guideFlag = #{guideFlag},
-        </if>
-        userId = #{userId}
+        UPDATE user
+        <set>
+            <if test="organizeType != null">
+                organizeType = #{organizeType},
+            </if>
+            <if test="account != null and account != ''">
+                account = #{account},
+            </if>
+            <if test="bindMobile != null and bindMobile != ''">
+                bindMobile = #{bindMobile},
+            </if>
+            <if test="realName != null and realName != ''">
+                realName = #{realName},
+            </if>
+            <if test="userIdentity != null and userIdentity != ''">
+                userIdentity = #{userIdentity},
+            </if>
+            <if test="mobile != null and mobile != ''">
+                mobile = #{mobile},
+            </if>
+            <if test="userPermission != null and userPermission != ''">
+                userPermission = #{userPermission},
+            </if>
+            <if test="email != null and email != ''">
+                email = #{email},
+            </if>
+            <if test="userName != null and userName != ''">
+                userName = #{userName},
+            </if>
+            <if test="image != null and image != ''">
+                image = #{image},
+            </if>
+            <if test="password != null and password != ''">
+                password = #{password},
+            </if>
+            <if test="name != null and name != ''">
+                name = #{name},
+            </if>
+            <if test="registerUserTypeId != null and registerUserTypeId != ''">
+                registerUserTypeId = #{registerUserTypeId},
+            </if>
+            <if test="manufacturerStatus != null and manufacturerStatus != ''">
+                manufacturerStatus = #{manufacturerStatus},
+            </if>
+            <if test="shopId != null and shopId != ''">
+                shopId = #{shopId},
+            </if>
+            <if test="auditStatus != null and auditStatus != ''">
+                auditStatus = #{auditStatus},
+            </if>
+            <if test="auditTime != null">
+                auditTime = #{auditTime},
+            </if>
+            <if test="auditNote != null and auditNote != ''">
+                auditNote = #{auditNote},
+            </if>
+            <if test="registerTime != null ">
+                registerTime = #{registerTime},
+            </if>
+            <if test="loginTime != null and loginTime != ''">
+                loginTime = #{loginTime},
+            </if>
+            <if test="validFlag != null and validFlag != ''">
+                validFlag = #{validFlag},
+            </if>
+            <if test="clubStatus != null and clubStatus != ''">
+                clubStatus = #{clubStatus},
+            </if>
+            <if test="clubId != null and clubId != ''">
+                clubId = #{clubId},
+            </if>
+            <if test="agreeFlag != null and agreeFlag != ''">
+                agreeFlag = #{agreeFlag},
+            </if>
+            <if test="serviceProviderStatus != null and serviceProviderStatus != ''">
+                serviceProviderStatus = #{serviceProviderStatus},
+            </if>
+            <if test="serviceProviderId != null and serviceProviderId != ''">
+                serviceProviderId = #{serviceProviderId},
+            </if>
+            <if test="userMoney != null and userMoney != ''">
+                userMoney = #{userMoney},
+            </if>
+            <if test="userBeans != null and userBeans != ''">
+                userBeans = #{userBeans},
+            </if>
+        </set>
         WHERE userId = #{userId}
     </update>
 </mapper>

+ 193 - 191
src/main/resources/mapper/NewCmClubMapper.xml

@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.modules.club.dao.NewCmClubDao">
     <sql id="newCmClubColumns">
-		a.clubId AS "clubId",
+        a.clubId AS "clubId",
 		a.userId AS "userId",
 		a.name AS "name",
 		a.sname AS "sname",
@@ -42,7 +42,7 @@
         a.secondClubType AS "secondClubType",
         a.department AS "department",
         a.medicalPracticeLicenseImg AS "medicalPracticeLicenseImg"
-	</sql>
+    </sql>
 
     <select id="findClubById" parameterType="int" resultType="com.caimei.modules.club.entity.NewCmClub">
         SELECT
@@ -52,196 +52,198 @@
         LEFT JOIN town b ON a.townId =b.townId
         LEFT JOIN city c ON b.cityId=c.cityId
         JOIN province d ON c.`provinceId` =d.`provinceId`
-        WHERE  a.clubId=#{clubId}
+        WHERE a.clubId= #{clubId}
     </select>
 
-	<insert id="insert" parameterType="com.caimei.modules.club.entity.NewCmClub"  keyProperty="clubId" useGeneratedKeys="true">
-		INSERT INTO club(
-			userId,
-			name,
-			sname,
-			logo,
-			legalPerson,
-			provinceId,
-			cityId,
-			townId,
-			flag,
-			spId,
-			mainServiceProviderId,
-			scanTime,
-			address,
-			linkMan,
-			contractPhone,
-			contractMobile,
-			fax,
-			info,
-			addTime,
-			auditTime,
-			auditNote,
-			status,
-			businessLicenseImage,
-			defaultServiceProviderId,
-			defaultServiceProviderUpdTime,
-			empnum,
-			mainpro,
-			scanFlag,
-			headpic,
-			lastModify,
-			firstClubType,
-			socialCreditCode,
-        secondClubType,
-        department,
-        medicalPracticeLicenseImg
-		) VALUES (
-			#{userId},
-			#{name},
-			#{sname},
-			#{logo},
-			#{legalPerson},
-			#{provinceId},
-			#{cityId},
-			#{townId},
-			#{flag},
-			#{spId},
-			#{mainServiceProviderId},
-			#{scanTime},
-			#{address},
-			#{linkMan},
-			#{contractPhone},
-			#{contractMobile},
-			#{fax},
-			#{info},
-			#{addTime},
-			#{auditTime},
-			#{auditNote},
-			#{status},
-			#{businessLicenseImage},
-			#{defaultServiceProviderId},
-			#{defaultServiceProviderUpdTime},
-			#{empnum},
-			#{mainpro},
-			#{scanFlag},
-			#{headpic},
-			#{lastModify},
-			#{firstClubType},
-			#{socialCreditCode},
-        #{secondClubType},
-        #{department},
-        #{medicalPracticeLicenseImg}
-		)
-	</insert>
+    <insert id="insert" parameterType="com.caimei.modules.club.entity.NewCmClub" keyProperty="clubId"
+            useGeneratedKeys="true">
+        INSERT INTO club(userId,
+                         name,
+                         sname,
+                         logo,
+                         legalPerson,
+                         provinceId,
+                         cityId,
+                         townId,
+                         flag,
+                         spId,
+                         mainServiceProviderId,
+                         scanTime,
+                         address,
+                         linkMan,
+                         contractPhone,
+                         contractMobile,
+                         fax,
+                         info,
+                         addTime,
+                         auditTime,
+                         auditNote,
+                         status,
+                         businessLicenseImage,
+                         defaultServiceProviderId,
+                         defaultServiceProviderUpdTime,
+                         empnum,
+                         mainpro,
+                         scanFlag,
+                         headpic,
+                         lastModify,
+                         firstClubType,
+                         socialCreditCode,
+                         secondClubType,
+                         department,
+                         medicalPracticeLicenseImg)
+        VALUES (#{userId},
+                #{name},
+                #{sname},
+                #{logo},
+                #{legalPerson},
+                #{provinceId},
+                #{cityId},
+                #{townId},
+                #{flag},
+                #{spId},
+                #{mainServiceProviderId},
+                #{scanTime},
+                #{address},
+                #{linkMan},
+                #{contractPhone},
+                #{contractMobile},
+                #{fax},
+                #{info},
+                #{addTime},
+                #{auditTime},
+                #{auditNote},
+                #{status},
+                #{businessLicenseImage},
+                #{defaultServiceProviderId},
+                #{defaultServiceProviderUpdTime},
+                #{empnum},
+                #{mainpro},
+                #{scanFlag},
+                #{headpic},
+                #{lastModify},
+                #{firstClubType},
+                #{socialCreditCode},
+                #{secondClubType},
+                #{department},
+                #{medicalPracticeLicenseImg})
+    </insert>
 
-	<update id="update">
-		UPDATE club SET
-		<if test="name != null and name != ''">
-			name = #{name},
-		</if>
-		<if test="sname != null and sname != ''">
-			sname = #{sname},
-		</if>
-		<if test="logo != null and logo != ''">
-			logo = #{logo},
-		</if>
-		<if test="legalPerson != null and legalPerson != ''">
-			legalPerson = #{legalPerson},
-		</if>
-		<if test="provinceId != null and provinceId != ''">
-			provinceId = #{provinceId},
-		</if>
-		<if test="cityId != null and cityId != ''">
-			cityId = #{cityId},
-		</if>
-		<if test="townId != null and townId != ''">
-			townId = #{townId},
-		</if>
-		<if test="flag != null and flag != ''">
-			flag = #{flag},
-		</if>
-		<if test="inviterBindId != null and inviterBindId != ''">
-			inviterBindId = #{inviterBindId},
-		</if>
-		<if test="inviterName != null and inviterName != ''">
-			inviterName = #{inviterName},
-		</if>
-		<if test="spId != null and spId != ''">
-			spId = #{spId},
-		</if>
-		<if test="mainServiceProviderId != null and mainServiceProviderId != ''">
-			mainServiceProviderId = #{mainServiceProviderId},
-		</if>
-		<if test="scanTime != null">
-			scanTime = #{scanTime},
-		</if>
-		<if test="address != null and address != ''">
-			address = #{address},
-		</if>
-		<if test="linkMan != null and linkMan != ''">
-			linkMan = #{linkMan},
-		</if>
-		<if test="contractPhone != null and contractPhone != ''">
-			contractPhone = #{contractPhone},
-		</if>
-		<if test="contractMobile != null and contractMobile != ''">
-			contractMobile = #{contractMobile},
-		</if>
-		<if test="fax != null and fax != ''">
-			fax = #{fax},
-		</if>
-		<if test="info != null and info != ''">
-			info = #{info},
-		</if>
-		<if test="addTime != null">
-			addTime = #{addTime},
-		</if>
-		<if test="auditTime != null">
-			auditTime = #{auditTime},
-		</if>
-		<if test="auditNote != null and auditNote != ''">
-			auditNote = #{auditNote},
-		</if>
-		<if test="status != null and status != ''">
-			status = #{status},
-		</if>
-		<if test="businessLicenseImage != null">
-			businessLicenseImage = #{businessLicenseImage},
-		</if>
-		<if test="socialCreditCode != null and socialCreditCode != ''">
-			socialCreditCode = #{socialCreditCode},
-		</if>
-		<if test="defaultServiceProviderId != null and defaultServiceProviderId != ''">
-			defaultServiceProviderId = #{defaultServiceProviderId},
-		</if>
-		<if test="defaultServiceProviderUpdTime != null and defaultServiceProviderUpdTime != ''">
-			defaultServiceProviderUpdTime = #{defaultServiceProviderUpdTime},
-		</if>
-		<if test="empnum != null and empnum != ''">
-			empnum = #{empnum},
-		</if>
-		<if test="mainpro != null and mainpro != ''">
-			mainpro = #{mainpro},
-		</if>
-		<if test="scanFlag != null and scanFlag != ''">
-			scanFlag = #{scanFlag},
-		</if>
-		<if test="headpic != null">
-			headpic = #{headpic},
-		</if>
-		<if test="lastModify != null and lastModify != ''">
-			lastModify = #{lastModify},
-		</if>
-		<if test="firstClubType != null and firstClubType != ''">
-			firstClubType=#{firstClubType},
-		</if>
-		<if test="secondClubType != null and secondClubType != ''">
-			secondClubType=#{secondClubType},
-		</if>
-		<if test="department != null and department != ''">
-			department=#{department},
-		</if>
-		<if test="medicalPracticeLicenseImg != null and medicalPracticeLicenseImg != ''">
-			medicalPracticeLicenseImg=#{medicalPracticeLicenseImg},
-		</if>
-		userId = #{userId}
-		WHERE clubId = #{clubId}
-	</update>
+    <update id="update">
+        UPDATE club
+        <set>
+            <if test="name != null and name != ''">
+                name = #{name},
+            </if>
+            <if test="sname != null and sname != ''">
+                sname = #{sname},
+            </if>
+            <if test="logo != null and logo != ''">
+                logo = #{logo},
+            </if>
+            <if test="legalPerson != null and legalPerson != ''">
+                legalPerson = #{legalPerson},
+            </if>
+            <if test="provinceId != null and provinceId != ''">
+                provinceId = #{provinceId},
+            </if>
+            <if test="cityId != null and cityId != ''">
+                cityId = #{cityId},
+            </if>
+            <if test="townId != null and townId != ''">
+                townId = #{townId},
+            </if>
+            <if test="flag != null and flag != ''">
+                flag = #{flag},
+            </if>
+            <if test="inviterBindId != null and inviterBindId != ''">
+                inviterBindId = #{inviterBindId},
+            </if>
+            <if test="inviterName != null and inviterName != ''">
+                inviterName = #{inviterName},
+            </if>
+            <if test="spId != null and spId != ''">
+                spId = #{spId},
+            </if>
+            <if test="mainServiceProviderId != null and mainServiceProviderId != ''">
+                mainServiceProviderId = #{mainServiceProviderId},
+            </if>
+            <if test="scanTime != null">
+                scanTime = #{scanTime},
+            </if>
+            <if test="address != null and address != ''">
+                address = #{address},
+            </if>
+            <if test="linkMan != null and linkMan != ''">
+                linkMan = #{linkMan},
+            </if>
+            <if test="contractPhone != null and contractPhone != ''">
+                contractPhone = #{contractPhone},
+            </if>
+            <if test="contractMobile != null and contractMobile != ''">
+                contractMobile = #{contractMobile},
+            </if>
+            <if test="fax != null and fax != ''">
+                fax = #{fax},
+            </if>
+            <if test="info != null and info != ''">
+                info = #{info},
+            </if>
+            <if test="addTime != null">
+                addTime = #{addTime},
+            </if>
+            <if test="auditTime != null">
+                auditTime = #{auditTime},
+            </if>
+            <if test="auditNote != null and auditNote != ''">
+                auditNote = #{auditNote},
+            </if>
+            <if test="status != null and status != ''">
+                status = #{status},
+            </if>
+            <if test="businessLicenseImage != null">
+                businessLicenseImage = #{businessLicenseImage},
+            </if>
+            <if test="socialCreditCode != null and socialCreditCode != ''">
+                socialCreditCode = #{socialCreditCode},
+            </if>
+            <if test="defaultServiceProviderId != null and defaultServiceProviderId != ''">
+                defaultServiceProviderId = #{defaultServiceProviderId},
+            </if>
+            <if test="defaultServiceProviderUpdTime != null and defaultServiceProviderUpdTime != ''">
+                defaultServiceProviderUpdTime = #{defaultServiceProviderUpdTime},
+            </if>
+            <if test="empnum != null and empnum != ''">
+                empnum = #{empnum},
+            </if>
+            <if test="mainpro != null and mainpro != ''">
+                mainpro = #{mainpro},
+            </if>
+            <if test="scanFlag != null and scanFlag != ''">
+                scanFlag = #{scanFlag},
+            </if>
+            <if test="headpic != null">
+                headpic = #{headpic},
+            </if>
+            <if test="lastModify != null and lastModify != ''">
+                lastModify = #{lastModify},
+            </if>
+            <if test="firstClubType != null and firstClubType != ''">
+                firstClubType=#{firstClubType},
+            </if>
+            <if test="secondClubType != null and secondClubType != ''">
+                secondClubType=#{secondClubType},
+            </if>
+            <if test="department != null and department != ''">
+                department=#{department},
+            </if>
+            <if test="medicalPracticeLicenseImg != null and medicalPracticeLicenseImg != ''">
+                medicalPracticeLicenseImg=#{medicalPracticeLicenseImg},
+            </if>
+            <if test="checkMan !=null and checkMan !=''">
+                checkMan = #{checkMan}
+            </if>
+        </set>
+        WHERE clubId = #{clubId}
+    </update>
 </mapper>

+ 18 - 0
src/main/resources/mapper/NewOrderProductMapper.xml

@@ -113,4 +113,22 @@
 		WHERE a.orderProductId = #{orderProductId}
 		and b.status = 1
 	</select>
+
+	<select id="findListByOrderId" resultType="com.caimei.modules.order.entity.NewOrderProduct">
+		SELECT
+		<include refid="orderProductColumns"/>
+		FROM cm_order_product a
+		<include refid="orderProductJoins"/>
+		WHERE a.orderId = #{orderId}
+		and a.shopId != 998
+	</select>
+
+	<select id="getActualCancelNum" resultType="java.lang.Integer">
+		select SUM(crpp.actualCancelNum)
+		from cm_returned_purchase_product crpp
+				 left join cm_returned_purchase rp on rp.id = crpp.returnedID
+		where crpp.orderProductID = #{orderProductID}
+		  and rp.status = '2'
+		  and rp.delFlag = '0'
+	</select>
 </mapper>

+ 16 - 18
src/main/resources/mapper/OrderUserInfoMapper.xml

@@ -3,26 +3,24 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.modules.order.dao.OrderUserInfoDao">
-    <sql id="columns">
-        a.id AS id,
-        a.orderId AS orderId,
-        a.clubId AS clubId,
-        a.userId AS userId,
-        a.name AS name,
-        a.shouHuoRen AS shouHuoRen,
-        a.mobile AS mobile,
-        a.phone AS phone,
-        a.postalCode AS postalCode,
-        a.townId AS townId,
-        a.province AS province,
-        a.city AS city,
-        a.town AS town,
-        a.address AS address
-    </sql>
 
     <select id="findByOrderId" resultType="com.caimei.modules.order.entity.OrderUserInfo" parameterType="int">
-        SELECT <include refid="columns"/>,
-        c.userMoney as userMoney,c.ableUserMoney as ableUserMoney
+        SELECT a.id            AS id,
+               a.orderId       AS orderId,
+               a.clubId        AS clubId,
+               a.userId        AS userId,
+               a.name          AS name,
+               a.shouHuoRen    AS shouHuoRen,
+               a.mobile        AS mobile,
+               a.phone         AS phone,
+               a.postalCode    AS postalCode,
+               a.townId        AS townId,
+               a.province      AS province,
+               a.city          AS city,
+               a.town          AS town,
+               a.address       AS address,
+               c.userMoney     as userMoney,
+               c.ableUserMoney as ableUserMoney
         FROM bp_order_userinfo a
         LEFT JOIN cm_order b on a.orderId = b.orderId
         LEFT JOIN user c on b.userId = c.userId

+ 108 - 23
src/main/resources/mapper/PayShopDao.xml

@@ -297,30 +297,31 @@
     </select>
 
     <select id="findPayShopOrders" resultType="com.caimei.modules.order.entity.NewShopOrder">
-        SELECT DISTINCT
-            a.shopOrderID AS shopOrderId,
-            a.orderID AS orderId,
-            a.organizeID AS organizeId,
-            a.shopOrderNo AS shopOrderNo,
-            a.orderNo AS orderNo,
-            a.totalAmount,
-            a.payCmAmount AS payCmAmount,
-            a.receiptStatus AS receiptStatus,
-            a.orderTime AS orderTime,
-            a.payStatus AS payStatus,
-            a.shopProductAmount AS shopProductAmount,
-            a.shopPostFee AS shopPostFee,
-            ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),0) as payedShopAmount,
-            ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),0) as payCmAmount,
-            a.payedShopAmount AS payedShopAmount,
-            co.payTotalFee AS payTotalFee,
-            s.name AS shopName,
-            s.shopId,
-            a.paying,
-            co.receiptStatus AS orderReceiptStatus
+        SELECT DISTINCT a.shopOrderID       AS shopOrderId,
+                        a.orderID           AS orderId,
+                        a.organizeID        AS organizeId,
+                        a.shopOrderNo       AS shopOrderNo,
+                        a.orderNo           AS orderNo,
+                        a.totalAmount,
+                        a.payCmAmount       AS payCmAmount,
+                        a.receiptStatus     AS receiptStatus,
+                        a.orderTime         AS orderTime,
+                        a.payStatus         AS payStatus,
+                        a.shopProductAmount AS shopProductAmount,
+                        a.shopPostFee       AS shopPostFee,
+                        ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),
+                               0)           as payedShopAmount,
+                        ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),
+                               0)           as payCmAmount,
+                        a.payedShopAmount   AS payedShopAmount,
+                        co.payTotalFee      AS payTotalFee,
+                        s.name              AS shopName,
+                        s.shopId,
+                        a.paying,
+                        co.receiptStatus    AS orderReceiptStatus
         FROM cm_shop_order a
-        LEFT JOIN cm_order co ON co.orderID = a.orderID
-        LEFT JOIN shop s ON s.shopID = a.shopID
+                 LEFT JOIN cm_order co ON co.orderID = a.orderID
+                 LEFT JOIN shop s ON s.shopID = a.shopID
         WHERE a.shopOrderID IN
               (SELECT shoporderId
                FROM cm_pay_shop_record
@@ -343,6 +344,8 @@
                cop.organizePercent,
                cop.cmPercent,
                cop.totalAmount,
+               cop.notOutStore,
+               cop.presentNum,
                (SELECT SUM(crpp.actualReturnedNum) + SUM(crpp.actualCancelNum)
                 FROM cm_returned_purchase_product crpp
                          LEFT JOIN cm_returned_purchase rp ON rp.id = crpp.returnedID
@@ -477,4 +480,86 @@
         WHERE productType = #{status}
           AND shoporderid = #{shopOrderId}
     </select>
+
+    <select id="findSplitRecord" resultType="com.caimei.modules.order.entity.NewShopOrder">
+        SELECT a.payCmAmount              AS payCmAmount,
+               a.shopOrderId              AS shopOrderId,
+               a.orderId                  AS orderId,
+               a.organizeId               AS organizeId,
+               a.shopOrderNo              AS shopOrderNo,
+               a.orderNo                  AS orderNo,
+               a.userId                   AS userId,
+               a.shopId                   AS shopId,
+               a.itemCount                AS itemCount,
+               a.townId                   AS townId,
+               a.productAmount            AS productAmount,
+               a.discountAmount           AS discountAmount,
+               a.totalAmount              AS totalAmount,
+               a.payFlag                  AS payFlag,
+               a.payTime                  AS payTime,
+               a.finishTime               AS finishTime,
+               a.refundStatus             AS refundStatus,
+               a.needPayAmount            AS needPayAmount,
+               a.canRefundAmount          AS canRefundAmount,
+               a.refundAmount             AS refundAmount,
+               a.clubId                   AS clubId,
+               a.spId                     AS spId,
+               a.orderBeanAmount          AS orderBeanAmount,
+               a.useBeanAmount            AS useBeanAmount,
+               a.useBeanFlag              AS useBeanFlag,
+               a.canRefundFlag            AS canRefundFlag,
+               a.useBalanceFlag           AS useBalanceFlag,
+               a.canRefundBeans           AS canRefundBeans,
+               a.freePostageFee           AS freePostageFee,
+               a.freePostageTicketId      AS freePostageTicketId,
+               a.brokerage                AS brokerage,
+               a.delFlag                  AS delFlag,
+               a.refundsAmount            AS refundsAmount,
+               a.orderTime                AS orderTime,
+               a.presentNum               AS presentNum,
+               IFNULL(a.outStoreTimes, 0) AS outStoreTimes,
+               a.receiveGoodsTime         AS receiveGoodsTime,
+               a.note                     AS note,
+               a.payStatus                AS payStatus,
+               a.shopProductAmount        AS shopProductAmount,
+               a.shopPostFee              AS shopPostFee,
+               a.shopTaxFee               AS shopTaxFee,
+               a.shouldPayShopAmount      AS shouldPayShopAmount,
+               a.payedShopAmount          AS payedShopAmount,
+               a.paying                   AS paying,
+               b.name                     as shopName,
+               ifnull((select sum(payAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),
+                      0)                  as payedShopAmount,
+               ifnull((select sum(payCmAmount) from cm_pay_shop_record where shopOrderId = a.shopOrderId),
+                      0)                  as payCmAmount,
+               cps.payTime as splitTime
+        FROM cm_pay_shop_record cps
+        left join cm_shop_order a on a.shopOrderId = cps.shopOrderID
+        left join shop b on a.shopId = b.shopId
+        WHERE a.orderId = #{orderId}
+        ORDER BY a.shopOrderNo DESC
+    </select>
+
+    <select id="findPayShopRecordsByOrder" resultType="com.caimei.modules.order.entity.OrderPayShopRecord">
+        SELECT f.bankAccount AS "bankNameType",
+               a.id          AS "id",
+               a.shopID      AS "shopId",
+               a.shopOrderID AS "shopOrderId",
+               a.shopOrderNo AS "shopOrderNo",
+               a.payAmount   AS "payAmount",
+               a.payCmAmount,
+               a.payType     AS "payType",
+               a.payTime     AS "payTime",
+               a.wipeTime    AS "wipeTime",
+               a.payShopID   AS "payShopID",
+               a.status      AS "status"
+        FROM cm_pay_shop_record a
+        LEFT JOIN cm_offline_collection f ON a.payType = f.type
+        left join cm_pay_shop cps on a.shopID = cps.shopID
+        WHERE a.shopOrderID in (select shopOrderId from cm_shop_order where orderId = #{orderId})
+        and a.delFlag = 0
+        and cps.delFlag = 0
+        and a.status = 1
+        and cps.status = 1
+    </select>
 </mapper>