فهرست منبع

Merge remote-tracking branch 'origin/master'

qihanjiao 7 سال پیش
والد
کامیت
2335405e14
17فایلهای تغییر یافته به همراه595 افزوده شده و 78 حذف شده
  1. 92 0
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/integral/StayIntegral.java
  2. 36 0
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/integral/UseIntegral.java
  3. 1 1
      tooth-common-core/src/main/java/com/iamberry/wechat/tools/SendMessageUtil.java
  4. 4 2
      tooth-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java
  5. 2 1
      tooth-common-tool/src/main/java/com/iamberry/wechat/tools/loadResultUtil.java
  6. 29 0
      tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/integral/UseIntegralService.java
  7. 3 3
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/cart/CartServiceImpl.java
  8. 27 2
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/integral/UseIntegralServiceImpl.java
  9. 26 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/UseIntegralMapper.java
  10. 152 29
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/useIntegralMapper.xml
  11. 21 21
      tooth-wechat-web/src/main/java/com/iamberry/wechat/filters/CSRFTokenFilter.java
  12. 188 0
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/integral/AdminIntegrlhHandler.java
  13. 2 6
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/orderListener/OrderCloseListener.java
  14. 2 2
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/orderListener/OrderListener.java
  15. 3 4
      tooth-wechat-web/src/main/resources/iamberry-wechat-service-orderTesk.xml
  16. 1 1
      tooth-wechat-web/src/main/resources/iamberry-wechat-web-ioc.xml
  17. 6 6
      tooth-wechat-web/src/main/resources/jdbc.properties

+ 92 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/integral/StayIntegral.java

@@ -1,5 +1,7 @@
 package com.iamberry.wechat.core.entity.integral;
 
