Ver código fonte

Merge remote-tracking branch 'origin/feature/退款优化及切面日志记录1202'

# Conflicts:
#	kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2PointsRulesDao.java
qng 3 anos atrás
pai
commit
4423e1b39d
26 arquivos alterados com 532 adições e 210 exclusões
  1. 0 1
      kmall-admin/src/main/java/com/kmall/admin/controller/AddressController.java
  2. 0 2
      kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2PointsRulesController.java
  3. 3 0
      kmall-admin/src/main/java/com/kmall/admin/dao/AddressDao.java
  4. 1 1
      kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberScoreChangeRecordDao.java
  5. 7 0
      kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2PointsRulesDao.java
  6. 6 0
      kmall-admin/src/main/java/com/kmall/admin/dto/Mall2RulesDto.java
  7. 37 0
      kmall-admin/src/main/java/com/kmall/admin/entity/AddressEntity.java
  8. 1 1
      kmall-admin/src/main/java/com/kmall/admin/entity/haikong/IntegralGoBackEntity.java
  9. 1 1
      kmall-admin/src/main/java/com/kmall/admin/haikong/task/MemberScoreChangeResendTask.java
  10. 7 0
      kmall-admin/src/main/java/com/kmall/admin/service/AddressService.java
  11. 1 1
      kmall-admin/src/main/java/com/kmall/admin/service/haikong/HaiKongMemberScoreChangeRecordService.java
  12. 5 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/AddressServiceImpl.java
  13. 84 60
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  14. 1 1
      kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberScoreChangeRecordServiceImpl.java
  15. 10 36
      kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java
  16. 41 5
      kmall-admin/src/main/resources/mybatis/mapper/AddressDao.xml
  17. 9 2
      kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberScoreChangeRecordDao.xml
  18. 37 2
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml
  19. 64 11
      kmall-admin/src/main/webapp/WEB-INF/page/shop/address.html
  20. 17 2
      kmall-admin/src/main/webapp/js/mk/mall2RulesDetil.js
  21. 4 15
      kmall-admin/src/main/webapp/js/sale/sale.js
  22. 151 65
      kmall-admin/src/main/webapp/js/shop/address.js
  23. 3 3
      kmall-admin/src/main/webapp/js/shop/offilineOrderList.js
  24. 0 1
      kmall-admin/src/main/webapp/js/vip/mall2pointsrules.js
  25. 32 0
      kmall-common/src/main/java/com/kmall/common/constant/Dict.java
  26. 10 0
      kmall-common/src/main/java/com/kmall/common/utils/print/ticket/item/TicketHead.java

+ 0 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/AddressController.java

