Przeglądaj źródła

Merge branch 'master' of zyh/kmall-haikong into master

张永豪 3 lat temu
rodzic
commit
cb33860c90
22 zmienionych plików z 300 dodań i 50 usunięć
  1. 7 3
      kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2PointsRulesDao.java
  2. 41 0
      kmall-admin/src/main/java/com/kmall/admin/dto/Mall2PointsRulesDto.java
  3. 13 0
      kmall-admin/src/main/java/com/kmall/admin/entity/OrderEntity.java
  4. 12 0
      kmall-admin/src/main/java/com/kmall/admin/entity/mk/MkActivitiesEntity.java
  5. 19 7
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  6. 6 4
      kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java
  7. 9 3
      kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2PointsRulesService.java
  8. 5 2
      kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml
  9. 6 2
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesDao.xml
  10. 2 1
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivityFormDao.xml
  11. 43 0
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml
  12. 10 7
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mall2RulesDetil.html
  13. 6 6
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesscore.html
  14. 12 2
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivityform.html
  15. 10 3
      kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html
  16. 1 1
      kmall-admin/src/main/webapp/js/mk/mall2RulesDetil.js
  17. 6 2
      kmall-admin/src/main/webapp/js/mk/mkactivityform.js
  18. 13 2
      kmall-admin/src/main/webapp/js/sale/sale.js
  19. 3 1
      kmall-admin/src/main/webapp/js/shop/offilineOrderList.js
  20. 30 4
      kmall-admin/src/main/webapp/userLogin.html
  21. 13 0
      kmall-api/src/main/java/com/kmall/api/entity/OrderVo.java
  22. 33 0
      kmall-common/src/main/java/com/kmall/common/constant/Dict.java

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

@@ -1,16 +1,14 @@
 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.admin.dto.Mall2PointsRulesDto;
 import com.kmall.admin.haikong.vo.PointsRulesAndDetailVO;
 import com.kmall.common.utils.Query;
 import com.kmall.manager.dao.BaseDao;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 
 /**
  * 积分规则表Dao
@@ -39,4 +37,10 @@ public interface Mall2PointsRulesDao extends BaseDao<Mall2PointsRulesEntity> {
     int querymall2PointsRulesDetilTotal(Long id);
 
     void deleteRulesDetil(Integer[] mprIds);
+    /**
+     * 根据查询条件积分规则及其明细
+     * @param mall2PointsRulesDto
+     * @return
+     */
+    List<PointsRulesAndDetailVO> queryListBy(Mall2PointsRulesDto mall2PointsRulesDto);
 }

+ 41 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/Mall2PointsRulesDto.java

@@ -0,0 +1,41 @@
+package com.kmall.admin.dto;
+
+import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 积分规则表实体查询
+ * 表名 mall2_points_rules
+ */
+public class Mall2PointsRulesDto extends Mall2PointsRulesEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 当前日期用于查询
+     */
+    private Date nowTime;
+
+    /**
+     * 当导入商品时,对应的商品门店ID
+     * @return
+     */
+    private String pointsStoreId;
+
+    public String getPointsStoreId() {
+        return pointsStoreId;
+    }
+
+    public void setPointsStoreId(String pointsStoreId) {
+        this.pointsStoreId = pointsStoreId;
+    }
+
+    public Date getNowTime() {
+        return nowTime;
+    }
+
+    public void setNowTime(Date nowTime) {
+        this.nowTime = nowTime;
+    }
+}

+ 13 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/OrderEntity.java

