Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

Aslee před 4 roky
rodič
revize
2a4cd441ba
28 změnil soubory, kde provedl 662 přidání a 377 odebrání
  1. 61 1
      src/main/java/com/caimei/controller/OrderApi.java
  2. 0 18
      src/main/java/com/caimei/controller/OrderSubmitApi.java
  3. 3 28
      src/main/java/com/caimei/controller/PayOrderApi.java
  4. 89 3
      src/main/java/com/caimei/mapper/OrderMapper.java
  5. 2 24
      src/main/java/com/caimei/mapper/OrderSubmitMapper.java
  6. 0 16
      src/main/java/com/caimei/mapper/PayOrderMapper.java
  7. 1 1
      src/main/java/com/caimei/mapper/ProductMapper.java
  8. 41 0
      src/main/java/com/caimei/model/po/CmMallOrderSearchHistoryPo.java
  9. 0 30
      src/main/java/com/caimei/model/vo/OrderProductVo.java
  10. 21 0
      src/main/java/com/caimei/model/vo/OrderVo.java
  11. 6 10
      src/main/java/com/caimei/model/vo/ShopOrderVo.java
  12. 44 0
      src/main/java/com/caimei/service/OrderService.java
  13. 0 11
      src/main/java/com/caimei/service/OrderSubmitService.java
  14. 0 16
      src/main/java/com/caimei/service/PayOrderService.java
  15. 2 2
      src/main/java/com/caimei/service/impl/AddressServiceImpl.java
  16. 0 3
      src/main/java/com/caimei/service/impl/LoginServiceImpl.java
  17. 99 5
      src/main/java/com/caimei/service/impl/OrderServiceImpl.java
  18. 4 68
      src/main/java/com/caimei/service/impl/OrderSubmitServiceImpl.java
  19. 6 51
      src/main/java/com/caimei/service/impl/PayOrderServiceImpl.java
  20. 11 10
      src/main/java/com/caimei/service/impl/ProductServiceImpl.java
  21. 11 0
      src/main/resources/config/beta/application-beta.yml
  22. 1 5
      src/main/resources/config/dev/application-dev.yml
  23. 12 1
      src/main/resources/config/prod/application-prod.yml
  24. 4 0
      src/main/resources/mapper/AddressMapper.xml
  25. 178 13
      src/main/resources/mapper/OrderMapper.xml
  26. 18 40
      src/main/resources/mapper/OrderSubmitMapper.xml
  27. 47 20
      src/main/resources/mapper/PayOrderMapper.xml
  28. 1 1
      src/main/resources/mapper/ShoppingCartMapper.xml

+ 61 - 1
src/main/java/com/caimei/controller/OrderApi.java

@@ -40,7 +40,7 @@ public class OrderApi {
      */
     @ApiOperation("我的订单")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "orderState", required = true, value = "1:待确认,2:待付款,3:待发货,4:已发货,5:退货款"),
+            @ApiImplicitParam(name = "orderState", required = true, value = "1:待付款,2:待发货,3:已发货,4:退货款"),
             @ApiImplicitParam(name = "organizeId", required = true, value = "组织id"),
             @ApiImplicitParam(name = "userId", required = false, value = "机构用户id"),
             @ApiImplicitParam(name = "pageNum", required = false, value = "第几页"),
@@ -113,4 +113,64 @@ public class OrderApi {
     public ResponseJson<Boolean> verifyShareCode(String shareCode, String code, Integer orderId, Integer organizeId) {
         return orderService.verifyShareCode(shareCode, code, orderId, organizeId);
     }
+
+    /**
+     * 删除订单
+     */
+    @GetMapping("/delete")
+    @ApiOperation("删除订单")
+    @ApiImplicitParam(name = "orderId", required = true, value = "订单id")
+    public ResponseJson<String> deleteOrder(Integer orderId) {
+        return orderService.deleteOrder(orderId);
+    }
+
+    /**
+     * 取消订单
+     */
+    @ApiOperation("取消订单")
+    @ApiImplicitParam(name = "orderId", required = true, value = "订单id")
+    @GetMapping("/cancel")
+    public ResponseJson<String> cancelOrder(Integer orderId) {
+        return orderService.cancelOrder(orderId);
+    }
+
+    /**
+     * 根据关键词获取订单
+     */
+    @ApiOperation("根据关键词获取订单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "searchWord", required = true, value = "搜索关键词"),
+            @ApiImplicitParam(name = "organizeId", required = true, value = "组织id"),
+            @ApiImplicitParam(name = "pageNum", required = false, value = "第几页"),
+            @ApiImplicitParam(name = "pageSize", required = false, value = "一页多少条")
+    })
+    @GetMapping("/search")
+    public ResponseJson<PageInfo<OrderVo>> getProductsBySearch(String searchWord, Integer organizeId,
+                                                               @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
+                                                               @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
+        if (searchWord == null || "".equals(searchWord)) {
+            return ResponseJson.error("请输入搜索关键词", null);
+        }
+        return orderService.searchOrder(searchWord, organizeId, pageNum, pageSize);
+    }
+
+    /**
+     * 根据组织ID查找历史记录
+     */
+    @ApiOperation("根据组织ID查找历史记录")
+    @ApiImplicitParam(name = "organizeId", required = true, value = "组织id")
+    @GetMapping("/searchHistory")
+    public ResponseJson<List<String>> getSearchHistory(Integer organizeId) {
+        return orderService.getSearchHistory(organizeId);
+    }
+
+    /**
+     * 根据组织ID删除历史记录
+     */
+    @ApiOperation("根据组织ID删除历史记录")
+    @ApiImplicitParam(name = "organizeId", required = true, value = "组织id")
+    @GetMapping("/searchHistory/delete")
+    public ResponseJson<String> deleteSearchHistory(Integer organizeId) {
+        return orderService.deleteSearchHistory(organizeId);
+    }
 }

+ 0 - 18
src/main/java/com/caimei/controller/OrderSubmitApi.java

@@ -57,9 +57,6 @@ public class OrderSubmitApi {
      * 提交订单
      *
      * @param params 参数格式:{
-     *               *   "cartType":3,               //购买类型:(1购物车提交[对应表cm_cart],2直接购买提交, 3协销下单)
-     *               *   "orderSource": 2,           //订单来源:1WWW、2CRM、3APP[历史数据]、4客服[适用后台下单]、5外单[适用后台下单]、6小程序[采美,星范等]
-     *               *   "serviceProviderId": 1378,  //协销ID(小程序忽略)
      *               *   "clubUserId": 10708,        //机构用户ID
      *               *   "addressId": 2732,          //地址ID
      *               *   "orderInfo": [
@@ -149,19 +146,4 @@ public class OrderSubmitApi {
         log.info("****** 提交订单参数:【机构自己下单】:" + params);
         return orderSubmitService.orderSubmit(clubUserId, addressId, orderInfo, payInfo, orderInvoice);
     }
-
-    /**
-     * 获取运费
-     */
-    @ApiOperation("获取运费")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "productIds", value = "组织商品ID串用逗号隔开。", required = true),
-            @ApiImplicitParam(name = "userId", value = "机构用户id。", required = true),
-            @ApiImplicitParam(name = "totalPrice", value = "商品总金额。", required = true),
-            @ApiImplicitParam(name = "townId", value = "区id", required = true)
-    })
-    @GetMapping("/postage")
-    public ResponseJson<Map<String, Object>> orderPostage(String productIds, Double totalPrice, Integer townId, Integer userId) {
-        return orderSubmitService.orderPostage(productIds, totalPrice, townId, userId);
-    }
 }

+ 3 - 28
src/main/java/com/caimei/controller/PayOrderApi.java

