baolei 5 月之前
父节点
当前提交
c5c70f238f
共有 13 个文件被更改,包括 145 次插入41 次删除
  1. 28 4
      08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/product/controller/ProdController.java
  2. 3 0
      08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/product/domain/ProdVo.java
  3. 7 0
      08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/product/service/IProdVoService.java
  4. 46 0
      08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/product/service/impl/ProdVoServiceImpl.java
  5. 15 12
      08.src/Xingxi/xingxi-admin/src/main/resources/templates/master/product/prod/add.html
  6. 13 1
      08.src/Xingxi/xingxi-admin/src/main/resources/templates/master/product/prod/edit.html
  7. 6 0
      08.src/Xingxi/xingxi-common/src/main/java/com/xingxi/common/utils/uuid/IdUtils.java
  8. 4 0
      08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/configuration/AppConfiguration.java
  9. 1 1
      08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/controller/UserProfileApiController.java
  10. 3 6
      08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/model/OrderCreateRequest.java
  11. 15 13
      08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/service/impl/OrderApiServiceImpl.java
  12. 2 2
      08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/service/impl/UserProfileServiceImpl.java
  13. 2 2
      08.src/Xingxi/xingxi-system/src/main/java/com/xingxi/business/Order/domain/OrderDetail.java

+ 28 - 4
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/product/controller/ProdController.java

@@ -5,10 +5,15 @@ import com.xingxi.common.core.controller.BaseController;
 import com.xingxi.common.core.domain.AjaxResult;
 import com.xingxi.common.core.page.TableDataInfo;
 import com.xingxi.common.enums.BusinessType;
+import com.xingxi.common.enums.EDelFlag;
 import com.xingxi.common.enums.EProdStatus;
 import com.xingxi.common.exception.BusinessException;
+import com.xingxi.common.utils.DateUtils;
+import com.xingxi.common.utils.ShiroUtils;
 import com.xingxi.common.utils.poi.ExcelUtil;
 import com.xingxi.master.product.domain.Prod;
+import com.xingxi.master.product.domain.ProdVendor;
+import com.xingxi.master.product.service.IProdVendorService;
 import com.xingxi.web.controller.master.product.domain.ProdAttrPriceVo;
 import com.xingxi.web.controller.master.product.domain.ProdAttrVo;
 import com.xingxi.web.controller.master.product.domain.ProdVo;
@@ -16,6 +21,7 @@ import com.xingxi.web.controller.master.product.service.IProdAttrPriceVoService;
 import com.xingxi.web.controller.master.product.service.IProdAttrVoService;
 import com.xingxi.web.controller.master.product.service.IProdVoService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