@@ -214,6 +214,19 @@ public class OrderEntity implements Serializable {
     //小票码状态
     private String pickUpCodeStatus;
 
+    /**
+     * 海控会员系统会员码(会员手机号)
+     */
+    private String memberCode;
+
+    public String getMemberCode() {
+        return memberCode;
+    }
+
+    public void setMemberCode(String memberCode) {
+        this.memberCode = memberCode;
+    }
+
     public BigDecimal getTopicPrice() {
         return topicPrice;
     }

+ 12 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/mk/MkActivitiesEntity.java

@@ -103,6 +103,18 @@ public class MkActivitiesEntity implements Serializable, Comparable<MkActivities
      */
     private Integer priority;
 
+    /**
+     * 营销活动名称
+     */
+    private String mkaName;
+
+    public String getMkaName() {
+        return mkaName;
+    }
+
+    public void setMkaName(String mkaName) {
+        this.mkaName = mkaName;
+    }
 
     /**
      * 设置:编号

+ 19 - 7
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -2,10 +2,7 @@ package com.kmall.admin.service.impl;
 
 import cn.hutool.core.lang.Snowflake;
 import cn.hutool.core.lang.UUID;
-import cn.hutool.core.lang.generator.SnowflakeGenerator;
 import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.XmlUtil;
-import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.core.type.TypeReference;
@@ -15,8 +12,6 @@ import com.google.gson.Gson;
 import com.google.gson.internal.LinkedTreeMap;
 import com.kmall.admin.cuspay.biz.ali.AliCusDeclareBiz;
 import com.kmall.admin.cuspay.biz.wx.WxCusDeclareBiz;
-import com.kmall.admin.cuspay.manager.snow.SnowflakeIdWorker;
-import com.kmall.admin.cuspay.manager.snow.SnowflakeUtil;
 import com.kmall.admin.dao.*;
 import com.kmall.admin.dao.alarm.Mall2LowPriceWarningDao;
 import com.kmall.admin.dao.mk.Mk2GoodsTopicPriceDao;
@@ -36,7 +31,6 @@ import com.kmall.admin.entity.mk.store.MkStorePromOrderRealEntity;
 import com.kmall.admin.entity.record.NewRetailOrderRestoreStockRecordEntity;
 import com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity;
 import com.kmall.admin.entity.vip.Mall2MemberPointsEntity;
-import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
 import com.kmall.admin.fromcomm.dao.SysConfigDao;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.haikong.constant.*;
@@ -2525,6 +2519,8 @@ public class OrderServiceImpl implements OrderService {
             order.setMerchOrderSn(merchOrderSn);
             order.setCoupon_name(couponSn); // 借用这个字段来记录是否使用优惠券
             order.setIdCard(userEntity.getIdNo());
+            order.setMemberCode((String)userInfo.get("consigneePhone"));
+            LOGGER.debug("插入订单信息数据:{}",JacksonUtil.toJson(order));
             //插入订单信息和订单商品
             orderDao.saveOrderVo(order);
 
@@ -2634,7 +2630,23 @@ public class OrderServiceImpl implements OrderService {
             // 无会员码,不参与积分赠送
             Map<String, OrderGiftScoreRulesVo> giftGoodsScoreDetailMap = new HashMap<>();
             if (!org.springframework.util.StringUtils.isEmpty(memberCode)) {
-                List<PointsRulesAndDetailVO> pointsRulesAndDetailVOList = mall2PointsRulesService.queryListByTime(new Date());
+                /**
+                 * todo A门店、B门店的积分规则进行赠送,而是都使用了同一个门店或商品赠送规则
+                 * 修改为各用各的
+                 */
+//                 查询门店有没有设置积分规则
+                Mall2PointsRulesDto mall2PointsRulesEntityQuery = new Mall2PointsRulesDto();
+                mall2PointsRulesEntityQuery.setIsValid(Dict.isValid.item_0.getItem());
+                mall2PointsRulesEntityQuery.setPointsType(Integer.valueOf(Dict.pointsType.item_0.getItem()));
+                mall2PointsRulesEntityQuery.setNowTime(new Date());
+                mall2PointsRulesEntityQuery.setPointsStoreId(Long.toString(store.getId()));
+                List<PointsRulesAndDetailVO> pointsRulesAndDetailVOList = mall2PointsRulesService.queryList(mall2PointsRulesEntityQuery);
+                if (pointsRulesAndDetailVOList.isEmpty()){
+                    // 如果查不出来就用原来的处理方式 说明门店没有进行配置
+                    pointsRulesAndDetailVOList= mall2PointsRulesService.queryListByTime(new Date());
+                }
+
+
                 // 商品map,key===>sku value===>金额
                 Map<String, BigDecimal> goodsMap = goodsEntities.stream().collect(Collectors.toMap(GoodsEntity::getSku, GoodsEntity::getActualPaymentAmount, (k1, k2) -> k2));
                 // 商品数据map,key===>sku value===>商品实体

+ 6 - 4
kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java

@@ -4,17 +4,14 @@ import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dao.CategoryDao;
 import com.kmall.admin.dao.ProductStoreRelaDao;
 import com.kmall.admin.dao.StoreDao;
-import com.kmall.admin.dto.GoodsDto;
 import com.kmall.admin.dto.Mall2RulesDto;
-import com.kmall.admin.entity.GoodsEntity;
-import com.kmall.admin.entity.vip.Mall2DetilEntity;
+import com.kmall.admin.dto.Mall2PointsRulesDto;
 import com.kmall.admin.haikong.vo.PointsRulesAndDetailVO;
 import com.kmall.common.utils.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -159,6 +156,11 @@ public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
         return mall2PointsRulesDao.querymall2PointsRulesDetilTotal(id);
     }
 