+import com.iamberry.wechat.core.entity.PageBean;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -17,6 +19,16 @@ public class StayIntegral implements Serializable{
     private Date stayCreateTime;        //创建时间
     private Date stayUpdateTime;        //更新时间
 
+    private String integralRemark;//待入积分备注
+    private Integer changeIntegralMax;//最大变动积分(查询用)
+    private Integer changeIntegralMin;//最小变动积分(查询用)
+    private String userName;//会员姓名
+    private String userNickname;//会员昵称
+    private Integer userIntegral; //用户总积分
+    private Integer userSurplusIntegral; //用户剩余积分
+    private Integer userUseIntegral; //用户已用积分
+    private Integer userStayIntegral; //用户待入积分
+    private PageBean page=new PageBean();   //分页
     public Integer getStayId() {
         return stayId;
     }
@@ -96,4 +108,84 @@ public class StayIntegral implements Serializable{
     public void setStayUpdateTime(Date stayUpdateTime) {
         this.stayUpdateTime = stayUpdateTime;
     }
+
+    public Integer getUserIntegral() {
+        return userIntegral;
+    }
+
+    public void setUserIntegral(Integer userIntegral) {
+        this.userIntegral = userIntegral;
+    }
+
+    public Integer getUserSurplusIntegral() {
+        return userSurplusIntegral;
+    }
+
+    public void setUserSurplusIntegral(Integer userSurplusIntegral) {
+        this.userSurplusIntegral = userSurplusIntegral;
+    }
+
+    public Integer getUserUseIntegral() {
+        return userUseIntegral;
+    }
+
+    public void setUserUseIntegral(Integer userUseIntegral) {
+        this.userUseIntegral = userUseIntegral;
+    }
+
+    public Integer getUserStayIntegral() {
+        return userStayIntegral;
+    }
+
+    public void setUserStayIntegral(Integer userStayIntegral) {
+        this.userStayIntegral = userStayIntegral;
+    }
+
+    public PageBean getPage() {
+        return page;
+    }
+
+    public void setPage(PageBean page) {
+        this.page = page;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserNickname() {
+        return userNickname;
+    }
+
+    public void setUserNickname(String userNickname) {
+        this.userNickname = userNickname;
+    }
+
+    public String getIntegralRemark() {
+        return integralRemark;
+    }
+
+    public void setIntegralRemark(String integralRemark) {
+        this.integralRemark = integralRemark;
+    }
+
+    public Integer getChangeIntegralMax() {
+        return changeIntegralMax;
+    }
+
+    public void setChangeIntegralMax(Integer changeIntegralMax) {
+        this.changeIntegralMax = changeIntegralMax;
+    }
+
+    public Integer getChangeIntegralMin() {
+        return changeIntegralMin;
+    }
+
+    public void setChangeIntegralMin(Integer changeIntegralMin) {
+        this.changeIntegralMin = changeIntegralMin;
+    }
 }

+ 36 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/integral/UseIntegral.java

@@ -32,6 +32,10 @@ public class UseIntegral implements Serializable {
     private Date stayRecordedTime;          //待入账时间
     private PageBean page=new PageBean();   //分页
 
+    private String userName;//会员姓名
+    private String userNickname;//会员昵称
+    private String integralNumberMin;//最小积分数量
+    private String integralNumberMax;//最大积分数量
     public Date getStayRecordedTime() {
         return stayRecordedTime;
     }
@@ -135,4 +139,36 @@ public class UseIntegral implements Serializable {
     public void setStayId(Integer stayId) {
         this.stayId = stayId;
     }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserNickname() {
+        return userNickname;
+    }
+
+    public void setUserNickname(String userNickname) {
+        this.userNickname = userNickname;
+    }
+
+    public String getIntegralNumberMin() {
+        return integralNumberMin;
+    }
+
+    public void setIntegralNumberMin(String integralNumberMin) {
+        this.integralNumberMin = integralNumberMin;
+    }
+
+    public String getIntegralNumberMax() {
+        return integralNumberMax;
+    }
+
+    public void setIntegralNumberMax(String integralNumberMax) {
+        this.integralNumberMax = integralNumberMax;
+    }
 }

+ 1 - 1
tooth-common-core/src/main/java/com/iamberry/wechat/tools/SendMessageUtil.java

@@ -365,7 +365,7 @@ public class SendMessageUtil {
 	 * @param url
 	 */
 	public void refundApplicationNotice(String first,String keyword1,String keyword2,String keyword3,String remark,String openId,String url){
-		String temp = ResultInfo.APPLYREFUND;
+		String temp = ResultInfo.REFUNDAPPLICATIONNOTICE;
 		temp = temp.replaceFirst("firstValueIamberry", first)
 				.replaceFirst("keyword1Value",keyword1)
 				.replaceFirst("keyword2Value",keyword2)

+ 4 - 2
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -105,7 +105,7 @@ public class ResultInfo {
 	/**
 	 * 订单详情
 	 */
-	public static String ORDER_DETAIL = "http://s.iamberry.com/soodo/wechat/order-details.html?orderId=";
+	public static String ORDER_DETAIL = "https://s.iamberry.com/soodo/wechat/order-details.html?orderId=";
 	/**
 	 * <礼品卡>推荐人推送消息 跳转页面
 	 */
@@ -234,8 +234,10 @@ public class ResultInfo {
 	public static String SENDSUCCESS= "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'}, 'keyword3':{'color':'#173177', 'value':'keyword3Value'}, 'keyword4':{'color':'#173177', 'value':'keyword4Value'},'remark':{'color':'colorValue','value':'remarkValue'}}";
 
 	/**  退款申请驳回 */
-	public static String REFUNDSPPLICATIONREJECTED= "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'keyword1':{'color':'#173177','value':'keyword1Value'}, 'keyword2':{'color':'#173177', 'value':'keyword2Value'}, 'keyword3':{'color':'#173177', 'value':'keyword3Value'}, 'remark':{'color':'colorValue','value':'remarkValue'}}";
+	public static String REFUNDSPPLICATIONREJECTED= "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'orderProductPrice':{'color':'#173177','value':'keyword1Value'}, 'orderProductName':{'color':'#173177', 'value':'keyword2Value'}, 'orderName':{'color':'#173177', 'value':'keyword3Value'}, 'remark':{'color':'colorValue','value':'remarkValue'}}";
 
+	/** 退款申请通知 **/
+	public static String REFUNDAPPLICATIONNOTICE= "{'first':{'color':'#173177','value':'firstValueIamberry'}, 'orderProductPrice':{'color':'#173177','value':'keyword1Value'}, 'orderProductName':{'color':'#173177', 'value':'keyword2Value'}, 'orderName':{'color':'#173177', 'value':'keyword3Value'},'remark':{'color':'colorValue','value':'remarkValue'}}";
 
 
 

+ 2 - 1
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/loadResultUtil.java

@@ -77,7 +77,8 @@ public class loadResultUtil {
 			ResultInfo.order_apply_return = prop.getProperty("order_apply_return");			//用户 申请退货 提醒
 			ResultInfo.order_apply_barter = prop.getProperty("order_apply_barter");			//用户 申请换货 提醒
 			ResultInfo.order_send_success = prop.getProperty("order_send_success");			//发货后 提醒
-			
+			ResultInfo.refund_to_dismiss = prop.getProperty("refund_to_dismiss");			//退款申请驳回
+			ResultInfo.refund_application_notice = prop.getProperty("refund_application_notice");			//退款申请通知
 		} catch (IOException e) {
 			new RuntimeException(e.getMessage());
 		}

+ 29 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/integral/UseIntegralService.java

@@ -68,4 +68,33 @@ public interface UseIntegralService {
      * @return
      */
     List<StayIntegral>  listStayIntegral(StayIntegral stayIntegral);
+
+    /**
+     *  查询所有收入支出积分记录
+     * @return
+     */
+    List<UseIntegral> listUseIntegral(UseIntegral useIntegral);
+
+    /**
+     *  查询所有收入支出积分记录总条数
+     * @return
+     */
+    Integer listUseIntegralCount(UseIntegral useIntegral);
+    /**
+     *  查询所有待入账积分记录
+     * @return
+     */
+    List<StayIntegral> listAdminStayIntegral(StayIntegral stayIntegral);
+    /**
+     *  查询所有待入账积分记录总数
+     * @return
+     */
+    Integer listAdminStayIntegralCount(StayIntegral stayIntegral);
+
+    /**
+     * 修改待入账积分记录
+     * @param stayIntegral
+     * @return
+     */
+    Integer updatestayIntegralStatus(StayIntegral stayIntegral);
 }

+ 3 - 3
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/cart/CartServiceImpl.java

@@ -315,10 +315,10 @@ public class CartServiceImpl implements CartService {
 						Order order2 = adminOrderService.selectOrderStatusByOrderId(order.getSalesOrderid());
 						String payMoney = df.format((float)order2.getSalesYetAmount()/100) + "元";
 						//获取当前订单订单项
-						List<OrderItem> itemList = adminOrderService.getShopOrderItemByOrderId(orderId);
+						List<OrderItem> itemList = adminOrderService.getShopOrderItemByOrderId(order.getSalesOrderid());
 						try {
-							sendMessageUtil.refundApplicationNotice("尊敬的朵粉,我们已收到您的退款申请,我们正在积极处理:",payMoney,itemList.get(0).getItemProductName(),orderId,
-									"如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",order2.getSalesOpenid(),ResultInfo.ORDER_DETAIL+orderId);
+							sendMessageUtil.refundApplicationNotice("尊敬的朵粉,我们已收到您的退款申请,我们正在积极处理:",payMoney,itemList.get(0).getItemProductName(),order.getSalesOrderid(),
+									"如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",order2.getSalesOpenid(),ResultInfo.ORDER_DETAIL+order.getSalesOrderid());
 						} catch (Exception e) {
 							logger.info("订单号:"+ orderId +"的订单驳回退款,发送微信消息失败!");
 						}

+ 27 - 2
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/integral/UseIntegralServiceImpl.java

@@ -93,7 +93,32 @@ public class UseIntegralServiceImpl implements UseIntegralService {
      */
     @Override
     public List<StayIntegral>  listStayIntegral(StayIntegral stayIntegral){
-            return useIntegralMapper.listStayIntegral(stayIntegral);
+        return useIntegralMapper.listStayIntegral(stayIntegral);
+    }
+
+    @Override
+    public List<UseIntegral> listUseIntegral(UseIntegral useIntegral) {
+        return useIntegralMapper.listUseIntegral(useIntegral);
+    }
+
+    @Override
+    public Integer listUseIntegralCount(UseIntegral useIntegral) {
+        return useIntegralMapper.listUseIntegralCount(useIntegral);
+    }
+
+    @Override
+    public List<StayIntegral> listAdminStayIntegral(StayIntegral stayIntegral) {
+        return useIntegralMapper.listAdminStayIntegral(stayIntegral);
+    }
+
+    @Override
+    public Integer listAdminStayIntegralCount(StayIntegral stayIntegral) {
+        return useIntegralMapper.listAdminStayIntegralCount(stayIntegral);
+    }
+
+    @Override
+    public Integer updatestayIntegralStatus(StayIntegral stayIntegral) {
+        return useIntegralMapper.updatestayIntegralStatus(stayIntegral);
     }
 
     @Override
@@ -104,7 +129,7 @@ public class UseIntegralServiceImpl implements UseIntegralService {
         stayIntegral.setStayRecordedTime(new Date());
         /*获取所有的待入账积分*/
         List<StayIntegral>  stayIntegralList = useIntegralMapper.listStayIntegral(stayIntegral);
-		for(StayIntegral si : stayIntegralList ){
+        for(StayIntegral si : stayIntegralList ){
 		    /*增加入账积分,累计积分,减去待入账积分*/
             Member member = memberMapper.getMemberByUserOpenId(si.getUserOpenId());
             Member mem = new Member();

+ 26 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/UseIntegralMapper.java

@@ -96,6 +96,32 @@ public interface UseIntegralMapper {
      */
     List<StayIntegral>  listStayIntegral(StayIntegral stayIntegral);
 
+    /**
+     *  查询所有收入支出积分记录
+     * @return
+     */
+    List<UseIntegral> listUseIntegral(UseIntegral useIntegral);
+    /**
+     *  查询所有收入支出积分记录总条数
+     * @return
+     */
+    Integer listUseIntegralCount(UseIntegral useIntegral);
 
+    /**
+     *  查询所有待入账积分记录
+     * @return
+     */
+    List<StayIntegral> listAdminStayIntegral(StayIntegral stayIntegral);
+    /**
+     *  查询所有待入账积分记录总数
+     * @return
+     */
+    Integer listAdminStayIntegralCount(StayIntegral stayIntegral);
 
+    /**
+     * 修改待入账积分记录
+     * @param stayIntegral
+     * @return
+     */
+    Integer updatestayIntegralStatus(StayIntegral stayIntegral);
 }

+ 152 - 29
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/useIntegralMapper.xml

@@ -16,22 +16,22 @@
     <!--全部积分记录-->
     <select id="listIntegralInfo" resultType="UseIntegral" parameterType="UseIntegral">
         SELECT
-          i.integral_type integralType,
-          i.integral_number integralNumber,
-          i.integral_remarks integralRemarks,
-          i.integral_create_time integralCreateTime,
-          i.integral_before_number integralBeforeNumber,
-          i.integral_end_number integralEndNumber,
-          c.integral_config_name integralConfigName,
-          s.stay_recorded_time stayRecordedTime
+        i.integral_type integralType,
+        i.integral_number integralNumber,
+        i.integral_remarks integralRemarks,
+        i.integral_create_time integralCreateTime,
+        i.integral_before_number integralBeforeNumber,
+        i.integral_end_number integralEndNumber,
+        c.integral_config_name integralConfigName,
+        s.stay_recorded_time stayRecordedTime
         FROM
-          tb_iamberry_use_integral i
+        tb_iamberry_use_integral i
         LEFT JOIN tb_iamberry_integral_config c ON i.config_id = c.integral_config_id
         LEFT JOIN tb_iamberry_stay_integral s ON i.stay_id=s.stay_id
         WHERE i.user_openid=#{userOpenId}
-            <if test="integralType != null and integralType != ''">
-               AND i.integral_type = #{integralType}
-            </if>
+        <if test="integralType != null and integralType != ''">
+            AND i.integral_type = #{integralType}
+        </if>
         ORDER BY i.integral_id DESC
         <if test="page!=null and page.recordBegin>0 and page.pageSize>0 ">
             limit ${page.recordBegin},${page.pageSize}
@@ -66,13 +66,13 @@
     <!-- 查询积分来源信息 -->
     <select id="listIntegralConfig" parameterType="IntegralConfig" resultType="IntegralConfig">
         SELECT
-          *
+        *
         FROM
-          tb_iamberry_integral_config
+        tb_iamberry_integral_config
         <where>
-          <if test="integralConfigId != null and integralConfigId != ''">
-              integral_config_id = #{integralConfigId}
-          </if>
+            <if test="integralConfigId != null and integralConfigId != ''">
+                integral_config_id = #{integralConfigId}
+            </if>
         </where>
     </select>
 
@@ -125,18 +125,18 @@
     <!-- 查询所有待入账积分 -->
     <select id="listStayIntegral" parameterType="StayIntegral" resultType="StayIntegral">
         SELECT
-            t.stay_id AS  stayId,
-            t.user_openid AS  userOpenId,
-            t.config_id AS  configId,
-            t.sales_orderid AS  orderId,
-            t.stay_number AS  stayNumber,
-            t.stay_recorded_time AS stayRecordedTime,
-            t.stay_status AS  stayStatus,
-            t.stay_remark AS stayRemark,
-            t.stay_create_time AS stayCreateTime,
-            t.stay_update_time AS stayUpdateTime
+        t.stay_id AS  stayId,
+        t.user_openid AS  userOpenId,
+        t.config_id AS  configId,
+        t.sales_orderid AS  orderId,
+        t.stay_number AS  stayNumber,
+        t.stay_recorded_time AS stayRecordedTime,
+        t.stay_status AS  stayStatus,
+        t.stay_remark AS stayRemark,
+        t.stay_create_time AS stayCreateTime,
+        t.stay_update_time AS stayUpdateTime
         FROM
-            tb_iamberry_stay_integral t
+        tb_iamberry_stay_integral t
         <where>
             <if test="stayId != null">
                 AND stay_id = #{stayId}
@@ -190,7 +190,7 @@
     <!-- 根据banner图片ID,删除图片 -->
     <delete id="delUseIntegral" parameterType="UseIntegral">
         DELETE FROM
-          tb_iamberry_use_integral
+        tb_iamberry_use_integral
         <where>
             <if test="integralType != null">
                 AND integral_type = #{integralType}
@@ -204,6 +204,129 @@
         </where>
     </delete>
 
+    <!-- 积分日志记录列表查询 -->
+    <select id="listUseIntegral" parameterType="UseIntegral" resultType="UseIntegral">
+        SELECT
+        i.*, u.user_nickname,
+        u.user_name
+        FROM
+        tb_iamberry_use_integral i
+        LEFT JOIN tb_iamberry_user_userinfo u ON i.user_openid = u.user_openid
+        WHERE
+        i.integral_type IN (1, 2)
+        <if test="integralNumberMax!=null and integralNumberMax>0">
+            AND  integral_number &lt;= #{integralNumberMax}
+        </if>
+        <if test="integralNumberMin!=null and integralNumberMin>0">
+            AND  integral_number &gt;= #{integralNumberMin}
+        </if>
+        <if test="userName!=null and userName != ''">
+            AND  u.user_name like CONCAT('%',#{userName},'%')
+        </if>
+        <if test="userNikeName!=null and userNikeName != ''">
+            AND  u.user_nickname like CONCAT('%',#{userNikeName},'%')
+        </if>
+        <if test="page!=null and page.recordBegin>0 and page.pageSize>0 ">
+            limit ${page.recordBegin},${page.pageSize}
+        </if>
+        <if test="page!=null and page.recordBegin==0 and page.pageSize>0 ">
+            limit ${page.pageSize}
+        </if>
+    </select>
 
+    <select id="listUseIntegralCount" parameterType="UseIntegral" resultType="Integer">
+        SELECT
+        count(1)
+        FROM
+        tb_iamberry_use_integral i
+        LEFT JOIN tb_iamberry_user_userinfo u ON i.user_openid = u.user_openid
+        WHERE
+        i.integral_type IN (1, 2)
+        <if test="integralNumberMax!=null and integralNumberMax>0">
+            AND  integral_number &lt;= #{integralNumberMax}
+        </if>
+        <if test="integralNumberMin!=null and integralNumberMin>0">
+            AND  integral_number &gt;= #{integralNumberMin}
+        </if>
+        <if test="userName!=null and userName != ''">
+            AND  u.user_name like CONCAT('%',#{userName},'%')
+        </if>
+        <if test="userNikeName!=null and userNikeName != ''">
+            AND  u.user_nickname like CONCAT('%',#{userNikeName},'%')
+        </if>
+    </select>
+    <!--待入账积分列表查询-->
+    <select id="listAdminStayIntegral" parameterType="StayIntegral" resultType="StayIntegral">
+        SELECT
+        i.*, u.user_nickname,
+        u.user_name,
+        u.user_integral,
+        u.user_surplus_integral,
+        u.user_use_integral,
+        u.user_stay_integral,
+        ui.integral_remarks
+        FROM
+        tb_iamberry_stay_integral i
+        LEFT JOIN tb_iamberry_user_userinfo u ON i.user_openid = u.user_openid
+        LEFT JOIN tb_iamberry_use_integral ui on i.stay_id = ui.stay_id
+        <where>
+            <if test="integralRemark != null and integralRemark != ''">
+                ui.integral_remarks = #{integralRemark}
+            </if>
+            <if test="productType != null and productType.typeId !=null and productType.typeId !=''">
+                and PRODUCT_TYPE=#{productType.typeId}
+            </if>
+            <if test="userName!=null and userName != ''">
+                AND  u.user_name like CONCAT('%',#{userName},'%')
+            </if>
+            <if test="userNikeName!=null and userNikeName != ''">
+                AND  u.user_nickname like CONCAT('%',#{userNikeName},'%')
+            </if>
+            <if test="stayRecordedTime != null and stayRecordedTime != ''">
+                <![CDATA[AND DATE_FORMAT(stay_recorded_time, '%Y-%m-%d') = DATE_FORMAT(#{stayRecordedTime},'%Y-%m-%d')]]>
+            </if>
+            <if test="changeIntegralMax!=null and changeIntegralMax>0">
+                AND  i.stay_number &lt;= #{changeIntegralMax}
+            </if>
+            <if test="changeIntegralMin!=null and changeIntegralMin>0">
+                AND  i.stay_number &gt;= #{changeIntegralMin}
+            </if>
+        </where>
+    </select>
+    <select id="listAdminStayIntegralCount" parameterType="StayIntegral" resultType="StayIntegral">
+        SELECT
+        count(1)
+        FROM
+        tb_iamberry_stay_integral i
+        LEFT JOIN tb_iamberry_user_userinfo u ON i.user_openid = u.user_openid
+        LEFT JOIN tb_iamberry_use_integral ui on i.stay_id = ui.stay_id
+        <where>
+            <if test="integralRemark != null and integralRemark != ''">
+                ui.integral_remarks = #{integralRemark}
+            </if>
+            <if test="productType != null and productType.typeId !=null and productType.typeId !=''">
+                and PRODUCT_TYPE=#{productType.typeId}
+            </if>
+            <if test="userName!=null and userName != ''">
+                AND  u.user_name like CONCAT('%',#{userName},'%')
+            </if>
+            <if test="userNikeName!=null and userNikeName != ''">
+                AND  u.user_nickname like CONCAT('%',#{userNikeName},'%')
+            </if>
+            <if test="stayRecordedTime != null and stayRecordedTime != ''">
+                <![CDATA[AND DATE_FORMAT(stay_recorded_time, '%Y-%m-%d') = DATE_FORMAT(#{stayRecordedTime},'%Y-%m-%d')]]>
+            </if>
+            <if test="changeIntegralMax!=null and changeIntegralMax>0">
+                AND  i.stay_number &lt;= #{changeIntegralMax}
+            </if>
+            <if test="changeIntegralMin!=null and changeIntegralMin>0">
+                AND  i.stay_number &gt;= #{changeIntegralMin}
+            </if>
+        </where>
+    </select>
 
+    <!--修改待入账积分状态-->
+    <update id="updatestayIntegralStatus" parameterType="StayIntegral" >
+        UPDATE tb_iamberry_stay_integral SET stay_status = #{stayStatus} WHERE stay_id = #{stayId}
+    </update>
 </mapper>

+ 21 - 21
tooth-wechat-web/src/main/java/com/iamberry/wechat/filters/CSRFTokenFilter.java

@@ -31,17 +31,17 @@ import com.iamberry.wechat.tools.IpAddressUtil;
  */
 //@WebFilter(value = {"/admin/*", "/loginUI"})
 public class CSRFTokenFilter implements Filter {
-	
+
 	/**
 	 * DES对称加密
 	 */
 	private static MD5 md5 = new MD5();
-	
+
 	/**
 	 * 后台登录地址
 	 */
 	private static String ADMIN_LOGIN_URL;
-	
+
 	/**
 	 * 签名格式
 	 */
@@ -52,10 +52,10 @@ public class CSRFTokenFilter implements Filter {
 		if (ADMIN_LOGIN_URL == null) {
 			ADMIN_LOGIN_URL = request.getServletContext().getContextPath() + "/loginUI";
 		}
-		
+
 		HttpServletRequest req = (HttpServletRequest) request;
 		HttpServletResponse resp = (HttpServletResponse) response;
-		
+
 		// 当前请求uri
 		String uri = req.getRequestURI();
 		// 是否请求登录页面,如果是,那么创建数据,放行。
@@ -65,7 +65,7 @@ public class CSRFTokenFilter implements Filter {
 			chain.doFilter(req, resp);
 			return;
 		}
-		
+
 		// 是否请求后台页面数据,如果是不放行,继续判断,如果是请求后台的静态资源,那么放行
 		if (!isAdminPage(uri)) {
 			chain.doFilter(req, resp);return;
@@ -78,15 +78,15 @@ public class CSRFTokenFilter implements Filter {
 		}
 		chain.doFilter(req, resp);
 	}
-	
+
 	/**
 	 * 是否为后台页面请求
 	 * @param uri
 	 */
 	public boolean isAdminPage(String uri) {
-		
+
 		if (StringUtils.lastIndexOfAny(uri, "png", "jpg", "jpeg", "js", "css", "ttf", "wttf") != -1) return false;
-		
+
 		if (uri.contains("admin")) return true;
 		return false;
 	}
@@ -99,7 +99,7 @@ public class CSRFTokenFilter implements Filter {
 		if (uri.contains(ADMIN_LOGIN_URL)) return true;
 		return false;
 	}
-	
+
 	/**
 	 * 处理后台页面请求
 	 * @param request
@@ -113,7 +113,7 @@ public class CSRFTokenFilter implements Filter {
 		String TIME_KEY = (String) request.getSession().getAttribute("4");
 		String SESSION_KEY = (String) request.getSession().getAttribute("5");
 		String SIGN_KEY = (String) request.getSession().getAttribute("6");
-		
+
 		String token = null, ip = null, userAgent = null, timestamp = null, sessionId = null, signature = null;
 		Cookie[] cookies = request.getCookies();
 		for(Cookie cookie : cookies){
@@ -131,7 +131,7 @@ public class CSRFTokenFilter implements Filter {
 				signature = cookie.getValue();
 			}
 		}
-		
+
 		if (StringUtils.isEmpty(token) || StringUtils.isEmpty(ip) || StringUtils.isEmpty(userAgent) || StringUtils.isEmpty(timestamp) || StringUtils.isEmpty(sessionId) || StringUtils.isEmpty(signature)) {
 			return false;
 		}
@@ -145,13 +145,13 @@ public class CSRFTokenFilter implements Filter {
 				return false;
 			}
 		} catch (Exception e) {e.printStackTrace();}
-		
+
 		String ipTemp = IpAddressUtil.getIpAddr(request);
 		ipTemp = StringUtils.isEmpty(ipTemp) ? "proxyClientIp" : StringUtils.replace(ipTemp, ".", "");
 		if (!StringUtils.equals(ip, ipTemp)) {
 			return false;
 		}
-		
+
 		// 是否超时
 		try {
 			Long date = Long.parseLong(timestamp);
@@ -164,14 +164,14 @@ public class CSRFTokenFilter implements Filter {
 			return false;
 		}
 	}
-	
+
 	/**
 	 * 保存用户校验所需的数据
 	 * @param request
-	 * @throws Exception 
+	 * @throws Exception
 	 */
 	public static void savesSignatureToToken(HttpServletRequest request, HttpServletResponse response) {
-		
+
 		// 如果已经存在值,不要变更名称保存,否则最后会导致cookie过多,tomcat直接返回400; 如果不存在,那么随机产生,防止被猜测
 		String TOKEN_KEY = (String) request.getSession().getAttribute("1");
 		String IP_KEY = (String) request.getSession().getAttribute("2");
@@ -240,7 +240,7 @@ public class CSRFTokenFilter implements Filter {
 		cookie.setHttpOnly(true);	// 不允许页面读取cookie,此方法不安全,最终保证还是取决浏览器,某些浏览器不支持。
 		response.addCookie(cookie);
 	}
-	
+
 	/**
 	 * 根据name,解析token中的数据
 	 * @param cookieName
@@ -266,7 +266,7 @@ public class CSRFTokenFilter implements Filter {
 	 * @return
 	 */
 	public static String signature(String userAgent, String userIp,
-			String format, String token, String timestamp, String sessionId) {
+								   String format, String token, String timestamp, String sessionId) {
 		// 准备签名模版
 		String signatureTemp = String.format(SIGNATURE_SIMPLE, userAgent, userIp, token, timestamp, sessionId);
 		// md5签名
@@ -299,7 +299,7 @@ public class CSRFTokenFilter implements Filter {
 			return UUID.randomUUID().toString().getBytes();
 		}
 	}
-	
+
 	/**
 	 * 获取一个安全的随机数
 	 * @return
@@ -320,7 +320,7 @@ public class CSRFTokenFilter implements Filter {
 		return hs.toUpperCase();
 	}
 
-    public CSRFTokenFilter() {}
+	public CSRFTokenFilter() {}
 	public void destroy() {}
 	public void init(FilterConfig fConfig) throws ServletException {}
 }

+ 188 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/integral/AdminIntegrlhHandler.java

@@ -0,0 +1,188 @@
+package com.iamberry.wechat.handles.integral;
+
+import com.iamberry.wechat.core.entity.ResultMsg;
+import com.iamberry.wechat.core.entity.WechatUtils;
+import com.iamberry.wechat.core.entity.integral.StayIntegral;
+import com.iamberry.wechat.core.entity.integral.UseIntegral;
+import com.iamberry.wechat.core.entity.member.Member;
+import com.iamberry.wechat.core.entity.product.Product;
+import com.iamberry.wechat.face.integral.UseIntegralService;
+import com.iamberry.wechat.tools.NameUtils;
+import com.iamberry.wechat.tools.ResultInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.SimpleDateFormat;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by Administrator on 2018/1/23.
+ */
+@Controller
+@RequestMapping("/admin/userIntegral")
+public class AdminIntegrlhHandler {
+
+    @Autowired
+    private UseIntegralService useIntegralService;
+    /**
+     * 查询积分记录 并分页 (支持查询条件模糊搜索)
+     * 2018年2月24日
+     * @author mzx
+     * @param pageNO	分页信息
+     * @return
+     */
+    @RequestMapping("/listIntegral")
+    public ModelAndView listIntegral(@RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize,
+                                     @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO,
+                                     HttpServletRequest request) throws Exception {
+        StringBuffer url = new StringBuffer("/admin/product/list?pageSize=" + pageSize);
+        ModelAndView mv = new ModelAndView("admin/product/productList");
+        String userName = request.getParameter("userName");
+        String userNikeName = request.getParameter("userNikeName");
+        String integralNumberMax = request.getParameter("integralNumberMax");
+        String integralNumberMin = request.getParameter("integralNumberMin");
+        UseIntegral useIntegral=new UseIntegral();
+        useIntegral.getPage().setPageSize(pageSize);
+        useIntegral.getPage().setPageNumber(pageNO);
+
+        if (null != userName && !"".equals(userName)) {
+            useIntegral.setUserName(userName);
+            url.append("&userName=" + userName);
+        }
+        if (null != userNikeName && !"".equals(userNikeName)) {
+            url.append("&userNikeName=" + userNikeName);
+            useIntegral.setUserNickname(userNikeName);
+        }
+        if (null != integralNumberMax && !"".equals(integralNumberMax)) {
+            url.append("&integralNumberMax=" + integralNumberMax);
+            useIntegral.setIntegralNumberMax(integralNumberMax);
+        }
+        if (null != integralNumberMin && !"".equals(integralNumberMin)) {
+            url.append("&integralNumberMin=" + integralNumberMin);
+            useIntegral.setIntegralNumberMin(integralNumberMin);
+        }
+
+        List<UseIntegral> list = useIntegralService.listUseIntegral(useIntegral);
+        mv.addObject("list", list);
+
+        url.append("&pageNO=");
+        int count = useIntegralService.listUseIntegralCount(useIntegral);
+        int pageCount =  count % useIntegral.getPage().getPageSize() == 0? count/useIntegral.getPage().getPageSize():(count/useIntegral.getPage().getPageSize())+1;
+        //分页用
+        mv.addObject("pageNO", pageNO);
+        mv.addObject("url", url);
+        mv.addObject("userName", userName);
+        mv.addObject("userNikeName", userNikeName);
+        mv.addObject("integralNumberMax", integralNumberMax);
+        mv.addObject("integralNumberMin", integralNumberMin);
+        mv.addObject("pageSize", pageCount);
+        return mv;
+    }
+
+    /**
+     * 查询待入账积分记录 并分页 (支持查询条件模糊搜索)
+     * 2018年2月24日
+     * @author mzx
+     * @param pageNO	分页信息
+     * @return
+     */
+    @RequestMapping("/listStayIntegral")
+    public ModelAndView listStayIntegral(@RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize,
+                                         @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO,
+                                         HttpServletRequest request) throws Exception {
+        StringBuffer url = new StringBuffer("/admin/product/list?pageSize=" + pageSize);
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        ModelAndView mv = new ModelAndView("admin/product/productList");
+        String integralRemark = request.getParameter("integralRemark");
+        String userName = request.getParameter("userName");
+        String userNikeName = request.getParameter("userNikeName");
+        String stayRecordedTime = request.getParameter("stayRecordedTime");
+        String changeIntegralMax = request.getParameter("changeIntegralMax");
+        String changeIntegralMin = request.getParameter("changeIntegralMin");
+        StayIntegral stayIntegral=new StayIntegral();
+        stayIntegral.getPage().setPageSize(pageSize);
+        stayIntegral.getPage().setPageNumber(pageNO);
+
+
+        if (null != integralRemark && !"".equals(integralRemark)) {
+            stayIntegral.setIntegralRemark(integralRemark);
+            url.append("&integralRemark=" + integralRemark);
+        }
+        if (null != userName && !"".equals(userName)) {
+            stayIntegral.setUserName(userName);
+            url.append("&userName=" + userName);
+        }
+        if (null != userNikeName && !"".equals(userNikeName)) {
+            url.append("&userNikeName=" + userNikeName);
+            stayIntegral.setUserNickname(userNikeName);
+        }
+        if (null != stayRecordedTime && !"".equals(stayRecordedTime)) {
+            url.append("&stayRecordedTime=" + stayRecordedTime);
+            stayIntegral.setStayRecordedTime(format.parse(stayRecordedTime));
+        }
+        if (null != changeIntegralMax && !"".equals(changeIntegralMax)) {
+            url.append("&changeIntegralMax=" + changeIntegralMax);
+            stayIntegral.setChangeIntegralMax(Integer.valueOf(changeIntegralMax));
+        }
+        if (null != changeIntegralMin && !"".equals(changeIntegralMin)) {
+            url.append("&changeIntegralMin=" + changeIntegralMin);
+            stayIntegral.setChangeIntegralMin(Integer.valueOf(changeIntegralMin));
+        }
+
+        List<StayIntegral> list = useIntegralService.listAdminStayIntegral(stayIntegral);
+        mv.addObject("list", list);
+
+        url.append("&pageNO=");
+        int count = useIntegralService.listAdminStayIntegralCount(stayIntegral);
+        int pageCount =  count % stayIntegral.getPage().getPageSize() == 0? count/stayIntegral.getPage().getPageSize():(count/stayIntegral.getPage().getPageSize())+1;
+        //分页用
+        mv.addObject("pageNO", pageNO);
+        mv.addObject("url", url);
+        mv.addObject("integralRemark", integralRemark);
+        mv.addObject("userName", userName);
+        mv.addObject("userNikeName", userNikeName);
+        mv.addObject("stayRecordedTime", stayRecordedTime);
+        mv.addObject("changeIntegralMax", changeIntegralMax);
+        mv.addObject("changeIntegralMin", changeIntegralMin);
+        mv.addObject("pageSize", pageCount);
+        return mv;
+    }
+
+    @ResponseBody
+    @RequestMapping("/updatestayIntegralStatus")
+    public ResultMsg updatestayIntegralStatus(HttpServletRequest request){
+        ResultMsg resultMsg = new ResultMsg();
+        String stayId = request.getParameter("stayId");
+        String stayStatus = request.getParameter("stayStatus");
+        if (null == stayId || "".equals(stayId)) {
+            resultMsg.setStatus(false);
+            resultMsg.setResultCode("200");
+            return resultMsg;
+        }
+        if (null == stayStatus || "".equals(stayStatus)) {
+            resultMsg.setStatus(false);
+            resultMsg.setResultCode("200");
+            return resultMsg;
+        }
+        StayIntegral stayIntegral = new StayIntegral();
+        stayIntegral.setStayId(Integer.valueOf(stayId));
+        stayIntegral.setStayStatus(Integer.valueOf(stayStatus));
+        Integer msg = useIntegralService.updatestayIntegralStatus(stayIntegral);
+        if(msg < 1){
+            resultMsg.setStatus(false);
+            resultMsg.setResultCode("200");
+            return resultMsg;
+        }else{
+            resultMsg.setStatus(true);
+            resultMsg.setResultCode("200");
+            return resultMsg;
+        }
+    }
+}

+ 2 - 6
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/orderListener/OrderCloseListener.java

@@ -35,7 +35,6 @@ public class OrderCloseListener {
 	
 	public void closeOrderByCreateTime() {
 		/*System.out.println("走一走关闭订单的这个");
-		
 		Order order = new Order();
 		//获取规则表中对于订单关闭限定的时间
 		ShopSystemRule shopSystemRule = adminOrderService.getReluByRid(104);
@@ -44,12 +43,11 @@ public class OrderCloseListener {
 		}
 		//获取的时间以分钟为单位,这里转换成秒,按秒计算
 		order.setDeadline((int)(shopSystemRule.getRuleNum() * 60));
-		
 		//查看待支付、创建时间过了 30分钟 的订单
 		List<Order> fiveorderList = adminOrderService.getOrderByCreateTimeAndFiveMinutes(order);
 		if (fiveorderList != null && fiveorderList.size() != 0) {
 			for (Order orders : fiveorderList) {
-//System.out.println("来发送---------");
+				//System.out.println("来发送---------");
 				//判断是否5分钟,是否已经发送过
 				if(!validateCodeMap.containsKey(orders.getSalesOrderid()) && !validateCodeMap.containsKey(orders.getSalesOpenid()) ){ //没有存在
 					//发送消息 DateTimeUtil.format(new Date(),NameUtils.DATE_TIME_FORMAT)
@@ -66,9 +64,7 @@ public class OrderCloseListener {
 			}
 		}
 		moveValidateCodeMap();
-		
-//System.out.println(validateCodeMap.size()+"这里大小咯");
-		
+		//System.out.println(validateCodeMap.size()+"这里大小咯");
 		//根据规定时间查询订单,查询出的订单都是大于45分钟的待支付订单,这时应关闭订单
 		List<Order> orderList = adminOrderService.getOrderByCreateTime(order);
 		List<String> list = new ArrayList<String>();	//大于45分钟 待支付的所有单号

+ 2 - 2
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/orderListener/OrderListener.java

@@ -67,8 +67,8 @@ public class OrderListener{
 					for (Order order : orderList) {
 						//修改订单表数据,并添加线下代理现金记录表数据
 						adminOrderService.updateOrderIntegral(order,agencySystemRule);
-		
-						
+
+
 					//推送消息
 						
 					//推送金额变动消息

+ 3 - 4
tooth-wechat-web/src/main/resources/iamberry-wechat-service-orderTesk.xml

@@ -22,8 +22,8 @@
 	<!-- 30天后返利的定时任务end -->
 	
 	<!-- 45分钟后订单关闭start -->
-	<bean id="closeOrder"
-		class="com.iamberry.wechat.handles.order.orderListener.OrderCloseListener" ></bean>
+	<!--<bean id="closeOrder"
+		class="com.iamberry.wechat.handles.order.orderListener.OrderCloseListener" ></bean>-->
 		
 	<!--<bean id="closeOrderTask"
 		class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
@@ -31,12 +31,11 @@
 		<property name="targetMethod" value="closeOrderByCreateTime" />
 		 <property name="concurrent" value="false" />
 	</bean>-->
-	
 	<!--<bean id="closeOrderTime"
 		class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
 		<property name="jobDetail" ref="closeOrderTask" />-->
 		<!-- cron表达式  秒 分 时 日 月  星期 年-->
-		<!--<property name="cronExpression" value="0 0/50 * * * ?" />
+		<!--<property name="cronExpression" value="0 0/3 * * * ?" />
 	</bean>-->
 	<!-- 45分钟后订单关闭end -->
 	

+ 1 - 1
tooth-wechat-web/src/main/resources/iamberry-wechat-web-ioc.xml

@@ -54,7 +54,7 @@
     <task:annotation-driven/>
     
     <!-- 将30天后奖励积分的定时任务的xml引入-->
-	<!--<import resource="classpath:iamberry-wechat-service-orderTesk.xml"></import>-->
+	<import resource="classpath:iamberry-wechat-service-orderTesk.xml"></import>
 	
 	<import resource="classpath:iamberry-wechat-service-datasource.xml"/>
 	

+ 6 - 6
tooth-wechat-web/src/main/resources/jdbc.properties

@@ -1,13 +1,13 @@
 jdbc.driver=com.mysql.jdbc.Driver
 #Õýʽ¿â
-#jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
-#jdbc.username=tooth
-#jdbc.password=Tooth123223
+jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
+jdbc.username=tooth
+jdbc.password=Tooth123223
 
 #±¾µØ¿â
-jdbc.url=jdbc:mysql://192.168.1.254:3306/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
-jdbc.username=root
-jdbc.password=root
+#jdbc.url=jdbc:mysql://192.168.1.254:3306/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
+#jdbc.username=root
+#jdbc.password=root
 
 #²âÊÔ¿â
 #jdbc.url=jdbc:mysql://watero2db.mysql.rds.aliyuncs.com/test_watero_pf?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull