Browse Source

Merge remote-tracking branch 'origin/developer' into developerA

zhijiezhao 1 năm trước cách đây
mục cha
commit
e1cbc9e2c0
33 tập tin đã thay đổi với 1998 bổ sung472 xóa
  1. 25 12
      src/main/java/com/caimei/modules/bulkpurchase/web/CmRefundsProductController.java
  2. 71 0
      src/main/java/com/caimei/modules/landing/domain/CmQuestionnaire.java
  3. 105 0
      src/main/java/com/caimei/modules/landing/mapper/CmQuestionnaireMapper.java
  4. 157 0
      src/main/java/com/caimei/modules/landing/service/CmQuestionnaireService.java
  5. 132 0
      src/main/java/com/caimei/modules/landing/web/CmQuestionnaireController.java
  6. 8 0
      src/main/java/com/caimei/modules/order/dao/CmDiscernReceiptDao.java
  7. 45 0
      src/main/java/com/caimei/modules/order/entity/NewShopOrder.java
  8. 9 0
      src/main/java/com/caimei/modules/order/entity/ReceiptDetailVo.java
  9. 65 0
      src/main/java/com/caimei/modules/order/entity/ReceiptOrderInfoVo.java
  10. 165 75
      src/main/java/com/caimei/modules/order/service/CmDiscernReceiptService.java
  11. 51 4
      src/main/java/com/caimei/modules/order/service/NewOrderService.java
  12. 14 14
      src/main/java/com/caimei/modules/order/web/NewOrderController.java
  13. 1 1
      src/main/java/com/caimei/modules/user/dao/NewCmShopDao.java
  14. 9 0
      src/main/java/com/caimei/modules/user/entity/NewCmShop.java
  15. 1 2
      src/main/java/com/caimei/modules/user/service/NewCmShopService.java
  16. 373 0
      src/main/resources/mappings/modules/landing/CmQuestionnaireMapper.xml
  17. 68 27
      src/main/resources/mappings/modules/order/CmDiscernReceiptMapper.xml
  18. 4 0
      src/main/resources/mappings/modules/order/CmReceiptOrderRelationMapper.xml
  19. 8 8
      src/main/resources/mappings/modules/order/OrderProductMapper.xml
  20. 1 1
      src/main/resources/mappings/modules/order/ShopOrderMapper.xml
  21. 0 1
      src/main/resources/mappings/modules/product/ProductMapper.xml
  22. 55 54
      src/main/resources/mappings/modules/sys/DictDao.xml
  23. 1 0
      src/main/resources/mappings/modules/user/CmSpMapper.xml
  24. 4 0
      src/main/resources/mappings/modules/user/NewCmShopMapper.xml
  25. 1 1
      src/main/resources/mappings/modules/weisha/CmMallOrganizeMapper.xml
  26. 96 0
      src/main/webapp/WEB-INF/views/modules/landing/cmQuestionnaireGet.jsp
  27. 154 0
      src/main/webapp/WEB-INF/views/modules/landing/cmQuestionnaireList.jsp
  28. 252 214
      src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptForm.jsp
  29. 3 2
      src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptList.jsp
  30. 3 3
      src/main/webapp/WEB-INF/views/modules/order/newOrderList.jsp
  31. 41 4
      src/main/webapp/WEB-INF/views/modules/order/orderDetail.jsp
  32. 67 49
      src/main/webapp/WEB-INF/views/modules/product-new/productEdit.jsp
  33. 9 0
      src/main/webapp/WEB-INF/views/modules/user/newCmShopSetForm.jsp

+ 25 - 12
src/main/java/com/caimei/modules/bulkpurchase/web/CmRefundsProductController.java

@@ -564,12 +564,20 @@ public class CmRefundsProductController extends BaseController {
     public String toRecturnRecordByOrderID(CmReturnedPurchase cmReturnedPurchase, String from, HttpServletRequest request, HttpServletResponse response, Model model) {
         try {
             NewOrder newOrder = newOrderService.get(cmReturnedPurchase.getOrderID().toString());
-            //过滤子订单
-            List<NewShopOrder>  newShopOrders= newOrder.getNewShopOrders().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
-            newOrder.setNewShopOrders(newShopOrders);
-            cmReturnedPurchase.setOrderType(Integer.valueOf(newOrder.getOrderType()));
-            List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+           if(null!= cmReturnedPurchase.getShopOrderID()){
+               //过滤子订单
+               List<NewShopOrder>  newShopOrders= newOrder.getNewShopOrders().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
+               newOrder.setNewShopOrders(newShopOrders);
+               cmReturnedPurchase.setOrderType(Integer.valueOf(newOrder.getOrderType()));
+            }
 
+            List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+            for (CmReturnedPurchase returnedPurchase : dataList) {
+                if (null != cmReturnedPurchase.getShopOrderID()) {
+                    List<ShopOrderReturned> shopOrderReturneds = returnedPurchase.getShopOrderReturnedList().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
+                    returnedPurchase.setShopOrderReturnedList(shopOrderReturneds);
+                }
+            }
             Double returnedPurchaseFee = 0D;    //退款(退货)总金额
             Double refundFee = 0D;  //退款总额(给买家)
             for (CmReturnedPurchase bean : dataList) {
@@ -612,16 +620,21 @@ public class CmRefundsProductController extends BaseController {
     public String toRecturnRecord(CmReturnedPurchase cmReturnedPurchase, HttpServletRequest request, HttpServletResponse response, Model model) {
         try {
             NewOrder order = newOrderService.get(cmReturnedPurchase.getOrderID().toString());
-            //过滤子订单
-            List<NewShopOrder>  newShopOrders= order.getNewShopOrders().stream().filter(s ->
-                    s.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID()) )
-                    .collect(Collectors.toList());
-            order.setNewShopOrders(newShopOrders);
+            if (null != cmReturnedPurchase.getShopOrderID()) {
+                //过滤子订单
+                List<NewShopOrder> newShopOrders = order.getNewShopOrders().stream().filter(s ->
+                        s.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID()))
+                        .collect(Collectors.toList());
+                order.setNewShopOrders(newShopOrders);
+            }
+
             cmReturnedPurchase.setOrderType(Integer.valueOf(order.getOrderType()));
             List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
             for (CmReturnedPurchase returnedPurchase : dataList) {
-                List<ShopOrderReturned> shopOrderReturneds = returnedPurchase.getShopOrderReturnedList().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
-                returnedPurchase.setShopOrderReturnedList(shopOrderReturneds);
+                if (null != cmReturnedPurchase.getShopOrderID()) {
+                    List<ShopOrderReturned> shopOrderReturneds = returnedPurchase.getShopOrderReturnedList().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
+                    returnedPurchase.setShopOrderReturnedList(shopOrderReturneds);
+                }
             }
 
             BpClause bpClause = new BpClause();

+ 71 - 0
src/main/java/com/caimei/modules/landing/domain/CmQuestionnaire.java

@@ -0,0 +1,71 @@
+package com.caimei.modules.landing.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import java.io.Serializable;
+
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+/**
+ * 用户需求调查对象 cm_questionnaire
+ *
+ * @author Kaick
+ * @date 2023-07-13
+ */
+//@Accessors(chain  = true )
+@Data
+@Alias("CmQuestionnaire")
+public class CmQuestionnaire extends DataEntity<CmQuestionnaire> implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 用户需求ID */
+    private String id;
+
+    /** 分类:1 供应商解决方案 */
+    private String type;
+
+    /** 用户ID,为空游客 */
+    private Integer userId;
+
+    /** 用户姓名 */
+    private String userName;
+
+    /** 公司名称 */
+    private String corporateName;
+
+    /** 手机号 */
+    private String mobile;
+
+    /** 解决方案版本 */
+    private Integer level;
+
+    /** 感兴趣内容 */
+    private String content;
+
+    /** 状态:1待处理,2已处理 */
+    private Integer status;
+
+    /** 删除状态:0已删除 1正常 */
+    private String delFlag;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /** 备注 */
+    private String remark;
+
+}
+

+ 105 - 0
src/main/java/com/caimei/modules/landing/mapper/CmQuestionnaireMapper.java

@@ -0,0 +1,105 @@
+package com.caimei.modules.landing.mapper;
+
+import java.util.List;
+
+import com.caimei.modules.landing.domain.CmQuestionnaire;
+import com.thinkgem.jeesite.common.persistence.CrudDao;
+import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 用户需求调查Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-07-13
+ */
+@MyBatisDao
+public interface CmQuestionnaireMapper extends CrudDao<CmQuestionnaire>
+{
+    /**
+     * 查询用户需求调查
+     *
+     * @param id 用户需求调查主键
+     * @return 用户需求调查
+     */
+    public CmQuestionnaire getCmQuestionnaireById(String id);
+
+    /**
+     * 查询用户需求调查Id
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return String
+     */
+    public String getById(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 查询用户需求调查Ids
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return List<String>
+     */
+    public List<String> getByIds(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 查询用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查集合
+     */
+    public CmQuestionnaire getByCmQuestionnaire(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 查询用户需求调查列表
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查集合
+     */
+    public List<CmQuestionnaire> getCmQuestionnaireList(CmQuestionnaire cmQuestionnaire);
+    /**
+     * 查询用户需求调查记录总数
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查Integer
+     */
+    public int getCmQuestionnaireCount(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 新增用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 结果
+     */
+    public int addCmQuestionnaire(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 修改用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 结果
+     */
+    public int updateCmQuestionnaire(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 删除用户需求调查
+     *
+     * @param id 用户需求调查主键
+     * @return 结果
+     */
+    public int delCmQuestionnaireById(String id);
+
+    /**
+     * 批量删除用户需求调查
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmQuestionnaireByIds(@Param("ids") String[] ids);
+
+    /**
+     * 修改批量删除用户需求调查
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int updateDelCmQuestionnaireByIds(@Param("ids") String[] ids,@Param("delFlag") Integer delFlag);
+}

+ 157 - 0
src/main/java/com/caimei/modules/landing/service/CmQuestionnaireService.java

@@ -0,0 +1,157 @@
+package com.caimei.modules.landing.service;
+
+import java.util.Date;
+import java.util.List;
+
+import com.caimei.modules.landing.domain.CmBrandLanding;
+import com.caimei.modules.landing.domain.CmQuestionnaire;
+import com.caimei.modules.landing.mapper.CmBrandLandingMapper;
+import com.caimei.modules.landing.mapper.CmQuestionnaireMapper;
+import com.thinkgem.jeesite.common.service.CrudService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 用户需求调查Service业务层处理
+ *
+ * @author Kaick
+ * @date 2023-07-13
+ */
+@Service
+public class CmQuestionnaireService extends CrudService<CmQuestionnaireMapper, CmQuestionnaire> {
+    @Autowired
+    private CmQuestionnaireMapper cmQuestionnaireMapper;
+
+    /**
+     * 查询用户需求调查
+     *
+     * @param id 用户需求调查主键
+     * @return 用户需求调查
+     */
+    public CmQuestionnaire getCmQuestionnaireById(String id) {
+        return cmQuestionnaireMapper.getCmQuestionnaireById(id);
+    }
+
+    /**
+     * 查询用户需求调查Id
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return String
+     */
+    public String getById(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getById(cmQuestionnaire);
+    }
+
+    /**
+     * 查询用户需求调查Ids
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return List<String>
+     */
+    public List<String> getByIds(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getByIds(cmQuestionnaire);
+    }
+
+    /**
+     * 查询用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查
+     */
+    public CmQuestionnaire getByCmQuestionnaire(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getByCmQuestionnaire(cmQuestionnaire);
+    }
+
+    /**
+     * 查询用户需求调查列表
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查
+     */
+    public List<CmQuestionnaire> getCmQuestionnaireList(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getCmQuestionnaireList(cmQuestionnaire);
+    }
+
+    /**
+     * 查询用户需求调查记录总数
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查
+     */
+    public int getCmQuestionnaireCount(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getCmQuestionnaireCount(cmQuestionnaire);
+    }
+
+    /**
+     * 新增用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 结果
+     */
+    public int addCmQuestionnaire(CmQuestionnaire cmQuestionnaire) {
+        cmQuestionnaire.setCreateTime(new Date());
+        return cmQuestionnaireMapper.addCmQuestionnaire(cmQuestionnaire);
+    }
+
+    /**
+     * 修改用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 结果
+     */
+    @Transactional(readOnly = false)
+    public int updateCmQuestionnaire(CmQuestionnaire cmQuestionnaire) {
+        cmQuestionnaire.setUpdateTime(new Date());
+        return cmQuestionnaireMapper.updateCmQuestionnaire(cmQuestionnaire);
+    }
+
+    /**
+     * 批量删除用户需求调查
+     *
+     * @param ids 需要删除的用户需求调查主键
+     * @return 结果
+     */
+    public int delCmQuestionnaireByIds(String[] ids) {
+        return cmQuestionnaireMapper.updateDelCmQuestionnaireByIds(ids, 1);
+        //return cmQuestionnaireMapper.delCmQuestionnaireByIds(ids);
+    }
+
+    /**
+     * 删除用户需求调查信息
+     *
+     * @param id 用户需求调查主键
+     * @return 结果
+     */
+    public int delCmQuestionnaireById(String id) {
+        CmQuestionnaire cmQuestionnaire = new CmQuestionnaire();
+        cmQuestionnaire.setId(id);
+        cmQuestionnaire.setDelFlag("1");
+        return cmQuestionnaireMapper.updateCmQuestionnaire(cmQuestionnaire);
+        //return cmQuestionnaireMapper.delCmQuestionnaireById(id);
+    }
+
+    /**
+     * 批量新增用户需求调查
+     *
+     * @param cmQuestionnaireList 用户需求调查列表
+     * @return 结果
+     */
+    public void batchAddCmQuestionnaire(List<CmQuestionnaire> cmQuestionnaireList) {
+        for (CmQuestionnaire cmQuestionnaire : cmQuestionnaireList) {
+            cmQuestionnaireMapper.addCmQuestionnaire(cmQuestionnaire);
+        }
+    }
+
+    /**
+     * 批量修改用户需求调查
+     *
+     * @param cmQuestionnaireList 用户需求调查列表
+     * @return 结果
+     */
+    public void batchUpdateCmQuestionnaire(List<CmQuestionnaire> cmQuestionnaireList) {
+        for (CmQuestionnaire cmQuestionnaire : cmQuestionnaireList) {
+            cmQuestionnaireMapper.updateCmQuestionnaire(cmQuestionnaire);
+        }
+    }
+}

+ 132 - 0
src/main/java/com/caimei/modules/landing/web/CmQuestionnaireController.java

@@ -0,0 +1,132 @@
+package com.caimei.modules.landing.web;
+
+import com.caimei.constants.common.RedisKeyUtil;
+import com.caimei.dfs.image.beens.ImageUploadInfo;
+import com.caimei.modules.common.utils.UploadUtils;
+import com.caimei.modules.landing.domain.CmBrandFiles;
+import com.caimei.modules.landing.domain.CmBrandLanding;
+import com.caimei.modules.landing.domain.CmQuestionnaire;
+import com.caimei.modules.landing.service.CmBrandLandingService;
+import com.caimei.modules.landing.service.CmQuestionnaireService;
+import com.caimei.modules.opensearch.GenerateUtils;
+import com.caimei.modules.sys.utils.UploadImageUtils;
+import com.caimei.redis.RedisService;
+import com.caimei.vo.JsonModel;
+import com.google.common.collect.Maps;
+import com.thinkgem.jeesite.common.config.Global;
+import com.thinkgem.jeesite.common.persistence.Page;
+import com.thinkgem.jeesite.common.utils.Encodes;
+import com.thinkgem.jeesite.common.utils.StringUtils;
+import com.thinkgem.jeesite.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * 功能描述: 用户需求CmQuestionnaireController
+ * @auther: Kaick
+ * @date: 2023/7/13 16:15
+ */
+
+@Controller
+@RequestMapping("${adminPath}/cmQuestionnaire")
+public class CmQuestionnaireController extends BaseController {
+    @Autowired
+    private CmQuestionnaireService cmQuestionnaireService;
+
+    /**
+     * 查询用户需求列表
+     */
+    @RequestMapping(value = {"list", ""})
+    public String list(CmQuestionnaire cmQuestionnaire, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<CmQuestionnaire> page = cmQuestionnaireService.findPage(new Page<CmQuestionnaire>(request, response), cmQuestionnaire);
+        model.addAttribute("page", page);
+        return "modules/landing/cmQuestionnaireList";
+    }
+
+
+    /**
+     * 获取用户需求详细信息
+     */
+    @RequestMapping(value = "form")
+    public String form(CmQuestionnaire cmQuestionnaire, Model model) {
+        CmQuestionnaire cmQuestionnaireById = cmQuestionnaireService.getCmQuestionnaireById(cmQuestionnaire.getId());
+        model.addAttribute("cmQuestionnaire", cmQuestionnaireById);
+        return "modules/landing/cmQuestionnaireGet";
+    }
+
+    /**
+     * 新增修改用户需求
+     */
+    @RequestMapping(value = "save")
+    public String save(CmQuestionnaire cmQuestionnaire, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request) {
+        if (StringUtils.isBlank(cmQuestionnaire.getId())) {
+            cmQuestionnaire.setCreateTime(new Date());
+            cmQuestionnaireService.addCmQuestionnaire(cmQuestionnaire);
+            if (cmQuestionnaire.getType().equals("1")) {
+                addMessage(redirectAttributes, "保存用户需求成功");
+            }
+        } else {
+            cmQuestionnaire.setUpdateTime(new Date());
+            cmQuestionnaireService.updateCmQuestionnaire(cmQuestionnaire);
+            if (cmQuestionnaire.getType().equals("1")) {
+                addMessage(redirectAttributes, "修改用户需求成功");
+            }
+        }
+        return "redirect:" + Global.getAdminPath() + "/cmBrandLanding/list?type=" + cmQuestionnaire.getType();
+    }
+
+    /**
+     * 删除用户需求
+     */
+    @RequestMapping(value = "del/{type}/{ids}")
+    public String delete(@PathVariable String[] ids, @PathVariable() Integer type, RedirectAttributes redirectAttributes) {
+        cmQuestionnaireService.delCmQuestionnaireByIds(ids);
+        if (type == 1) {
+            addMessage(redirectAttributes, "删除用户需求成功");
+        }
+        return "redirect:" + Global.getAdminPath() + "/cmBrandLanding/list?type=" + type;
+    }
+
+    /**
+     * 功能描述:修改用户需求状态
+     *
+     * @param cmQuestionnaire
+     * @param request
+     * @param response
+     * @return [cmQuestionnaire, request, response]
+     * @auther: Kaick
+     * @date: 2023/7/13 16:14
+     */
+    @ResponseBody
+    @RequestMapping(value = "updateStatus")
+    public Map<String, Object> updateEnabledStatus(CmQuestionnaire cmQuestionnaire, HttpServletRequest request, HttpServletResponse response) {
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            //封装数据
+            CmQuestionnaire cmQuestionnaireFrom = new CmQuestionnaire();
+            cmQuestionnaireFrom.setId(cmQuestionnaire.getId());
+            cmQuestionnaireFrom.setStatus(cmQuestionnaire.getStatus());
+            cmQuestionnaireService.updateCmQuestionnaire(cmQuestionnaireFrom);
+            map.put("success", true);
+            map.put("msg", "修改成功");
+        } catch (Exception e) {
+            logger.debug(e.toString(), e);
+            map.put("success", false);
+            map.put("msg", "修改失败");
+        }
+        return map;
+    }
+}

+ 8 - 0
src/main/java/com/caimei/modules/order/dao/CmDiscernReceiptDao.java

@@ -18,6 +18,8 @@ import java.util.Map;
 @MyBatisDao
 public interface CmDiscernReceiptDao extends CrudDao<CmDiscernReceipt> {
 
+    List<Map<String, Object>> getShopOrderIDStr(@Param("id") String id);
+
     List<Map<String, Object>> getOrderIDStr(@Param("id") String id);
 
     ReceiptDetailVo getInfos(@Param("receiptID") String receiptID);
@@ -50,8 +52,14 @@ public interface CmDiscernReceiptDao extends CrudDao<CmDiscernReceipt> {
 
     CmDiscernReceipt findSmoothoutInfo(@Param("orderID") String orderID);
 
+    CmDiscernReceipt findSmoothoutshopInfo(@Param("shopOrderId") Integer shopOrderId);
+
+    List<CmReceiptOrderRelation> getPaidAmountByOrderId(@Param("shopOrderId") Integer shopOrderId);
+
     double getAssociateAmount(@Param("orderID") String orderID);
 
+    double getShopAssociateAmount(@Param("shopOrderId") String shopOrderId);
+
     double getReturnBalanceAmount(@Param("receiptId") String receiptId);
 
     List<CmMainReceiptExport> exportOnlyBalancePay(CmDiscernReceipt cmDiscernReceipt);

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

@@ -65,6 +65,11 @@ public class NewShopOrder extends DataEntity<NewShopOrder> {
     private Integer canRefundBeans;//    int(11) comment '可以退还的采美豆个数',
     private Integer orderDeliveryID;//   int(1) comment '运费订单ID',
     private Double freePostageFee;//    decimal(10,2) comment '订单包邮时本该支付的运费',
+    private String associationType;//订单关联方式: 1手动 2自动
+    private String confirmType;    // 收款确认类型(1 小额抹平确认,2 大额抹平确认,3 大额退款余额,4 确认关联)
+    private boolean receiptOrderFlag;// 判断订单中抹平的订单是否是和多个订单一起支付的,
+    private Double orderReceivedAmount;//订单已收金额(此收款只计算线上线下收款记录payableAmount表金额)
+    private Double returnBalanceAmount;// 退款余额金额
 
 
 
@@ -556,6 +561,46 @@ public class NewShopOrder extends DataEntity<NewShopOrder> {
         this.freePostageFee = freePostageFee;
     }
 
+    public String getAssociationType() {
+        return associationType;
+    }
+
+    public void setAssociationType(String associationType) {
+        this.associationType = associationType;
+    }
+
+    public String getConfirmType() {
+        return confirmType;
+    }
+
+    public void setConfirmType(String confirmType) {
+        this.confirmType = confirmType;
+    }
+
+    public boolean isReceiptOrderFlag() {
+        return receiptOrderFlag;
+    }
+
+    public void setReceiptOrderFlag(boolean receiptOrderFlag) {
+        this.receiptOrderFlag = receiptOrderFlag;
+    }
+
+    public Double getOrderReceivedAmount() {
+        return orderReceivedAmount;
+    }
+
+    public void setOrderReceivedAmount(Double orderReceivedAmount) {
+        this.orderReceivedAmount = orderReceivedAmount;
+    }
+
+    public Double getReturnBalanceAmount() {
+        return returnBalanceAmount;
+    }
+
+    public void setReturnBalanceAmount(Double returnBalanceAmount) {
+        this.returnBalanceAmount = returnBalanceAmount;
+    }
+
     public Integer getFreePostageTicketID() {
         return freePostageTicketID;
     }

+ 9 - 0
src/main/java/com/caimei/modules/order/entity/ReceiptDetailVo.java

@@ -26,6 +26,7 @@ public class ReceiptDetailVo {
     private String confirmType;// 确认订单类型:1小额抹平确认,2大额抹平确认,3大额退款余额,4确认关联
     private String smsContent;     //短信内容
     private String cancelReason;//撤销原因
+    private Double needAmount;  // 子订单应该总金额
     /**
      * 返佣关联备注
      */
@@ -60,6 +61,14 @@ public class ReceiptDetailVo {
         this.vipInfo = vipInfo;
     }
 
+    public Double getNeedAmount() {
+        return needAmount;
+    }
+
+    public void setNeedAmount(Double needAmount) {
+        this.needAmount = needAmount;
+    }
+
     public String getRebateRemarks() {
         return rebateRemarks;
     }

+ 65 - 0
src/main/java/com/caimei/modules/order/entity/ReceiptOrderInfoVo.java

@@ -33,6 +33,15 @@ public class ReceiptOrderInfoVo {
     private Double payedShopAmount;     //已付供应商金额
     private Double refundsAmount;       //已退款供应商金额
 
+    private Integer identifying; // 查询标识
+
+
+    private String associationType;//订单关联方式: 1手动 2自动
+    private String confirmType;    // 收款确认类型(1 小额抹平确认,2 大额抹平确认,3 大额退款余额,4 确认关联)
+    private Double restAmount;      // 待付金额
+    private Double orderReceivedAmount;//订单已收金额(此收款只计算线上线下收款记录payableAmount表金额)
+    private Double returnBalanceAmount;// 退款余额金额
+    private Double accountAmount;//     decimal(20,2) comment '余额支付时使用的金额',
 
     public String getOrganizeID() {
         return organizeID;
@@ -217,4 +226,60 @@ public class ReceiptOrderInfoVo {
     public void setShopOrderInfos(List<NewShopOrder> shopOrderInfos) {
         this.shopOrderInfos = shopOrderInfos;
     }
+
+    public Integer getIdentifying() {
+        return identifying;
+    }
+
+    public void setIdentifying(Integer identifying) {
+        this.identifying = identifying;
+    }
+
+    public String getAssociationType() {
+        return associationType;
+    }
+
+    public void setAssociationType(String associationType) {
+        this.associationType = associationType;
+    }
+
+    public String getConfirmType() {
+        return confirmType;
+    }
+
+    public void setConfirmType(String confirmType) {
+        this.confirmType = confirmType;
+    }
+
+    public Double getRestAmount() {
+        return restAmount;
+    }
+
+    public void setRestAmount(Double restAmount) {
+        this.restAmount = restAmount;
+    }
+
+    public Double getOrderReceivedAmount() {
+        return orderReceivedAmount;
+    }
+
+    public void setOrderReceivedAmount(Double orderReceivedAmount) {
+        this.orderReceivedAmount = orderReceivedAmount;
+    }
+
+    public Double getReturnBalanceAmount() {
+        return returnBalanceAmount;
+    }
+
+    public void setReturnBalanceAmount(Double returnBalanceAmount) {
+        this.returnBalanceAmount = returnBalanceAmount;
+    }
+
+    public Double getAccountAmount() {
+        return accountAmount;
+    }
+
+    public void setAccountAmount(Double accountAmount) {
+        this.accountAmount = accountAmount;
+    }
 }

+ 165 - 75
src/main/java/com/caimei/modules/order/service/CmDiscernReceiptService.java

@@ -21,6 +21,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -76,7 +78,21 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
             String type = "";
             String no = "";
             if ("1".equals(bean.getReceiptType()) || "3".equals(bean.getReceiptType()) || "5".equals(bean.getReceiptType())) {
-                List<Map<String, Object>> orderIDs = cmDiscernReceiptDao.getOrderIDStr(bean.getId());
+                List<Map<String, Object>> orderIDs = cmDiscernReceiptDao.getShopOrderIDStr(bean.getId());
+                boolean flag = false;
+                boolean mapFlag = false;
+                if (orderIDs == null || orderIDs.size()<=0) {
+                    flag = true;
+                }
+                for (Map<String, Object> m : orderIDs){
+                    mapFlag = ObjectUtils.isEmpty(m);
+                }
+                if (!mapFlag && orderIDs != null && orderIDs.size()>0 && null == orderIDs.get(0).get("shopOrderId")) {
+                    flag = true;
+                }
+                if (flag) {
+                    orderIDs = cmDiscernReceiptDao.getOrderIDStr(bean.getId());
+                }
                 for (Map<String, Object> map : orderIDs) {
                     if (!ObjectUtils.isEmpty(map)) {
                         if ("".equals(type)) {
@@ -99,9 +115,11 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
                             type += ("<br>" + (map.get("orderType").toString().equals("0") ? "协销" : "自主"));
                         }
                         if ("".equals(no)) {
-                            no += "<a href='/a/order/detail?id=" + map.get("orderID") + "'>" + map.get("orderNo") + "</a>";
+                            // no += "<a href='/a/order/detail?id=" + map.get("orderID") + "'>" + map.get("shopOrderNo") + "</a>";
+                            no += "<a href='/a/order/detail?id=" + map.get("orderID") + "&shopOrderID=" + map.get("shopOrderId") + "'>" + "子订单" + map.get("shopOrderNo") + "("+map.get("shopOrderId")+")" + "</a>";
                         } else {
-                            no += ("<br><a href='/a/order/detail?id=" + map.get("orderID") + "'>" + map.get("orderNo")) + "</a>";
+                            // no += ("<br><a href='/a/order/detail?id=" + map.get("orderID") + "'>" + map.get("shopOrderNo")) + "</a>";
+                            no += ("<br><a href='/a/order/detail?id=" + map.get("orderID") + "&shopOrderID=" + map.get("shopOrderId") + "'>" + "子订单" + map.get("shopOrderNo") + "("+map.get("shopOrderId")+")") + "</a>";
                         }
                     }
                 }
@@ -143,80 +161,152 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
 //        vo.setReceiptOrderFlag(receiptOrderFlag);//设置一款多单状态
         List<ReceiptOrderInfoVo> orderInfos = new ArrayList<>(); //一个收款可能会关联了一个或多个订单
         ReceiptOrderInfoVo receiptOrderInfoVo = null;
-        if(null!=cmDiscernReceipt.getShopOrderId()){
-            receiptOrderInfoVo=cmDiscernReceiptDao.getOrderInfoByShopOrderID(cmDiscernReceipt.getShopOrderId().toString());
-            BigDecimal add = MathUtil.add(receiptOrderInfoVo.getReceiptAmount(),cmDiscernReceiptService.findShoOrderIDReceipt(cmDiscernReceipt.getShopOrderId()));
-            receiptOrderInfoVo.setReceiptAmount(add.toString());
-            orderInfos.add(receiptOrderInfoVo);
+        double needAmount = 0d;
+        for(CmReceiptOrderRelation relation : relations) {
+            if (null != relation.getShopOrderId()) {
+                receiptOrderInfoVo = cmDiscernReceiptDao.getOrderInfoByShopOrderID(relation.getShopOrderId().toString());
+                BigDecimal add = MathUtil.add(receiptOrderInfoVo.getReceiptAmount(), cmDiscernReceiptService.findShoOrderIDReceipt(relation.getShopOrderId()));
+                receiptOrderInfoVo.setReceiptAmount(add.toString());
+                List<CmReceiptOrderRelation> amountByOrderId = cmDiscernReceiptDao.getPaidAmountByOrderId(relation.getShopOrderId());
+                // 子订单应付金额
+                needAmount += Double.parseDouble(receiptOrderInfoVo.getShopOrderAmount());
+                // 收款金额
+                for (CmReceiptOrderRelation receiptOrderRelation : amountByOrderId) {
+                    if (!receiptOrderRelation.getReceiptID().equals(cmDiscernReceipt.getId())) {
+                        needAmount -= Double.parseDouble(receiptOrderRelation.getAssociateAmount());
+                    }
+                }
+                orderInfos.add(receiptOrderInfoVo);
+                //是否抹平支付过(抹平最多只允许存在一次)
+                CmDiscernReceipt cmDiscernReceiptInfo = cmDiscernReceiptDao.findSmoothoutshopInfo(Integer.parseInt(receiptOrderInfoVo.getShopOrderID()));
+                if (null != cmDiscernReceiptInfo) {
+                    receiptOrderInfoVo.setAssociationType(cmDiscernReceiptInfo.getAssociationType());
+                    String confirmType = cmDiscernReceiptInfo.getConfirmType();
+                    receiptOrderInfoVo.setConfirmType(confirmType);
+
+                    // 是否是一比款收了多个订单
+                    if (StringUtils.equals(confirmType, "1") || StringUtils.equals(confirmType, "2") || StringUtils.equals(confirmType, "3")) {
+                        List<CmReceiptOrderRelation> byReceiptList = cmReceiptOrderRelationService.findByReceiptID(cmDiscernReceiptInfo.getId());
+                        if (CollectionUtils.isNotEmpty(byReceiptList) && byReceiptList.size() > 1) {
+                            receiptOrderInfoVo.setReceiptOrderFlag(true);
+                        }
+                    }
+                    if (StringUtils.equals(cmDiscernReceiptInfo.getConfirmType(), "1") || StringUtils.equals(cmDiscernReceiptInfo.getConfirmType(), "2") || StringUtils.equals(cmDiscernReceiptInfo.getConfirmType(), "3")) {
+                        receiptOrderInfoVo.setRestAmount(0d);
+                    }
+                }
+                // 订单已收款才会出现抹平或者多收退余额,(已收再退款或者撤销退款订单即使存在抹平也需要当未抹平重新计算付款)
+                String receiptStatus = receiptOrderInfoVo.getReceiptStatus();
+                if (StringUtils.equals("3", receiptStatus)) {
+                    if (null != cmDiscernReceiptInfo) {
+                        String confirmType = cmDiscernReceiptInfo.getConfirmType();
+                        receiptOrderInfoVo.setConfirmType(confirmType);
+                        double associateAmount = cmDiscernReceiptDao.getShopAssociateAmount(String.valueOf(receiptOrderInfoVo.getShopOrderID()));
+                        receiptOrderInfoVo.setOrderReceivedAmount(associateAmount + receiptOrderInfoVo.getAccountAmount());
+                        //大额退余额
+                        if (StringUtils.equals("3", confirmType)) {
+                            String shopReceiptId = cmDiscernReceiptInfo.getId();
+                            double returnBalanceAmount = cmDiscernReceiptDao.getReturnBalanceAmount(shopReceiptId);
+                            receiptOrderInfoVo.setReturnBalanceAmount(returnBalanceAmount);
+                        }
+                    }
+                }
+                if (null != receiptOrderInfoVo) {
+                    receiptOrderInfoVo.setRelationType("1");
+                    if ("5".equals(vo.getReceiptType())) {
+                        //供应商退款,已退金额
+                        List<CmRefundShopRecord> records = cmRefundShopRecordDao.getRefundedRecords(receiptOrderInfoVo.getShopOrderID());
+                        if (records != null && records.size() > 0) {
+                            Double collect = records.stream().mapToDouble(CmRefundShopRecord::getRefundAmount).sum();
+                            receiptOrderInfoVo.setRefundsAmount(collect);
+                        } else {
+                            receiptOrderInfoVo.setRefundsAmount(0d);
+                        }
+                    }
+                }
+                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                String oldDateString = "2023-06-29";
+                try {
+                    Date oldDate = dateFormat.parse(oldDateString);
+                    if (oldDate.after(dateFormat.parse(relation.getReceiptDate()))) {
+                        receiptOrderInfoVo.setIdentifying(2);
+                    } else {
+                        receiptOrderInfoVo.setIdentifying(1);
+                    }
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+                List<ReceiptRecordVo> receiptRecordByOrderID = cmDiscernReceiptDao.findReceiptRecordByOrderID(receiptOrderInfoVo);
+                // 暂时不启用抹平明细
+                if (CollectionUtils.isNotEmpty(receiptRecordByOrderID)) {
+                    for (ReceiptRecordVo v : receiptRecordByOrderID) {
+                        if (StringUtils.equals("3", v.getConfirmType())) {
+                            String id = v.getReceiptID();
+                            double returnBalanceAmount = cmDiscernReceiptDao.getReturnBalanceAmount(id);
+                            v.setReturnBalanceAmount(returnBalanceAmount);
+                        }
+                        //统计当前已收
+                        double associateAmount = cmDiscernReceiptDao.getShopAssociateAmount(String.valueOf(receiptOrderInfoVo.getShopOrderID()));
+                        v.setOrderReceivedAmount(associateAmount);
+                    }
+                }
+                //一个订单又包含了多个收款记录
+                receiptOrderInfoVo.setReceiptRecordVo(receiptRecordByOrderID);
+            }
         }
-
-//        for (CmReceiptOrderRelation relation : relations) {
-//            ReceiptOrderInfoVo roi = null; //这是通过订单列表上的一条收款记录对应的多个订单中的一个订单
-//            if ("1".equals(relation.getRelationType())) { // relation.orderID 指的是子订单id
-//                roi = cmDiscernReceiptDao.getOrderInfoByShopOrderID(relation.getOrderID());
-//                if (null != roi) {
-//                    roi.setRelationType("1");
-//                    if ("5".equals(vo.getReceiptType())) {
-//                        //供应商退款,已退金额
-//                        List<CmRefundShopRecord> records = cmRefundShopRecordDao.getRefundedRecords(roi.getShopOrderID());
-//                        if (records != null && records.size() > 0) {
-//                            Double collect = records.stream().mapToDouble(CmRefundShopRecord::getRefundAmount).sum();
-//                            roi.setRefundsAmount(collect);
-//                        } else {
-//                            roi.setRefundsAmount(0d);
-//                        }
-//                        //查询收款供应商退款金额
-//                        /*BigDecimal shopRefundAmount = cmRefundShopRecordDao.findShopRefund(Integer.valueOf(roi.getShopOrderID()));
+        vo.setNeedAmount(needAmount);
+        /*for (CmReceiptOrderRelation relation : relations) {
+            ReceiptOrderInfoVo roi = null; //这是通过订单列表上的一条收款记录对应的多个订单中的一个订单
+            if ("1".equals(relation.getRelationType())) { // relation.orderID 指的是子订单id
+                roi = cmDiscernReceiptDao.getOrderInfoByShopOrderID(relation.getShopOrderId().toString());
+                if (null != roi) {
+                    roi.setRelationType("1");
+                    if ("5".equals(vo.getReceiptType())) {
+                        //供应商退款,已退金额
+                        List<CmRefundShopRecord> records = cmRefundShopRecordDao.getRefundedRecords(roi.getShopOrderID());
+                        if (records != null && records.size() > 0) {
+                            Double collect = records.stream().mapToDouble(CmRefundShopRecord::getRefundAmount).sum();
+                            roi.setRefundsAmount(collect);
+                        } else {
+                            roi.setRefundsAmount(0d);
+                        }
+                        //查询收款供应商退款金额
+//                        BigDecimal shopRefundAmount = cmRefundShopRecordDao.findShopRefund(Integer.valueOf(roi.getShopOrderID()));
 //                        BigDecimal refundsAmount = MathUtil.add(roi.getRefundsAmount(), shopRefundAmount);
-//                        roi.setRefundsAmount(refundsAmount.doubleValue());*/
-//                    }
-//                }
-//            }
-//            if ("2".equals(relation.getRelationType())) { // relation.orderID 指的是主订单id
-//                roi = cmDiscernReceiptDao.getOrderInfoByOrderID(relation.getOrderID());
-//                if (null != roi) {
-//                    roi.setRelationType("2");
-//                    if (0 == roi.getOnlinePayFlag()) {
-//                        // 可以线上支付,查询子订单信息
-//                        List<NewShopOrder> shopOrderInfos = cmDiscernReceiptDao.getShopOrderInfos(null, relation.getOrderID());
-//                        roi.setShopOrderInfos(shopOrderInfos);
-//                    }
-//                }
-//            }
-//            if (null != roi) {
-//                List<ReceiptRecordVo> receiptRecordByOrderID = cmDiscernReceiptDao.findReceiptRecordByOrderID(roi);
-//                //                暂时不启用抹平明细
-//                if (CollectionUtils.isNotEmpty(receiptRecordByOrderID)) {
-//                    for (ReceiptRecordVo v : receiptRecordByOrderID) {
-//                        if (StringUtils.equals("3", v.getConfirmType())) {
-//                            String id = v.getReceiptID();
-//                            double returnBalanceAmount = cmDiscernReceiptDao.getReturnBalanceAmount(id);
-//                            v.setReturnBalanceAmount(returnBalanceAmount);
-//                        }
-//                        //统计当前已收
-//                        double associateAmount = cmDiscernReceiptDao.getAssociateAmount(String.valueOf(roi.getOrderID()));
-//                        v.setOrderReceivedAmount(associateAmount);
-//                    }
-//                }
-//                //一个订单又包含了多个收款记录
-//                roi.setReceiptRecordVo(receiptRecordByOrderID);
-//                orderInfos.add(roi);
-//            }
-//        }
-//        if ("6".equals(vo.getReceiptType())) {
-//            // 3超级会员款
-//            ReceiptVipInfoVo receiptVipInfo = cmDiscernReceiptDao.getReceiptVipInfo(vo.getReceiptID());
-//            vo.setVipInfo(receiptVipInfo);
-//        }
-//        if ("7".equals(vo.getReceiptType())) {
-//            // 二手商品上架费
-//
-//        }
-//        if ("8".equals(vo.getReceiptType())) {
-//            //优惠券购买费
-//            ReceipCouponInfoVo couponInfo = cmDiscernReceiptDao.getCouponInfo(vo.getReceiptID());
-//            vo.setCouponInfo(couponInfo);
-//        }
+//                        roi.setRefundsAmount(refundsAmount.doubleValue());
+                    }
+                }
+            }
+            if ("2".equals(relation.getRelationType())) { // relation.orderID 指的是主订单id
+                roi = cmDiscernReceiptDao.getOrderInfoByOrderID(relation.getOrderID());
+                if (null != roi) {
+                    roi.setRelationType("2");
+                    if (0 == roi.getOnlinePayFlag()) {
+                        // 可以线上支付,查询子订单信息
+                        List<NewShopOrder> shopOrderInfos = cmDiscernReceiptDao.getShopOrderInfos(null, relation.getOrderID());
+                        roi.setShopOrderInfos(shopOrderInfos);
+                    }
+                }
+            }
+            if (null != roi) {
+
+                orderInfos.add(roi);
+            }
+        }*/
+        /*if ("6".equals(vo.getReceiptType())) {
+            // 3超级会员款
+            ReceiptVipInfoVo receiptVipInfo = cmDiscernReceiptDao.getReceiptVipInfo(vo.getReceiptID());
+            vo.setVipInfo(receiptVipInfo);
+        }
+        if ("7".equals(vo.getReceiptType())) {
+            // 二手商品上架费
+
+        }
+        if ("8".equals(vo.getReceiptType())) {
+            //优惠券购买费
+            ReceipCouponInfoVo couponInfo = cmDiscernReceiptDao.getCouponInfo(vo.getReceiptID());
+            vo.setCouponInfo(couponInfo);
+        }*/
         vo.setOrderInfos(orderInfos);
         return vo;
     }

+ 51 - 4
src/main/java/com/caimei/modules/order/service/NewOrderService.java

@@ -133,7 +133,17 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
 
 
     public List<CmOrderPaymentVoucherVo> findVoucherVoOrderID( Integer shopOrderId){
-        return newOrderDao.findVoucherVoOrderID(shopOrderId);
+        List<CmOrderPaymentVoucherVo> voucherVo = newOrderDao.findVoucherVoOrderID(shopOrderId);
+        if (null != voucherVo &&voucherVo.size() > 0) {
+            for(CmOrderPaymentVoucherVo vou : voucherVo) {
+                if (vou.getRemarks().length() > 100) {
+                    String start = vou.getRemarks().substring(0, 100);
+                    String end = vou.getRemarks().substring(100, vou.getRemarks().length());
+                    vou.setRemarks(start + "<br>" + end);
+                }
+            }
+        }
+        return voucherVo;
     }
 
     @Transactional(readOnly = false)
@@ -1429,6 +1439,40 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
                         shopOrder.setContactName(cmSecondHandDetail.getContactName());
                         shopOrder.setDockingPeopleName(cmSecondHandDetail.getDockingPeopleName());
                     }
+                    //是否抹平支付过(抹平最多只允许存在一次)
+                    CmDiscernReceipt cmDiscernReceipt = cmDiscernReceiptDao.findSmoothoutshopInfo(shopOrder.getShopOrderID());
+                    if (null != cmDiscernReceipt) {
+                        shopOrder.setAssociationType(cmDiscernReceipt.getAssociationType());
+                        String confirmType = cmDiscernReceipt.getConfirmType();
+                        shopOrder.setConfirmType(confirmType);
+
+                        // 是否是一比款收了多个订单
+                        if (StringUtils.equals(confirmType, "1") || StringUtils.equals(confirmType, "2") || StringUtils.equals(confirmType, "3")) {
+                            List<CmReceiptOrderRelation> byReceiptList = cmReceiptOrderRelationService.findByReceiptID(cmDiscernReceipt.getId());
+                            if (CollectionUtils.isNotEmpty(byReceiptList) && byReceiptList.size() > 1) {
+                                shopOrder.setReceiptOrderFlag(true);
+                            }
+                        }
+                        if (StringUtils.equals(cmDiscernReceipt.getConfirmType(), "1") || StringUtils.equals(cmDiscernReceipt.getConfirmType(), "2") || StringUtils.equals(cmDiscernReceipt.getConfirmType(), "3")) {
+                            shopOrder.setRestAmount(0d);
+                        }
+                    }
+                    // 订单已收款才会出现抹平或者多收退余额,(已收再退款或者撤销退款订单即使存在抹平也需要当未抹平重新计算付款)
+                    String receiptStatus = shopOrder.getReceiptStatus();
+                    if (StringUtils.equals("3", receiptStatus)) {
+                        if (null != cmDiscernReceipt) {
+                            String confirmType = cmDiscernReceipt.getConfirmType();
+                            shopOrder.setConfirmType(confirmType);
+                            double associateAmount = cmDiscernReceiptDao.getShopAssociateAmount(String.valueOf(shopOrder.getShopOrderID()));
+                            shopOrder.setOrderReceivedAmount(associateAmount + shopOrder.getAccountAmount());
+                            //大额退余额
+                            if (StringUtils.equals("3", confirmType)) {
+                                String shopReceiptId = cmDiscernReceipt.getId();
+                                double returnBalanceAmount = cmDiscernReceiptDao.getReturnBalanceAmount(shopReceiptId);
+                                shopOrder.setReturnBalanceAmount(returnBalanceAmount);
+                            }
+                        }
+                    }
                 }
                 newOrder.setNewShopOrders(shopOrders);
             }
@@ -1621,7 +1665,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
             //已付金额
             double v = balancePayFee + order.getNewShopOrders().get(0).getReceiptAmount();
             order.getNewShopOrders().get(0).setReceiptAmount(v);
-            saveDiscernReceipt(balancePayFee, orderID);
+            saveDiscernReceipt(balancePayFee, orderID, shopOrderID);
             //针对商品productId:6898,做兑换券操作(couponId:15)
 //            if ("3".equals(order.getReceiptStatus())) {
             if ("3".equals(order.getNewShopOrders().get(0).getReceiptStatus())) {
@@ -1658,7 +1702,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
      *
      * @param balancePayFee 余额抵扣金额
      */
-    private void saveDiscernReceipt(Double balancePayFee, Integer orderId) {
+    private void saveDiscernReceipt(Double balancePayFee, Integer orderId, Integer shopOrderId) {
         String curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
         //保存余额到收款记录
         CmDiscernReceipt discernReceipt = new CmDiscernReceipt();
@@ -1676,6 +1720,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
         CmReceiptOrderRelation relation = new CmReceiptOrderRelation();
         relation.setReceiptID(discernReceipt.getId());
         relation.setOrderID(orderId.toString());
+        relation.setShopOrderId(shopOrderId);
         relation.setAssociateAmount(balancePayFee.toString());
         relation.setRelationType("2");
         relation.setDelFlag("0");
@@ -2664,7 +2709,9 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
             //修改账户余额
             user.setUserMoney(MathUtil.sub(user.getUserMoney(), balancePayFee).doubleValue());
             //保存收款记录
-            saveDiscernReceipt(balancePayFee.doubleValue(), orderID);
+            // todo 订单改版,收款记录需添加子订单id,退款以及其余子订单金额计算使用子订单Id
+            // todo 版本 暂时启用,后续启用余额抵扣,加入子订单Id
+            // saveDiscernReceipt(balancePayFee.doubleValue(), orderID);
             user.setAbleUserMoney(MathUtil.sub(user.getAbleUserMoney(), balancePayFee).doubleValue());
             cmUserDao.updateMoney(user);
             //保存余额收支记录

+ 14 - 14
src/main/java/com/caimei/modules/order/web/NewOrderController.java

@@ -1262,20 +1262,6 @@ public class NewOrderController extends BaseController {
                 }
             }
         }
-        // 判断订单关闭环境
-        if (StringUtils.isNotBlank(order.getCloseReason())) {
-            if (order.getCloseReason().contains("超时")) {
-                order.setCloseReason("超时关闭");
-            } else if (order.getCloseReason().contains("后台手动关闭")) {
-                order.setCloseReason("后台手动关闭");
-            } else if (order.getCloseReason().contains("用户主动取消订单")) {
-                order.setCloseReason("客户主动关闭");
-            } else if (order.getCloseReason().contains("协销帮用户取消订单")) {
-                order.setCloseReason("协销关闭");
-            } else {
-                order.setCloseReason("未知");
-            }
-        }
         // 订单已收款才会出现抹平或者多收退余额,(已收再退款或者撤销退款订单即使存在抹平也需要当未抹平重新计算付款)
         String receiptStatus = order.getReceiptStatus();
         if (StringUtils.equals("3", receiptStatus)) {
@@ -1292,6 +1278,20 @@ public class NewOrderController extends BaseController {
                 }
             }
         }
+        // 判断订单关闭环境
+        if (StringUtils.isNotBlank(order.getCloseReason())) {
+            if (order.getCloseReason().contains("超时")) {
+                order.setCloseReason("超时关闭");
+            } else if (order.getCloseReason().contains("后台手动关闭")) {
+                order.setCloseReason("后台手动关闭");
+            } else if (order.getCloseReason().contains("用户主动取消订单")) {
+                order.setCloseReason("客户主动关闭");
+            } else if (order.getCloseReason().contains("协销帮用户取消订单")) {
+                order.setCloseReason("协销关闭");
+            } else {
+                order.setCloseReason("未知");
+            }
+        }
         //一个子订单只有一个商品时,不可拆分
         int count = 0;
         for (NewShopOrder newShopOrder : order.getNewShopOrders()) {

+ 1 - 1
src/main/java/com/caimei/modules/user/dao/NewCmShopDao.java

@@ -70,5 +70,5 @@ public interface NewCmShopDao extends CrudDao<NewCmShop> {
      * @param shop 供应商信息
      * @return 结果
      */
-    public int updateShop(NewCmShop shop);
+    int updateShop(NewCmShop shop);
 }

+ 9 - 0
src/main/java/com/caimei/modules/user/entity/NewCmShop.java

@@ -83,6 +83,7 @@ public class NewCmShop extends DataEntity<NewCmShop> {
     private Integer shopType;//供应商类别 0未审核的二手供应商,普通1,新品供应商2,二手供应商3
     private String cardNumber; //收款卡号
     private Integer chargeSupport;//线上支付手续费:默认1采美承担,2供应商承担
+    private Integer AccountOwnership; // 账号归属 0采美 1 供应商
     /**
      * 非持久化字段
      **/
@@ -1063,4 +1064,12 @@ public class NewCmShop extends DataEntity<NewCmShop> {
     public void setChargeSupport(Integer chargeSupport) {
         this.chargeSupport = chargeSupport;
     }
+
+    public Integer getAccountOwnership() {
+        return AccountOwnership;
+    }
+
+    public void setAccountOwnership(Integer accountOwnership) {
+        AccountOwnership = accountOwnership;
+    }
 }

+ 1 - 2
src/main/java/com/caimei/modules/user/service/NewCmShopService.java

@@ -393,8 +393,7 @@ public class NewCmShopService extends CrudService<NewCmShopDao, NewCmShop> {
      * @return 结果
      */
     @Transactional
-    public int updateShop(NewCmShop shop)
-    {
+    public int updateShop(NewCmShop shop) {
         return newCmShopDao.updateShop(shop);
     }
 

+ 373 - 0
src/main/resources/mappings/modules/landing/CmQuestionnaireMapper.xml

@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei.modules.landing.mapper.CmQuestionnaireMapper">
+
+    <resultMap type="com.caimei.modules.landing.domain.CmQuestionnaire" id="CmQuestionnaireResult">
+        <result property="id"    column="id"    />
+        <result property="type"    column="type"    />
+        <result property="userId"    column="userId"    />
+        <result property="userName"    column="userName"    />
+        <result property="corporateName"    column="corporateName"    />
+        <result property="mobile"    column="mobile"    />
+        <result property="level"    column="level"    />
+        <result property="content"    column="content"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="delFlag"    />
+        <result property="updateTime"    column="updateTime"    />
+        <result property="createTime"    column="createTime"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectCmQuestionnaireVo">
+        select
+            cm_questionnaire.id,
+            cm_questionnaire.type,
+            cm_questionnaire.userId,
+            cm_questionnaire.userName,
+            cm_questionnaire.corporateName,
+            cm_questionnaire.mobile,
+            cm_questionnaire.level,
+            cm_questionnaire.content,
+            cm_questionnaire.status,
+            cm_questionnaire.delFlag,
+            cm_questionnaire.updateTime,
+            cm_questionnaire.createTime,
+            cm_questionnaire.remark
+    </sql>
+
+    <select id="getByCmQuestionnaire" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultMap="CmQuestionnaireResult">
+        <include refid="selectCmQuestionnaireVo"/>
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''"> and cm_questionnaire.type = #{type}</if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+        order by cm_questionnaire.createTime desc
+        limit 0,1
+    </select>
+
+    <select id="getCmQuestionnaireList" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultMap="CmQuestionnaireResult">
+        <include refid="selectCmQuestionnaireVo"/>
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+        order by cm_questionnaire.createTime desc
+    </select>
+
+    <select id="findList" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultMap="CmQuestionnaireResult">
+        <include refid="selectCmQuestionnaireVo"/>
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+        order by cm_questionnaire.createTime desc
+    </select>
+    <select id="getCmQuestionnaireCount" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultType="int">
+        select count(1)
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+    </select>
+
+    <select id="getCmQuestionnaireById" parameterType="String" resultMap="CmQuestionnaireResult">
+        <include refid="selectCmQuestionnaireVo"/>
+        from cm_questionnaire AS cm_questionnaire
+        where  cm_questionnaire.delFlag = 0 and cm_questionnaire.id = #{id}
+    </select>
+
+    <select id="getByIds" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultType="String">
+        select id
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+    </select>
+    <select id="getById" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultType="String">
+        select id
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+        limit 0,1
+    </select>
+
+    <insert id="addCmQuestionnaire" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" useGeneratedKeys="true" keyProperty="id">
+        insert into cm_questionnaire
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">id,</if>
+            <if test="type != null and type != ''">type,</if>
+            <if test="userId != null">userId,</if>
+            <if test="userName != null and userName != ''">userName,</if>
+            <if test="corporateName != null and corporateName != ''">corporateName,</if>
+            <if test="mobile != null and mobile != ''">mobile,</if>
+            <if test="level != null">level,</if>
+            <if test="content != null and content != ''">content,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">delFlag,</if>
+            <if test="updateTime != null">updateTime,</if>
+            <if test="createTime != null">createTime,</if>
+            <if test="remark != null and remark != ''">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null and id != ''">#{id},</if>
+            <if test="type != null and type != ''">#{type},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="userName != null and userName != ''">#{userName},</if>
+            <if test="corporateName != null and corporateName != ''">#{corporateName},</if>
+            <if test="mobile != null and mobile != ''">#{mobile},</if>
+            <if test="level != null">#{level},</if>
+            <if test="content != null and content != ''">#{content},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="remark != null and remark != ''">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCmQuestionnaire" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire">
+        update cm_questionnaire
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="type != null and type != ''">type = #{type},</if>
+            <if test="userId != null">userId = #{userId},</if>
+            <if test="userName != null and userName != ''">userName = #{userName},</if>
+            <if test="corporateName != null and corporateName != ''">corporateName = #{corporateName},</if>
+            <if test="mobile != null and mobile != ''">mobile = #{mobile},</if>
+            <if test="level != null">level = #{level},</if>
+            <if test="content != null and content != ''">content = #{content},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">delFlag = #{delFlag},</if>
+            <if test="updateTime != null">updateTime = #{updateTime},</if>
+            <if test="createTime != null">createTime = #{createTime},</if>
+            <if test="remark != null and remark != ''">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="updateDelCmQuestionnaireByIds" parameterType="String">
+        update cm_questionnaire set delFlag=#{delFlag} where id in
+        <foreach item="id" collection="ids" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <delete id="delCmQuestionnaireById" parameterType="String">
+        delete
+        from cm_questionnaire where id = #{id}
+    </delete>
+
+    <delete id="delCmQuestionnaireByIds" parameterType="String">
+        delete from cm_questionnaire where id in
+        <foreach item="id" collection="ids" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

+ 68 - 27
src/main/resources/mappings/modules/order/CmDiscernReceiptMapper.xml

@@ -55,6 +55,13 @@
         and cror.delFlag = 0 and cdr.receiptStatus in (3) and payWay != '3';
     </select>
 
+    <select id="getShopAssociateAmount" resultType="double">
+        select IFNULL(sum(cdr.receiptAmount),0) From cm_receipt_order_relation cror
+                                                         LEFT JOIN cm_discern_receipt cdr on cdr.id = cror.receiptID
+        where cror.shopOrderId =  #{shopOrderId}   and cror.relationType = '2' and cdr.delFlag = 0
+          and cror.delFlag = 0 and cdr.receiptStatus in (3) and payWay != '3';
+    </select>
+
 
     <select id="getReturnBalanceAmount" resultType="double">
         select  IFNULL(sum(amount),0) from cm_user_balance_record where balanceType = 2 and  receiptId = #{receiptId} and delFlag = 0;
@@ -805,28 +812,45 @@
 		WHERE id = #{id}
 	</delete>
 
-    <select id="getOrderIDStr" parameterType="string" resultType="map">
-		-- 	relationType值为1是为子订单ID,为2时为主订单ID)
-		select
-		(case when cror.relationType = '1'
-		then concat('子订单',cso.shopOrderNo,'(', cso.shopOrderID,')')
-		else concat(cou.orderNo,'(', cou.orderID,')')
-		end)  AS orderNo,
-		(CASE WHEN cror.relationType = '1'
-		THEN co.orderID
-		ELSE cou.orderID
-		END) AS orderID ,
-		(case when cror.relationType = '1'
-		then (select b.orderType from cm_shop_order b where cso.shopOrderID =  b.shopOrderID)
-		else (select  c.orderType from cm_order c where cou.orderID = c.orderID)
-		end) AS orderType
-		from cm_receipt_order_relation cror
-        left join cm_shop_order cso on cror.orderID = cso.shopOrderID
-		left join cm_order co on cso.orderID = co.orderID
-		LEFT JOIN cm_order cou ON cror.orderID = cou.orderID
-		where cror.receiptID = #{id} and cror.delFlag = '0'
+    <select id="getShopOrderIDStr" parameterType="string" resultType="map">
+        SELECT
+            cso.shopOrderId,
+            cso.shopOrderNo,
+            cso.orderId AS orderID,
+            (case when cror.relationType = '1'
+                      then (select b.orderType from cm_shop_order b where cso.shopOrderID =  b.shopOrderID)
+                  else (select  c.orderType from cm_order c where cso.orderID = c.orderID)
+                end) AS orderType
+        FROM cm_receipt_order_relation cror
+                 LEFT JOIN cm_shop_order cso ON cror.shopOrderId = cso.shopOrderID
+                 LEFT JOIN cm_order co ON cso.orderID = co.orderID
+                 LEFT JOIN cm_order cou ON cror.orderID = cou.orderID
+        WHERE cror.receiptID = #{id} AND cror.delFlag = '0'
 	</select>
 
+    <select id="getOrderIDStr" parameterType="string" resultType="map">
+        -- 	relationType值为1是为子订单ID,为2时为主订单ID)
+        select
+            cso.shopOrderId,
+            cso.shopOrderNo,
+            (case when cror.relationType = '1'
+                      then concat('子订单',cso.shopOrderNo,'(', cso.shopOrderID,')')
+                  else concat(cou.orderNo,'(', cou.orderID,')')
+                end)  AS orderNo,
+            (CASE WHEN cror.relationType = '1'
+                      THEN co.orderID
+                  ELSE cou.orderID
+                END) AS orderID ,
+            (case when cror.relationType = '1'
+                      then (select b.orderType from cm_shop_order b where cso.shopOrderID =  b.shopOrderID)
+                  else (select  c.orderType from cm_order c where cou.orderID = c.orderID)
+                end) AS orderType
+        from cm_receipt_order_relation cror
+                 left join cm_shop_order cso on cror.orderID = cso.shopOrderID
+                 left join cm_order co on cso.orderID = co.orderID
+                 LEFT JOIN cm_order cou ON cror.orderID = cou.orderID
+        where cror.receiptID = #{id} and cror.delFlag = '0'
+    </select>
     <select id="getInfos" parameterType="CmDiscernReceipt" resultType="com.caimei.modules.order.entity.ReceiptDetailVo">
 		select
 	    cdr.id AS receiptID,
@@ -860,6 +884,7 @@
 			co.payableAmount AS payableAmount,
 		    co.onlinePayFlag,
             cso.receiptAmount AS receiptAmount,
+            cso.accountAmount AS accountAmount,
 -- 			(select
 -- 			 sum(o.needPayAmount)
 -- 			 from  cm_receipt_order_relation cror
@@ -942,13 +967,18 @@
         join cm_discern_receipt cdr on cdr.id = cror.receiptID
         join cm_offline_collection cof on cdr.payType = cof.type
         where cror.delFlag = '0' and cdr.delFlag = '0'
-        <if test="relationType == 1">
-            and cror.orderID in (select shopOrderID from cm_shop_order where orderID = #{orderID}) and cror.relationType
-            = '1'
-        </if>
-        <if test="relationType == 2">
-            and cror.orderID = #{orderID} and cror.relationType = '2'
-        </if>
+          <if test="identifying == 2">
+            <if test="relationType == 1">
+                and cror.orderID in (select shopOrderID from cm_shop_order where orderID = #{orderID}) and cror.relationType
+                = '1'
+            </if>
+            <if test="relationType == 2">
+                and cror.orderID = #{orderID} and cror.relationType = '2'
+            </if>
+          </if>
+          <if test="identifying == 1">
+              and cror.shopOrderId = #{shopOrderID} and cror.relationType = 2
+          </if>
     </select>
 
     <select id="findOrderIDs" resultType="string">
@@ -1083,6 +1113,17 @@
       and  cror.orderID = #{orderID} LIMIT 1;
 	</select>
 
+    <select id="findSmoothoutshopInfo" resultType="com.caimei.modules.order.entity.CmDiscernReceipt">
+        select * from cm_discern_receipt cdr
+                          LEFT JOIN cm_receipt_order_relation cror on cror.receiptID = cdr.id
+        where cdr.receiptType = 1 and cror.relationType = 2 and cror.delFlag = 0
+          and cdr.delFlag = 0 and cdr.confirmType in (1,2,3) and cdr.receiptStatus = '3'
+          and  cror.shopOrderId = #{shopOrderId} LIMIT 1;
+    </select>
+
+    <select id="getPaidAmountByOrderId" resultType="com.caimei.modules.order.entity.CmReceiptOrderRelation">
+        SELECT receiptID, associateAmount FROM cm_receipt_order_relation WHERE shopOrderId = #{shopOrderId}
+    </select>
 
     <select id="findOrderReceipt" resultType="double">
 		select sum(associateAmount) from cm_receipt_order_relation cror

+ 4 - 0
src/main/resources/mappings/modules/order/CmReceiptOrderRelationMapper.xml

@@ -8,6 +8,7 @@
 		a.receiptID AS "receiptID",
 		a.associateAmount AS "associateAmount",
 		a.orderID AS "orderID",
+        a.shopOrderId as "shopOrderId",
 		a.delFlag AS "delFlag"
     </sql>
 
@@ -55,11 +56,13 @@
                                               receiptID,
                                               associateAmount,
                                               orderID,
+                                              shopOrderId,
                                               delFlag)
         VALUES (#{relationType},
                 #{receiptID},
                 #{associateAmount},
                 #{orderID},
+                #{shopOrderId},
                 #{delFlag})
     </insert>
 
@@ -82,6 +85,7 @@
     <select id="findByReceiptID" resultType="CmReceiptOrderRelation">
         select
         <include refid="cmReceiptOrderRelationColumns"/>,
+        b.receiptDate,
         b.newReceiptType
         from cm_receipt_order_relation a
         left join cm_discern_receipt b on a.receiptID = b.id

+ 8 - 8
src/main/resources/mappings/modules/order/OrderProductMapper.xml

@@ -109,7 +109,7 @@
         FROM cm_order_product a
         <include refid="orderProductJoins"/>
         WHERE a.orderProductID = #{orderProductID}
-        group by p.productID
+--         group by p.productID
     </select>
 
     <select id="findListByShopOrderID" resultType="NewOrderProduct">
@@ -120,7 +120,7 @@
         <include refid="orderProductJoins"/>
         LEFT JOIN cm_second_hand_detail csdh ON csdh.productID = a.productID
         WHERE a.shopOrderID = #{shopOrderID}
-        group by p.productID
+--         group by p.productID
     </select>
     <select id="findListProductOrderID"  resultType="com.caimei.modules.order.entity.NewOrderProduct">
         SELECT
@@ -130,7 +130,7 @@
         <include refid="orderProductJoins"/>
         LEFT JOIN cm_second_hand_detail csdh ON csdh.productID = a.productID
         WHERE a.orderID = #{orderID}
-        group by p.productID
+--         group by p.productID
     </select>
 
     <select id="getListByShopOrderID" resultType="NewOrderProduct">
@@ -147,7 +147,7 @@
         FROM cm_order_product a
         <include refid="orderProductJoins"/>
         WHERE a.orderID = #{orderID}
-        group by p.productID
+--         group by p.productID
     </select>
 
     <select id="findAllList" resultType="NewOrderProduct">
@@ -169,7 +169,7 @@
                 AND a.payStatus = #{payStatus}
             </if>
         </where>
-        group by p.productID
+--         group by p.productID
         <choose>
             <when test="page !=null and page.orderBy != null and page.orderBy != ''">
                 ORDER BY ${page.orderBy}
@@ -416,7 +416,7 @@
         LEFT JOIN shop s on s.shopID = a.shopID
         where a.orderID = #{orderID}
         -- AND a.productID != 999
-        group by p.productID
+--         group by p.productID
     </select>
 
     <!--通过订单ID获取订单商品并以供应商分组-->
@@ -489,7 +489,7 @@
         FROM cm_order_product a
         <include refid="orderProductJoins"/>
         WHERE a.orderProductID = #{orderProductID}
-        group by p.productID
+--         group by p.productID
     </select>
 
     <select id="getGroupOrderProductIdS" resultType="String">
@@ -563,7 +563,7 @@
                  left join user u on u.userID = co.userID
         where cop.shopOrderID = #{shopOrderID}
 --           and cs.organizeId=(SELECT SUBSTRING(groundMall, 1, 1)FROM product WHERE productID=cs.productId)
-        group by p.productID
+--         group by p.productID
     </select>
 
     <select id="CountReturnedPurchaseProduct" resultType="java.lang.Integer">

+ 1 - 1
src/main/resources/mappings/modules/order/ShopOrderMapper.xml

@@ -28,7 +28,7 @@
 			a.refundStatus AS  refundStatus,
 			a.needPayAmount AS  needPayAmount,
             a.splitCode,
-            a.realPay AS realPay,
+            ifnull(a.realPay, a.needPayAmount) AS realPay,
             a.eachDiscount AS eachDiscount,
             ifnull(a.receiptAmount,0) AS receiptAmount,
             (ifnull(a.realPay,0) - ifnull(a.receiptAmount,0)) as restAmount,

+ 0 - 1
src/main/resources/mappings/modules/product/ProductMapper.xml

@@ -1817,7 +1817,6 @@
         WHERE csl.delFlag = 0
           AND csr.delFlag = 0
           AND p.productID = #{productID}
-        group by p.productID
     </select>
     <select id="qualification" resultType="com.caimei.modules.product.entity.Product">
         SELECT qualificationNo, productName, qualificationTime, qualificationLink

+ 55 - 54
src/main/resources/mappings/modules/sys/DictDao.xml

@@ -1,92 +1,93 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.thinkgem.jeesite.modules.sys.dao.DictDao">
-    
+
 	<select id="get" resultType="Dict">
-		SELECT 
-			* 
-		FROM sys_dict 
+		SELECT
+			*
+		FROM sys_dict
 		WHERE id = #{id}
 	</select>
-	
+
 	<select id="findList" resultType="Dict">
-		SELECT 
-			* 
-		FROM sys_dict 
-		WHERE del_flag = #{DEL_FLAG_NORMAL} 
+		SELECT
+			*
+		FROM sys_dict
+		WHERE del_flag = #{DEL_FLAG_NORMAL}
 		<if test="type != null and type != ''">
 			AND type = #{type}
 		</if>
 		<if test="description != null and description != ''">
-			AND description LIKE 
+			AND  (type LIKE concat('%',#{description},'%') or description LIKE
 					<if test="dbName == 'oracle'">'%'||#{description}||'%'</if>
 					<if test="dbName == 'mssql'">'%'+#{description}+'%'</if>
 					<if test="dbName == 'mysql'">CONCAT('%', #{description}, '%')</if>
+			    )
 		</if>
 		ORDER BY type, sort, update_date DESC
 	</select>
-	
+
 	<select id="findAllList" resultType="Dict">
-		SELECT 
-			* 
-		FROM sys_dict 
-		WHERE del_flag = #{DEL_FLAG_NORMAL} 
+		SELECT
+			*
+		FROM sys_dict
+		WHERE del_flag = #{DEL_FLAG_NORMAL}
 		ORDER BY type, sort, update_date DESC
 	</select>
-	
+
 	<select id="findTypeList" resultType="string">
-		SELECT 
-			type 
-		FROM sys_dict 
-		WHERE del_flag = #{DEL_FLAG_NORMAL} 
+		SELECT
+			type
+		FROM sys_dict
+		WHERE del_flag = #{DEL_FLAG_NORMAL}
 		GROUP BY type
 		ORDER BY type
 	</select>
-	
+
 	<insert id="insert" parameterType="dict"  keyProperty="id" useGeneratedKeys="true">
 		INSERT INTO sys_dict(
-			value, 
-			label, 
-			type, 
-			description, 
-			sort, 
-			create_by, 
-			create_date, 
-			update_by, 
-			update_date, 
-			remarks, 
+			value,
+			label,
+			type,
+			description,
+			sort,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
 			del_flag
 		) VALUES (
-			#{value}, 
-			#{label}, 
-			#{type}, 
-			#{description}, 
-			#{sort}, 
-			#{createBy.id}, 
-			#{createDate}, 
-			#{updateBy.id}, 
-			#{updateDate}, 
-			#{remarks}, 
+			#{value},
+			#{label},
+			#{type},
+			#{description},
+			#{sort},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
 			#{delFlag}
 		)
 	</insert>
-	
+
 	<update id="update">
-		UPDATE sys_dict SET 
-			value = #{value}, 
-			label = #{label}, 
-			type = #{type}, 
-			description = #{description}, 
-			sort = #{sort}, 
-			update_by = #{updateBy.id}, 
-			update_date = #{updateDate}, 
+		UPDATE sys_dict SET
+			value = #{value},
+			label = #{label},
+			type = #{type},
+			description = #{description},
+			sort = #{sort},
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
 			remarks = #{remarks}
 		WHERE id = #{id}
 	</update>
-	
+
 	<update id="delete">
-		DELETE FROM sys_dict 
+		DELETE FROM sys_dict
 		WHERE id = #{id}
 	</update>
-	
-</mapper>
+
+</mapper>

+ 1 - 0
src/main/resources/mappings/modules/user/CmSpMapper.xml

@@ -125,6 +125,7 @@
 	<update id="update">
 		UPDATE serviceprovider SET
 		userID = #{userID},
+		organizeID = 0,
 		name = #{name},
 		contractPhone = #{contractPhone},
 		contractMobile = #{contractMobile},

+ 4 - 0
src/main/resources/mappings/modules/user/NewCmShopMapper.xml

@@ -54,6 +54,7 @@
 		a.rebateAmount AS "rebateAmount",
 		a.bankAccountName AS "bankAccountName",
 		a.bankName AS "bankName",
+        a.AccountOwnership as AccountOwnership,
 		a.socialCreditCode AS "socialCreditCode",
 		u.email,
 		u.source AS "source",
@@ -646,6 +647,9 @@
 <!--            <if test="banOfDeposit != null and banOfDeposit != ''">banOfDeposit = #{banOfDeposit},</if>-->
 <!--            <if test="accountName != null and accountName != ''">accountName = #{accountName},</if>-->
             <if test="chargeSupport != null and chargeSupport != ''">chargeSupport = #{chargeSupport},</if>
+            <if test="AccountOwnership != null">
+                AccountOwnership = #{AccountOwnership}
+            </if>
         </trim>
         where shopID = #{shopID}
     </update>

+ 1 - 1
src/main/resources/mappings/modules/weisha/CmMallOrganizeMapper.xml

@@ -207,7 +207,7 @@
 	<delete id="updateService">
 		update serviceprovider
 		set openid = NULL,
-		    unionId = NULL
+            unionId = NULL
 		where serviceProviderID = #{serviceProviderId}
 	</delete>
 	<update id="updateClub">

+ 96 - 0
src/main/webapp/WEB-INF/views/modules/landing/cmQuestionnaireGet.jsp

@@ -0,0 +1,96 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+	<title>用户需求管理</title>
+	<meta name="decorator" content="default"/>
+</head>
+<body>
+<ul class="nav nav-tabs">
+	<li><a href="${ctx}/cmQuestionnaire/list?type=${cmQuestionnaire.type}">用户需求列表</a></li>
+	<li class="active"><a href="${ctx}/cmQuestionnaire/form?id=${cmQuestionnaire.id}">查看用户需求</a></li>
+</ul>
+<br/>
+<form:form id="inputForm" modelAttribute="cmQuestionnaire" method="post"
+		   class="form-horizontal">
+	<form:hidden path="id"/>
+	<form:hidden path="type"/>
+	<div>
+		<div class="control-group">
+			<label class="control-label">用户姓名:</label>
+			<div class="controls"><span>
+					${cmQuestionnaire.userName}
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">公司名称:</label>
+			<div class="controls"><span>
+					${cmQuestionnaire.corporateName}
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">手机号:</label>
+			<div class="controls"><span>
+					${cmQuestionnaire.mobile}
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">选择版本:</label>
+			<div class="controls"><span>
+					${fns:getDictLabel(cmQuestionnaire.level, 'cm_questionnaire_level', '')}
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">感兴趣的内容:</label>
+			<div class="controls"><span>
+						<c:forEach items="${cmQuestionnaire.content.split(',')}" var="dict">
+							${fns:getDictLabel(dict, 'cm_questionnaire_content', '')}
+							<br/>
+						</c:forEach>
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">处理状态:</label>
+			<div class="controls"><span>
+					${fns:getDictLabel(cmQuestionnaire.status, 'cm_questionnaire_status', '')}
+			</span></div>
+		</div>
+	</div>
+	<div class="form-actions">
+		<input  class="btn btn-primary" type="button"  onclick="updateStatus(${cmQuestionnaire.id},${cmQuestionnaire.status})" value="${cmQuestionnaire.status==1?"置为已处理":"置为待处理"}"/>
+		<a href="javascript: void(0)"
+		  ></a>
+		<input id="btnCancel" class="btn" type="button" value="返回" onclick="history.go(-1)"/>
+	</div>
+</form:form>
+<script type="text/javascript">
+	$(document).ready(function () {
+
+	});
+
+	// 修改stauus
+	function updateStatus(id, staus) {
+		staus = staus == 1 ? 2 : 1;
+		$.ajax({
+			url: "${ctx}/cmQuestionnaire/updateStatus?id="+id+"&status="+staus,
+			// data: {id, staus},
+			type: "get",
+			processData: false,
+			contentType: false,
+			dataType: "json",
+			success: function (res) {
+				if (res.success) {
+					location.href='${ctx}/cmQuestionnaire/list?type=${cmQuestionnaire.type}'
+				} else {
+					$.jBox.tip(res.msg, 'error');
+				}
+			},
+			error: function (json) {
+				$.jBox.tip(res.msg, 'error');
+			}
+		});
+
+	}
+</script>
+</body>
+</html>

+ 154 - 0
src/main/webapp/WEB-INF/views/modules/landing/cmQuestionnaireList.jsp

@@ -0,0 +1,154 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+	<title>用户需求管理</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table th {
+			text-align: center;
+		}
+
+		.table td {
+			text-align: center;
+		}
+
+		.two{
+			table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */
+		}
+
+		.item {
+			word-break:keep-all;/* 不换行 */
+			white-space:nowrap;/* 不换行 */
+			overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
+			text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用*/
+		}
+	</style>
+
+</head>
+<body>
+<ul class="nav nav-tabs">
+	<li class="active"><a href="${ctx}/cmQuestionnaire/list?type=${cmQuestionnaire.type}">用户需求列表</a></li>
+</ul>
+<form:form id="searchForm" modelAttribute="cmQuestionnaire" action="${ctx}/cmQuestionnaire/list" method="post"
+		   class="breadcrumb form-search">
+	<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+	<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+	<form:hidden path="type" value="${cmQuestionnaire.type}"/>
+	<div class="ul-form">
+		<label>用户名称:</label>
+		<form:input path="userName" htmlEscape="false" maxlength="30" class="input-medium"/>
+		<label>公司名称:</label>
+		<form:input path="corporateName" htmlEscape="false" maxlength="15" class="input-medium"/>
+		<label>手机号:</label>
+		<form:input path="mobile" htmlEscape="false" maxlength="11" class="input-medium"/>
+		<label>选择版本:</label>
+
+		<form:select path="level" class="input-xlarge " style="width:150px">
+			<form:option value="" label="请选择"/>
+			<form:options items="${fns:getDictList('cm_questionnaire_level')}" itemLabel="label" itemValue="value"
+						  htmlEscape="false"/>
+		</form:select>
+		<label>处理状态:</label>
+		<form:select path="status" class="input-medium " style="width:150px">
+			<form:option value="" label="请选择"/>
+			<form:options items="${fns:getDictList('cm_questionnaire_status')}" itemLabel="label" itemValue="value"
+						  htmlEscape="false"/>
+		</form:select>
+		<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
+		<div class="clearfix"></div>
+	</div>
+</form:form>
+<sys:message content="${message}"/>
+<table id="contentTable" class="table table-striped table-bordered table-condensed two">
+	<thead>
+	<tr>
+		<th>ID</th>
+		<th>用户名称</th>
+		<th>公司名称</th>
+		<th>手机号</th>
+		<th>选择版本</th>
+		<th>感兴趣内容</th>
+		<th>处理状态</th>
+		<th>提交时间</th>
+		<th>操作</th>
+	</tr>
+	</thead>
+	<tbody>
+	<c:forEach items="${page.list}" var="cmQuestionnaire">
+		<tr>
+			<td>
+					${cmQuestionnaire.id}
+			</td>
+			<td>
+					${cmQuestionnaire.userName}
+			</td>
+			<td>
+					${cmQuestionnaire.corporateName}
+			</td>
+			<td>
+					${cmQuestionnaire.mobile}
+			</td>
+			<td>
+					${fns:getDictLabel(cmQuestionnaire.level, 'cm_questionnaire_level', '')}
+			</td>
+			<td class="item">
+					<c:forEach items="${cmQuestionnaire.content.split(',')}" var="dict">
+						${fns:getDictLabel(dict, 'cm_questionnaire_content', '')}
+					</c:forEach>
+			</td>
+			<td>
+				<span style="color:${cmQuestionnaire.status==1?'red':'#0bbbee'} ">${fns:getDictLabel(cmQuestionnaire.status, 'cm_questionnaire_status', '')}</span>
+			</td>
+			<td>
+				<fmt:formatDate value="${cmQuestionnaire.createTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
+			</td>
+			<td>
+				<a href="${ctx}/cmQuestionnaire/form?id=${cmQuestionnaire.id}">查看资料</a>
+				<a href="javascript: void(0)"
+				   onclick="updateStatus(${cmQuestionnaire.id},${cmQuestionnaire.status})">${cmQuestionnaire.status==1?"置为已处理":"置为待处理"}</a>
+			</td>
+		</tr>
+	</c:forEach>
+	</tbody>
+</table>
+<div class="pagination">${page}</div>
+<script type="text/javascript">
+	$(document).ready(function () {
+
+	});
+
+	function page(n, s) {
+		$("#pageNo").val(n);
+		$("#pageSize").val(s);
+		$("#searchForm").submit();
+		return false;
+	}
+
+	// 修改stauus
+	function updateStatus(id, staus) {
+		staus = staus == 1 ? 2 : 1;
+		$.ajax({
+			url: "${ctx}/cmQuestionnaire/updateStatus?id="+id+"&status="+staus,
+			// data: {id, staus},
+			type: "get",
+			processData: false,
+			contentType: false,
+			dataType: "json",
+			success: function (res) {
+				if (res.success) {
+					$.jBox.tip('上传成功', 'info');
+					history.go(0);
+				} else {
+					$.jBox.tip(res.msg, 'error');
+				}
+			},
+			error: function (json) {
+				$.jBox.tip(res.msg, 'error');
+			}
+		});
+
+	}
+</script>
+</body>
+</html>

+ 252 - 214
src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptForm.jsp

@@ -205,6 +205,32 @@
                 </c:if>
             </span>
             <span><label>收款金额:</label>${vo.receiptAmount}</span>
+            <span>
+                <c:if test="${vo.confirmType eq 1 || vo.confirmType eq  2 || vo.confirmType eq 3}">
+                    <label>抹平明细:</label>
+                    <c:if test="${vo.confirmType eq 1}">
+                            <font color="red">(少收抹平:
+                                ¥<fmt:formatNumber
+                                        value="${vo.needAmount - vo.receiptAmount}"
+                                        pattern="#0.00"/>)
+                            </font>
+                    </c:if>
+                    <c:if test="${vo.confirmType eq 2}">
+                            <font color="red">(多收抹平:
+                                ¥<fmt:formatNumber
+                                        value="${vo.receiptAmount - vo.needAmount}"
+                                        pattern="#0.00"/>)
+                            </font>
+                    </c:if>
+                    <c:if test="${vo.confirmType eq 3}">
+                            <font color="red">(多收退余额&nbsp;&nbsp;:
+                                ¥<fmt:formatNumber
+                                        value="${vo.receiptAmount - vo.needAmount}"
+                                        pattern="#0.00"/>)
+                            </font>
+                    </c:if>
+                </c:if>
+            </span>
             <span><label>收款时间:</label>${vo.receiptDate}</span>
             <span><label>收款状态:</label>
                 <c:if test="${vo.payWay ne 3}">
@@ -256,124 +282,47 @@
             </div>
         </c:if>
     </div>
-<%--    <c:if test="${not empty op.shopOrderNo}">--%>
-<%--        <h5>关联订单</h5>--%>
-<%--        <div class="receipt-order-form">--%>
-<%--            <div class="receipt-order-row2">--%>
-<%--                        <span class="font-blue"><label>子订单编号:</label>--%>
-<%--                               <a href="${ctx}/order/detail?id=${op.orderID}">${op.shopOrderNo}(${op.shopOrderId})</a></span>--%>
-<%--                <span><label>订单金额:</label>¥<fmt:formatNumber--%>
-<%--                        value="${op.productAmount}"--%>
-<%--                        pattern="#0.00"/></span>--%>
-<%--                <span>--%>
-<%--                         <span><label>供应商:</label>${op.shopName}</span>--%>
-<%--                    </span>--%>
-<%--                        <hr style="margin: 10px;"/>--%>
-<%--            </div>--%>
-
-<%--            <div class="receipt-order-row3">--%>
-
-<%--                         <span class="font-blue"><label>订单编号:</label><a--%>
-<%--                                 href="${ctx}/order/detail?id=${op.orderID}">${op.orderNo}(${op.orderID})</a></span>--%>
-
-<%--                <span><label>订单金额:</label>¥<fmt:formatNumber--%>
-<%--                        value="${op.productAmount}"--%>
-<%--                        pattern="#0.00"/></span>--%>
-
-<%--                <span><label>应收金额:</label>¥<fmt:formatNumber value="${op.needPayAmount}"--%>
-<%--                                                             pattern="#0.00"/></span>--%>
-<%--                <span>--%>
-<%--                            <label>已收金额:</label>¥<fmt:formatNumber--%>
-<%--                        value="${empty op.receiptAmount ? 0 : op.receiptAmount}"--%>
-<%--                        pattern="#0.00"/>--%>
-<%--                            </span>--%>
-<%--                <span><label>机构名称:</label>${op.jgName}</span>--%>
-<%--            </div>--%>
-
-<%--            <label>订单类型:</label><c:if test="${op.orderType eq 0}">普通订单</c:if>--%>
-<%--            <c:if test="${op.orderType eq 1}">协销订单</c:if>--%>
-
-<%--            <span><label>下单日期:</label>${cmDiscernReceipt.confirmDate}</span>--%>
-
-<%--        </div>--%>
-<%--        <c:if test="${not empty orderInfo.receiptRecordVo}">--%>
-<%--            <div class="receipt-order-form">--%>
-<%--                <div class="receipt-order-row4">--%>
-<%--                    <div><h5><label>订单收款记录:</label></h5></div>--%>
-<%--                    <c:forEach items="${orderInfo.receiptRecordVo}" var="receiptRecord" varStatus="index">--%>
-<%--                        <div class="row4-wrapper">--%>
-<%--                            <span class="row4-order-no">${index.index + 1}、</span>--%>
-<%--                            <span class="row4-time">${receiptRecord.receiptTime}</span>--%>
-<%--                            <c:if test="${receiptRecord.payWay == 1}">--%>
-<%--                                &lt;%&ndash;线上收款&ndash;%&gt;--%>
-<%--                                <span>线上&nbsp;${receiptRecord.bankNameType}</span>--%>
-<%--                                <span>${receiptRecord.receiptAmount}</span>--%>
-<%--                                <span><label>交易号:</label>${receiptRecord.mbOrderId}</span>--%>
-<%--                            </c:if>--%>
-<%--                            <c:if test="${receiptRecord.payWay == 2}">--%>
-<%--                                <span>线下&nbsp;${receiptRecord.bankNameType}</span>--%>
-<%--                                <span>${receiptRecord.receiptAmount}</span>--%>
-<%--                                <c:if test="${not empty receiptRecord.confirmUserPermissionID}">--%>
-<%--                                    <span>${receiptRecord.confirmUserName}确认(${receiptRecord.confirmDate})</span>--%>
-<%--                                </c:if>--%>
-<%--                                <c:if test="${not empty receiptRecord.reviewUserPermissionID}">--%>
-<%--                                    <span>--%>
-<%--                                        <c:if test="${receiptRecord.receiptStatus eq 4}">--%>
-<%--                                            ${receiptRecord.reviewUserName}审核不通过(${receiptRecord.reviewDate})--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.receiptStatus ne 4}">--%>
-<%--                                            ${receiptRecord.reviewUserName}审核通过(${receiptRecord.reviewDate})--%>
-<%--                                        </c:if>--%>
-<%--                                    </span>--%>
-<%--                                </c:if>--%>
-<%--                            </c:if>--%>
-<%--                            <c:if test="${receiptRecord.payWay == 3}">--%>
-<%--                                &lt;%&ndash;余额抵扣&ndash;%&gt;--%>
-<%--                                <span><a--%>
-<%--                                        href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"--%>
-<%--                                        style="text-decoration: underline">${fns:getPayTypeStr(receiptRecord.payType)}</a></span>--%>
-<%--                                <span><a--%>
-<%--                                        href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"--%>
-<%--                                        style="text-decoration: underline">${receiptRecord.receiptAmount}</a></span>--%>
-<%--                            </c:if>--%>
-<%--                            <span>--%>
-<%--    &lt;%&ndash;                        一款多单的时候直接显示再订单上即可,无需收款记录显示&ndash;%&gt;--%>
-<%--                                <c:if test="${!vo.receiptOrderFlag}">--%>
-<%--                                    <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">--%>
-<%--                                        <label>抹平明细:</label>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 1}">--%>
-<%--                                                <font color="red">(少收抹平:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${orderInfo.payableAmount - (empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount)}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 2}">--%>
-<%--                                                <font color="red">(多收抹平:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${(empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount) - orderInfo.payableAmount}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 3}">--%>
-<%--                                                <font color="red">(多收退余额${receiptRecord.associationType eq 2 ? "(自动)" : ""}:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${(empty receiptRecord.returnBalanceAmount ? 0 : receiptRecord.returnBalanceAmount)}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                    </c:if>--%>
-<%--                                </c:if>--%>
-<%--                                </span>--%>
-<%--                            <span>--%>
-<%--                                    ${receiptRecord.receiptAmount}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${vo.confirmer} 确认 ${vo.confirmTime}--%>
-<%--                                </span>--%>
-<%--                        </div>--%>
-<%--                    </c:forEach>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--        </c:if>--%>
-<%--    </c:if>--%>
+<%--    <c:if test="${not empty op.shopOrderNo}">
+        <h5>关联订单</h5>
+        <div class="receipt-order-form">
+            <div class="receipt-order-row2">
+                        <span class="font-blue"><label>子订单编号:</label>
+                               <a href="${ctx}/order/detail?id=${op.orderID}">${op.shopOrderNo}(${op.shopOrderId})</a></span>
+                <span><label>订单金额:</label>¥<fmt:formatNumber
+                        value="${op.productAmount}"
+                        pattern="#0.00"/></span>
+                <span>
+                         <span><label>供应商:</label>${op.shopName}</span>
+                    </span>
+                        <hr style="margin: 10px;"/>
+            </div>
+
+            <div class="receipt-order-row3">
+
+                         <span class="font-blue"><label>订单编号:</label><a
+                                 href="${ctx}/order/detail?id=${op.orderID}">${op.orderNo}(${op.orderID})</a></span>
+
+                <span><label>订单金额:</label>¥<fmt:formatNumber
+                        value="${op.productAmount}"
+                        pattern="#0.00"/></span>
+
+                <span><label>应收金额:</label>¥<fmt:formatNumber value="${op.needPayAmount}"
+                                                             pattern="#0.00"/></span>
+                <span>
+                            <label>已收金额:</label>¥<fmt:formatNumber
+                        value="${empty op.receiptAmount ? 0 : op.receiptAmount}"
+                        pattern="#0.00"/>
+                            </span>
+                <span><label>机构名称:</label>${op.jgName}</span>
+            </div>
+
+            <label>订单类型:</label><c:if test="${op.orderType eq 0}">普通订单</c:if>
+            <c:if test="${op.orderType eq 1}">协销订单</c:if>
+
+            <span><label>下单日期:</label>${cmDiscernReceipt.confirmDate}</span>
+
+        </div>--%>
+
 
 
     <c:if test="${vo.receiptType != 2 and vo.receiptType != 6 and vo.receiptType != 7 and vo.receiptType != 8}">
@@ -408,7 +357,7 @@
 <%--                                value="${orderInfo.orderAmount}"--%>
 <%--                                pattern="#0.00"/></span>--%>
                         <span>
-                            <span><label>子订单应收金额:</label>¥<fmt:formatNumber value="${orderInfo.shouldPayShopAmount}"
+                            <span><label>子订单应收金额:</label>¥<fmt:formatNumber value="${orderInfo.shopOrderAmount}"
                                                                          pattern="#0.00"/></span>
                             <span>
                             <label>子订单已收金额:</label>¥<fmt:formatNumber
@@ -422,40 +371,40 @@
                                                varStatus="index">
                                         <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">
                                             <label>抹平明细:</label>
-                                            <c:if test="${receiptRecord.confirmType eq 1}">
-                                                <c:if test="${vo.receiptOrderFlag}">
+                                            <c:if test="${orderInfo.confirmType eq 1}">
+                                                <c:if test="${orderInfo.receiptOrderFlag}">
                                                     <font color="red">(一款多单:少收抹平金额未知)</font>
                                                 </c:if>
-                                                <c:if test="${!vo.receiptOrderFlag}">
-                                                    <font color="red">(少收抹平:
+                                                <c:if test="${!orderInfo.receiptOrderFlag}">
+                                                <font color="red">(少收抹平:
                                                     ¥<fmt:formatNumber
-                                                                value="${orderInfo.payableAmount - (empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount)}"
-                                                                pattern="#0.00"/>)
-                                                    </font>
+                                                            value="${orderInfo.shopOrderAmount - (empty orderInfo.orderReceivedAmount ? 0 : orderInfo.orderReceivedAmount)}"
+                                                            pattern="#0.00"/>)
+                                                </font>
                                                 </c:if>
                                             </c:if>
-                                            <c:if test="${receiptRecord.confirmType eq 2}">
-                                                <c:if test="${vo.receiptOrderFlag}">
+                                            <c:if test="${orderInfo.confirmType eq 2}">
+                                                <c:if test="${orderInfo.receiptOrderFlag}">
                                                     <font color="red">(一款多单:多收抹平金额未知)</font>
                                                 </c:if>
-                                                <c:if test="${!vo.receiptOrderFlag}">
-                                                    <font color="red">(多收抹平:
+                                                <c:if test="${!orderInfo.receiptOrderFlag}">
+                                                <font color="red">(多收抹平:
                                                     ¥<fmt:formatNumber
-                                                                value="${(empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount) - orderInfo.payableAmount}"
-                                                                pattern="#0.00"/>)
-                                                    </font>
+                                                            value="${(empty orderInfo.receiptAmount ? 0 : orderInfo.orderReceivedAmount) - orderInfo.shopOrderAmount}"
+                                                            pattern="#0.00"/>)
+                                                </font>
                                                 </c:if>
                                             </c:if>
-                                            <c:if test="${receiptRecord.confirmType eq 3}">
-                                                <c:if test="${vo.receiptOrderFlag}">
+                                            <c:if test="${orderInfo.confirmType eq 3}">
+                                                <c:if test="${orderInfo.receiptOrderFlag}">
                                                     <font color="red">(一款多单:多收退余额)</font>
                                                 </c:if>
-                                                <c:if test="${!vo.receiptOrderFlag}">
-                                                    <font color="red">(多收退余额${receiptRecord.associationType eq 2 ? "(自动)" : ""}:
+                                                <c:if test="${!orderInfo.receiptOrderFlag}">
+                                                <font color="red">(多收退余额&nbsp;&nbsp;${orderInfo.associationType eq 2 ? "(自动)" : ""}:
                                                     ¥<fmt:formatNumber
-                                                                value="${(empty receiptRecord.returnBalanceAmount ? 0 : receiptRecord.returnBalanceAmount)}"
-                                                                pattern="#0.00"/>)
-                                                    </font>
+                                                            value="${(empty orderInfo.returnBalanceAmount ? 0 : orderInfo.returnBalanceAmount)}"
+                                                            pattern="#0.00"/>)
+                                                </font>
                                                 </c:if>
                                             </c:if>
                                         </c:if>
@@ -499,80 +448,169 @@
                             <span>子订单收款状态:${fns:getDictLabel(shopOrder.shopReceiptStatus,'receiptStatus' ,'' )}</span>
                         </c:forEach>
                     </div>
-<%--                    <div class="receipt-order-row4">--%>
-<%--                        <div><h5><label>订单收款记录:</label></h5></div>--%>
-<%--                        <c:forEach items="${orderInfo.receiptRecordVo}" var="receiptRecord" varStatus="index">--%>
-<%--                            <div class="row4-wrapper">--%>
-<%--                                <span class="row4-order-no">${index.index + 1}、</span>--%>
-<%--                                <span class="row4-time">${receiptRecord.receiptTime}</span>--%>
-<%--                                <c:if test="${receiptRecord.payWay == 1}">--%>
-<%--                                    &lt;%&ndash;线上收款&ndash;%&gt;--%>
-<%--                                    <span>线上&nbsp;${receiptRecord.bankNameType}</span>--%>
-<%--                                    <span>${receiptRecord.receiptAmount}</span>--%>
-<%--                                    <span><label>交易号:</label>${receiptRecord.mbOrderId}</span>--%>
-<%--                                </c:if>--%>
-<%--                                <c:if test="${receiptRecord.payWay == 2}">--%>
-<%--                                    <span>线下&nbsp;${receiptRecord.bankNameType}</span>--%>
-<%--                                    <span>${receiptRecord.receiptAmount}</span>--%>
-<%--                                    <c:if test="${not empty receiptRecord.confirmUserPermissionID}">--%>
-<%--                                        <span>${receiptRecord.confirmUserName}确认(${receiptRecord.confirmDate})</span>--%>
-<%--                                    </c:if>--%>
-<%--                                    <c:if test="${not empty receiptRecord.reviewUserPermissionID}">--%>
-<%--                                    <span>--%>
-<%--                                        <c:if test="${receiptRecord.receiptStatus eq 4}">--%>
-<%--                                            ${receiptRecord.reviewUserName}审核不通过(${receiptRecord.reviewDate})--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.receiptStatus ne 4}">--%>
-<%--                                            ${receiptRecord.reviewUserName}审核通过(${receiptRecord.reviewDate})--%>
-<%--                                        </c:if>--%>
-<%--                                    </span>--%>
-<%--                                    </c:if>--%>
-<%--                                </c:if>--%>
-<%--                                <c:if test="${receiptRecord.payWay == 3}">--%>
-<%--                                    &lt;%&ndash;余额抵扣&ndash;%&gt;--%>
-<%--                                    <span><a--%>
-<%--                                            href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"--%>
-<%--                                            style="text-decoration: underline">${fns:getPayTypeStr(receiptRecord.payType)}</a></span>--%>
-<%--                                    <span><a--%>
-<%--                                            href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"--%>
-<%--                                            style="text-decoration: underline">${receiptRecord.receiptAmount}</a></span>--%>
-<%--                                </c:if>--%>
-<%--                                <span>--%>
-<%--    &lt;%&ndash;                        一款多单的时候直接显示再订单上即可,无需收款记录显示&ndash;%&gt;--%>
-<%--                                <c:if test="${!vo.receiptOrderFlag}">--%>
-<%--                                    <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">--%>
-<%--                                        <label>抹平明细:</label>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 1}">--%>
-<%--                                                <font color="red">(少收抹平:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${orderInfo.payableAmount - (empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount)}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 2}">--%>
-<%--                                                <font color="red">(多收抹平:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${(empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount) - orderInfo.payableAmount}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                        <c:if test="${receiptRecord.confirmType eq 3}">--%>
-<%--                                                <font color="red">(多收退余额${receiptRecord.associationType eq 2 ? "(自动)" : ""}:--%>
-<%--                                                    ¥<fmt:formatNumber--%>
-<%--                                                            value="${(empty receiptRecord.returnBalanceAmount ? 0 : receiptRecord.returnBalanceAmount)}"--%>
-<%--                                                            pattern="#0.00"/>元)--%>
-<%--                                                </font>--%>
-<%--                                        </c:if>--%>
-<%--                                    </c:if>--%>
-<%--                                </c:if>--%>
-<%--                                </span>--%>
-<%--&lt;%&ndash;                                <span>&ndash;%&gt;--%>
-<%--&lt;%&ndash;                                    ${receiptRecord.receiptAmount}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${vo.confirmer} 确认 ${vo.confirmTime}&ndash;%&gt;--%>
-<%--&lt;%&ndash;                                </span>&ndash;%&gt;--%>
-<%--                            </div>--%>
-<%--                        </c:forEach>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
+                    <c:if test="${not empty orderInfo.receiptRecordVo}">
+                        <div class="receipt-order-form">
+                            <div class="receipt-order-row4">
+                                <div><h5><label>订单收款记录:</label></h5></div>
+                                <c:forEach items="${orderInfo.receiptRecordVo}" var="receiptRecord" varStatus="index">
+                                    <div class="row4-wrapper">
+                                        <span class="row4-order-no">${index.index + 1}、</span>
+                                        <span class="row4-time">${receiptRecord.receiptTime}</span>
+                                        <c:if test="${receiptRecord.payWay == 1}">
+                                            <%--线上收款--%>
+                                            <span>线上&nbsp;${receiptRecord.bankNameType}</span>
+                                            <span>${receiptRecord.receiptAmount}</span>
+                                            <span><label>交易号:</label>${receiptRecord.mbOrderId}</span>
+                                        </c:if>
+                                        <c:if test="${receiptRecord.payWay == 2}">
+                                            <span>线下&nbsp;${receiptRecord.bankNameType}</span>
+                                            <span>${receiptRecord.receiptAmount}</span>
+                                            <c:if test="${not empty receiptRecord.confirmUserPermissionID}">
+                                                <span>${receiptRecord.confirmUserName}确认(${receiptRecord.confirmDate})</span>
+                                            </c:if>
+                                            <c:if test="${not empty receiptRecord.reviewUserPermissionID}">
+                                                    <span>
+                                                        <c:if test="${receiptRecord.receiptStatus eq 4}">
+                                                            ${receiptRecord.reviewUserName}审核不通过(${receiptRecord.reviewDate})
+                                                        </c:if>
+                                                        <c:if test="${receiptRecord.receiptStatus ne 4}">
+                                                            ${receiptRecord.reviewUserName}审核通过(${receiptRecord.reviewDate})
+                                                        </c:if>
+                                                    </span>
+                                            </c:if>
+                                        </c:if>
+                                        <c:if test="${receiptRecord.payWay == 3}">
+                                            <%--余额抵扣--%>
+                                            <span><a
+                                                    href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"
+                                                    style="text-decoration: underline">${fns:getPayTypeStr(receiptRecord.payType)}</a></span>
+                                            <span><a
+                                                    href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"
+                                                    style="text-decoration: underline">${receiptRecord.receiptAmount}</a></span>
+                                        </c:if>
+                                        <span>
+                    <%--                        一款多单的时候直接显示再订单上即可,无需收款记录显示--%>
+                                                <%--<c:if test="${!vo.receiptOrderFlag}">
+                                                    <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">
+                                                        <label>抹平明细:</label>
+                                                        <c:if test="${order.confirmType eq 1}">
+                                                            <c:if test="${order.receiptOrderFlag}">
+                                                                <font color="red">(一款多单:少收抹平金额未知)</font>
+                                                            </c:if>
+                                                            <c:if test="${!order.receiptOrderFlag}">
+                                                                <font color="red">(少收抹平:
+                                                                    ¥<fmt:formatNumber
+                                                                            value="${order.payableAmount - (empty order.orderReceivedAmount ? 0 : order.orderReceivedAmount)}"
+                                                                            pattern="#0.00"/>)
+                                                                </font>
+                                                            </c:if>
+                                                        </c:if>
+                                                        <c:if test="${order.confirmType eq 2}">
+                                                            <c:if test="${order.receiptOrderFlag}">
+                                                                <font color="red">(一款多单:多收抹平金额未知)</font>
+                                                            </c:if>
+                                                            <c:if test="${!order.receiptOrderFlag}">
+                                                                <font color="red">(多收抹平:
+                                                                    ¥<fmt:formatNumber
+                                                                            value="${(empty order.orderReceivedAmount ? 0 : order.orderReceivedAmount) - order.payableAmount}"
+                                                                            pattern="#0.00"/>)
+                                                                </font>
+                                                            </c:if>
+                                                        </c:if>
+                                                        <c:if test="${order.confirmType eq 3}">
+                                                            <c:if test="${order.receiptOrderFlag}">
+                                                                <font color="red">(一款多单:多收退余额)</font>
+                                                            </c:if>
+                                                            <c:if test="${!order.receiptOrderFlag}">
+                                                                <font color="red">(多收退余额&nbsp;&nbsp;${order.associationType eq 2 ? "(自动)" : ""}:
+                                                                    ¥<fmt:formatNumber
+                                                                            value="${(empty order.returnBalanceAmount ? 0 : order.returnBalanceAmount)}"
+                                                                            pattern="#0.00"/>)
+                                                                </font>
+                                                            </c:if>
+                                                        </c:if>
+                                                    </c:if>
+                                                </c:if>--%>
+                                            </span>
+                                    </div>
+                                </c:forEach>
+                            </div>
+                        </div>
+                    </c:if>
+                    <%--<div class="receipt-order-row4">
+                        <div><h5><label>订单收款记录:</label></h5></div>
+                        <c:forEach items="${orderInfo.receiptRecordVo}" var="receiptRecord" varStatus="index">
+                            <div class="row4-wrapper">
+                                <span class="row4-order-no">${index.index + 1}、</span>
+                                <span class="row4-time">${receiptRecord.receiptTime}</span>
+                                <c:if test="${receiptRecord.payWay == 1}">
+                                    &lt;%&ndash;线上收款&ndash;%&gt;
+                                    <span>线上&nbsp;${receiptRecord.bankNameType}</span>
+                                    <span>${receiptRecord.receiptAmount}</span>
+                                    <span><label>交易号:</label>${receiptRecord.mbOrderId}</span>
+                                </c:if>
+                                <c:if test="${receiptRecord.payWay == 2}">
+                                    <span>线下&nbsp;${receiptRecord.bankNameType}</span>
+                                    <span>${receiptRecord.receiptAmount}</span>
+                                    <c:if test="${not empty receiptRecord.confirmUserPermissionID}">
+                                        <span>${receiptRecord.confirmUserName}确认(${receiptRecord.confirmDate})</span>
+                                    </c:if>
+                                    <c:if test="${not empty receiptRecord.reviewUserPermissionID}">
+                                    <span>
+                                        <c:if test="${receiptRecord.receiptStatus eq 4}">
+                                            ${receiptRecord.reviewUserName}审核不通过(${receiptRecord.reviewDate})
+                                        </c:if>
+                                        <c:if test="${receiptRecord.receiptStatus ne 4}">
+                                            ${receiptRecord.reviewUserName}审核通过(${receiptRecord.reviewDate})
+                                        </c:if>
+                                    </span>
+                                    </c:if>
+                                </c:if>
+                                <c:if test="${receiptRecord.payWay == 3}">
+                                    &lt;%&ndash;余额抵扣&ndash;%&gt;
+                                    <span><a
+                                            href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"
+                                            style="text-decoration: underline">${fns:getPayTypeStr(receiptRecord.payType)}</a></span>
+                                    <span><a
+                                            href="${ctx}/user/cmUserBalanceRecord/userBalanceRecord?userId=${orderInfo.userID}"
+                                            style="text-decoration: underline">${receiptRecord.receiptAmount}</a></span>
+                                </c:if>
+                                <span>
+    &lt;%&ndash;                        一款多单的时候直接显示再订单上即可,无需收款记录显示&ndash;%&gt;
+                                <c:if test="${!vo.receiptOrderFlag}">
+                                    <c:if test="${receiptRecord.confirmType eq 1 || receiptRecord.confirmType eq  2 || receiptRecord.confirmType eq 3}">
+                                        <label>抹平明细:</label>
+                                        <c:if test="${receiptRecord.confirmType eq 1}">
+                                                <font color="red">(少收抹平:
+                                                    ¥<fmt:formatNumber
+                                                            value="${orderInfo.payableAmount - (empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount)}"
+                                                            pattern="#0.00"/>元)
+                                                </font>
+                                        </c:if>
+                                        <c:if test="${receiptRecord.confirmType eq 2}">
+                                                <font color="red">(多收抹平:
+                                                    ¥<fmt:formatNumber
+                                                            value="${(empty receiptRecord.orderReceivedAmount ? 0 : receiptRecord.orderReceivedAmount) - orderInfo.payableAmount}"
+                                                            pattern="#0.00"/>元)
+                                                </font>
+                                        </c:if>
+                                        <c:if test="${receiptRecord.confirmType eq 3}">
+                                                <font color="red">(多收退余额${receiptRecord.associationType eq 2 ? "(自动)" : ""}:
+                                                    ¥<fmt:formatNumber
+                                                            value="${(empty receiptRecord.returnBalanceAmount ? 0 : receiptRecord.returnBalanceAmount)}"
+                                                            pattern="#0.00"/>元)
+                                                </font>
+                                        </c:if>
+                                    </c:if>
+                                </c:if>
+                                </span>
+&lt;%&ndash;                                <span>&ndash;%&gt;
+&lt;%&ndash;                                    ${receiptRecord.receiptAmount}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${vo.confirmer} 确认 ${vo.confirmTime}&ndash;%&gt;
+&lt;%&ndash;                                </span>&ndash;%&gt;
+                            </div>
+                        </c:forEach>
+                    </div>
+                </div>--%>
                 <br>
             </c:forEach>
         </div>

+ 3 - 2
src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptList.jsp

@@ -339,10 +339,11 @@
 <%--                <c:if test="${cmDiscernReceipt.receiptType != 6}">${cmDiscernReceipt.orders}</c:if>--%>
 <%--                <c:if test="${cmDiscernReceipt.receiptType == 6}">-----</c:if>--%>
 <%--                <c:if test="${cmDiscernReceipt.receiptType == 7}">-----</c:if>--%>
-                <c:if test="${cmDiscernReceipt.shopOrderId == null}">-----</c:if>
+                    ${cmDiscernReceipt.orders}
+                <%--<c:if test="${cmDiscernReceipt.shopOrderId == null}">-----</c:if>
                 <c:if test="${cmDiscernReceipt.shopOrderId != null}">
                     <a href="${ctx}/order/detail?id=${cmDiscernReceipt.orderID}&shopOrderID=${cmDiscernReceipt.shopOrderId}">子订单${cmDiscernReceipt.shopOrderNo}(${cmDiscernReceipt.shopOrderId})</a>
-                </c:if>
+                </c:if>--%>
             </td>
             <shiro:hasPermission name="order:cmDiscernReceipt:edit">
                 <td>

+ 3 - 3
src/main/webapp/WEB-INF/views/modules/order/newOrderList.jsp

@@ -309,8 +309,8 @@
                     <font color="green">已收款</font>
                 </c:if>
                 <br>
-                    <%--抹平明细--%>
-                <c:if test="${order.confirmType eq 1}">
+                    <%--抹平明细 主订单不在展示抹平 由子订单展示--%>
+                <%--<c:if test="${order.confirmType eq 1}">
                     <c:if test="${order.receiptOrderFlag}">
                         一款多单:少收抹平金额未知
                     </c:if>
@@ -345,7 +345,7 @@
                                     pattern="#0.00"/>
                         </font>
                     </c:if>
-                </c:if>
+                </c:if>--%>
             </li>
             <li>
                 <c:if test="${order.payStatus == 1}">

+ 41 - 4
src/main/webapp/WEB-INF/views/modules/order/orderDetail.jsp

@@ -447,8 +447,8 @@
                 <c:if test="${order.receiptStatus == 3}">
                     <font color="green">已收款</font>
                 </c:if>
-                    <%--抹平明细--%>
-                <c:if test="${order.confirmType eq 1}">
+                    <%--抹平明细 主订单不显示抹平,关联子订单--%>
+                <%--<c:if test="${order.confirmType eq 1}">
                     <c:if test="${order.receiptOrderFlag}">
                         <font color="red">(一款多单:少收抹平金额未知)</font>
                     </c:if>
@@ -483,7 +483,7 @@
                                     pattern="#0.00"/>)
                         </font>
                     </c:if>
-                </c:if>
+                </c:if>--%>
             </td>
             <td>发货状态:
                 <c:if test="${order.sendOutStatus == 1}">
@@ -918,7 +918,7 @@
                             </c:if>
 
                         </span>
-        <span>收款状态:
+                        <span>收款状态:
                             <c:if test="${shopOrder.shopReceiptStatus == 1}">
                                 <font color="red">待收款</font>
                             </c:if>
@@ -928,6 +928,43 @@
                             <c:if test="${shopOrder.shopReceiptStatus == 3}">
                                 <font color="green">已收款</font>
                             </c:if>
+                            <%--抹平明细--%>
+                            <c:if test="${shopOrder.confirmType eq 1}">
+                                <c:if test="${shopOrder.receiptOrderFlag}">
+                                    <font color="red">(一款多单:少收抹平金额未知)</font>
+                                </c:if>
+                                <c:if test="${!shopOrder.receiptOrderFlag}">
+                                    <font color="red">(少收抹平:
+                                        ¥<fmt:formatNumber
+                                                value="${shopOrder.needPayAmount - (empty shopOrder.orderReceivedAmount ? 0 : shopOrder.orderReceivedAmount)}"
+                                                pattern="#0.00"/>)
+                                    </font>
+                                </c:if>
+                            </c:if>
+                            <c:if test="${shopOrder.confirmType eq 2}">
+                                <c:if test="${shopOrder.receiptOrderFlag}">
+                                    <font color="red">(一款多单:多收抹平金额未知)</font>
+                                </c:if>
+                                <c:if test="${!shopOrder.receiptOrderFlag}">
+                                    <font color="red">(多收抹平:
+                                        ¥<fmt:formatNumber
+                                                value="${(empty shopOrder.receiptAmount ? 0 : shopOrder.orderReceivedAmount) - shopOrder.payableAmount}"
+                                                pattern="#0.00"/>)
+                                    </font>
+                                </c:if>
+                            </c:if>
+                            <c:if test="${shopOrder.confirmType eq 3}">
+                                <c:if test="${shopOrder.receiptOrderFlag}">
+                                    <font color="red">(一款多单:多收退余额)</font>
+                                </c:if>
+                                <c:if test="${!shopOrder.receiptOrderFlag}">
+                                    <font color="red">(多收退余额&nbsp;&nbsp;${shopOrder.associationType eq 2 ? "(自动)" : ""}:
+                                        ¥<fmt:formatNumber
+                                                value="${(empty shopOrder.returnBalanceAmount ? 0 : shopOrder.returnBalanceAmount)}"
+                                                pattern="#0.00"/>)
+                                    </font>
+                                </c:if>
+                            </c:if>
                         </span>
 
         <span>发货状态:

+ 67 - 49
src/main/webapp/WEB-INF/views/modules/product-new/productEdit.jsp

@@ -8,6 +8,12 @@
     <meta name="decorator" content="default"/>
     <link type="text/css" rel="stylesheet" href="${ctxStatic}/bootstrap-select/css/bootstrap-select.css"></link>
     <style>
+        .sku-item-li{
+            width: 100%;
+            height: auto;
+            float: left;
+            margin-bottom: 5px;
+        }
         .sku {
             display: flex;
             align-items: center;
@@ -16,10 +22,16 @@
             padding: 10px;
             white-space: nowrap;
             margin-top: 10px;
-            width: 1200px;
+            width: 1000px;
+        }
+        .sku-item-delete{
+            width: 40%;
+            height: auto;
+            float: left;
+            margin-left: 10px;
         }
-
         .sku .sku-item {
+            float: left;
             margin-right: 12px;
             padding: 4px 0;
         }
@@ -857,54 +869,60 @@
         <input type="hidden" name="skuId">
         <input type="hidden" name="organizeId">
         <input type="hidden" name="mallProductId">
-        <div class="sku-item sku-unit">
-            <span class="red">*</span>包装规格:
-            <input name="unit" type="text" maxlength="15" style="width: 40px" class="short required"/>
-        </div>
-        <div class="sku-item sku-normalPrice">
-            <span class="red">*</span>市场价:
-            <input style="width: 60px" name="normalPrice" type="number" maxlength="10"
-                   class="short input-small required"/>元
-        </div>
-        <div class="sku-item sku-stock">
-            <span>库存:</span>
-            <input name="stock" style="width: 50px" type="number" maxlength="11" class="short required"/>
-        </div>
-        <div class="sku-item sku-costCheckFlag">
-            <span class="red">*</span>成本:
-            <label><input type="radio" name="costCheckFlag" value="1" checked/>固定成本</label>
-            <b class="line">|</b>
-            <label><input type="radio" name="costCheckFlag" value="2"/>比例成本</label>
-        </div>
-        <div class="sku-item sku-costPrice">
-            <span class="red">*</span>
-            <span class="costFlagText">成本价</span>:
-            <input style="width: 60px" name="costPrice" type="number" maxlength="11" class="short"/> 元
-        </div>
-        <div class="sku-item sku-shopPercent" style="display: none;">
-            <span class="red">*</span>佣金比例:
-            供应商:<input style="width: 50px" name="shopPercent" type="number" maxlength="11" class="short"/>%
-            集团:<input style="width: 50px" name="organizePercent" type="number" maxlength="11" class="short"/>%
-            采美:<input style="width: 50px" name="cmPercent" type="number" maxlength="11" class="short"/>%
-        </div>
-        <div class="sku-item sku-price">
-            <span class="red">*</span>机构价:
-            <input name="price" type="number" id="price" maxlength="11" style="width: 70px"
-                   class="short computedPrice required"
-                   onkeyup="computedPriceLevel(this.value)"/>
+        <div class="sku-item-li">
+            <div class="sku-item sku-unit">
+                <span class="red">*</span>包装规格:
+                <input name="unit" type="text" maxlength="15" style="width: 40px" class="short required"/>
+            </div>
+            <div class="sku-item sku-normalPrice">
+                <span class="red">*</span>市场价:
+                <input style="width: 60px" name="normalPrice" type="number" maxlength="10"
+                       class="short input-small required"/>元
+            </div>
+            <div class="sku-item sku-price">
+                <span class="red">*</span>机构价:
+                <input name="price" type="number" id="price" maxlength="11" style="width: 70px"
+                       class="short computedPrice required"
+                       onkeyup="computedPriceLevel(this.value)"/>
+            </div>
+            <div class="sku-item sku-stock">
+                <span>库存:</span>
+                <input name="stock" style="width: 50px" type="number" maxlength="11" class="short required"/>
+            </div>
+            <div class="sku-item sku-minBuyNumber">
+                <span class="red">*</span>起订量:
+                <input style="width: 40px" type="number" name="minBuyNumber" maxlength="11" class="short  required"/>
+            </div>
         </div>
-        <div class="sku-item sku-ladderPriceFlag">
-            <span class="red">*</span>商品展示价格:
-            <label> <input type="radio" name="ladderPriceFlag" value="0" checked/> 不使用阶梯价格
-            </label>
-            <b class="line">|</b>
-            <label> <input type="radio" name="ladderPriceFlag" value="1"/>使用阶梯价格</label>
+        <div class="sku-item-li">
+            <div class="sku-item sku-costCheckFlag">
+                <span class="red">*</span>成本:
+                <label><input type="radio" name="costCheckFlag" value="1" checked/>固定成本</label>
+                <b class="line">|</b>
+                <label><input type="radio" name="costCheckFlag" value="2"/>比例成本</label>
+            </div>
+            <div class="sku-item sku-costPrice">
+                <span class="red">*</span>
+                <span class="costFlagText">成本价</span>:
+                <input style="width: 60px" name="costPrice" type="number" maxlength="11" class="short"/> 元
+            </div>
+            <div class="sku-item sku-shopPercent" style="display: none;">
+                <span class="red">*</span>佣金比例:
+                供应商:<input style="width: 50px" name="shopPercent" type="number" maxlength="11" class="short"/>%
+                集团:<input style="width: 50px" name="organizePercent" type="number" maxlength="11" class="short"/>%
+                采美:<input style="width: 50px" name="cmPercent" type="number" maxlength="11" class="short"/>%
+            </div>
         </div>
-        <div class="sku-item sku-minBuyNumber">
-            <span class="red">*</span>起订量:
-            <input style="width: 40px" type="number" name="minBuyNumber" maxlength="11" class="short  required"/>
+        <div class="sku-item-li sku-item-delete">
+            <div class="sku-item sku-ladderPriceFlag">
+                <span class="red">*</span>商品展示价格:
+                <label> <input type="radio" name="ladderPriceFlag" value="0" checked/> 不使用阶梯价格
+                </label>
+                <b class="line">|</b>
+                <label> <input type="radio" name="ladderPriceFlag" value="1"/>使用阶梯价格</label>
+            </div>
         </div>
-        <div><span><button class="deleteSku" onclick="deleteDiv(this)">删除SKU</button></span></div>
+        <div class="sku-item-delete"><span><button class="deleteSku" onclick="deleteDiv(this)">删除SKU</button></span></div>
         <div class="ladderPriceBox" style="display: none;">
             <div class="ladderPrice">
                 起订量:
@@ -2006,7 +2024,7 @@
         }
         var product = {
             skuIndex: ++skuIndex-1,
-            costCheckFlag: '2',
+            costCheckFlag: '1',
             ladderPriceFlag: '0'
         }
         setSkuPrototypeValues(current, product, 0);
@@ -2024,7 +2042,7 @@
         }
         var product = {
             skuIndex: ++skuIndex-1,
-            costCheckFlag: '2',
+            costCheckFlag: '1',
             ladderPriceFlag: '0'
         }
         setSkuPrototypeValues(current, product, 4);

+ 9 - 0
src/main/webapp/WEB-INF/views/modules/user/newCmShopSetForm.jsp

@@ -34,6 +34,15 @@
 	<form:form id="inputForm" modelAttribute="newCmShop" action="${ctx}/user/newCmShop/updateShop" method="post" class="form-horizontal">
 		<form:hidden path="shopID"/>
 		<sys:message content="${message}"/>
+		<div class="control-group">
+			<label class="control-label"><font color="red">*</font>账号归属:</label>
+			<div class="controls">
+				<form:select path="AccountOwnership" placeholder="请选择" class="input-xlarge required">
+					<form:option value="0" label="采美" />
+					<form:option value="1" label="供应商" />
+				</form:select>
+			</div>
+		</div>
 		<div class="control-group">
 			<label class="control-label"><font color="red">*</font>开户行:</label>
 			<div class="controls">