+    @Override
+    public List<PointsRulesAndDetailVO> queryList(Mall2PointsRulesDto mall2PointsRulesDto) {
+        return mall2PointsRulesDao.queryListBy(mall2PointsRulesDto);
+    }
+
     /**
      * 导入参数校验
      * @param mall2RulesDto

+ 9 - 3
kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2PointsRulesService.java

@@ -1,12 +1,10 @@
 package com.kmall.admin.service.vip;
 
 import com.kmall.admin.dto.Mall2RulesDto;
-import com.kmall.admin.entity.vip.Mall2DetilEntity;
 import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
+import com.kmall.admin.dto.Mall2PointsRulesDto;
 import com.kmall.admin.haikong.vo.PointsRulesAndDetailVO;
 import com.kmall.common.utils.Query;
-import com.kmall.common.utils.R;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
 import java.util.List;
@@ -97,4 +95,12 @@ public interface Mall2PointsRulesService {
     List<PointsRulesAndDetailVO> queryListByTime(Date nowTime);
 
     int querymall2PointsRulesDetilTotal(Query query);
+
+    /**
+     * 根据查询条件积分规则及其明细
+     * @param mall2PointsRulesDto
+     * @return
+     */
+    List<PointsRulesAndDetailVO> queryList(Mall2PointsRulesDto mall2PointsRulesDto);
+
 }

+ 5 - 2
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -76,6 +76,7 @@
         <result property="pickUpCodeSn" column="pick_up_code_sn"/>
         <result property="pickUpCodeStatus" column="pick_up_code_status"/>
         <result property="pickUpCodeSn" column="pick_up_code_sn"/>
+        <result property="memberCode" column="member_code"/>
     </resultMap>
 
     <select id="queryObject" resultType="com.kmall.admin.entity.OrderEntity">
@@ -409,10 +410,12 @@
         o.pay_status,
         o.coupon_name,
         o.coupon_price,
+        o.integral_money,
         o.actual_price,
         o.order_price,
         o.pay_time,
         o.pay_flag,
+        o.member_code,
         c.pick_up_code_sn
         from mall_order o
         LEFT JOIN mall_store s on o.store_id = s.id
@@ -696,6 +699,7 @@
         `predict_time`,
         `coupon_name`,
         `comment_count`,
+        `member_code`,
 
         <if test="merchSn != null" >
             merch_sn,
@@ -787,6 +791,7 @@
         #{predict_time},
         #{coupon_name},
         #{comment_count},
+        #{memberCode},
         <if test="merchSn != null" >
             #{merchSn},
         </if>
@@ -2102,7 +2107,6 @@
         left join mall_brand b on b.id=sr.brand_id
         left join mall_supplier sup on gs.supplier_id = sup.id
         WHERE 1=1
-        AND g.number>0
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
         </if>
@@ -2177,7 +2181,6 @@
         left join mall_supplier sup on gs.supplier_id = sup.id
         left join mall_order_refund mor on mor.out_refund_no = o.order_sn
         WHERE 1=1
-        AND g.number>0
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
         </if>

+ 6 - 2
kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesDao.xml

@@ -37,7 +37,8 @@
 			`creater_sn`,
 			`update_time`,
 			`moder_sn`,
-			`priority`
+			`priority`,
+			`mka_name`
 		from mk_activities
 		where mka_id = #{id}
 	</select>
@@ -98,6 +99,7 @@
 			`creater_sn`,
 			`update_time`,
 			`moder_sn`,