@@ -40,6 +46,8 @@ public class ProdController extends BaseController {
     private IProdAttrVoService prodAttrVoService;
     @Resource
     private IProdAttrPriceVoService prodAttrPriceVoService;
+    @Autowired
+    private IProdVendorService prodVendorService;
 
     @RequiresPermissions("master:product:prod:view")
     @GetMapping()
@@ -74,9 +82,11 @@ public class ProdController extends BaseController {
     @Log(title = "商品", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     @ResponseBody
-    public AjaxResult addSave(Prod prod) {
+    public AjaxResult addSave(ProdVo prod) {
         prod.setProdStatus(EProdStatus.SAVED.getVal());
-        return toAjax(prodVoService.insertProd(prod));
+        prod.setCreateUser(ShiroUtils.getLoginName());
+        prod.setCreateTime(DateUtils.getNowDate());
+        return toAjax(prodVoService.insertProdVo(prod));
     }
 
     /**
@@ -86,7 +96,17 @@ public class ProdController extends BaseController {
     @GetMapping("/edit/{id}")
     public String edit(@PathVariable("id") Long id, ModelMap mMap) {
         ProdVo prodVo = prodVoService.selectProdVoById(id);
+
+        ProdVendor condPd = new ProdVendor();
+        condPd.setProdId(id);
+        condPd.setDelFlag(EDelFlag.NO.getVal());
+        List<ProdVendor> prodVendorList = prodVendorService.selectProdVendorList(condPd);
+        if (prodVendorList != null && !prodVendorList.isEmpty()) {
+            prodVo.setVendorId(prodVendorList.get(0).getVendorId());
+        }
+
         mMap.put("prodVo", prodVo);
+
         return prefix + "/edit";
     }
 
@@ -97,8 +117,12 @@ public class ProdController extends BaseController {
     @Log(title = "商品", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
     @ResponseBody
-    public AjaxResult editSave(Prod prod) {
-        return toAjax(prodVoService.updateProd(prod));
+    public AjaxResult editSave(ProdVo prod) {
+
+        prod.setUpdateUser(ShiroUtils.getLoginName());
+        prod.setUpdateTime(DateUtils.getNowDate());
+
+        return toAjax(prodVoService.updateProdVo(prod));
     }
 
     /**

+ 3 - 0
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/product/domain/ProdVo.java

@@ -22,4 +22,7 @@ public class ProdVo extends Prod {
     private String ipName;
 
     private String designerName;
+
+    private Long vendorId;
+
 }

+ 7 - 0
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/product/service/IProdVoService.java

@@ -1,6 +1,8 @@
 package com.xingxi.web.controller.master.product.service;
 
+import com.xingxi.master.product.domain.Prod;
 import com.xingxi.master.product.service.IProdService;
+import com.xingxi.web.controller.master.merchant.domain.MerchantVo;
 import com.xingxi.web.controller.master.product.domain.ProdVo;
 
 import java.util.List;
@@ -27,4 +29,9 @@ public interface IProdVoService extends IProdService {
      * @return 商品集合
      */
     List<ProdVo> selectProdVoList(ProdVo prodVo);
+
+    int insertProdVo(ProdVo prodVo);
+
+    int updateProdVo(ProdVo prodVo);
+
 }

+ 46 - 0
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/master/product/service/impl/ProdVoServiceImpl.java

@@ -1,5 +1,8 @@
 package com.xingxi.web.controller.master.product.service.impl;
 
+import com.xingxi.common.enums.EDelFlag;
+import com.xingxi.master.product.domain.ProdVendor;
+import com.xingxi.master.product.mapper.ProdVendorMapper;
 import com.xingxi.master.product.service.impl.ProdServiceImpl;
 import com.xingxi.web.controller.master.product.domain.ProdVo;
 import com.xingxi.web.controller.master.product.mapper.ProdVoMapper;
@@ -19,6 +22,8 @@ import java.util.List;
 public class ProdVoServiceImpl extends ProdServiceImpl implements IProdVoService {
     @Resource
     private ProdVoMapper prodVoMapper;
+    @Resource
+    private ProdVendorMapper prodVendorMapper;
 
     /**
      * 查询商品
@@ -41,4 +46,45 @@ public class ProdVoServiceImpl extends ProdServiceImpl implements IProdVoService
     public List<ProdVo> selectProdVoList(ProdVo prodVo) {
         return prodVoMapper.selectProdVoList(prodVo);
     }
+
+    @Override
+    public int insertProdVo(ProdVo prodVo) {
+        int rtn = 0;
+        rtn = rtn + insertProd(prodVo);
+
+        ProdVendor prodVendor = new ProdVendor();
+        prodVendor.setProdId(prodVo.getId());
+        prodVendor.setVendorId(prodVo.getVendorId());
+        prodVendor.setDelFlag(EDelFlag.NO.getVal());
+        prodVendor.setCreateTime(prodVo.getCreateTime());
+        prodVendor.setCreateUser(prodVo.getCreateUser());
+        prodVendor.setUpdateTime(prodVo.getUpdateTime());
+        prodVendor.setUpdateUser(prodVo.getUpdateUser());
+
+        rtn = rtn + prodVendorMapper.insertProdVendor(prodVendor);
+
+        return rtn;
+    }
+
+    @Override
+    public int updateProdVo(ProdVo prodVo) {
+
+        int rtn = 0;
+        rtn = rtn + updateProd(prodVo);
+
+        ProdVendor condPv = new ProdVendor();
+        condPv.setProdId(prodVo.getId());
+        condPv.setDelFlag(EDelFlag.NO.getVal());
+
+        List<ProdVendor> prodVendorList = prodVendorMapper.selectProdVendorList(condPv);
+
+        for (ProdVendor pv : prodVendorList) {
+            pv.setUpdateTime(prodVo.getUpdateTime());
+            pv.setUpdateUser(prodVo.getUpdateUser());
+            pv.setVendorId(prodVo.getVendorId());
+            rtn = rtn + prodVendorMapper.updateProdVendor(pv);
+        }
+
+        return rtn;
+    }
 }

+ 15 - 12
08.src/Xingxi/xingxi-admin/src/main/resources/templates/master/product/prod/add.html

@@ -33,7 +33,7 @@
                     <label class="col-sm-3 control-label">文创品牌:</label>
                     <div class="col-sm-8">
                         <select name="ipId" class="form-control m-b" th:with="ipInfos=${@ipInfo.getIpInfos()}" >
-                            <option value="">所有</option>
+                            <option value="">请选择</option>
                             <option th:each="ipInfo : ${ipInfos}" th:text="${ipInfo.ipName}" th:value="${ipInfo.ipId}"></option>
                         </select>
                     </div>
@@ -44,22 +44,25 @@
                     <label class="col-sm-3 control-label">设计师:</label>
                     <div class="col-sm-8">
                         <select name="designerId" class="form-control m-b" th:with="designers=${@product.getDesigners()}" >
-                            <option value="">所有</option>
+                            <option value="">请选择</option>
                             <option th:each="designer : ${designers}" th:text="${designer.designerName}" th:value="${designer.id}"></option>
                         </select>
                     </div>
                 </div>
             </div>
-<!--            <div class="col-xs-12">-->
-<!--                <div class="form-group">-->
-<!--                    <label class="col-sm-3 control-label">商品图片:</label>-->
-<!--                    <div class="col-sm-8">-->
-<!--                        <img id="picUrlImg" width="30%" height="30%">-->
-<!--                        <input type="file" class="form-control" name="picUrlImgUrl" id="picUrlImgUrl" accept="image/*"/>-->
-<!--                        <input type="hidden" lass="form-control" name="picUrl" id="picUrl" />-->
-<!--                    </div>-->
-<!--                </div>-->
-<!--            </div>-->
+<!--            现在先用在商品级别,实际上可以用在属性级别-->
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">供应商:</label>
+                    <div class="col-sm-8">
+                        <select name="designerId" class="form-control m-b" th:with="vendors=${@product.getVendors()}" >
+                            <option value="">请选择</option>
+                            <option th:each="vendor : ${vendors}" th:text="${vendor.vendorName}" th:value="${vendor.vendorId}"></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+
             <div class="col-xs-12">
                 <div class="form-group">
                     <label class="col-sm-3 control-label">商品描述:</label>

+ 13 - 1
08.src/Xingxi/xingxi-admin/src/main/resources/templates/master/product/prod/edit.html

@@ -51,7 +51,19 @@
                     </div>
                 </div>
             </div>
-<!--            <div class="col-xs-12">-->
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">供应商:</label>
+                    <div class="col-sm-8">
+                        <select name="designerId" class="form-control m-b" th:with="vendors=${@product.getVendors()}" th:field = "*{vendorId}">
+                            <option value="">请选择</option>
+                            <option th:each="vendor : ${vendors}" th:text="${vendor.vendorName}" th:value="${vendor.vendorId}"></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+
+            <!--            <div class="col-xs-12">-->
 <!--                <div class="form-group">-->
 <!--                    <label class="col-sm-3 control-label">商品图片:</label>-->
 <!--                    <div class="col-sm-8">-->

+ 6 - 0
08.src/Xingxi/xingxi-common/src/main/java/com/xingxi/common/utils/uuid/IdUtils.java

@@ -1,6 +1,7 @@
 package com.xingxi.common.utils.uuid;
 
 import com.xingxi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * ID生成器工具类
@@ -11,6 +12,11 @@ public class IdUtils
 {
     private static IdWorker idWorker;
 
+    @Autowired
+    public void setIdWorker(IdWorker idWorker) {
+        this.idWorker = idWorker;
+    }
+
     /**
      * 获取随机UUID
      * 

+ 4 - 0
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/configuration/AppConfiguration.java

@@ -1,5 +1,7 @@
 package com.xingxi.api.configuration;
 
+import com.xingxi.common.config.IdWorkCfg;
+import com.xingxi.common.utils.uuid.IdUtils;
 import lombok.RequiredArgsConstructor;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.context.MessageSource;
@@ -7,6 +9,7 @@ import org.springframework.context.MessageSourceAware;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 import org.springframework.context.support.ReloadableResourceBundleMessageSource;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
@@ -30,6 +33,7 @@ import static com.google.common.collect.ImmutableMap.of;
         "com.xingxi.common.utils.uuid",
         "com.xingxi.common.mq"
 })
+@Import({IdWorkCfg.class, IdUtils.class})
 class AppConfiguration implements MessageSourceAware {
 
 

+ 1 - 1
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/controller/UserProfileApiController.java

@@ -64,7 +64,7 @@ public class UserProfileApiController extends BaseApiController {
      */
     @PostMapping("/user-profile/save-address")
     public UserAddressListResponse saveAddress(@RequestBody UserAddressRequest request) {
-        return userProfileServiceI.getUserAddressList(getUserContext(), request);
+        return userProfileServiceI.saveAddress(getUserContext(), request);
     }
 
 }

+ 3 - 6
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/model/OrderCreateRequest.java

@@ -1,21 +1,18 @@
 package com.xingxi.api.model;
 
-import com.xingxi.business.UserAddress.domain.UserAddress;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotNull;
 import java.util.List;
 
 @Getter
 @Setter
 public class OrderCreateRequest {
 
-    @Deprecated
-    private String userAddressId;
+    private Long userAddressId;
 
-    @NotNull
-    private UserAddress userAddress;
+//    @NotNull
+//    private UserAddress userAddress;
 
     private List<OrderItemDTO> orderItemDTOS;
 

+ 15 - 13
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/service/impl/OrderApiServiceImpl.java

@@ -12,10 +12,7 @@ import com.xingxi.api.common.ApiException;
 import com.xingxi.api.common.UserContext;
 import com.xingxi.api.data.domain.OrderDTO;
 import com.xingxi.api.data.domain.OrderDetailDTO;
-import com.xingxi.api.data.mapper.WxApiOrderMapper;
-import com.xingxi.api.data.mapper.WxApiPaymentInfoMapper;
-import com.xingxi.api.data.mapper.WxApiProdInventoryMapper;
-import com.xingxi.api.data.mapper.WxApiProductMapper;
+import com.xingxi.api.data.mapper.*;
 import com.xingxi.api.model.*;
 import com.xingxi.api.service.OrderServiceI;
 import com.xingxi.business.Order.domain.Order;
@@ -32,6 +29,7 @@ import com.xingxi.business.ProdInventory.domain.ProdInventory;
 import com.xingxi.business.ProdInventory.domain.ProdInventoryBill;
 import com.xingxi.business.ProdInventory.mapper.ProdInventoryBillMapper;
 import com.xingxi.business.UserAddress.domain.UserAddress;
+import com.xingxi.business.UserAddress.mapper.UserAddressMapper;
 import com.xingxi.common.core.domain.entity.SysUser;
 import com.xingxi.common.enums.*;
 import com.xingxi.common.exception.BusinessException;
@@ -49,6 +47,7 @@ import com.xingxi.master.product.mapper.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
@@ -104,6 +103,9 @@ class OrderApiServiceImpl implements OrderServiceI {
     @Autowired
     private PaymentInfoMapper paymentInfoMapper;
 
+    @Autowired
+    private WxApiUserAddressMapper wxApiUserAddressMapper;
+
     @Override
     public OrderQueryResponse list(UserContext userContext, OrderQueryRequest request) {
 
@@ -162,7 +164,7 @@ class OrderApiServiceImpl implements OrderServiceI {
 
         // 订单信息
         List<OrderItemDTO> orderItemDTOS = request.getOrderItemDTOS();
-        UserAddress userAddressDTO = request.getUserAddress();
+        UserAddress userAddressDTO = wxApiUserAddressMapper.selectUserAddressByUserAddressId(request.getUserAddressId());
 
         String orderNo = IdUtils.snowFlake();
         String orderStatus = EOrderStatus.ORDERED.getVal();
@@ -174,12 +176,12 @@ class OrderApiServiceImpl implements OrderServiceI {
         order.setOrderStatus(orderStatus);
         order.setBuyerId(userId);
 
-        order.setRecProv(request.getUserAddress().getProvince());
-        order.setRecCity(request.getUserAddress().getCity());
-        order.setRecDistrict(request.getUserAddress().getDistrict());
-        order.setRecAddress(request.getUserAddress().getAddress());
-        order.setRecName(request.getUserAddress().getRecipient());
-        order.setRecMobile(request.getUserAddress().getMobile());
+        order.setRecProv(userAddressDTO.getProvince());
+        order.setRecCity(userAddressDTO.getCity());
+        order.setRecDistrict(userAddressDTO.getDistrict());
+        order.setRecAddress(userAddressDTO.getAddress());
+        order.setRecName(userAddressDTO.getRecipient());
+        order.setRecMobile(userAddressDTO.getMobile());
         order.setRemark(request.getRemark());
         order.setDelFlag(EDelFlag.NO.getVal());
         order.setCreateUser(userId.toString());
@@ -213,7 +215,7 @@ class OrderApiServiceImpl implements OrderServiceI {
             ProdVendor condPv = new ProdVendor();
             condPv.setDelFlag(EDelFlag.NO.getVal());
             condPv.setProdId(merchantProd.getProdId());
-            condPv.setProdAttrId(merchantProd.getProdAttrId());
+//            condPv.setProdAttrId(merchantProd.getProdAttrId());
 
             List<ProdVendor> prodVendorList = prodVendorMapper.selectProdVendorList(condPv);
             if (prodVendorList.isEmpty()) {
@@ -287,7 +289,7 @@ class OrderApiServiceImpl implements OrderServiceI {
             inventoryBill.setUpdateUser(userId.toString());
             inventoryBill.setUpdateTime(orderTime);
 
-            cnt = prodInventoryBillMapper.insertProdInventoryBill(inventoryBill);
+              cnt = prodInventoryBillMapper.insertProdInventoryBill(inventoryBill);
             if (cnt <= 0) {
                 log.error("创建订单失败");
                 throw new BusinessException("创建订单失败");

+ 2 - 2
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/service/impl/UserProfileServiceImpl.java

@@ -220,14 +220,14 @@ class UserProfileServiceImpl implements UserProfileServiceI {
         UserAddress userAddress = new UserAddress();
 
         userAddress.setUserAddressId(request.getUserAddressId());
-        userAddress.setUserId(request.getUserId());
+        userAddress.setUserId(userContext.getCurrentUser().getUserId());
         userAddress.setMobile(request.getMobile());
         userAddress.setRecipient(request.getRecipient());
         userAddress.setProvince(request.getProvince());
         userAddress.setCity(request.getCity());
         userAddress.setDistrict(request.getDistrict());
         userAddress.setAddress(request.getAddress());
-        userAddress.setDelFlag(request.getDefaultFlag());
+        userAddress.setDefaultFlag(request.getDefaultFlag());
         userAddress.setDelFlag(EDelFlag.NO.getVal());
         if (request.getUserAddressId() == null || request.getUserAddressId() == 0L) {
             userAddressMapper.insertUserAddress(userAddress);

+ 2 - 2
08.src/Xingxi/xingxi-system/src/main/java/com/xingxi/business/Order/domain/OrderDetail.java

@@ -55,10 +55,10 @@ public class OrderDetail extends BaseEntity {
     private Integer quantity;
 
     // 售后中数量
-    private Integer afterQty;
+    private Integer afterSalesQty;
 
     // 已退货数量
-    private Integer returnQty;
+    private Integer refundQty;
 
     // 购买单价
     private BigDecimal price;