@@ -63,7 +63,6 @@ public class AddressController {
     @RequiresPermissions("address:save")
     public R save(@RequestBody AddressEntity address) {
         addressService.save(address);
-
         return R.ok();
     }
 

+ 0 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2PointsRulesController.java

@@ -130,8 +130,6 @@ public class Mall2PointsRulesController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryRulesDetilAll(@RequestParam Map<String, Object> params) {
-
-
         return R.ok().put("list", null);
     }
 

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/AddressDao.java

@@ -2,6 +2,7 @@ package com.kmall.admin.dao;
 
 import com.kmall.admin.entity.AddressEntity;
 import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * Dao
@@ -12,4 +13,6 @@ import com.kmall.manager.dao.BaseDao;
  */
 public interface AddressDao extends BaseDao<AddressEntity> {
 
+    AddressEntity queryStoreAddress(@Param("id") Long id,@Param("type") String type);
+
 }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/dao/haikong/HaiKongMemberScoreChangeRecordDao.java

@@ -29,7 +29,7 @@ public interface HaiKongMemberScoreChangeRecordDao {
 
     void deleteBatchByOutBizNo(List<String> outBizNos);
 
-    IntegralGoBackEntity queryIntegralGoBack(String orderSn);
+    List<IntegralGoBackEntity> queryIntegralGoBack(@Param("orderSn") String orderSn);
 
 
     List<HaiKongMemberScoreChangeRecordEntity> queryListByResendStatus();

+ 7 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2PointsRulesDao.java

@@ -1,6 +1,7 @@
 package com.kmall.admin.dao.vip;
 
 import com.kmall.admin.dto.Mall2RulesDto;
+import com.kmall.admin.entity.vip.Mall2DetilEntity;
 import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
 import com.kmall.manager.dao.BaseDao;
 
@@ -27,4 +28,10 @@ public interface Mall2PointsRulesDao extends BaseDao<Mall2PointsRulesEntity> {
      * @return 积分生成规则
      */
     List<Mall2PointsRulesEntity> queryListByTime(Date nowTime);
+
+    void saveMall2PointsRulesDetil(List<Mall2RulesDto> pointsRulesList);
+
+    List<Mall2RulesDto> querymall2PointsRulesDetil(Long id);
+
+    int querymall2PointsRulesDetilTotal(Long id);
 }

+ 6 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/Mall2RulesDto.java

@@ -5,15 +5,21 @@ import lombok.Data;
 @Data
 public class Mall2RulesDto {
 
+    private Integer id;
+    //父类ID
     private Long mkaId;
     //积分类型
     private String rulesType;
     //积分生成规则Name(门店,商品类别,商品)
     private String pointsRulesName;
+    //积分生成规则分类id(门店,商品类别,商品)
+    private Integer pointsRulesType;
     //门店ID,商品ID,商品分类ID
     private Long rulesId;
     //商品门店名称
     private String storeName;
+    //当导入商品时,对应的商品门店ID
+    private Long storeId;
     //条码
 //    private String barcode;
 //    //备注

+ 37 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/AddressEntity.java

@@ -53,6 +53,19 @@ public class AddressEntity implements Serializable {
     private String detailInfo;
 
     private Integer isDefault;
+    /**
+     *发货收货人地址类型
+     */
+    private String addressType;
+    /**
+     * 所属门店
+     */
+    private String addressStore;
+    /**
+     * 所属门店
+     */
+    private String storeName;
+
 
     /**
      * 翻译会员名
@@ -214,4 +227,28 @@ public class AddressEntity implements Serializable {
     public void setIsDefault(Integer isDefault) {
         this.isDefault = isDefault;
     }
+
+    public String getAddressType() {
+        return addressType;
+    }
+
+    public void setAddressType(String addressType) {
+        this.addressType = addressType;
+    }
+
+    public String getAddressStore() {
+        return addressStore;
+    }
+
+    public void setAddressStore(String addressStore) {
+        this.addressStore = addressStore;
+    }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
 }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/entity/haikong/IntegralGoBackEntity.java

@@ -22,7 +22,7 @@ public class IntegralGoBackEntity implements Serializable {
     /**
      * 回退积分数量
      */
-    private String rollback_score;
+    private Integer rollback_score;
     /**
      * 渠道自定义积分变动唯一标识,用于平台幂等性保证
      */

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/haikong/task/MemberScoreChangeResendTask.java

@@ -40,7 +40,7 @@ public class MemberScoreChangeResendTask {
     private HaiKongMemberScoreChangeRecordService haiKongMemberScoreChangeRecordService;
 
     //    @Scheduled(cron = "0 55 0/2 * * ?")
-    @Scheduled(cron = "0/20 0/2 * * * ?")
+    //@Scheduled(cron = "0/20 0/2 * * * ?")
     public void resend() {
         // 查询等待发送和发送失败的记录
         List<HaiKongMemberScoreChangeRecordEntity> haiKongMemberScoreChangeRecordEntities = haiKongMemberScoreChangeRecordService.queryListByResendStatus();

+ 7 - 0
kmall-admin/src/main/java/com/kmall/admin/service/AddressService.java

@@ -69,4 +69,11 @@ public interface AddressService {
      * @return 删除条数
      */
     int deleteBatch(Integer[] ids);
+    /**
+     * 根据主键删除
+     *
+     * @param id
+     * @return 删除条数
+     */
+    AddressEntity queryStoreAddress(Long id,String type);
 }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/service/haikong/HaiKongMemberScoreChangeRecordService.java

@@ -28,7 +28,7 @@ public interface HaiKongMemberScoreChangeRecordService {
 
     void deleteBatchByOutBizNo(List<String> outBizNos);
 
-    IntegralGoBackEntity queryIntegralGoBack(String orderSn);
+    List<IntegralGoBackEntity> queryIntegralGoBack(String orderSn);
 
     List<HaiKongMemberScoreChangeRecordEntity> queryListByResendStatus();
 

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/AddressServiceImpl.java

@@ -62,4 +62,9 @@ public class AddressServiceImpl implements AddressService {
     public int deleteBatch(Integer[] ids) {
         return addressDao.deleteBatch(ids);
     }
+
+    @Override
+    public AddressEntity queryStoreAddress(Long id,String type) {
+        return addressDao.queryStoreAddress(id,type);
+    }
 }

+ 84 - 60
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -267,13 +267,18 @@ public class OrderServiceImpl implements OrderService {
      */
     @Autowired
     private HaiKongMemberScoreChangeRecordService haiKongMemberScoreChangeRecordService;
-
     /**
      * 接口重发信息
      */
     @Autowired
     private HaiKongResendMsgDao haiKongResendMsgDao;
 
+    /**
+     * 获取发货、收货人地址
+     */
+    @Autowired
+    private AddressDao addressDao;
+
     @Override
     public OrderEntity queryObject(Long id) {
         return orderDao.queryObject(id);
@@ -488,6 +493,8 @@ public class OrderServiceImpl implements OrderService {
         // 小票头
         TicketHead head = new TicketHead();
         head.setTitle(storeEntity.getStoreName());
+        //门店地址
+        head.setStoreAddress(storeEntity.getStoreAddress());
         //        head.setMemberId(orderEntity.getUserName().toString());
         head.setOrderId(orderEntity.getOrderSn());
         head.setTradeTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE").format(orderEntity.getPayTime()));
@@ -588,15 +595,15 @@ public class OrderServiceImpl implements OrderService {
             }
             mailInfo.setExprLogoUrl(logoUrl);
         }
-        mailInfo.setShopTel(storeEntity.getTelephoneNumber()==null?"0752-2688660":storeEntity.getTelephoneNumber().trim());
-
+        mailInfo.setShopTel(storeEntity.getTelephoneNumber());
+        AddressEntity addressEntity = addressDao.queryStoreAddress(storeEntity.getId(),Dict.addressStatus.item_1.getItem());
         // 发货人
-        mailInfo.setSenderTel("0752-2688660");
-        mailInfo.setSenderName("CW澳洲大药房");
-        mailInfo.setSenderProvince("广东省");
-        mailInfo.setSenderCity("深圳市");
-        mailInfo.setSenderDistrict("南山区");
-        mailInfo.setSenderAddress("前海综合保税区W104");
+        mailInfo.setSenderTel(addressEntity.getTelNumber());
+        mailInfo.setSenderName("CW澳洲大药房1");
+        mailInfo.setSenderProvince(addressEntity.getProvinceName());
+        mailInfo.setSenderCity(addressEntity.getCityName());
+        mailInfo.setSenderDistrict(addressEntity.getCountyName());
+        mailInfo.setSenderAddress(addressEntity.getDetailInfo());
 
         // 收货人
         mailInfo.setConsigneeMob(new StringBuilder(orderEntity.getMobile()).replace(3, 7, "****").toString());
@@ -2814,12 +2821,12 @@ public class OrderServiceImpl implements OrderService {
             }
 
             // 积分变动接口,下单扣减
-            if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
+//            if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
                 syncMemberScoreChangeRecord(openId, order, deductionScore, "下单扣减", HaiKongMemberScoreChangeEventEnum.SUBTRACT.getEvent());
                 // 下单赠送,一元积一分
                 Integer score = order.getActual_price().intValue();
                 syncMemberScoreChangeRecord(openId, order, score, "下单赠送", HaiKongMemberScoreChangeEventEnum.ADD.getEvent());
-            }
+//            }
 
             // 生成取票码
             PickUpCodeEntity pickUpCodeEntity = new PickUpCodeEntity();
@@ -3245,15 +3252,15 @@ public class OrderServiceImpl implements OrderService {
         if (orderInfo.getPayStatus() == Integer.parseInt(Dict.payStatus.item_3.getItem())) {
             return R.error("订单正在退款中,请勿重复退款");
         }
-        CountDownLatch cdl = new CountDownLatch(1);
-        service.submit(()-> {
-            try {
+//        CountDownLatch cdl = new CountDownLatch(1);
+//        service.submit(()-> {
+//            try {
                 orderDao.updateOrderRefunding(order.getId());
-            } finally {
-                cdl.countDown();
-            }
-        });
-        cdl.await();
+//            } finally {
+//                cdl.countDown();
+//            }
+//        });
+//        cdl.await();
 
         if (Dict.payFlag.item_weixin.getItem().equals(payFlag)) {
             Double totalActualPrice = orderDao.getTotalActualPrice(orderInfo.getMerchOrderSn());
@@ -3262,8 +3269,8 @@ public class OrderServiceImpl implements OrderService {
             }
             if (orderInfo.getOrderStatus() != Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
                 LOGGER.info("[微信退款开始--------orderRefund]"+order.getOrderSn());
-                WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn(), totalActualPrice,
-                        orderInfo.getActualPrice().doubleValue());
+//                WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn(), totalActualPrice,
+//                        orderInfo.getActualPrice().doubleValue());
                 order.setPayStatus(Integer.parseInt(Dict.payStatus.item_5.getItem()));
                 order.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_401.getItem()));
                 //修改为退款成功
@@ -3273,7 +3280,8 @@ public class OrderServiceImpl implements OrderService {
                 pickUpCodeEntity.setPickUpCodeStatus("3");
                 pickUpCodeService.update(pickUpCodeEntity);
                 //新增退款记录
-                OrderRefundEntity orderRefund = orderRefundLog(result.getRefund_id(),result.getOut_trade_no(),result.getRefund_fee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
+                OrderRefundEntity orderRefund = orderRefundLog("wx453456511","wx453456566","26999",order.getId(),user.getUserId(),order.getMerchOrderSn());
+                //OrderRefundEntity orderRefund = orderRefundLog(result.getRefund_id(),result.getOut_trade_no(),result.getRefund_fee(),order.getId(),user.getUserId(),order.getMerchOrderSn());
                 orderRefundDao.save(orderRefund);
                 //还原库存,调用免税mall接口退款和积分回退接口
                 restoreInventoryMsMall(order);
@@ -3307,7 +3315,7 @@ public class OrderServiceImpl implements OrderService {
             //还原库存,调用免税mall接口退款和积分回退接口
             restoreInventoryMsMall(order);
         }
-        int ss = 1/0;
+        //int ss = 1/0;
         return R.ok("退款成功");
     }
 
@@ -3388,21 +3396,24 @@ public class OrderServiceImpl implements OrderService {
      * @throws Exception
      */
     private void vipIntegralGoBack(OrderEntity order) throws Exception{
-        IntegralGoBackEntity changeRecordEntity = haiKongMemberScoreChangeRecordService.queryIntegralGoBack(order.getOrderSn());
-        String responseMsg =  haiKongMemberTemplate.rollbackMemberScore(JSON.toJSONString(changeRecordEntity));
-        Map<String,Object> res = JSON.parseObject(responseMsg,Map.class);
-        if("true".equals(res.get("success"))){
-            LOGGER.info("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口数据]"+responseMsg);
-        }else{
-            LOGGER.error("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口异常数据]"+responseMsg);
-            HaiKongResendMsgEntity haiKongResendMsgEntity = new HaiKongResendMsgEntity();
-            haiKongResendMsgEntity.setOpenId(changeRecordEntity.getOpen_id());
-            haiKongResendMsgEntity.setOrderSn(order.getOrderSn());
-            haiKongResendMsgEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.ROLLBACK_MEMBER_SCORE.getUrl());
-            haiKongResendMsgEntity.setRequestMsg(JSON.toJSONString(changeRecordEntity));
-            haiKongResendMsgEntity.setResponseMsg(responseMsg);
-            haiKongResendMsgEntity.setIsValid(1);
-            haiKongResendMsgDao.saveResendMsg(haiKongResendMsgEntity);
+        List<IntegralGoBackEntity> changeRecordEntityList = haiKongMemberScoreChangeRecordService.queryIntegralGoBack(order.getOrderSn());
+        for(IntegralGoBackEntity integralGoBackEntity:changeRecordEntityList) {
+            String responseMsg = haiKongMemberTemplate.rollbackMemberScore(JSON.toJSONString(integralGoBackEntity));
+            Map<String, Object> res = JSON.parseObject(responseMsg, Map.class);
+            if ("true".equals(res.get("success"))) {
+                LOGGER.info("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口数据]" + responseMsg);
+            } else {
+                LOGGER.error("=======> [vipIntegralGoBack-----调用会员系统积分全量回退接口异常数据]" + responseMsg);
+                HaiKongResendMsgEntity haiKongResendMsgEntity = new HaiKongResendMsgEntity();
+                //haiKongResendMsgEntity.setOpenId(changeRecordEntity.getOpen_id());
+                haiKongResendMsgEntity.setOpenId(integralGoBackEntity.getOpen_id());
+                haiKongResendMsgEntity.setOrderSn(order.getOrderSn());
+                haiKongResendMsgEntity.setInterfaceType(HaiKongMemberSystemUrlEnum.ROLLBACK_MEMBER_SCORE.getUrl());
+                haiKongResendMsgEntity.setRequestMsg(JSON.toJSONString(integralGoBackEntity));
+                haiKongResendMsgEntity.setResponseMsg(responseMsg);
+                haiKongResendMsgEntity.setIsValid(1);
+                haiKongResendMsgDao.saveResendMsg(haiKongResendMsgEntity);
+            }
         }
     }
 
@@ -3868,6 +3879,8 @@ public class OrderServiceImpl implements OrderService {
             // 小票头
             TicketHead head = new TicketHead();
             head.setTitle(storeEntity.getStoreName());
+            //门店地址
+            head.setStoreAddress(storeEntity.getStoreAddress());
             //        head.setMemberId(orderEntity.getUserName().toString());
             head.setOrderId(orderEntity.getOrderSn());
             head.setTradeTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE").format(orderEntity.getPayTime()));
@@ -3961,15 +3974,16 @@ public class OrderServiceImpl implements OrderService {
             mailInfo.setExprLogoUrl(logoUrl);
             byte[] barCode128 = BarcodeUtil.generateBarCode128(exprNo, 6.0D, null, true, false);
             String exprNoBase64Img = new String(Base64.getEncoder().encode(barCode128));
-            mailInfo.setShopTel(storeEntity.getTelephoneNumber()==null?"0752-2688660":storeEntity.getTelephoneNumber().trim());
+            mailInfo.setShopTel(storeEntity.getTelephoneNumber());
 
+            AddressEntity addressEntity = addressDao.queryStoreAddress(storeEntity.getId(),Dict.addressStatus.item_1.getItem());
             // 发货人
-            mailInfo.setSenderTel("0752-26886602");
+            mailInfo.setSenderTel(addressEntity.getTelNumber());
             mailInfo.setSenderName("CW澳洲大药房");
-            mailInfo.setSenderProvince("广东省");
-            mailInfo.setSenderCity("深圳市");
-            mailInfo.setSenderDistrict("南山区");
-            mailInfo.setSenderAddress("前海综合保税区W104");
+            mailInfo.setSenderProvince(addressEntity.getProvinceName());
+            mailInfo.setSenderCity(addressEntity.getCityName());
+            mailInfo.setSenderDistrict(addressEntity.getCountyName());
+            mailInfo.setSenderAddress(addressEntity.getDetailInfo());
 
             // 收货人
             mailInfo.setConsigneeMob(new StringBuilder(orderEntity.getMobile()).replace(3, 7, "****").toString());
@@ -4628,7 +4642,13 @@ public class OrderServiceImpl implements OrderService {
         orderInfo.setUser_id(loginUser.getId().longValue());
         actualPrice = actualPrice.subtract(couponPrice);
 
-        StoreEntity storeEntity = storeDao.queryObject(storeId);
+        //StoreEntity storeEntity = storeDao.queryObject(storeId);
+        //获取收货人地址
+        AddressEntity addressEntity = addressDao.queryStoreAddress(storeId,Dict.addressStatus.item_2.getItem());
+        if(null==addressEntity){
+            LOGGER.error("setOrderVo---门店未配置收货人地址:"+storeId);
+            throw new RRException("门店未配置收货人地址");
+        }
         //收货地址和运费
         orderInfo.setConsignee(loginUser.getUsername());
         orderInfo.setMobile(loginUser.getMobile());
@@ -4636,22 +4656,26 @@ public class OrderServiceImpl implements OrderService {
         //根据 前端的选择方式 1 是柜取 0 是 邮寄
         if (status == 0) {
             //省
-            String cmbProvince = (String) mapAddr.get("cmbProvince");
-            //市
-            String cmbCity = (String) mapAddr.get("cmbCity");
-            //区
-            String cmbArea = (String) mapAddr.get("cmbArea");
-            //详细地址
-            String addrUser = (String) mapAddr.get("addrUser");
-            orderInfo.setProvince(cmbProvince);
-            orderInfo.setCity(cmbCity);
-            orderInfo.setDistrict(cmbArea);
-            orderInfo.setAddress(addrUser);
+//            String cmbProvince = (String) mapAddr.get("cmbProvince");
+//            //市
+//            String cmbCity = (String) mapAddr.get("cmbCity");
+//            //区
+//            String cmbArea = (String) mapAddr.get("cmbArea");
+//            //详细地址
+//            String addrUser = (String) mapAddr.get("addrUser");
+//            orderInfo.setProvince(cmbProvince);
+//            orderInfo.setCity(cmbCity);
+//            orderInfo.setDistrict(cmbArea);
+//            orderInfo.setAddress(addrUser);
+            orderInfo.setProvince(addressEntity.getProvinceName());
+            orderInfo.setCity(addressEntity.getCityName());
+            orderInfo.setDistrict(addressEntity.getCountyName());
+            orderInfo.setAddress(addressEntity.getDetailInfo());
         } else {
-            orderInfo.setProvince(storeEntity.getProvinceName());
-            orderInfo.setCity(storeEntity.getCityName());
-            orderInfo.setDistrict(storeEntity.getCountyName());
-            orderInfo.setAddress(storeEntity.getStoreAddress());
+            orderInfo.setProvince(addressEntity.getProvinceName());
+            orderInfo.setCity(addressEntity.getCityName());
+            orderInfo.setDistrict(addressEntity.getCountyName());
+            orderInfo.setAddress(addressEntity.getDetailInfo());
         }
         orderInfo.setAddress_id(1L);
         orderInfo.setDelivery_date(new Date());

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/haikong/HaiKongMemberScoreChangeRecordServiceImpl.java

@@ -61,7 +61,7 @@ public class HaiKongMemberScoreChangeRecordServiceImpl implements HaiKongMemberS
     }
 
     @Override
-    public IntegralGoBackEntity queryIntegralGoBack(String orderSn) {
+    public List<IntegralGoBackEntity> queryIntegralGoBack(String orderSn) {
         return haiKongMemberScoreChangeRecordDao.queryIntegralGoBack(orderSn);
     }
 

+ 10 - 36
kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java

@@ -90,25 +90,23 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
                         break;
                     //商品类别
                     case 1:
-
                         mall2RulesDto.setRulesId(categoryDao.queryObjectCategoryByName(mall2RulesDto.getPointsRulesName().trim()));
                         break;
                     //商品
                     case 2:
+                        //获取门店ID
                         Long id = storeDao.queryObjectRulesByName(mall2RulesDto.getStoreName().trim());
+                        mall2RulesDto.setStoreId(id);
                         mall2RulesDto.setRulesId(productStoreRelaDao.queryproductStoreByName(mall2RulesDto.getPointsRulesName().trim(),id));
                         break;
                     default:
                         break;
                 }
                 mall2RulesDto.setMkaId(mkaId);
+                mall2RulesDto.setPointsRulesType(pointsType);
             });
-            if(pointsType==0){
-                storeDao.updateObjectStore(pointsRulesList);
-            }else if(pointsType==1){
-                categoryDao.updateObjectCategory(pointsRulesList);
-            }else{
-                productStoreRelaDao.updateProductStoreRela(pointsRulesList);
+            if(pointsRulesList.size()>0){
+                mall2PointsRulesDao.saveMall2PointsRulesDetil(pointsRulesList);
             }
         }
 
@@ -122,36 +120,12 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
     @Override
     public Map<String,Object> queryDetilList(Query query) {
         Long id = Long.parseLong(query.get("mkaId")+"");
-        Integer pointsType = mall2PointsRulesDao.queryRulesDetilId(id);
         Map<String,Object> map = new HashMap<>();
-        List<Mall2DetilEntity> mall2DetilEntities = null;
-        int total = 0 ;
-                switch (pointsType) {
-                //门店
-                case 0:
-                    mall2DetilEntities = storeDao.queryStoreRulesDetil(id);
-                    total = storeDao.queryStoreDetilTotal(id);
-                    map.put("list",mall2DetilEntities);
-                    map.put("total",total);
-                    break;
-                //商品类别
-                case 1:
-                    mall2DetilEntities = categoryDao.queryCategoryRulesDetil(id);
-                    total = categoryDao.queryCategoryDetilTotal(id);
-                    map.put("list",mall2DetilEntities);
-                    map.put("total",total);
-                    break;
-                //商品
-                case 2:
-                    mall2DetilEntities = productStoreRelaDao.queryProductStoreRulesDetil(id);
-                    total = productStoreRelaDao.queryProductDetilTotal(id);
-                    map.put("list",mall2DetilEntities);
-                    map.put("total",total);
-                    break;
-                default:
-                    break;
-            }
-                return map;
+        List<Mall2RulesDto> mall2DetilEntities = mall2PointsRulesDao.querymall2PointsRulesDetil(id);
+        int total = mall2PointsRulesDao.querymall2PointsRulesDetilTotal(id);
+        map.put("list",mall2DetilEntities);
+        map.put("total",total);
+        return map;
 
     }
 

+ 41 - 5
kmall-admin/src/main/resources/mybatis/mapper/AddressDao.xml

@@ -30,8 +30,11 @@
         mall_address.county_Name,
         mall_address.detail_Info,
         mall_address.is_default,
+        mall_address.address_type,
+        mall_address.address_store,
+        mall_store.store_name,
         mall_user.nickname shop_user_name
-        from mall_address LEFT JOIN mall_user ON mall_address.user_id = mall_user.id
+        from mall_address LEFT JOIN mall_store ON mall_address.address_store = mall_store.id LEFT JOIN mall_user ON mall_address.user_id = mall_user.id
         where mall_address.id = #{id}
     </select>
 
@@ -48,8 +51,11 @@
         mall_address.county_Name,
         mall_address.detail_Info,
         mall_address.is_default,
+        mall_address.address_type,
+        mall_address.address_store,
+        mall_store.store_name,
         mall_user.nickname shop_user_name
-        from mall_address
+        from mall_address LEFT JOIN mall_store ON mall_address.address_store = mall_store.id
         LEFT JOIN mall_user ON mall_address.user_id = mall_user.id
         LEFT JOIN mall_merch_user d ON mall_address.user_id=d.user_id
         left join mall_store s on d.store_id = s.id
@@ -122,7 +128,9 @@
         `city_Name`,
         `county_Name`,
         `detail_Info`,
-        `is_default`)
+        `is_default`,
+         address_type,
+         address_store)
         values(
         #{userId},
         #{userName},
@@ -133,7 +141,10 @@
         #{cityName},
         #{countyName},
         #{detailInfo},
-        #{isDefault})
+        #{isDefault},
+        #{addressType},
+        #{addressStore}
+        )
     </insert>
 
     <update id="update" parameterType="com.kmall.admin.entity.AddressEntity">
@@ -148,7 +159,9 @@
             <if test="cityName != null">`city_Name` = #{cityName}, </if>
             <if test="countyName != null">`county_Name` = #{countyName}, </if>
             <if test="detailInfo != null">`detail_Info` = #{detailInfo}, </if>
-            <if test="isDefault != null">`is_default` = #{isDefault}</if>
+            <if test="isDefault != null">`is_default` = #{isDefault},</if>
+            <if test="addressType != null">`address_type` = #{addressType},</if>
+            <if test="addressStore != null">`address_store` = #{addressStore}</if>
         </set>
         where id = #{id}
     </update>
@@ -164,4 +177,27 @@
         </foreach>
     </delete>
 
+    <select id="queryStoreAddress" resultType="com.kmall.admin.entity.AddressEntity">
+        select
+        mall_address.id,
+        mall_address.user_id,
+        mall_address.user_name,
+        mall_address.tel_number,
+        mall_address.postal_Code,
+        mall_address.national_Code,
+        mall_address.province_Name,
+        mall_address.city_Name,
+        mall_address.county_Name,
+        mall_address.detail_Info,
+        mall_address.is_default,
+        mall_address.address_type,
+        mall_address.address_store,
+        mall_store.store_name,
+        mall_user.nickname shop_user_name
+        from mall_address LEFT JOIN mall_store ON mall_address.address_store = mall_store.id LEFT JOIN mall_user ON mall_address.user_id = mall_user.id
+        where mall_address.address_store = #{id}
+        and mall_address.address_type= #{type}
+        limit 1
+    </select>
+
 </mapper>

+ 9 - 2
kmall-admin/src/main/resources/mybatis/mapper/haikong/HaiKongMemberScoreChangeRecordDao.xml

@@ -15,6 +15,13 @@
         <result column="create_time" property="createTime" />
     </resultMap>
 
+    <resultMap id="IntegralGoBack" type="com.kmall.admin.entity.haikong.IntegralGoBackEntity">
+        <result column="open_id" property="open_id" />
+        <result column="score" property="rollback_score" />
+        <result column="statement_id" property="statement_id" />
+        <result column="change_id" property="change_id" />
+    </resultMap>
+
     <select id="queryObjectByOutBizNo" resultType="com.kmall.admin.entity.haikong.HaiKongMemberScoreChangeRecordEntity">
         select *
         from haikong_member_score_change_record
@@ -118,10 +125,10 @@
         </foreach>
     </delete>
 
-    <select id="queryIntegralGoBack" resultType="com.kmall.admin.entity.haikong.IntegralGoBackEntity">
+    <select id="queryIntegralGoBack" parameterType="java.lang.String" resultMap="IntegralGoBack">
         SELECT
             open_id,
-            score as rollback_score,
+            score,
             statement_id,
             change_id
         FROM

+ 37 - 2
kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml

@@ -24,7 +24,6 @@
 			 points_rules_num as pointsRulesNum,
 			`points_begin_time`,
 			`points_end_time`,
-			 points_proportion as pointsProportion,
 			`is_valid`,
 			`creater_sn`,
 			`create_time`,
@@ -43,7 +42,6 @@
 			 points_rules_num as pointsRulesNum,
     		`points_begin_time`,
     		`points_end_time`,
-		     points_proportion as pointsProportion,
     		`is_valid`,
     		`creater_sn`,
     		`create_time`,
@@ -160,5 +158,42 @@
     	where points_begin_time &lt;= #{nowTime} and points_end_time &gt;= #{nowTime}
 	</select>
 
+	<insert id="saveMall2PointsRulesDetil" parameterType="com.kmall.admin.dto.Mall2RulesDto">
+		insert into mall2_points_rules_detil(
+			 father_id,
+			 points_rules_type,
+			 points_detil_name,
+			 points_detil_name_id,
+			 points_store_name,
+			 points_store_id)
+		values
+		<foreach collection="list" item="item" separator=",">
+			(
+			#{item.mkaId},
+			#{item.pointsRulesType},
+			#{item.pointsRulesName},
+			#{item.rulesId},
+			#{item.storeName},
+			#{item.storeId}
+			)
+		</foreach>
+
+	</insert>
+
+	<select id="querymall2PointsRulesDetil" parameterType="java.lang.Long" resultType="com.kmall.admin.dto.Mall2RulesDto">
+		select
+             father_id as id,
+			 points_rules_type as rulesType,
+			 points_detil_name as pointsRulesName,
+			 points_store_name as storeName
+		from mall2_points_rules_detil
+		WHERE
+		father_id = #{id}
+	</select>
+
+	<select id="querymall2PointsRulesDetilTotal" parameterType="java.lang.Long" resultType="java.lang.Integer">
+		select count(*) from mall2_points_rules_detil
+		where father_id = #{id}
+	</select>
 
 </mapper>

+ 64 - 11
kmall-admin/src/main/webapp/WEB-INF/page/shop/address.html

@@ -1,31 +1,84 @@
 <!DOCTYPE html>
 <html>
 <head>
-    <title></title>
+    <title>用户详细地址表</title>
     #parse("sys/header.html")
 </head>
 <body>
 <div id="rrapp" v-cloak>
-    <div v-show="showList">
+	<div v-show="showList">
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
-                    <i-input v-model="q.userName" @on-enter="query" placeholder="收货人姓名"/>
-                </i-col>
-                <i-col span="4">
-                    <i-input v-model="q.telNumber" @on-enter="query" placeholder="联系电话"/>
+                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
                 </i-col>
                 <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
             </div>
             <div class="buttons-group">
-                <!--#if($shiro.hasPermission("address:delete"))-->
-                <!--<i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>-->
-                <!--#end-->
+                #if($shiro.hasPermission("address:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("address:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("address:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end
             </div>
         </Row>
-        <table id="jqGrid"></table>
-        <div id="jqGridPager"></div>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
     </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="address" :rules="ruleValidate" :label-width="80">
+            <Form-item  label="所属门店" prop="addressStore" style="height: 30px;">
+                <i-select v-model="address.addressStore" placeholder="所属门店" label-in-value>
+                    <i-option v-for="store in categoriesStore" :value="store.id"
+                              :key="store.id">{{store.storeName}}
+                    </i-option>
+                </i-select>
+            </Form-item>
+            <Form-item  label="地址类型" prop="addressType" style="height: 30px;">
+                <i-select v-model="address.addressType" placeholder="地址类型" label-in-value>
+                    <i-option v-for="category in categories" :value="category.value"
+                              :key="category.value">{{category.name}}
+                    </i-option>
+                </i-select>
+            </Form-item>
+            <Form-item label="手机号" prop="telNumber">
+                <i-input v-model="address.telNumber" placeholder="手机号"/>
+            </Form-item>
+            <Form-item label="邮政编码" prop="postalCode">
+                <i-input v-model="address.postalCode" placeholder="邮政编码"/>
+            </Form-item>
+<!--            <Form-item label="国家代码" prop="nationalCode">-->
+<!--                <i-input v-model="address.nationalCode" placeholder="国家代码"/>-->
+<!--            </Form-item>-->
+            <Form-item label="省" prop="provinceName">
+                <i-input v-model="address.provinceName" placeholder="省"/>
+            </Form-item>
+            <Form-item label="市" prop="cityName">
+                <i-input v-model="address.cityName" placeholder="市"/>
+            </Form-item>
+            <Form-item label="县(区)" prop="countyName">
+                <i-input v-model="address.countyName" placeholder="县(区)"/>
+            </Form-item>
+            <Form-item label="详细地址" prop="detailInfo">
+                <i-input v-model="address.detailInfo" placeholder="详细地址"/>
+            </Form-item>
+<!--            <Form-item label="是否默认 1默认 0否" prop="isDefault">-->
+<!--                <i-input v-model="address.isDefault" placeholder="是否默认 1默认 0否"/>-->
+<!--            </Form-item>-->
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
 </div>
 
 <script src="${rc.contextPath}/js/shop/address.js?_${date.systemTime}"></script>

+ 17 - 2
kmall-admin/src/main/webapp/js/mk/mall2RulesDetil.js

@@ -25,8 +25,23 @@ $(function () {
         datatype: "json",
         colModel: [
 			{label: 'Id', name: 'id', index: 'id', key: true, hidden: true},
-			{label: 'id', name: 'id', index: 'id', width: 80, align: 'center'},
-			{label: '对应的商品/门店/类别名称', name: 'rulesName', index: 'rulesName', width: 80, align: 'center'},
+			{label: 'id', name: 'id', index: 'id', width: 30, align: 'center'},
+			{
+				label: '积分类型', name: 'rulesType', index: 'points_rules_type', width: 80, formatter: function (value) {
+					if (value === '0' || value === 0) {
+						return '门店';
+					}
+					if (value == '1') {
+						return '商品类别';
+					}
+					if (value == '2') {
+						return '门店商品';
+					}
+
+				}
+			},
+			{label: '商品/门店/类别名称', name: 'pointsRulesName', index: 'points_detil_name', width: 80, align: 'center'},
+			{label: '对应的商品门店名称', name: 'storeName', index: 'points_store_name', width: 80, align: 'center'},
 			{label: '备注', name: 'remark', index: 'remark', width: 80, align: 'center'},],
 		viewrecords: true,
 		postData: {'mkaId': vm.mkaId},

+ 4 - 15
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -1646,20 +1646,9 @@ function getPrintContentOrder(ticket, callback) {
     content += "<div style=\"width: 100%;\">";
     content += "欢迎再次惠顾 --服务电话:" + ticket.ticketMailInfo.shopTel;
     content += "</div>";
-    if(ticket.cusListing.deliveryAddress.indexOf("港惠") != -1){
-        content += "<div style=\"width: 100%;\">";
-        content += "惠州市惠城区港惠购物中心负一层";
-        content += "</div>";
-    }else if(ticket.cusListing.deliveryAddress.indexOf("永旺") != -1){
-        content += "<div style=\"width: 100%;\">";
-        content += "惠州市惠城区东湖西路东湖8区裙楼永旺惠州购物中心二楼CW大药房";
-        content += "</div>";
-    }else{
-        content += "<div style=\"width: 100%;\">";
-        content += "惠州市惠城区港惠购物中心负一层";
-        content += "</div>";
-    }
-
+    content += "<div style=\"width: 100%;\">";
+    content += ticket.ticketHead.storeAddress;
+    content += "</div>";
 
     content += "<div style=\"width: 100%;\">";
     content += "请保管好收银小票。";
@@ -1723,7 +1712,7 @@ function getPrintContentOrder(ticket, callback) {
                 发件人
             </div>
             <div style="width: 100px; display: inline;">
-                <span style="font-weight: bold">${ticket.ticketMailInfo.shopTel}</span> <span style="font-weight: bold">CW澳洲大药房</span>
+                <span style="font-weight: bold">${ticket.ticketMailInfo.senderName}</span> <span style="font-weight: bold">${ticket.ticketMailInfo.senderTel}</span>
             </div>
             <div style="width: 100%">
                 仓库地址:${ticket.ticketMailInfo.senderProvince} ${ticket.ticketMailInfo.senderCity} ${ticket.ticketMailInfo.senderDistrict} ${ticket.ticketMailInfo.senderAddress}

+ 151 - 65
kmall-admin/src/main/webapp/js/shop/address.js

@@ -1,33 +1,42 @@
 $(function () {
-    let userId = getQueryString("userId");
-    let url = '../address/list';
-    if (userId) {
-        url += '?userId=' + userId;
-    }
     $("#jqGrid").jqGrid({
-        url: url,
+        url: '../address/list',
         datatype: "json",
         colModel: [
-            {label: 'id', name: 'id', index: 'id', key: true, hidden: true},
-            {label: '会员', name: 'shopUserName', index: 'user_id', width: 240},
-            {label: '收货人姓名', name: 'userName', index: 'user_name', width: 100},
-            {label: '手机', name: 'telNumber', index: 'tel_number', width: 140},
-            {label: '收货地址国家码', name: 'nationalCode', index: 'national_Code', width: 120},
-            {label: '省', name: 'provinceName', index: 'province_Name',align:'center', width: 140},
-            {label: '市', name: 'cityName', index: 'city_Name',align:'center', width: 80},
-            {label: '区', name: 'countyName', index: 'county_Name',align:'center', width: 80},
-            {label: '详细收货地址信息', name: 'detailInfo', index: 'detail_Info', width: 400},
-            {label: '邮编', name: 'postalCode', index: 'postal_Code', width: 80}],
-        viewrecords: true,
+			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
+			{label: '所属门店', name: 'addressStore', index: 'address_store', width: 100},
+			{label: '所属门店', name: 'storeName', index: 'storeName', width: 100},
+			{
+				label: '地址类型', name: 'addressType', index: 'address_type', width: 80, formatter: function (value) {
+					if (value === '1' || value === 1) {
+						return '发货地址';
+					}
+					if (value == '2') {
+						return '收货地址';
+					}
+				}
+			},
+			{label: '手机号', name: 'telNumber', index: 'tel_number', width: 60},
+			{label: '邮政编码', name: 'postalCode', index: 'postal_Code', width: 60},
+			{label: '省', name: 'provinceName', index: 'province_Name', width: 60},
+			{label: '市', name: 'cityName', index: 'city_Name', width: 60},
+			{label: '县', name: 'countyName', index: 'county_Name', width: 60},
+			{label: '详细地址', name: 'detailInfo', index: 'detail_Info', width: 160},
+			// {label: '是否默认', name: 'isDefault', index: 'is_default', width: 80},
+			// {label: '纬度', name: 'latitude', index: 'latitude', width: 80},
+			// {label: '经度', name: 'longitude', index: 'longitude', width: 80},
+			// {label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
+			// {label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
+			// {label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
+			// {label: '修改时间', name: 'modTime', index: 'mod_time', width: 80}
+			],
+		viewrecords: true,
         height: 550,
         rowNum: 10,
         rowList: [10, 30, 50],
         rownumbers: true,
         rownumWidth: 25,
         autowidth: true,
-        shrinkToFit: false,
-        autoScroll: true,   //开启水平滚动条
-        width: 1500,
         multiselect: true,
         pager: "#jqGridPager",
         jsonReader: {
@@ -42,59 +51,136 @@ $(function () {
             order: "order"
         },
         gridComplete: function () {
-            //隐藏grid底部滚动条
-            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
         }
     });
 });
 
-var vm = new Vue({
-    el: '#rrapp',
-    data: {
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
         showList: true,
-        q: {
-            userName: '',
-            telNumber: ''
-        }
-    },
-    methods: {
-        query: function () {
+        title: null,
+		address: {},
+		categories: [],//所有地址类型
+		categoriesStore: [],//所有门店
+		brands: [],
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.address = {};
+			vm.getCategories();
+			vm.getCategoriesStore();
+		},
+		update: function (event) {
+            let id = getSelectedRow();
+			if (id == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(id)
+			vm.getCategories();
+			vm.getCategoriesStore();
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.address.id == null ? "../address/save" : "../address/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.address),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let ids = getSelectedRows();
+			if (ids == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../address/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(ids),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(id){
+			$.get("../address/info/"+id, function (r) {
+                vm.address = r.address;
+            });
+		},
+		getCategories: function () {
+			$.get("../sys/macro/queryMacrosByValueRuRules?id=82", function (r) {
+				vm.categories = r.list;
+			});
+		},
+		getCategoriesStore: function () {
+			$.get("../store/queryAll", function (r) {
+				vm.categoriesStore = r.list;
+			});
+		},
+		getBrand: function () {
+			$.get("../sys/macro/queryMacrosByValueRuRules?id=82" , function (r) {
+				vm.brands = r.list;
+			});
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: ''
+            }
             vm.reload();
-        },
-        reload: function (event) {
-            vm.showList = true;
-            var page = $("#jqGrid").jqGrid('getGridParam', 'page');
-            $("#jqGrid").jqGrid('setGridParam', {
-                postData: {
-                    'userName': vm.q.userName,
-                    'telNumber': vm.q.telNumber
-                },
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name},
                 page: page
             }).trigger("reloadGrid");
-        },
-        del: function (event) {
-            var ids = getSelectedRows();
-            if (ids == null) {
-                return;
-            }
-
-            confirm('确定要删除选中的记录?', function () {
-                $.ajax({
-                    type: "POST",
-                    url: "../address/delete",
-                    contentType: "application/json",
-                    data: JSON.stringify(ids),
-                    success: function (r) {
-                        if (r.code == 0) {
-                            alert('操作成功', function (index) {
-                                $("#jqGrid").trigger("reloadGrid");
-                            });
-                        } else {
-                            alert(r.msg);
-                        }
-                    }
-                });
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
             });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
         }
-    }
+	}
 });

+ 3 - 3
kmall-admin/src/main/webapp/js/shop/offilineOrderList.js

@@ -145,9 +145,9 @@ $(function () {
                     if (row.orderStatus == 0) {
                         htmlStr += '<button class="btn btn-outline btn-danger" onclick="vm.cancelUpdate(' + row.id + ')"><i class="fa fa-times-circle-o"></i>&nbsp;取消</button>&nbsp;';
                     }
-                    if (row.orderStatus == 201) {
-                        htmlStr += '<button class="btn btn-outline btn-danger" onclick="vm.refundUpdate(' + row.id + ')"><i class="fa fa-times-circle-o"></i>&nbsp;退款</button>&nbsp;';
-                    }
+                    // if (row.orderStatus == 201) {
+                    //     htmlStr += '<button class="btn btn-outline btn-danger" onclick="vm.refundUpdate(' + row.id + ')"><i class="fa fa-times-circle-o"></i>&nbsp;退款</button>&nbsp;';
+                    // }
 
                     return htmlStr;
                 }

+ 0 - 1
kmall-admin/src/main/webapp/js/vip/mall2pointsrules.js

@@ -30,7 +30,6 @@ $(function () {
 					return transDate(value, 'yyyy-MM-dd');
 				}
 			},
-			{label: '积分比例', name: 'pointsProportion', index: 'points_proportion', width: 80},
 			{
 				label: '是否有效', name: 'isValid', index: 'is_valid', width: 80, formatter: function (value) {
 					if (value === '0' || value === 0) {

+ 32 - 0
kmall-common/src/main/java/com/kmall/common/constant/Dict.java

@@ -1947,4 +1947,36 @@ public class Dict {
         }
     }
 
+    /**
+     * 地址类型
+     */
+    public enum addressStatus {
+        item_1("1", "发货人类型"),
+        item_2("2", "收货人类型");
+
+        private String item;
+        private String itemName;
+
+        addressStatus(String item, String itemName) {
+            this.item = item;
+            this.itemName = itemName;
+        }
+
+        public String getItem() {
+            return item;
+        }
+
+        public void setItem(String item) {
+            this.item = item;
+        }
+
+        public String getItemName() {
+            return itemName;
+        }
+
+        public void setItemName(String itemName) {
+            this.itemName = itemName;
+        }
+    }
+
 }

+ 10 - 0
kmall-common/src/main/java/com/kmall/common/utils/print/ticket/item/TicketHead.java

@@ -31,6 +31,9 @@ public class TicketHead implements Serializable {
     // 交易时间
     private String tradeTime;
 
+    // 门店地址
+    private String storeAddress;
+
 
     public String getTitle() {
         return title;
@@ -88,4 +91,11 @@ public class TicketHead implements Serializable {
         this.tradeTime = tradeTime;
     }
 
+    public String getStoreAddress() {
+        return storeAddress;
+    }
+
+    public void setStoreAddress(String storeAddress) {
+        this.storeAddress = storeAddress;
+    }
 }