+			`mka_name`,
 			`priority`)
 		values(
 			#{mkaTopic},
@@ -113,6 +115,7 @@
 			#{createrSn},
 			#{updateTime},
 			#{moderSn},
+			#{mkaName},
 			#{priority})
 	</insert>
 
@@ -132,7 +135,8 @@
 			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
 			<if test="updateTime != null">`update_time` = #{updateTime}, </if>
 			<if test="moderSn != null">`moder_sn` = #{moderSn},</if>
-			<if test="priority != null">`priority` = #{priority}</if>
+			<if test="priority != null">`priority` = #{priority},</if>
+			<if test="mkaName != null">`mka_name` = #{mkaName}</if>
 		</set>
 		where mka_id = #{mkaId}
 	</update>

+ 2 - 1
kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivityFormDao.xml

@@ -125,7 +125,8 @@
 		u1.username moderName,
 		m.merch_name merchName,
 		mb.third_party_merch_name thirdMerchName,
-		s.store_name storeName
+		s.store_name storeName,
+		a.mka_name mkaName
 		from mk_activities_association a2
 		left join mk_activities a on a.mka_id = a2.mka_id
 		left join sys_user u on u.user_id = a.creater_sn

+ 43 - 0
kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml

@@ -159,6 +159,46 @@
     	order by mpr.points_type desc
 	</select>
 
+	<select id="queryListBy" resultType="com.kmall.admin.haikong.vo.PointsRulesAndDetailVO" parameterType="com.kmall.admin.dto.Mall2PointsRulesDto">
+		select
+    		mpr.`mpr_id` as mprId,
+    		mpr.`points_type` as pointsType,
+    		mpr.`points_begin_time` as pointsBeginTime,
+    		mpr.`points_end_time` as pointsEndTime,
+    		mpr.`is_valid` as isValid,
+    		mpr.`ratio` as ratio,
+    		mpr.`creater_sn` as createrSn,
+    		mpr.`create_time` as createTime,
+    		mpr.`moder_sn` as moderSn,
+    		mpr.`mod_time` as modTime,
+    		mpr.`tstm` as tstm,
+			mprs.`id` as id,
+			mprs.`father_id` as fatherId,
+			mprs.`points_rules_type` as pointRulesType,
+			mprs.`points_detil_name` as pointsDetailName,
+			mprs.`points_detil_name_id` as pointsDetailNameId,
+			mprs.`points_store_name` as pointsStoreName,
+			mprs.`points_store_id` as pointsStoreId,
+			mprs.`remark` as remark
+    	from mall2_points_rules mpr
+    	left join mall2_points_rules_detil mprs on mpr.mpr_id = mprs.father_id
+		<where>
+			<if test="pointsType!=null">
+				and mpr.points_type=#{pointsType}
+			</if>
+			<if test="isValid!=null">
+				and mpr.is_valid=#{isValid}
+			</if>
+			<if test="nowTime!=null">
+				and mpr.points_begin_time &lt;= #{nowTime} and mpr.points_end_time &gt;= #{nowTime}
+			</if>
+			<if test="pointsStoreId!=null">
+				and mprs.points_store_id =#{pointsStoreId}
+			</if>
+		</where>
+    	order by mpr.points_type desc
+	</select>
+
 	<insert id="saveMall2PointsRulesDetil" parameterType="com.kmall.admin.dto.Mall2RulesDto">
 		insert into mall2_points_rules_detil(
 			 father_id,
@@ -191,6 +231,9 @@
 		from mall2_points_rules_detil
 		WHERE
 		father_id = #{mkaId}
+		<if test="sku !=null and sku !=''">
+			and points_detil_name_id=#{sku}
+		</if>
 		<if test="offset != null and limit != null">
 			limit #{offset}, #{limit}
 		</if>

+ 10 - 7
kmall-admin/src/main/webapp/WEB-INF/page/mk/mall2RulesDetil.html

@@ -9,13 +9,16 @@
 	<Card v-show="showList">
         <p slot="title">积分规则详情</p>
         <Row :gutter="16">
-<!--            <div class="search-group">-->
-<!--                <i-col span="4">-->
-<!--                    <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="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.sku" @on-enter="query" placeholder="sku"/>
+                </i-col>
+                <i-col span="4">
+                    <i-input v-model="q.goodsName" @on-enter="query" placeholder="商品名称"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
             <div class="buttons-group" style="width: 100%;margin-top: 8px;">
                 <i-col style="display: inline-grid;">
                     <Upload :show-upload-list="false" :on-success="uploadExcelSuccess" :on-error="uploadExcelError" :on-format-error="uploadExcelFormatError"

+ 6 - 6
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesscore.html

@@ -48,9 +48,9 @@
             <Form-item label="sku" prop="sku">
                 <i-input v-model="mkActivitiesScore.sku" placeholder="sku"/>
             </Form-item>
-            <Form-item label="门店id" prop="storeId">
-                <i-input v-model="mkActivitiesScore.storeId" placeholder="门店id"/>
-            </Form-item>
+<!--            <Form-item label="门店id" prop="storeId">-->
+<!--                <i-input v-model="mkActivitiesScore.storeId" placeholder="门店id"/>-->
+<!--            </Form-item>-->
             <Form-item label="是否参与积分抵扣" prop="reject">
                 <p>只能有一种情况,如果积分抵扣商品中都为0,则默认这些商品为参与,其余商品不参与,如果积分抵扣商品都为1,其余商品都参与</p>
                 <i-select v-model="mkActivitiesScore.reject" placeholder="0:参与,1:不参与" style="width: 268px;">
@@ -61,9 +61,9 @@
             <!--<Form-item label="抵扣比例" prop="scoreLimit">
                 <i-input v-model="mkActivitiesScore.scoreLimit" placeholder="抵扣比例"/>
             </Form-item>-->
-            <Form-item label="营销活动编号" prop="mkaId">
-                <i-input v-model="mkActivitiesScore.mkaId" placeholder="营销活动编号"/>
-            </Form-item>
+<!--            <Form-item label="营销活动编号" prop="mkaId">-->
+<!--                <i-input v-model="mkActivitiesScore.mkaId" placeholder="营销活动编号"/>-->
+<!--            </Form-item>-->
 <!--            <Form-item label="截止日期" prop="deadline">-->
 <!--                <Date-picker type="datetime" format="yyyy-MM-dd HH:mm:ss" v-model="mkActivitiesScore.deadline" @on-change="getDeadLine" placeholder="截止日期" style="width: 240px"></Date-picker>-->
 <!--            </Form-item>-->

+ 12 - 2
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivityform.html

@@ -80,6 +80,9 @@
                     </i-option>
                 </i-select>
             </Form-item>
+            <Form-item label="营销活动名称" prop="mkaName">
+                <i-input type="text" v-model="mkActivities.mkaName" placeholder="营销活动名称"/>
+            </Form-item>
             <Form-item label="商户" prop="merchSn">
                 <i-select v-model="mkActivities.merchSn" filterable placeholder="商户" @on-change="changeMerch" label-in-value>
                     <i-option v-for="merch in merchList" :value="merch.merchSn" :key="merch.merchSn">{{merch.merchName}}</i-option>
@@ -91,11 +94,18 @@
                               :key="thirdMerchant.thirdPartyMerchCode">{{thirdMerchant.thirdPartyMerchName}}</i-option>
                 </i-select>
             </Form-item>
-            <Form-item label="活动门店" prop="mkaStoreId">
-                <i-select v-model="mkActivities.mkaStoreId" filterable placeholder="活动门店" label-in-value>
+
+
+            <Form-item label="活动门店" prop="mkaStoreId" >
+                <i-select v-if="isAdd" v-model="mkActivities.mkaStoreId" filterable placeholder="活动门店" label-in-value>
+                    <i-option v-for="store in storeList" :value="store.id" :key="store.id">{{store.storeName}}</i-option>
+                </i-select>
+
+                <i-select v-else v-model="mkActivities.mkaStoreId" disabled filterable placeholder="活动门店" label-in-value>
                     <i-option v-for="store in storeList" :value="store.id" :key="store.id">{{store.storeName}}</i-option>
                 </i-select>
             </Form-item>
+
             <Form-item label="活动优先级" prop="priority">
                 <i-input v-model="mkActivities.priority" placeholder="活动优先级,数字越小优先级越高,最低为0"/>
             </Form-item>

+ 10 - 3
kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html

@@ -171,7 +171,7 @@
                     </li>
                 </ul>
             </div>
-            <div class="col-md-6" style="padding: 0px;padding-bottom: 10%;background-color: #f0f0f0">
+            <div class="col-md-6" style="padding: 0px;background-color: #f0f0f0">
                 <ul class="list-unstyled; ">
                     <li ref="overflowLi" style="height: 600px;overflow:auto">
                         <table id="cbec" class="table .table-striped">
@@ -207,7 +207,14 @@
                     </li>
                     <li>
                         <div style="margin-bottom: 10PX">
-                            <h3 style="border: white;padding: 8px">会员手机号:{{userInfo.customPhone}}</h3>
+                            <ul style="display: inline-block">
+<!--                                2022/04/11海控一期需求  17和19问题  将其意思修改-->
+<!--                                原userInfo.customPhone属性是会员手机号-->
+<!--                                现其定义为收货人手机号(支付人手机号)-->
+<!--                                海控需要将其分开-->
+                                <li><h3 style="border: white;padding: 8px">会员手机号:{{userInfo.consigneePhone}}</h3></li>
+                                <li><h3 style="border: white;padding: 8px">收货人手机号:{{userInfo.customPhone}}</h3></li>
+                            </ul>
                         </div>
                         <ul style="display: inline-block">
                             <li><h3 style="border: white;padding: 8px;">会员当前积分:{{memberCurrentAvailableScore}}</h3></li>
@@ -223,7 +230,7 @@
                             <li v-if="showReduceMoney != 0"><h3 style="border: white;padding: 8px">满减:{{showReduceMoney}}</h3></li>
                         </ul>
                     </li>
-                    <li  style="height: 100px;">
+                    <li  style="height: 90px;">
                         <i-button type="error" @click="clearGoodsList" class="goods-button"><i class="fa fa-pencil-square-o"></i>&nbsp;清空</i-button>
                         <i-button data-toggle="modal" @click="pendingOrder" class="goods-button" ><i class="fa fa-pencil-square-o"></i>&nbsp;订单挂起</i-button>
                         <i-button data-toggle="modal" @click="toResumePending" class="goods-button" ><i class="fa fa-pencil-square-o"></i>&nbsp;恢复挂起</i-button>

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

@@ -167,7 +167,7 @@ let vm = new Vue({
 			vm.showList = true;
             let page = $("#jqGrid").jqGrid('getGridParam', 'page');
 			$("#jqGrid").jqGrid('setGridParam', {
-                postData: {'name': vm.q.name},
+                postData: {'sku': vm.q.sku,'goodsName':vm.q.goodsName,'mkaId': vm.mkaId},
                 page: page
             }).trigger("reloadGrid");
             vm.handleReset('formValidate');

+ 6 - 2
kmall-admin/src/main/webapp/js/mk/mkactivityform.js

@@ -97,6 +97,7 @@ $(function () {
                         mkaTopicName = marketing.jfdk;
                     return mkaTopicName == null? value : mkaTopicName;
                 }},
+            {label: '营销活动名称', name: 'mkaName', width: 200, align: 'center'},
             {label: '商户名称', name: 'merchName', width: 200, align: 'center'},
             {label: '第三方商户', name: 'thirdMerchName', width: 200, align: 'center'},
             {label: '门店编号', name: 'mkaStoreId', width: 200, align: 'center',hidden: true},
@@ -228,6 +229,8 @@ let vm = new Vue({
                 name: '第二件半价'
             }*/
         ],
+        // 区分增加还是修改
+        isAdd:false
 	},
 	methods: {
 		query: function () {
@@ -367,8 +370,7 @@ let vm = new Vue({
             };
             vm.isMkdEndEarlyTimeShow = false;
 
-
-
+            vm.isAdd=true;
             vm.getMerchList();
         },
         getMerchList: function() {
@@ -401,6 +403,8 @@ let vm = new Vue({
             vm.showMkactivitiesList = false;
             vm.title = "修改";
 
+            vm.isAdd=false;
+
             vm.getMerchList();
             vm.getMkactivitiesInfo(mkaId);
         },

+ 13 - 2
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -1781,7 +1781,7 @@ function getPrintContentOrder(ticket, callback) {
     content += "<tr>";
     content += "<td style=\"width: 30%;text-align: left;font-size: 10px;font-weight: bold;\">商品名称</td>";
     content += "<td style=\"width: 12%;text-align: right;font-size: 10px;font-weight: bold;\">单价</td>";
-    content += "<td style=\"width: 12%;text-align: right;font-size: 10px;font-weight: bold;\">优惠</td>";
+    // content += "<td style=\"width: 12%;text-align: right;font-size: 10px;font-weight: bold;\">优惠</td>";
     // content += "<td style=\"width: 22%;text-align: right;font-size: 10px;font-weight: bold;\">优惠后单价</td>";
     // content += "<td style=\"width: 16%;text-align: right;font-size: 10px;font-weight: bold;\">税费</td>";
     content += "<td style=\"width: 12%;text-align: right;font-size: 10px;font-weight: bold;\">数量</td>";
@@ -1801,7 +1801,7 @@ function getPrintContentOrder(ticket, callback) {
         content += "</table>";
         content += "</td>";
         content += "<td style=\"width: 12%;text-align: right;font-size: 8px;vertical-align:bottom;padding-top: 8px;\">" + ticket.goods[i].uprice + "</td>";
-        content += "<td style=\"width: 12%;text-align: right;font-size: 8px;vertical-align:bottom;padding-top: 8px;\">" + ticket.goods[i].discountPrice + "</td>";
+        // content += "<td style=\"width: 12%;text-align: right;font-size: 8px;vertical-align:bottom;padding-top: 8px;\">" + ticket.goods[i].discountPrice + "</td>";
         // content += "<td style=\"width: 22%;text-align: right;font-size: 8px;vertical-align:bottom;padding-top: 8px;\">" + ticket.goods[i].afterDiscountPrice + "</td>";
         // content += "<td style=\"width: 17%;text-align: right;font-size: 8px;vertical-align:bottom;padding-top: 8px;\">" + ticket.goods[i].taxation + "</td>";
         content += "<td style=\"width: 12%;text-align: center;font-size: 8px;vertical-align:bottom;padding-top: 8px;\">" + ticket.goods[i].num + "</td>";
@@ -1830,6 +1830,16 @@ function getPrintContentOrder(ticket, callback) {
     content += "<span style=\"float: left;width: 50%;text-align: left;\">积分抵扣金额:</span>";
     content += "<span style=\"float: right;width: 50%;text-align: right;\">" + ticket.cashInfo.scoreDeductionPrice + "元</span>";
     content += "</div>";
+    /**
+     * 海控需求  将优惠合计拆分为 积分抵扣金额 + 其他优惠
+     * 其他优惠=优惠合计-积分抵扣金额
+     * 看后续海控要不要将其他优惠拆分
+     * @type {string}
+     */
+    content += "<div style=\"width: 100%;\">";
+    content += "<span style=\"float: left;width: 50%;text-align: left;\">其他优惠:</span>";
+    content += "<span style=\"float: right;width: 50%;text-align: right;\">" + (ticket.cashInfo.oddChange - ticket.cashInfo.scoreDeductionPrice) + "元</span>";
+    content += "</div>";
     content += "<div style=\"width: 100%;\">";
     content += "<span style=\"float: left;width: 50%;text-align: left;\">优惠合计:</span>";
     content += "<span style=\"float: right;width: 50%;text-align: right;\">" + ticket.cashInfo.oddChange + "元</span>";
@@ -2343,6 +2353,7 @@ calculateOrderPrice = function() {
                 vm.userInfo.customPhone = r.data.memberPhone;
                 vm.$refs.customPhone.value = r.data.memberPhone;
                 vm.calActivityFlag = true;
+                vm.userInfo.consigneePhone= vm.$refs.couponBarCode.value;
 
                 vm.clickFlag = false;
                 // console.log("memberPhone===>" + r.data.memberPhone);

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

@@ -44,7 +44,8 @@ $(function () {
             // {label: '操作店员', name: 'userName', index: 'user_name', align: 'center',width: 80},
             // {label: '取货码', name: 'pickUpCodeSn', index: 'pick_up_code_sn', align: 'center',width: 80},
             {label: '购买人姓名', name: 'payName', index: 'payName', align: 'center',width: 150},
-            {label: '购买人电话', name: 'mobile', index: 'mobile', align: 'center',width: 200},
+            {label: '收货人手机号', name: 'mobile', index: 'mobile', align: 'center',width: 200},
+            {label: '会员手机号', name: 'memberCode', index: 'mobile', align: 'center',width: 200},
             {
                 label: '购买类型', name: 'isOnfflineOrder', index: 'is_onffline_order', align: 'center',width: 80,
                 formatter: function (value) {
@@ -134,6 +135,7 @@ $(function () {
                     }
                     return value;
                 }},
+            {label: '积分抵扣金额', name: 'integralMoney', index: 'integral_money', align: 'center',width: 80},
             {label: '实际支付', name: 'actualPrice', index: 'actual_price', align: 'center',width: 80},
             {label: '预计税额', name: 'tax', index: 'tax', align: 'center',width: 80},
             {label: '订单总价', name: 'orderPrice', index: 'order_price',align: 'center', width: 80},

+ 30 - 4
kmall-admin/src/main/webapp/userLogin.html

@@ -128,14 +128,24 @@
                 this.src = "captcha.jpg?t=" + $.now();
             },
             login: function (event) {
+                if (vm.username =='' || vm.password==''){
+                    alert("账号或密码为空,请重新输入");
+                    return;
+                }
                 var data = "username=" + vm.username + "&password=" + vm.password + "&captcha=" + vm.captcha + "&machineCode=" + vm.machineCode+"&loginType=2"; //TODO  新增加一个机器码;
                 // var data = "username=" + vm.username + "&password=" + vm.password + "&captcha=" + vm.captcha + "&machineCode=0z4kBPFEve0=&loginType=2"; //TODO  新增加一个机器码;
                 sessionStorage.removeItem("permsSet");
                 var code = sessionStorage.getItem("machineCode");
-                // if(!code){
-                //     alert("正在获取机器码,请稍后登录,大约5s");
-                //     return;
-                // }
+                if(!code){
+                    alert("正在获取机器码,请稍后登录,大约5s");
+                    /**
+                     * 场景:第一次登录会出现问题该机器未录入报错
+                     * 原因:用户登录过快  请求机器码还没响应
+                     * 在这响应请求
+                     */
+                    this.gen();
+                    return;
+                }
                 $.ajax({
                     type: "POST",
                     url: "sys/login",
@@ -158,6 +168,22 @@
                     }
                 });
             },
+            gen:function (){
+                $.ajax({
+                    url:"http://127.0.0.1:21600/api/reg/gen",
+                    success:function(r){
+                        if(r.code == "0"){
+                            vm.machineCode = r.rows[0].data.code;
+                            console.log(vm.machineCode);
+                            vm.machineCode = vm.machineCode.replace("+","%2B");
+                            sessionStorage.setItem("machineCode",vm.machineCode);
+                        }
+                    },
+                    error:function(XMLHttpRequest, textStatus, errorThrown){
+                        alert("获取机器码失败,请联系管理员");
+                    }
+                })
+            },
             change:function(){
                 parent.location.href = 'login.html';
             },

+ 13 - 0
kmall-api/src/main/java/com/kmall/api/entity/OrderVo.java

@@ -241,6 +241,19 @@ public class OrderVo implements Serializable {
      */
     private BigDecimal weight;
 
+    /**
+     * 海控会员系统会员码(会员手机号)
+     */
+    private String memberCode;
+
+    public String getMemberCode() {
+        return memberCode;
+    }
+
+    public void setMemberCode(String memberCode) {
+        this.memberCode = memberCode;
+    }
+
     public String getDiscountApplyType() {
         return discountApplyType;
     }

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

@@ -2079,4 +2079,37 @@ public class Dict {
         }
     }
 
+    /**
+     * 积分类型 :0.门店 ,1.商品类别,2.门店商品
+     */
+    public enum pointsType{
+        item_0("0", "门店"),
+        item_1("1", "商品类别"),
+        item_2("2", "门店商品");
+
+        pointsType(String item, String itemName) {
+            this.item = item;
+            this.itemName = itemName;
+        }
+
+        private String item;
+        private String itemName;
+
+        public String getItemName() {
+            return itemName;
+        }
+
+        public void setItemName(String itemName) {
+            this.itemName = itemName;
+        }
+
+        public String getItem() {
+            return item;
+        }
+
+        public void setItem(String item) {
+            this.item = item;
+        }
+    }
+
 }