@@ -13,11 +13,10 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.http.HttpHeaders;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.reactive.function.server.ServerRequest;
 
-import java.io.IOException;
 import java.util.Map;
 
 /**
@@ -44,9 +43,6 @@ public class PayOrderApi {
     @Value("${caimei.redirectLink}")
     private String redirectLink;
 
-    @Value("${caimei.linkPage}")
-    private String linkPage;
-
     /**
      * 获取线上支付开关状态
      *
@@ -74,11 +70,11 @@ public class PayOrderApi {
      */
     @ApiOperation("微信线上支付")
     @PostMapping("/miniWxPay")
-    public ResponseJson<JSONObject> miniWxPay(@RequestBody PaymentDto payment, ServerRequest request) {
+    public ResponseJson<JSONObject> miniWxPay(@RequestBody PaymentDto payment, @RequestHeader HttpHeaders headers) {
         if (!"WEIXIN".equals(payment.getPayWay()) || payment.getPayAmount() == null || payment.getPayAmount() < 2) {
             return ResponseJson.error("参数异常", null);
         }
-        String clientIp = request.headers().asHttpHeaders().getFirst("X-CLIENT-IP");
+        String clientIp = headers.getFirst("X-CLIENT-IP");
         payment.setClientIp(clientIp);
         Map<String, Object> map = null;
         if (null == payment.getState()) {
@@ -135,27 +131,6 @@ public class PayOrderApi {
         return payOrderService.payLink(orderPayLink);
     }
 
-    /**
-     * 支付链接重定向到页面
-     */
-    @ApiOperation("支付链接重定向到页面")
-    @GetMapping("/jumpPage")
-    public void jumpPage(String linkLogo, ServerHttpResponse response) throws IOException {
-        payOrderService.jumpPage(linkLogo, linkPage, response);
-    }
-
-    /**
-     * 链接数据
-     */
-    @ApiOperation("链接数据")
-    @GetMapping("/linkData")
-    public ResponseJson<Map<String, Object>> linkData(String linkLogo) {
-        if (StringUtils.isBlank(linkLogo)) {
-            return ResponseJson.error("参数异常", null);
-        }
-        return payOrderService.linkData(linkLogo);
-    }
-
     /**
      * pc端支付,银联,支付宝
      */

+ 89 - 3
src/main/java/com/caimei/mapper/OrderMapper.java

@@ -1,8 +1,6 @@
 package com.caimei.mapper;
 
-import com.caimei.model.po.CmMallOrderShareCodePo;
-import com.caimei.model.po.PromotionsPo;
-import com.caimei.model.po.ShareCodeRecordPo;
+import com.caimei.model.po.*;
 import com.caimei.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -202,4 +200,92 @@ public interface OrderMapper {
      * @param codeRecord
      */
     void insertShareCodeRecord(ShareCodeRecordPo codeRecord);
+
+    /**
+     * 逻辑删除主订单
+     *
+     * @param orderId
+     */
+    void deleteOrder(Integer orderId);
+
+    /**
+     * 逻辑删除子订单
+     *
+     * @param orderId
+     */
+    void deleteShopOrder(Integer orderId);
+
+    /**
+     * 逻辑删除订单收款记录
+     *
+     * @param orderId
+     */
+    void deleteReceiptOrderRelation(Integer orderId);
+
+    /**
+     * 逻辑删除收款记录
+     *
+     * @param id
+     */
+    void deleteDiscernReceipt(Long id);
+
+    /**
+     * 查询付款记录
+     *
+     * @param shopOrderId
+     * @return
+     */
+    List<CmPayShopRecordPo> findPayShopRecord(Integer shopOrderId);
+
+    /**
+     * 逻辑删除子订单付款记录
+     *
+     * @param shopOrderId
+     */
+    void deletePayShopRecord(Integer shopOrderId);
+
+    /**
+     * 逻辑删除付款记录
+     *
+     * @param payShopId
+     */
+    void updatePayShop(Integer payShopId);
+
+    /**
+     * 取消订单
+     *
+     * @param orderId
+     */
+    void cancelOrder(Integer orderId);
+
+    /**
+     * 查询相关商品名称订单
+     *
+     * @param searchWord
+     * @param organizeId
+     * @return
+     */
+    List<OrderVo> searchOrder(@Param("searchWord") String searchWord,@Param("organizeId") Integer organizeId);
+
+    /**
+     * 查询组织订单搜索历史记录
+     *
+     * @param organizeId
+     * @return
+     */
+    List<String> getSearchHistoryList(Integer organizeId);
+
+    /**
+     * 删除订单搜索历史记录
+     *
+     * @param organizeId
+     */
+    void deleteSearchHistory(Integer organizeId);
+
+    /**
+     * 保存订单搜索历史记录
+     *
+     * @param searchHistoryPo
+     */
+    void insertHistory(CmMallOrderSearchHistoryPo searchHistoryPo);
 }

+ 2 - 24
src/main/java/com/caimei/mapper/OrderSubmitMapper.java

@@ -31,9 +31,10 @@ public interface OrderSubmitMapper {
      *
      * @param shopId
      * @param productIds
+     * @param userId
      * @return
      */
-    List<CartProductVo> findProductListByCart(@Param("shopId") Integer shopId, @Param("productIds") String[] productIds);
+    List<CartProductVo> findProductListByCart(@Param("shopId") Integer shopId, @Param("productIds") String[] productIds, @Param("userId") Integer userId);
 
     /**
      * 查询商品信息
@@ -162,27 +163,4 @@ public interface OrderSubmitMapper {
      * @return
      */
     AddressVo findByAddressId(Integer addressId);
-
-    /**
-     * 查询商品
-     *
-     * @param productId
-     * @return
-     */
-    ProductPo findProductById(int productId);
-
-    /**
-     * 是否首单
-     *
-     * @param userId
-     * @return
-     */
-    Integer countUserOrder(Integer userId);
-
-    /**
-     * 查询省市
-     * @param townId
-     * @return
-     */
-    CityVo findCityByTownId(Integer townId);
 }

+ 0 - 16
src/main/java/com/caimei/mapper/PayOrderMapper.java

@@ -68,22 +68,6 @@ public interface PayOrderMapper {
      */
     void insertOrderPayLink(OrderPayLinkVo orderPayLink);
 
-    /**
-     * 查询线上支付链接
-     *
-     * @param linkLogo
-     * @return
-     */
-    OrderPayLinkVo getOrderPayLink(String linkLogo);
-
-    /**
-     * 查询用户信息
-     *
-     * @param userId
-     * @return
-     */
-    UserPo findUser(Long userId);
-
     /**
      * 查询订单商品
      *

+ 1 - 1
src/main/java/com/caimei/mapper/ProductMapper.java

@@ -39,7 +39,7 @@ public interface ProductMapper {
     /**
      * 根据商品Id查询促销活动
      *
-     * @param productId
+     * @param productId 组织商品id
      * @return
      */
     PromotionsPo findPromotionByProductId(Integer productId);

+ 41 - 0
src/main/java/com/caimei/model/po/CmMallOrderSearchHistoryPo.java

@@ -0,0 +1,41 @@
+package com.caimei.model.po;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * cm_mall_order_search_history
+ * @author 
+ */
+@Data
+public class CmMallOrderSearchHistoryPo implements Serializable {
+    private Long id;
+
+    /**
+     * 组织ID,具体对应cm_mall_organize表ID
+     */
+    private Integer organizeID;
+
+    /**
+     * 小程序商城openid
+     */
+    private String openID;
+
+    /**
+     * 搜索关键词
+     */
+    private String searchWord;
+
+    /**
+     * 搜索时间
+     */
+    private Date searchDate;
+
+    /**
+     * 删除标记 0 否,其余是
+     */
+    private String delFlag;
+
+    private static final long serialVersionUID = 1L;
+}

+ 0 - 30
src/main/java/com/caimei/model/vo/OrderProductVo.java

@@ -161,36 +161,6 @@ public class OrderProductVo implements Serializable {
      */
     private BigDecimal shopProductAmount;
 
-    /**
-     * 该商品总的应付供应商金额
-     */
-    private BigDecimal shopFee;
-
-    /**
-     * 该商品总的应付第三方金额
-     */
-    private BigDecimal otherFee;
-
-    /**
-     * 该商品总的应付采美金额 (受赠品影响)
-     */
-    private BigDecimal cmFee;
-
-    /**
-     * 后台设置的单个应付供应商金额
-     */
-    private BigDecimal singleShopFee;
-
-    /**
-     * 后台设置单个应付第三方金额
-     */
-    private BigDecimal singleOtherFee;
-
-    /**
-     * 后台计算的单个应付采美金额
-     */
-    private BigDecimal singleCmFee;
-
     /**
      * 订单商品状态
      */

+ 21 - 0
src/main/java/com/caimei/model/vo/OrderVo.java

@@ -123,6 +123,22 @@ public class OrderVo implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private String orderTime;
 
+    /**
+     * 购买总数
+     */
+    private Integer productCount;
+
+    /**
+     * 赠送总数 不计算价格
+     */
+    private Integer presentCount;
+
+    /**
+     * 赠送总数
+     */
+    private Integer promotionalGiftsCount;
+
+
     /**
      * 是否开发票 没开发票 0 开个人发票 1 开企业发票2
      */
@@ -193,6 +209,11 @@ public class OrderVo implements Serializable {
      */
     private BigDecimal ExpensesOfTaxation;
 
+    /**
+     * 机构名称
+     */
+    private String clubName;
+
     /**
      * 支付按钮是否消失,true消失
      */

+ 6 - 10
src/main/java/com/caimei/model/vo/ShopOrderVo.java

@@ -51,7 +51,7 @@ public class ShopOrderVo implements Serializable {
     private Integer presentNum;
 
     /**
-     *   购买数量
+     * 购买数量
      */
     private Integer itemCount;
 
@@ -255,15 +255,6 @@ public class ShopOrderVo implements Serializable {
      */
     private BigDecimal payedShopAmount;
 
-    /**
-     * 付第三方
-     */
-    private BigDecimal shopOtherFee;
-
-    private String receiptedFlag;
-
-    private String receiptedType;
-
     /**
      * 固定成本1,  比例成本2  为空就是还没有设置过
      */
@@ -284,6 +275,11 @@ public class ShopOrderVo implements Serializable {
      */
     private String shopLogo;
 
+    /**
+     * 供应商名称
+     */
+    private String shopName;
+
     private List<OrderProductVo> orderProductList;
 
     /**

+ 44 - 0
src/main/java/com/caimei/service/OrderService.java

@@ -61,6 +61,7 @@ public interface OrderService {
 
     /**
      * 分享订单,分享码验证通过
+     *
      * @param shareCode
      * @param code
      * @param orderId
@@ -68,4 +69,47 @@ public interface OrderService {
      * @return
      */
     ResponseJson<Boolean> verifyShareCode(String shareCode, String code, Integer orderId, Integer organizeId);
+
+    /**
+     * 删除订单
+     *
+     * @param orderId
+     * @return
+     */
+    ResponseJson<String> deleteOrder(Integer orderId);
+
+    /**
+     * 取消订单
+     *
+     * @param orderId
+     * @return
+     */
+    ResponseJson<String> cancelOrder(Integer orderId);
+
+    /**
+     * 根据关键词获取订单
+     *
+     * @param searchWord
+     * @param organizeId
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    ResponseJson<PageInfo<OrderVo>> searchOrder(String searchWord, Integer organizeId, Integer pageNum, Integer pageSize);
+
+    /**
+     * 根据组织ID查找历史记录
+     *
+     * @param organizeId
+     * @return
+     */
+    ResponseJson<List<String>> getSearchHistory(Integer organizeId);
+
+    /**
+     * 删除历史记录
+     *
+     * @param organizeId
+     * @return
+     */
+    ResponseJson<String> deleteSearchHistory(Integer organizeId);
 }

+ 0 - 11
src/main/java/com/caimei/service/OrderSubmitService.java

@@ -32,15 +32,4 @@ public interface OrderSubmitService {
      * @return
      */
     ResponseJson<Map<String, String>> orderSubmit(Integer clubUserId, Integer addressId, List<Map<String, Object>> orderInfo, Map<String, Object> payInfo, Map<String, Object> orderInvoice);
-
-    /**
-     * 运费规则
-     *
-     * @param productIds
-     * @param totalPrice
-     * @param townId
-     * @param userId
-     * @return
-     */
-    ResponseJson<Map<String, Object>> orderPostage(String productIds, Double totalPrice, Integer townId, Integer userId);
 }

+ 0 - 16
src/main/java/com/caimei/service/PayOrderService.java

@@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.caimei.model.ResponseJson;
 import com.caimei.model.dto.PaymentDto;
 import com.caimei.model.vo.OrderPayLinkVo;
-import org.springframework.http.server.reactive.ServerHttpResponse;
-import org.springframework.web.reactive.function.server.ServerRequest;
 
-import java.io.IOException;
 import java.util.Map;
 
 /**
@@ -50,19 +47,6 @@ public interface PayOrderService {
      */
     ResponseJson<String> payLink(OrderPayLinkVo orderPayLink);
 
-    /**
-     * 重定向到收银台页面
-     */
-    void jumpPage(String linkLogo, String linkPage, ServerHttpResponse response) throws IOException;
-
-    /**
-     * 链接数据
-     *
-     * @param linkLogo
-     * @return
-     */
-    ResponseJson<Map<String, Object>> linkData(String linkLogo);
-
     /**
      * 判断此次支付是否完成
      *

+ 2 - 2
src/main/java/com/caimei/service/impl/AddressServiceImpl.java

@@ -39,8 +39,8 @@ public class AddressServiceImpl implements AddressService {
         if (address.getDefaultFlag() != null && "1".equals(address.getDefaultFlag())) {
             AddressVo addressVo = addressMapper.findDefaultAddress(address.getUserId());
             if (addressVo != null) {
-                address.setDefaultFlag("0");
-                addressMapper.updateAddress(address);
+                addressVo.setDefaultFlag("0");
+                addressMapper.updateAddress(addressVo);
             }
         }
         if (address.getAddressId() == null) {

+ 0 - 3
src/main/java/com/caimei/service/impl/LoginServiceImpl.java

@@ -89,9 +89,6 @@ public class LoginServiceImpl implements LoginService {
         Map<String, Object> map = new HashMap<>(5);
         CmMallOrganizePo organize = loginMapper.findOrganize(organizeId);
         map.put("organizeName", organize.getOrganizeName());
-        //待确认数量
-        Integer confirmedCount = loginMapper.findOrderCount(organizeId, 0);
-        map.put("confirmedCount", confirmedCount);
         //待付款数量
         Integer paymentCount = loginMapper.findOrderCount(organizeId, 1);
         paymentCount = paymentCount == null ? 0 : paymentCount;

+ 99 - 5
src/main/java/com/caimei/service/impl/OrderServiceImpl.java

@@ -6,11 +6,10 @@ import com.alibaba.fastjson.JSONObject;
 import com.caimei.config.WxConfig;
 import com.caimei.mapper.LoginMapper;
 import com.caimei.mapper.OrderMapper;
+import com.caimei.mapper.OrderSubmitMapper;
 import com.caimei.model.ResponseJson;
 import com.caimei.model.enumerate.ReceivablesType;
-import com.caimei.model.po.CmMallOrderShareCodePo;
-import com.caimei.model.po.PromotionsPo;
-import com.caimei.model.po.ShareCodeRecordPo;
+import com.caimei.model.po.*;
 import com.caimei.model.vo.*;
 import com.caimei.service.OrderService;
 import com.caimei.util.MathUtil;
@@ -19,8 +18,10 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.RandomStringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -39,6 +40,8 @@ public class OrderServiceImpl implements OrderService {
     private OrderMapper orderMapper;
     @Resource
     private LoginMapper loginMapper;
+    @Resource
+    private OrderSubmitMapper orderSubmitMapper;
     @Value("${caimei.oldapi}")
     private String domain;
 
@@ -46,7 +49,18 @@ public class OrderServiceImpl implements OrderService {
     public ResponseJson<PageInfo<OrderVo>> getOrderList(Integer orderState, Integer userId, Integer organizeId, Integer pageNum, Integer pageSize) {
         PageHelper.startPage(pageNum, pageSize);
         List<OrderVo> orderList = orderMapper.findOrderList(userId, orderState, organizeId);
+        getOrderData(orderList);
+        PageInfo<OrderVo> pageData = new PageInfo<>(orderList);
+        return ResponseJson.success(pageData);
+    }
+
+    /**
+     * 主订单下信息
+     */
+    private void getOrderData(List<OrderVo> orderList) {
         for (OrderVo order : orderList) {
+            UserPo user = orderSubmitMapper.findUser(order.getUserId().intValue());
+            order.setClubName(user.getName());
             //111,待付待收待发
             if ("11".equals(order.getStatus()) && "1".equals(order.getPayStatus())) {
                 order.setStatus("111");
@@ -87,8 +101,6 @@ public class OrderServiceImpl implements OrderService {
             //设置付款金额
             getDiscernReceipt(order);
         }
-        PageInfo<OrderVo> pageData = new PageInfo<>(orderList);
-        return ResponseJson.success(pageData);
     }
 
     @Override
@@ -318,6 +330,88 @@ public class OrderServiceImpl implements OrderService {
         }
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseJson<String> deleteOrder(Integer orderId) {
+        OrderVo order = orderMapper.findOrder(orderId);
+        if (order == null) {
+            return ResponseJson.error("订单不存在", null);
+        }
+        if (!("6".equals(order.getStatus()))) {
+            return ResponseJson.error("订单异常", null);
+        }
+        orderMapper.deleteOrder(orderId);
+        //逻辑删除子订单
+        orderMapper.deleteShopOrder(orderId);
+        //逻辑删除收款记录
+        List<DiscernReceiptVo> discernReceipt = orderMapper.findDiscernReceipt(orderId);
+        if (discernReceipt != null && discernReceipt.size() > 0) {
+            orderMapper.deleteReceiptOrderRelation(orderId);
+            for (DiscernReceiptVo receipt : discernReceipt) {
+                orderMapper.deleteDiscernReceipt(receipt.getId());
+            }
+        }
+        String[] shopOrderIds = order.getShopOrderIds().split(",");
+        //逻辑删除付款记录
+        for (String shopOrderId : shopOrderIds) {
+            if (StringUtils.isNotBlank(shopOrderId)) {
+                List<CmPayShopRecordPo> payShopRecordList = orderMapper.findPayShopRecord(Integer.valueOf(shopOrderId));
+                if (payShopRecordList != null && payShopRecordList.size() > 0) {
+                    orderMapper.deletePayShopRecord(Integer.valueOf(shopOrderId));
+                    for (CmPayShopRecordPo payShopRecord : payShopRecordList) {
+                        orderMapper.updatePayShop(payShopRecord.getPayShopID());
+                    }
+                }
+            }
+        }
+        return ResponseJson.success(null);
+    }
+
+    @Override
+    public ResponseJson<String> cancelOrder(Integer orderId) {
+        OrderVo order = orderMapper.findOrder(orderId);
+        if (order == null) {
+            return ResponseJson.error("订单不存在", null);
+        }
+        if (!("11".equals(order.getStatus()) || "0".equals(order.getStatus()))) {
+            return ResponseJson.error("订单异常", null);
+        }
+        order.setStatus("6");
+        orderMapper.cancelOrder(orderId);
+        return ResponseJson.success(null);
+    }
+
+    @Override
+    public ResponseJson<PageInfo<OrderVo>> searchOrder(String searchWord, Integer organizeId, Integer pageNum, Integer pageSize) {
+        List<String> searchHistoryList = orderMapper.getSearchHistoryList(organizeId);
+        if (!searchHistoryList.contains(searchWord)) {
+            CmMallOrderSearchHistoryPo searchHistoryPo = new CmMallOrderSearchHistoryPo();
+            searchHistoryPo.setOrganizeID(organizeId);
+            searchHistoryPo.setSearchDate(new Date());
+            searchHistoryPo.setDelFlag("0");
+            searchHistoryPo.setSearchWord(searchWord);
+            orderMapper.insertHistory(searchHistoryPo);
+        }
+        PageHelper.startPage(pageNum, pageSize);
+        List<OrderVo> orderList = orderMapper.searchOrder(searchWord, organizeId);
+        //获取主订单数据
+        getOrderData(orderList);
+        PageInfo<OrderVo> pageData = new PageInfo<>(orderList);
+        return ResponseJson.success(pageData);
+    }
+
+    @Override
+    public ResponseJson<List<String>> getSearchHistory(Integer organizeId) {
+        List<String> searchHistoryList = orderMapper.getSearchHistoryList(organizeId);
+        return ResponseJson.success(searchHistoryList);
+    }
+
+    @Override
+    public ResponseJson<String> deleteSearchHistory(Integer organizeId) {
+        orderMapper.deleteSearchHistory(organizeId);
+        return ResponseJson.success(null);
+    }
+
     /**
      * 支付金额,待付金额
      */

+ 4 - 68
src/main/java/com/caimei/service/impl/OrderSubmitServiceImpl.java

@@ -59,7 +59,7 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
             shopList.forEach(shop -> {
                 shopIds.add(shop.getShopId());
                 //购物车购买
-                List<CartProductVo> products = orderSubmitMapper.findProductListByCart(shop.getShopId(), productId);
+                List<CartProductVo> products = orderSubmitMapper.findProductListByCart(shop.getShopId(), productId, userId);
                 BigDecimal shopTotalPrice = BigDecimal.ZERO;
                 for (CartProductVo product : products) {
                     productGifts.addAll(shoppingCartService.setProductPrice(product));
@@ -252,6 +252,7 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
                     // 商品是否处于活动状态
                     PromotionsPo promotions = productMapper.findPromotionByProductId(product.getId());
                     int priceType = 0;
+                    product.setActStatus(0);
                     if (productType != 2) {
                         if (promotions != null) {
                             // 是否包含活动商品(受订单未支付自动关闭时间影响)  0 否 1 是
@@ -434,7 +435,7 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
             orderProduct.setOrderID(order.getOrderID());
             orderProduct.setOrderNo(order.getOrderNo());
             orderProduct.setOrganizeID(order.getOrganizeID());
-            PromotionsPo promotions = productMapper.findPromotionByProductId(orderProduct.getProductID());
+            PromotionsPo promotions = productMapper.findPromotionByProductId(orderProduct.getOrganizeProductID());
             if (promotions != null) {
                 PromotionsPo orderPromotions = orderSubmitMapper.findOrderPromotions(orderProduct.getOrderID(), promotions.getId());
                 if (orderPromotions != null) {
@@ -554,7 +555,7 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
          * 构造返回参数
          */
         Map<String, String> info = new HashMap<>(5);
-        info.put("orderID", String.valueOf(order.getOrderID()));
+        info.put("orderId", String.valueOf(order.getOrderID()));
         info.put("orderNo", String.valueOf(order.getOrderNo()));
         info.put("orderMark", "#" + order.getOrderID() + "#");
         //应付订单金额
@@ -564,71 +565,6 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
         return ResponseJson.success(info);
     }
 
-    @Override
-    public ResponseJson<Map<String, Object>> orderPostage(String productIds, Double totalPrice, Integer townId, Integer userId) {
-        List<String> productIdList = new ArrayList<>();
-        if (productIds.contains(",")) {
-            productIdList = Arrays.asList(productIds.split(","));
-        } else {
-            productIdList.add(productIds);
-        }
-        if (productIdList.size() == 0 || null == totalPrice || null == townId || null == userId) {
-            return ResponseJson.error("参数错误", null);
-        }
-        log.info("<<<<<<<<<<<<<<<<<<<<<<<<计算运费>>>>>>>>>>>>>>>>>>>>>>>>");
-        // 默认运费到付
-        Map<String, Object> postageFeeMap = new HashMap<>(2);
-        postageFeeMap.put("freePostFlag", -1);
-        postageFeeMap.put("freight", 0);
-        //商品是否全部设置为包邮
-        boolean isFreeShipping = true;
-        // 是否包含仪器(1001:轻光电,1002:重光电)
-        for (String s : productIdList) {
-            if ("".equals(s) || "undefined".equals(s) || null == s) {
-                return ResponseJson.error("参数错误", null);
-            }
-            ProductPo product = orderSubmitMapper.findProductById(Integer.parseInt(s));
-            //商品是否设置到付
-            boolean isToPay = product.getFreePostFlag() != null && "1".equals(product.getFreePostFlag());
-            if ("2".equals(product.getCommodityType()) || isToPay) {
-                // 仪器运费到付
-                postageFeeMap.put("freePostFlag", -1);
-                postageFeeMap.put("freight", 0);
-                log.info("<<<<<<<<<<<<<<<<<<<<<<<<运费到付");
-                return ResponseJson.success("运费到付", postageFeeMap);
-            }
-            //商品是否全部设置为包邮
-            if (StringUtils.isBlank(product.getFreePostFlag()) || "2".equals(product.getFreePostFlag())) {
-                isFreeShipping = false;
-            }
-        }
-        // 是否首单(订单数)
-        Integer count = orderSubmitMapper.countUserOrder(userId);
-        if (Integer.valueOf(0).equals(count) || isFreeShipping) {
-            postageFeeMap.put("freePostFlag", 0);
-            postageFeeMap.put("freight", 0);
-            // 除含有仪器类外 首单,全国包邮
-            log.info("<<<<<<<<<<<<<<<<<<<<<<<<包邮");
-            return ResponseJson.success("包邮", postageFeeMap);
-        }
-        // 总运费计算
-        CityVo city = orderSubmitMapper.findCityByTownId(townId);
-        Double totalPostageFee = computedPostageFee(city.getProvinceId(), city.getCityId());
-        if (totalPostageFee == 0d) {
-            postageFeeMap.put("freePostFlag", 0);
-            postageFeeMap.put("freight", 0);
-            log.info("<<<<<<<<<<<<<<<<<<<<<<<<包邮");
-            return ResponseJson.success("包邮", postageFeeMap);
-        } else if (totalPostageFee != -1d) {
-            postageFeeMap.put("freePostFlag", 1);
-            postageFeeMap.put("freight", totalPostageFee);
-            log.info("<<<<<<<<<<<<<<<<<<<<<<<<运费金额:" + totalPostageFee);
-            return ResponseJson.success("运费金额", postageFeeMap);
-        }
-        log.info("<<<<<<<<<<<<<<<<<<<<<<<<运费到付");
-        return ResponseJson.success("运费到付", postageFeeMap);
-    }
-
     /**
      * 设置订单发票
      *

+ 6 - 51
src/main/java/com/caimei/service/impl/PayOrderServiceImpl.java

@@ -2,6 +2,7 @@ package com.caimei.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.caimei.mapper.OrderMapper;
+import com.caimei.mapper.OrderSubmitMapper;
 import com.caimei.mapper.PayOrderMapper;
 import com.caimei.model.ResponseJson;
 import com.caimei.model.dto.PaymentDto;
@@ -19,15 +20,11 @@ import com.caimei.util.PayUtils;
 import com.caimei.util.RandomCodeGenerator;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.server.reactive.ServerHttpResponse;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.io.IOException;
 import java.math.BigDecimal;
-import java.net.URI;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -44,6 +41,8 @@ public class PayOrderServiceImpl implements PayOrderService {
     private PayOrderMapper payOrderMapper;
     @Resource
     private OrderMapper orderMapper;
+    @Resource
+    private OrderSubmitMapper orderSubmitMapper;
 
     /**
      * 商户标识
@@ -75,7 +74,7 @@ public class PayOrderServiceImpl implements PayOrderService {
 
     @Override
     public ResponseJson<Map<String, Object>> checkoutCounter(Integer orderId) {
-        Map<String, Object> map = new HashMap<>();
+        Map<String, Object> map = new HashMap<>(4);
         OrderVo order = orderMapper.findOrder(orderId);
         if (null == order) {
             return ResponseJson.error("订单不存在", null);
@@ -109,7 +108,7 @@ public class PayOrderServiceImpl implements PayOrderService {
         orderProductList.removeIf(orderProductVo -> orderProductVo.getShopId() == 998);
         map.put("orderProductList", orderProductList);
         //机构信息
-        UserPo user = payOrderMapper.findUser(order.getUserId());
+        UserPo user = orderSubmitMapper.findUser(order.getUserId().intValue());
         map.put("userName", user.getName());
         return ResponseJson.success(map);
     }
@@ -353,7 +352,7 @@ public class PayOrderServiceImpl implements PayOrderService {
         Date date = new Date();
         GregorianCalendar calendar = new GregorianCalendar();
         calendar.setTime(date);
-        calendar.add(Calendar.DATE, 1);
+        calendar.add(Calendar.DATE, 3);
         orderPayLink.setGenerateTime(date);
         orderPayLink.setEffectiveTime(calendar.getTime());
         orderPayLink.setPayStatus("0");
@@ -369,50 +368,6 @@ public class PayOrderServiceImpl implements PayOrderService {
         return ResponseJson.success(link);
     }
 
-    @Override
-    public void jumpPage(String linkLogo, String linkPage, ServerHttpResponse response) throws IOException {
-        String linkUrl = linkPage + "?linkLogo=" + linkLogo;
-        response.setStatusCode(HttpStatus.FOUND);
-        response.getHeaders().setLocation(URI.create(linkUrl));
-    }
-
-    @Override
-    public ResponseJson<Map<String, Object>> linkData(String linkLogo) {
-        Map<String, Object> map = new HashMap<>(3);
-        OrderPayLinkVo orderPayLink = payOrderMapper.getOrderPayLink(linkLogo);
-        //链接状态,0成功
-        int code = 0;
-        if (null == orderPayLink) {
-            //已重新生成链接
-            return ResponseJson.error("链接更新,请重新获取", null);
-        } else {
-            OrderVo order = orderMapper.findOrder(orderPayLink.getOrderId().intValue());
-            List<DiscernReceiptVo> discernReceiptList = payOrderMapper.getDiscernReceipt(order);
-            if (orderPayLink.getEffectiveTime().compareTo(new Date()) < 0) {
-                //链接失效
-                code = -3;
-            }
-            if (null != discernReceiptList && discernReceiptList.size() > 0) {
-                for (DiscernReceiptVo discernReceipt : discernReceiptList) {
-                    if ("2".equals(discernReceipt.getPayWay())) {
-                        // 已线下支付
-                        code = -2;
-                    }
-                }
-            }
-            if ("1".equals(orderPayLink.getPayStatus())) {
-                //链接已支付
-                code = 5;
-            }
-            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            String time = dateFormat.format(orderPayLink.getEffectiveTime());
-            map.put("orderPayLink", orderPayLink);
-            map.put("code", code);
-            map.put("time", time);
-        }
-        return ResponseJson.success(map);
-    }
-
     @Override
     public ResponseJson<String> payWhetherSuccess(Integer orderId, Integer paySuccessCounter) {
         OrderVo order = orderMapper.findOrder(orderId);

+ 11 - 10
src/main/java/com/caimei/service/impl/ProductServiceImpl.java

@@ -4,6 +4,10 @@ import com.caimei.mapper.ProductMapper;
 import com.caimei.model.ResponseJson;
 import com.caimei.model.po.*;
 import com.caimei.model.vo.CartProductVo;
+import com.caimei.model.po.ProductDetailInfoPo;
+import com.caimei.model.po.ProductImagePo;
+import com.caimei.model.po.PromotionsPo;
+import com.caimei.model.po.RelatedParametersPo;
 import com.caimei.model.vo.ClubVo;
 import com.caimei.model.vo.LadderPriceVo;
 import com.caimei.model.vo.ProductVo;
@@ -50,7 +54,7 @@ public class ProductServiceImpl implements ProductService {
         if (null == organizeId) {
             return ResponseJson.error("参数异常", null);
         }
-        PageHelper.startPage(pageNum,pageSize);
+        PageHelper.startPage(pageNum, pageSize);
         List<ProductVo> productList = productMapper.findProductList(organizeId, productName);
         for (ProductVo product : productList) {
             setProductPrice(product);
@@ -60,14 +64,12 @@ public class ProductServiceImpl implements ProductService {
     }
 
 
-
-
     @Override
     public ResponseJson<ProductVo> productDetails(Integer productId) {
         ProductVo product = productMapper.findProductByProductId(productId);
         if (product == null) {
             //商品不存在
-            return ResponseJson.error("商品不存在",null);
+            return ResponseJson.error("商品不存在", null);
         }
         String[] split = null;
         //商品标签
@@ -101,7 +103,7 @@ public class ProductServiceImpl implements ProductService {
         String priceGrade = ProductUtils.getPriceGrade(product.getPrice().doubleValue());
         product.setPriceGrade(priceGrade);
         //商品分类
-        String typeName = productMapper.findTypeName(product.getBigTypeId(),product.getSmallTypeId(), product.getTinyTypeId());
+        String typeName = productMapper.findTypeName(product.getBigTypeId(), product.getSmallTypeId(), product.getTinyTypeId());
         product.setTypeName(typeName);
         //品牌名称
         String brandName = productMapper.findBrandNameByBrandId(product.getBrandId());
@@ -118,9 +120,8 @@ public class ProductServiceImpl implements ProductService {
     }
 
 
-
     @Override
-    public void setProductPrice(ProductVo product){
+    public void setProductPrice(ProductVo product) {
         // 设置图片
         product.setMainImage(ProductUtils.getImageURL("product", product.getMainImage(), 0, domain));
         // 设置商品展示价格
@@ -130,9 +131,9 @@ public class ProductServiceImpl implements ProductService {
             product.setPromotion(activity);
             product.setLadderPriceFlag(0);
             // 活动价
-            if (activity.getType() == 1 && null != activity.getTouchPrice()) {
+            if (activity.getMode() == 1) {
                 product.setRetailPrice(activity.getTouchPrice());
-            }else {
+            } else {
                 product.setRetailPrice(product.getPrice());
             }
             if (activity.getMode() == 3) {
@@ -183,7 +184,7 @@ public class ProductServiceImpl implements ProductService {
             //阶梯价列表添加税费
             boolean addTaxFlag = (0 == product.getIncludedTax() && (1 == product.getInvoiceType() || 2 == product.getInvoiceType()));
             if (addTaxFlag) {
-                ladderPriceList.forEach(item->{
+                ladderPriceList.forEach(item -> {
                     item.setBuyPrice(MathUtil.add(item.getBuyPrice(), MathUtil.div(MathUtil.mul(item.getBuyPrice(), product.getClubTaxPoint()), 100)));
                 });
             }

+ 11 - 0
src/main/resources/config/beta/application-beta.yml

@@ -53,6 +53,17 @@ logging:
 swagger:
   enabled: false
 
+#自定义配置
+wx:
+  AppId: wxca7172d7a20bdf7a
+  AppSecret: d7f853a64b73d01ef93f3829852a790e
+  crmAppId: wxea43a0f9ebce9e66
+  crmAppSecret: 1c3cd60908e72dd280840bee9e15f7f6
+
 # 新旧www服务域名
 caimei:
   oldapi: https://www-b.caimei365.com
+  #支付异步回调地址
+  notifyUrl: https://spi-b.caimei365.com/PayOrder/paymentCallback
+  #支付链接重定向地址
+  redirectLink: https://spi-b.caimei365.com/PayOrder/jumpPage

+ 1 - 5
src/main/resources/config/dev/application-dev.yml

@@ -67,8 +67,4 @@ caimei:
   #支付异步回调地址
   notifyUrl: https://spi-b.caimei365.com/PayOrder/paymentCallback
   #支付链接重定向地址
-  redirectLink: https://spi-b.caimei365.com/PayOrder/jumpPage
-  #链接页面
-  linkPage: https://www-b.caimei365.com/pay/caimei-pay.html
-  #延时分账异步回调地址
-  delayedSplittingUrl: https://spi-b.caimei365.com/PayOrder/delayedSplittingCallback
+  redirectLink: https://spi-b.caimei365.com/PayOrder/jumpPage

+ 12 - 1
src/main/resources/config/prod/application-prod.yml

@@ -53,7 +53,18 @@ logging:
 swagger:
   enabled: false
 
+
+#自定义配置
+wx:
+  AppId: wxca7172d7a20bdf7a
+  AppSecret: d7f853a64b73d01ef93f3829852a790e
+  crmAppId: wxea43a0f9ebce9e66
+  crmAppSecret: 1c3cd60908e72dd280840bee9e15f7f6
+
 # 新旧www服务域名
 caimei:
   oldapi: https://www.caimei365.com
-
+  #支付异步回调地址
+  notifyUrl: https://spi.caimei365.com/PayOrder/paymentCallback
+  #支付链接重定向地址
+  redirectLink: https://spi.caimei365.com/PayOrder/jumpPage

+ 4 - 0
src/main/resources/mapper/AddressMapper.xml

@@ -23,6 +23,9 @@
                  LEFT JOIN city c ON c.cityID = t.cityID
                  LEFT JOIN province p ON p.provinceID = c.provinceID
         WHERE a.userID = #{userId}
+        ORDER BY
+          defaultFlag DESC,
+          addressID ASC
     </select>
 
     <select id="findDefaultAddress" resultType="com.caimei.model.vo.AddressVo">
@@ -139,6 +142,7 @@
 
     <select id="findInvoice" resultType="com.caimei.model.po.CmUserInvoiceInfoPo">
         SELECT
+            id,
            userId,
            invoiceTitle,
            corporationTaxNum,

+ 178 - 13
src/main/resources/mapper/OrderMapper.xml

@@ -24,6 +24,9 @@
           note,
           orderSource,
           orderTime,
+          productCount,
+          presentCount,
+          promotionalGiftsCount,
           invoiceFlag,
           clauseID AS clauseId,
           clauseContent,
@@ -37,21 +40,20 @@
           <include refid="cm_Order_List"></include>
         from cm_order
         where delFlag = '0'
-        AND userID = #{userId}
         AND organizeID = #{organizeId}
-        <if test="orderState == 1 ">
-            AND status = '0'
+        <if test="userId != null ">
+            AND userID = #{userId}
         </if>
-        <if test="orderState == 2 ">
+        <if test="orderState == 1 ">
             AND status IN(11,12,13,21,22,23)
         </if>
-        <if test="orderState == 3 ">
+        <if test="orderState == 2 ">
             AND status IN(11,12,21,22,31,32)
         </if>
-        <if test="orderState == 4 ">
+        <if test="orderState == 3 ">
             AND status IN(12,13,22,23,32,33)
         </if>
-        <if test="orderState == 5 ">
+        <if test="orderState == 4 ">
             AND refundType IN(1,2)
         </if>
         ORDER BY orderTime DESC
@@ -69,6 +71,7 @@
         cso.organizeID AS organizeId,
         cso.userID AS userId,
         cso.shopID AS shopId,
+        cso.itemCount,
         s.name AS shopName,
         s.logo AS shopLogo
         FROM
@@ -103,15 +106,18 @@
           cop.discountPrice,
           cop.includedTax,
           cop.invoiceType,
+          cop.taxRate,
           cop.totalAddedValueTax,
           cop.notOutStore,
-          p.mainImage AS productImage,
-          p.productCategory as productCategory
+          cop.name,
+          cop.productUnit,
+          cop.productImage,
+          cop.productType,
+          cop.orderPromotionsId
         FROM
           cm_order_product cop
-          LEFT JOIN product p ON cop.productID = p.productID
         WHERE
-          shopOrderID = #{shopOrderId}
+          cop.shopOrderID = #{shopOrderId}
     </select>
 
     <select id="findOrderPromotionsById" resultType="com.caimei.model.po.PromotionsPo">
@@ -251,7 +257,7 @@
           LEFT JOIN cm_order_product cop ON clr.orderProductID = cop.orderProductID
         WHERE
           clr.shopOrderID = #{shopOrderId}
-          and clr.logisticsBatchID = #{logisticsBatchId}
+          and clr.logisticsBatchID = #{batchId}
     </select>
 
     <select id="findLogisticsInfo" resultType="com.caimei.model.vo.LogisticsInformationVo">
@@ -333,7 +339,7 @@
           LEFT JOIN cm_mall_order_share_code osc ON scr.shareCodeId = osc.id
         WHERE
           scr.openid = #{openid}
-          AND osc.orderID = #{orderID}
+          AND osc.orderID = #{orderId}
           AND scr.delFlag = '0'
     </select>
 
@@ -348,4 +354,163 @@
             #{delFlag}
           )
     </insert>
+
+    <update id="deleteOrder">
+        UPDATE
+          cm_order
+        SET
+          delFlag = 1,
+          updateDate = NOW(),
+          note = '用户发起删除订单'
+        WHERE
+          orderID = #{orderId}
+    </update>
+
+    <update id="deleteShopOrder">
+        UPDATE cm_shop_order SET delFlag = 1 WHERE orderID = #{orderId}
+    </update>
+
+    <update id="deleteReceiptOrderRelation">
+        UPDATE
+          cm_receipt_order_relation
+        SET
+          delFlag = '1'
+        WHERE
+          orderID = #{orderID}
+    </update>
+
+    <update id="deleteDiscernReceipt">
+         UPDATE
+          cm_discern_receipt
+        SET
+          delFlag = '1'
+        WHERE
+          id =  #{id}
+    </update>
+
+    <select id="findPayShopRecord" resultType="com.caimei.model.po.CmPayShopRecordPo">
+        SELECT
+            id,
+            shopID,
+            shopOrderID,
+            shopOrderNo,
+            payAmount,
+            wipePayment,
+            payType,
+            payTime,
+            payShopID,
+            status,
+            delFlag
+        FROM
+          cm_pay_shop_record
+        WHERE
+          delFlag = '0'
+          AND shopOrderID = #{shopOrderId}
+        ORDER BY payTime desc
+    </select>
+
+    <update id="deletePayShopRecord">
+        UPDATE
+          cm_pay_shop_record
+        SET
+          delFlag = '0'
+        WHERE
+          shopOrderID = #{shopOrderId}
+    </update>
+
+    <update id="updatePayShop">
+        UPDATE
+          cm_pay_shop
+        SET
+          delFlag = '0'
+    WHERE
+          id = #{payShopId}
+    </update>
+
+    <update id="cancelOrder">
+        UPDATE
+          cm_order
+        SET
+          STATUS = 6,
+          updateDate = NOW(),
+          closeReason = '用户主动取消订单',
+          closeTime = NOW()
+        WHERE
+          orderID = #{orderId}
+    </update>
+
+    <select id="searchOrder" resultType="com.caimei.model.vo.OrderVo">
+        SELECT
+          co.orderID AS orderId,
+          co.orderNo,
+          co.organizeID AS organizeId,
+          co.userID AS userId,
+          co.buyUserID AS buyUserId,
+          co.status,
+          co.shopOrderIDs AS shopOrderIds,
+          co.receiptStatus,
+          co.payStatus,
+          co.sendOutStatus,
+          co.refundType,
+          co.onlinePayFlag,
+          co.payTotalFee,
+          co.payableAmount,
+          co.balancePayFee,
+          co.discountFee,
+          co.promotionFullReduction,
+          co.note,
+          co.orderSource,
+          co.orderTime,
+          co.productCount,
+          co.presentCount,
+          co.promotionalGiftsCount,
+          co.invoiceFlag,
+          co.clauseID AS clauseId,
+          co.clauseContent,
+          co.clauseName,
+          co.freePostFlag,
+          co.freight,
+          co.closeReason
+        FROM
+          cm_order co
+          LEFT JOIN cm_order_product cop ON co.orderID = cop.orderID
+        WHERE
+          co.organizeID = #{organizeId}
+          AND co.delFlag = '0'
+          AND cop.name LIKE CONCAT('%',#{searchWord},'%')
+        GROUP BY
+          co.orderID
+        ORDER BY
+          co.orderTime DESC
+    </select>
+
+    <select id="getSearchHistoryList" resultType="string">
+        SELECT
+          searchWord
+        FROM
+          cm_mall_order_search_history
+        WHERE
+          organizeID = #{organizeId}
+          AND delFlag = 0
+        ORDER BY
+          searchDate DESC
+        LIMIT
+          10
+    </select>
+
+    <delete id="deleteSearchHistory">
+        DELETE FROM cm_mall_order_search_history WHERE organizeID = #{organizeId}
+    </delete>
+
+    <insert id="insertHistory">
+        INSERT INTO `cm_mall_order_search_history` (
+          `organizeID`, `openID`, `searchWord`,
+          `searchDate`, `delFlag`
+        )
+        VALUES
+          (
+            #{organizeID}, #{openID}, #{searchWord},
+            #{searchDate}, #{delFlag}
+          )
+    </insert>
 </mapper>

+ 18 - 40
src/main/resources/mapper/OrderSubmitMapper.xml

@@ -5,8 +5,8 @@
 <mapper namespace="com.caimei.mapper.OrderSubmitMapper">
     <sql id="Product_Column_List">
         p.productID, p.brandID,p.bigTypeID,p.smallTypeID, p.tinyTypeID,p.productCategory, p.preferredFlag, p.selfTypeID, p.shopID, p.`name`, p.aliasName, p.searchKey, p.productRemarks,
-        p.normalPrice, p.price, p.highestUserLevelPrice, lowestUserLevelPrice, p.lowestUserLevelID,
-        p.price0, p.price0Grade, p.price0Text, price0TextFlag, price1, p.price1Grade, p.price1Text,
+        p.normalPrice, p.price, p.highestUserLevelPrice, p.lowestUserLevelPrice, p.lowestUserLevelID,
+        p.price0, p.price0Grade, p.price0Text, p.price0TextFlag, p.price1, p.price1Grade, p.price1Text,
         p.price1TextFlag, p.price8, p.price8Grade, p.price8Text, p.price8Text as beautyActFlag, p.price8TextFlag, p.ladderPriceFlag,
         p.price2, p.price3, p.price4, p.price5, p.price6, p.price7, p.fee, p.stock, p.hasSkuFlag, p.mainImage,
         p.propertiesInfo, p.addTime, p.updateTime, p.sellNumber, p.weekSellNumber, p.beforeValidFlag,
@@ -41,6 +41,7 @@
         <foreach item="productId" index="index" collection="productIds" open="(" separator="," close=")">
             #{productId}
         </foreach>
+        GROUP BY s.shopID
     </select>
 
     <select id="findProductListByCart" resultType="com.caimei.model.vo.CartProductVo">
@@ -68,6 +69,7 @@
             #{productId}
         </foreach>
           AND p.shopID = #{shopId}
+          AND cmc.userID = #{userId}
     </select>
 
     <select id="findCartByProductId" resultType="com.caimei.model.vo.CartProductVo">
@@ -125,7 +127,8 @@
           bindMobile,
           userName,
           realName,
-          name
+          name,
+          clubID
         FROM
           user
         WHERE
@@ -138,6 +141,9 @@
             <if test="orderNo != null">
                 orderNo,
             </if>
+            <if test="organizeID != null">
+                organizeID,
+            </if>
             <if test="userID != null">
                 userID,
             </if>
@@ -314,6 +320,9 @@
             <if test="orderNo != null">
                 #{orderNo,jdbcType=VARCHAR},
             </if>
+            <if test="organizeID != null">
+                #{organizeID},
+            </if>
             <if test="userID != null">
                 #{userID,jdbcType=BIGINT},
             </if>
@@ -736,9 +745,6 @@
             <if test="shopOtherFee != null">
                 shopOtherFee,
             </if>
-            <if test="refunding != null">
-                refunding,
-            </if>
             <if test="costType != null">
                 costType,
             </if>
@@ -768,7 +774,9 @@
             <if test="orderID != null">
                 #{orderID,jdbcType=BIGINT},
             </if>
-            <if test="organizeID != null">0,</if>
+            <if test="organizeID != null">
+                #{organizeID},
+            </if>
             <if test="userID != null">
                 #{userID,jdbcType=INTEGER},
             </if>
@@ -958,9 +966,6 @@
             <if test="shopOtherFee != null">
                 #{shopOtherFee,jdbcType=DECIMAL},
             </if>
-            <if test="refunding != null">
-                #{refunding,jdbcType=CHAR},
-            </if>
             <if test="costType != null">
                 #{costType,jdbcType=CHAR},
             </if>
@@ -1203,7 +1208,9 @@
             <if test="organizeProductID != null">
                 #{organizeProductID,jdbcType=INTEGER},
             </if>
-            <if test="organizeID != null">0,</if>
+            <if test="organizeID != null">
+                #{organizeID},
+            </if>
             <if test="num != null">
                 #{num,jdbcType=INTEGER},
             </if>
@@ -1393,9 +1400,6 @@
             <if test="orderNo != null">
                 orderNo = #{orderNo,jdbcType=VARCHAR},
             </if>
-            <if test="organizeID != null">
-                organizeID = 0,
-            </if>
             <if test="userID != null">
                 userID = #{userID,jdbcType=BIGINT},
             </if>
@@ -1797,30 +1801,4 @@
                  LEFT JOIN province p ON p.provinceID = c.provinceID
         WHERE a.addressID = #{addressId}
     </select>
-
-    <select id="findProductById" resultType="com.caimei.model.po.ProductPo">
-        select
-            <include refid="Product_Column_List" />
-        FROM
-        cm_organize_product cop
-        LEFT JOIN product p ON cop.productId = p.productID
-        where cop.id = #{productId}
-    </select>
-
-    <select id="countUserOrder" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM cm_order
-        WHERE userID = #{userId}
-        AND delFlag=0 AND STATUS != 6
-    </select>
-
-    <select id="findCityByTownId" resultType="com.caimei.model.vo.CityVo">
-        SELECT
-          cityID AS cityId,
-          provinceID AS provinceId,
-          name
-        FROM city
-        WHERE cityID =(
-            SELECT cityID from town where townID = #{townId}
-        )
-    </select>
 </mapper>

+ 47 - 20
src/main/resources/mapper/PayOrderMapper.xml

@@ -12,10 +12,10 @@
           LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
         WHERE
           (
-            cror.orderID = #{orderID}
+            cror.orderID = #{orderId}
             AND cror.relationType = '2'
           OR
-            cror.orderID = #{shopOrderIDs}
+            cror.orderID = #{shopOrderIds}
             AND cror.relationType = '1'
           )
           AND cror.delFlag = '0'
@@ -237,7 +237,15 @@
 
     <select id="findOrderPayLink" resultType="com.caimei.model.vo.OrderPayLinkVo">
         SELECT
-        *
+        `id`,
+        `orderId`,
+        `linkLogo`,
+        `unpaidAmount`,
+        `generateTime`,
+        `effectiveTime`,
+        `payStatus`,
+        `payType`,
+        `delFlag`
         FROM
         cm_order_pay_link
         WHERE
@@ -337,28 +345,47 @@
         where id = #{id,jdbcType=INTEGER}
     </update>
 
-    <select id="getOrderPayLink" resultType="com.caimei.model.vo.OrderPayLinkVo">
-        SELECT
-          *
-        FROM
-          cm_order_pay_link
-        WHERE
-          linkLogo = #{linkLogo}
-          AND delFlag = '0'
-    </select>
-
     <select id="findAllOrderProduct" resultType="com.caimei.model.vo.OrderProductVo">
-        SELECT * FROM cm_order_product WHERE orderID = #{orderId} ORDER BY shopID ASC, productID ASC
-    </select>
-
-    <select id="findUser" resultType="com.caimei.model.po.UserPo">
         SELECT
-          *
+          orderProductID AS orderProductId,
+          orderID AS orderId,
+          shopOrderID AS shopOrderId,
+          shopID AS shopId,
+          productID AS productId,
+          organizeProductID AS organizeProductId,
+          organizeID AS organizeId,
+          num,
+          presentNum,
+          outStoreType,
+          productNo,
+          price,
+          normalPrice,
+          costPrice,
+          price1,
+          totalAmount,
+          totalFee,
+          shouldPayFee,
+          discount,
+          discountPrice,
+          includedTax,
+          invoiceType,
+          taxRate,
+          totalAddedValueTax,
+          notOutStore,
+          name,
+          productUnit,
+          productImage,
+          productType,
+          orderPromotionsId
         FROM
-          USER
+          cm_order_product
         WHERE
-          userID = #{userID}
+          orderID = #{orderId}
+        ORDER BY
+          shopID ASC,
+          productID ASC
     </select>
+
     <select id="getPayOnLineSwitch" resultType="java.lang.Integer">
         select status from cm_pay_online_switch where id=1
     </select>

+ 1 - 1
src/main/resources/mapper/ShoppingCartMapper.xml

@@ -153,6 +153,6 @@
     </select>
 
     <delete id="deleteCartByProductId">
-        DELETE FROM cm_mall_cart WHERE userID = #{cartId} AND productID = #{productId}
+        DELETE FROM cm_mall_cart WHERE userID = #{userId} AND productID = #{productId}
     </delete>
 </mapper>