3
0

5 Commits e097c9f452 ... 4dd4def272

Autor SHA1 Nachricht Datum
  zhijiezhao 4dd4def272 二手小程序 vor 1 Woche
  zhijiezhao 9d96a0fde0 bugfix vor 2 Wochen
  zhijiezhao e18109d7e2 协销/服务商合并bugfix vor 3 Wochen
  zhijiezhao 7720a09509 Merge remote-tracking branch 'origin/developerA' into developer vor 3 Wochen
  zhijiezhao 6b31229aaa 薇旖美改自动结算,分账/结算列表去除薇旖美订单 vor 1 Monat

+ 0 - 4
src/main/java/com/caimei/modules/order/entity/CmSplitParams.java

@@ -6,10 +6,6 @@ import lombok.Data;
 public class CmSplitParams {
     private Integer shopOrderId;
     private Integer clubId;
-    /**
-     * 服务商id
-     */
-    private Integer providerId;
     /**
      * 供应商分帐号
      */

+ 5 - 3
src/main/java/com/caimei/modules/order/service/SplitAccountService.java

@@ -630,8 +630,10 @@ public class SplitAccountService extends BaseService {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String currentTime = format.format(calendar.getTime());
         List<OrderReceiptRelationPo> orderRelations = newOrderDao.getUndividedPaidReceipt(currentTime, shopOrderId);
-        if (null != params.getProviderId()) {
-            // 服务商
+        if (null != params.getShopSplitCode() && "E1808689662".equals(params.getShopSplitCode())) {
+            /**   服务商
+             *    当前版本薇旖美用厦门服务商作为供应商收款,订单收款商编为E1808689662判定为薇旖美订单
+             */
             params.setSplitType(1);
         } else {
             // 非服务商
@@ -680,7 +682,7 @@ public class SplitAccountService extends BaseService {
                 receiveCommission = 0.01;
             }
             // 收款手续费
-            totalReceiveCommission.set(MathUtil.add(receiveCommission,totalReceiveCommission.get()).doubleValue());
+            totalReceiveCommission.set(MathUtil.add(receiveCommission, totalReceiveCommission.get()).doubleValue());
         });
         /** todo 当前服务商模式默认 91%供应商,1%采美,8%服务商,后续应该后台加入分配比例,取值自动计算,或者使用商品编辑中的比例分账,在分账页手选服务商分帐号
          *  todo 当前形式仅支持单商品子订单,未考虑子订单多商品

+ 2 - 3
src/main/java/com/caimei/modules/order/web/CmPayShopController.java

@@ -34,7 +34,6 @@ import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 /**
@@ -786,9 +785,9 @@ public class CmPayShopController extends BaseController {
     @RequestMapping("new/splitParams")
     @ResponseBody
     public CmSplitParams splitParams(String shopOrderId) {
-        CmSplitParams splitParams = splitAccountService.getSplitParams(shopOrderId);
-        return splitParams;
+        return splitAccountService.getSplitParams(shopOrderId);
     }
+
     @RequestMapping("new/splitEdit")
     @ResponseBody
     public Map<String, Object> splitEdit(String shopOrderId, String splits) {

+ 7 - 0
src/main/java/com/caimei/modules/product/dao/ProductNewDao.java

@@ -3,6 +3,7 @@ package com.caimei.modules.product.dao;
 import com.caimei.modules.product.entity.Product;
 import com.caimei.modules.product.entity.ProductParameters;
 import com.caimei.modules.product.entity.ProductStatusRecord;
+import com.caimei.modules.product.entity.Shop;
 import com.caimei.modules.user.entity.SplitCode;
 import com.caimei.po.ProductImage;
 import com.thinkgem.jeesite.common.persistence.CrudDao;
@@ -69,4 +70,10 @@ public interface ProductNewDao extends CrudDao<Product> {
     void addProductData(@Param("productId") Integer productId,@Param("costPrice") String costPrice,@Param("shopPercent") String shopPercent,@Param("taxPoint") String taxPoint,@Param("supplierTaxPoint") String supplierTaxPoint);
 
     Product validIList(Integer productID);
+
+    List<Shop> findSaleMans();
+
+    void allocateSecond(Product product);
+
+    void updateSecondPublish(Product product);
 }

+ 17 - 5
src/main/java/com/caimei/modules/product/service/ProductNewService.java

@@ -3,7 +3,10 @@ package com.caimei.modules.product.service;
 
 import com.caimei.dfs.image.beens.ImageUploadInfo;
 import com.caimei.modules.common.utils.UploadUtils;
-import com.caimei.modules.hehe.dao.*;
+import com.caimei.modules.hehe.dao.CmHeheActivityProductDao;
+import com.caimei.modules.hehe.dao.CmHeheCollageProductDao;
+import com.caimei.modules.hehe.dao.CmHeheCouponDao;
+import com.caimei.modules.hehe.dao.CmHeheProductDao;
 import com.caimei.modules.hehe.entity.CmHeheActivityProduct;
 import com.caimei.modules.hehe.entity.CmHeheCollageProduct;
 import com.caimei.modules.hehe.entity.CmHeheProduct;
@@ -16,7 +19,6 @@ import com.caimei.modules.product.dao.ProductDao;
 import com.caimei.modules.product.dao.ProductNewDao;
 import com.caimei.modules.product.entity.*;
 import com.caimei.modules.sys.utils.UploadImageUtils;
-import com.caimei.modules.user.dao.NewCmShopDao;
 import com.caimei.modules.weisha.dao.CmMallOrganizeDao;
 import com.caimei.po.ProductImage;
 import com.caimei.po.ProductLadderPrice;
@@ -114,8 +116,8 @@ public class ProductNewService extends CrudService<ProductNewDao, Product> {
             CmOrganizeProductInfo cmOrganizeProductInfo = new CmOrganizeProductInfo();
             cmOrganizeProductInfo.setProductId(p.getProductID());
             p.setCmOrganizeProductInfos(cmOrganizeProductInfoMapper.getCmOrganizeProductInfoList(cmOrganizeProductInfo));
-            List<CmOrganizeProductInfo> infoList = p.getCmOrganizeProductInfos().stream().filter(s -> s.getValidFlag().equals(1)||s.getValidFlag().equals(8)).collect(Collectors.toList());
-            p.setOrganizeNameValidFlag(infoList.size()==0?null:infoList.size()>1?"2":"1");
+            List<CmOrganizeProductInfo> infoList = p.getCmOrganizeProductInfos().stream().filter(s -> s.getValidFlag().equals(1) || s.getValidFlag().equals(8)).collect(Collectors.toList());
+            p.setOrganizeNameValidFlag(infoList.size() == 0 ? null : infoList.size() > 1 ? "2" : "1");
 
             CmSku sku = null;
             if (p.getGroundMall().contains("0")) {
@@ -129,7 +131,7 @@ public class ProductNewService extends CrudService<ProductNewDao, Product> {
                 Integer costCheckFlag = 2;//
                 p.setCostCheckFlag(costCheckFlag.toString());
                 if (1 == costCheckFlag) {
-                    p.setCostPrice(sku.getCostPrice()!=null?sku.getCostPrice().toString():null);
+                    p.setCostPrice(sku.getCostPrice() != null ? sku.getCostPrice().toString() : null);
                 } else {
                     p.setSqlShopPercent(sku.getShopPercent());
                 }
@@ -504,4 +506,14 @@ public class ProductNewService extends CrudService<ProductNewDao, Product> {
             }
         });
     }
+
+    public List<Shop> findSaleMans() {
+        return productNewDao.findSaleMans();
+    }
+
+    @Transactional(readOnly = false, rollbackFor = Exception.class)
+    public void allocateSecond(Product product) {
+        productNewDao.allocateSecond(product);
+        productNewDao.updateSecondPublish(product);
+    }
 }

+ 18 - 17
src/main/java/com/caimei/modules/product/web/ProductNewController.java

@@ -26,8 +26,6 @@ import com.caimei.modules.user.service.CmUserOrganizeService;
 import com.caimei.po.ProductImage;
 import com.caimei.redis.RedisService;
 import com.caimei.utils.AppUtils;
-import com.caimei.utils.MathUtil;
-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;
@@ -237,20 +235,6 @@ public class ProductNewController extends BaseController {
         model.addAttribute("classify", classify);
         model.addAttribute("page", page);
         model.addAttribute("product", product);
-        //搜索条件保存
-        /*model.addAttribute("searchShopName", product.getShopName());
-        model.addAttribute("searchName", product.getName());
-        model.addAttribute("searchShopID", product.getShopID());
-        model.addAttribute("searchCommodityType", ("".equals(product.getCommodityType()) || product.getCommodityType() == null) ? product.getCommodityType() : Integer.parseInt(product.getCommodityType()));
-        model.addAttribute("searchBigTypeID", product.getBigTypeID());
-        model.addAttribute("searchSmallTypeID", product.getSmallTypeID());
-        model.addAttribute("searchTinyTypeID", product.getTinyTypeID());
-        model.addAttribute("searchActStatus", product.getActStatus());
-        model.addAttribute("searchProductType", product.getProductType());
-        model.addAttribute("searchBrandID", product.getBrandID());
-        model.addAttribute("searchPreferredFlag", product.getPreferredFlag());
-        model.addAttribute("searchProductCategory", product.getProductCategory());
-        model.addAttribute("searchValidFlag", product.getSearchValidFlag());*/
         if (StringUtils.isNotEmpty(id)) {
             // 单个商品搜索
             model.addAttribute("editFlag", "1");
@@ -260,7 +244,6 @@ public class ProductNewController extends BaseController {
         } else {
             return "modules/product-new/secondHand";
         }
-
     }
 
     @RequestMapping(value = "productAdd")
@@ -830,6 +813,24 @@ public class ProductNewController extends BaseController {
         return map;
     }
 
+    @RequestMapping(value = "allocate/form")
+    public String form(Product product, Model model) {
+        List<Shop> shops = productNewService.findSaleMans();
+        model.addAttribute("shops", shops);
+        model.addAttribute("product", product);
+        return "modules/product-new/secondAllocate";
+    }
+
+    @RequestMapping(value = "allocate")
+    public String allocateSecond(Product product, Model model) {
+        productNewService.allocateSecond(product);
+        product.setProductCategory("2");
+        model.addAttribute("message", "操作成功!");
+        model.addAttribute("product", product);
+        return "redirect:" + Global.getAdminPath() + "/product/new/list/";
+    }
+
+
     @RequestMapping("auditProduct")
     @ResponseBody
     public synchronized Map<String, Object> auditProduct(String validFlag, Integer newvalidFlag, String showtime, Integer productID, String remarks) {

+ 2 - 4
src/main/resources/mappings/modules/order/OrderMapper.xml

@@ -2112,16 +2112,14 @@
         SELECT cso.shopOrderId,
                cso.splitCode AS shopSplitCode,
                cso.clubId,
-               sp.providerId,
-               cp.splitCode AS providerSplitCode,
+               sp.splitCode AS providerSplitCode,
                c.name AS clubName,
                sp.name AS spName,
-               cp.name AS cpName,
+               sp.name AS cpName,
                cso.needPayAmount
         FROM cm_shop_order cso
         LEFT JOIN club c ON cso.clubId = c.clubId
         LEFT JOIN serviceprovider sp ON c.spId = sp.serviceProviderId
-        LEFT JOIN cm_providers cp ON sp.providerId = cp.id
         WHERE cso.shopOrderId = #{shopOrderId}
     </select>
 

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

@@ -1470,6 +1470,7 @@
           AND cror.splitStatus = 0
           AND a.receiptStatus = 3
           AND a.splitCode != 'E1807059160'
+          AND a.splitCode != 'E1808689662'
           AND co.orderID NOT IN (SELECT orderID
                                  FROM cm_order_product
                                  WHERE productID IN
@@ -1619,6 +1620,7 @@
         AND cror.mbOrderId IS NOT NULL
         AND cror.splitStatus = 1
         AND a.splitCode != 'E1807059160'
+        AND a.splitCode != 'E1808689662'
         <if test="startTime != null and startTime != ''">
             AND (a.orderTime &gt; #{startTime} OR a.orderTime = #{startTime})
         </if>

+ 18 - 0
src/main/resources/mappings/modules/product/ProductNewMapper.xml

@@ -730,6 +730,16 @@
         WHERE productID = #{productID}
     </update>
 
+    <update id="allocateSecond">
+        update product set shopId = #{shopID}
+        where productId = #{productID}
+    </update>
+    <update id="updateSecondPublish">
+        update cm_second_hand_detail
+        set allocateStatus = 2
+        where productId = #{productID}
+    </update>
+
     <delete id="deleteImage">
         DELETE
         FROM productimage
@@ -835,5 +845,13 @@
         where p.productID = #{productID}
     </select>
 
+    <select id="findSaleMans" resultType="com.caimei.modules.product.entity.Shop">
+        select s.shopId,s.name,s.userId
+        from shop s
+        left join user u on s.userid = u.userId
+        where u.userOrganizeID = 5
+        and u.userIdentity = 3
+    </select>
+
 </mapper>
 

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

@@ -8,7 +8,6 @@
 		a.name AS "name",
 		a.linkMan AS "linkMan",
 		a.contractMobile AS "contractMobile",
-		a.contractEmail AS "contractEmail",
 		a.duty AS "duty",
 		a.status AS "status",
 		a.addTime AS "addTime",
@@ -90,7 +89,6 @@
 		name,
 		contractMobile,
 		duty,
-		contractEmail,
 		linkMan,
 		status,
 		addTime,
@@ -101,7 +99,6 @@
 		#{name},
 		#{contractMobile},
 		#{duty},
-		#{contractEmail},
 		#{linkMan},
 		#{status},
 		#{addTime},
@@ -115,9 +112,7 @@
         providerId = if(#{insiderFlag} = 1,#{providerId},null),
 		organizeID = 0,
 		name = #{name},
-		contractPhone = #{contractPhone},
 		contractMobile = #{contractMobile},
-		contractEmail = #{contractEmail},
 		linkMan = #{linkMan},
 		duty = #{duty},
 		status = #{status},

+ 54 - 0
src/main/webapp/WEB-INF/views/modules/product-new/secondAllocate.jsp

@@ -0,0 +1,54 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+    <title>二手分配</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript">
+        $(document).ready(function () {
+            $("#inputForm").validate({
+                submitHandler: function (form) {
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function (error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox") || element.is(":radio") || element.parent().is(".input-append")) {
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+        });
+    </script>
+</head>
+<body>
+<ul class="nav nav-tabs">
+    <li class="active"><a href="${ctx}/product/new/allocate/form?productID=${product.productID}">二手分配</a></li>
+</ul>
+<br/>
+<form:form id="inputForm" modelAttribute="product" action="${ctx}/product/new/allocate" method="post"
+           class="form-horizontal">
+    <form:hidden path="productID" value="${product.productID}"/>
+    <sys:message content="${message}"/>
+    <div class="control-group">
+        <label class="control-label"><font color="red">*</font>区域经理:</label>
+        <div class="controls">
+            <form:select path="shopID" class="input">
+                <form:option value="" label="请选择"/>
+                <c:forEach items="${shops}" var="shop">
+                    <form:option value="${shop.shopID}" label ="${shop.name}" htmlEscape="false"/>
+                </c:forEach>
+            </form:select>
+            <font color="red">注:未分配无法上架</font>
+        </div>
+    </div>
+    <div class="form-actions">
+        <input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>&nbsp;
+        <input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+    </div>
+</form:form>
+</body>
+</html>

+ 18 - 20
src/main/webapp/WEB-INF/views/modules/product-new/secondHand.jsp

@@ -92,14 +92,14 @@
                     <form:option value="4" label="小程序-协销"/>
                 </form:select>
             </div>
-            <div class="item">
-                <label>发布者身份:</label>
-                <form:select path="publishIdentity" class="input-medium">
-                    <form:option value="" label="请选择"/>
-                    <form:option value="1" label="个人身份"/>
-                    <form:option value="2" label="机构身份"/>
-                </form:select>
-            </div>
+<%--            <div class="item">--%>
+<%--                <label>发布者身份:</label>--%>
+<%--                <form:select path="publishIdentity" class="input-medium">--%>
+<%--                    <form:option value="" label="请选择"/>--%>
+<%--                    <form:option value="1" label="个人身份"/>--%>
+<%--                    <form:option value="2" label="机构身份"/>--%>
+<%--                </form:select>--%>
+<%--            </div>--%>
             <div class="item">
                 <label>卖家:</label>
                 <form:input path="contactName" htmlEscape="false" maxlength="30" class="input-medium"/>
@@ -126,7 +126,7 @@
         <th>商品图片</th>
         <th>商品品牌</th>
         <th>商品名称</th>
-        <th>发布者身份</th>
+<%--        <th>发布者身份</th>--%>
         <th>卖家</th>
 <%--        <th>采美对接人</th>--%>
         <th>来源</th>
@@ -174,14 +174,14 @@
                     </a>
                 </c:if>
             </td>
-            <td>
-                <c:if test="${product.publishIdentity eq 1}">
-                    个人身份
-                </c:if>
-                <c:if test="${product.publishIdentity eq 2}">
-                    公司身份
-                </c:if>
-            </td>
+<%--            <td>--%>
+<%--                <c:if test="${product.publishIdentity eq 1}">--%>
+<%--                    个人身份--%>
+<%--                </c:if>--%>
+<%--                <c:if test="${product.publishIdentity eq 2}">--%>
+<%--                    公司身份--%>
+<%--                </c:if>--%>
+<%--            </td>--%>
             <td>
                 <c:if test="${product.publishIdentity eq 1}">
                     ${product.contactName}
@@ -285,7 +285,7 @@
                                 <a class="red" href="javascript:void(0);" onclick="line(${product.id}, 2)">上架</a>
                             </c:if>
                             <a class="red" href="javascript:void(0);" onclick="validChange(${product.id},0)" >删除</a>
-
+                            <a class="red" href = "${ctx}/product/new/allocate/form?productID=${product.id}">分配区域经理</a>
                         </td>
                     </c:if>
                 </c:if>
@@ -309,8 +309,6 @@
                             <c:if test="${product.validFlag eq 9}">
                                 <a class="red" href="javascript:void(0);" onclick="validChange(${product.id}, 2)">解除冻结</a>
                             </c:if>
-
-
                             <a class="red" href="javascript:void(0);" onclick="validChange(${product.id}, 0)" >删除</a>
                         </td>
                     </c:if>