jk-GitHub-coder 3 роки тому
батько
коміт
f369790300

+ 91 - 30
YijiaRestful/src/main/java/com/platform/yijia/controller/CouponController.java

@@ -5,9 +5,12 @@ import com.github.pagehelper.PageInfo;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.platform.yijia.config.YiJiaRequest;
+import com.platform.yijia.param.request.AppUserInfoRequest;
 import com.platform.yijia.pojo.*;
+import com.platform.yijia.service.AppUserInfoService;
 import com.platform.yijia.service.CouponService;
 import com.platform.yijia.service.StationService;
+import com.platform.yijia.service.SysUserService;
 import com.platform.yijia.utils.CodeMsg;
 import com.platform.yijia.utils.CryptUtil;
 import com.platform.yijia.utils.ResultData;
@@ -20,6 +23,7 @@ import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -46,6 +50,10 @@ public class CouponController {
     private CouponService couponService;
     @Resource
     private StationService stationService;
+    @Autowired
+    private AppUserInfoService appUserInfoService;
+    @Autowired
+    private SysUserService sysUserService;
 
     /**
      * 获取油站分发优惠券
@@ -394,6 +402,51 @@ public class CouponController {
     }
 
     //异业端核销优惠券,兑换券
+    @RequestMapping(value = "/findCouponVerificationUser", consumes = "application/json", method = RequestMethod.POST)
+    @ResponseBody
+    @Transactional
+    public String findCouponVerificationUser(@RequestBody CouponVerificationUser couponVerificationUser){
+        Gson gson =new Gson();
+        ResultData resultData = null;
+        if(StringUtils.isNotBlank(couponVerificationUser.getMobilePhone()) && StringUtils.isNotBlank(couponVerificationUser.getUnionId())){
+            //手机号
+            String mobilePhone = couponVerificationUser.getMobilePhone();
+            SysUser sysUser = new SysUser();
+            sysUser.setPhonenumber(mobilePhone);
+            sysUser.setStatus("0");
+            sysUser.setDelFlag("0");
+            SysUser su = sysUserService.selectSysUser(sysUser);
+            if(su !=null){
+                if(su.getDelFlag().equals("0")){
+                    if(su.getStatus().equals("0")){
+                        CouponVerificationUser cu = couponService.selectCouponVerificationUserInfo(couponVerificationUser);
+                        if(cu !=null){
+                            //新增
+                            couponVerificationUser.setCreateTime(new Date());
+                            couponService.addCouponVerificationUser(couponVerificationUser);
+                        }else {
+                            //更新
+                            couponService.updateCouponVerificationUser(couponVerificationUser);
+                        }
+                        resultData = ResultData.success("登陆成功");
+                    }else {
+                        resultData = ResultData.error(CodeMsg.USER_NOT_STATUS);
+                    }
+                }else {
+                    resultData = ResultData.error(CodeMsg.USER_NOT_EXSIST);
+                }
+            }else {
+                resultData = ResultData.error(CodeMsg.USER_NOT_EXSIST);
+            }
+        }else {
+            resultData = ResultData.error(CodeMsg.PARAMS_NUll);
+        }
+        return gson.toJson(resultData);
+    }
+
+
+
+    //异业端核销优惠券,兑换券
     @RequestMapping(value = "/writeOffCoupon", consumes = "application/json", method = RequestMethod.POST)
     @ResponseBody
     @Transactional
@@ -401,43 +454,51 @@ public class CouponController {
         Gson gson =new Gson();
         ResultData resultData = null;
         try {
-            if(couponVerification !=null && StringUtils.isNoneBlank(couponVerification.getCouponNo()) && StringUtils.isNoneBlank(couponVerification.getVerification())){
-                //核销点
-                String verificationId = couponVerification.getVerification();
-                //核销码
-                String couponNo = couponVerification.getCouponNo();
-                UserCoupon userCoupon = new UserCoupon();
-                userCoupon.setCouponNo(couponNo);
-                //查询当前兑换券是否存在
-                UserCoupon userCouponInfo = couponService.selectUserCouponInfo(userCoupon);
-                if(userCouponInfo !=null){
-                    if(userCouponInfo.getCouponIsUsed().equals("0")){
-                        //判断当前优惠券是否是异业券
-                        if(userCouponInfo.getCouponType().equals("3")){
-                            //当前异业券的核销站点
-                            String verification = userCouponInfo.getVerification();
-                            boolean contains = verification.contains(verificationId);
-                            //是否能在该核销点核销
-                            if(contains){
-                                userCoupon.setCouponIsUsed("1");
-                                couponService.updateCouponUserInfo(userCoupon);
-                                //CouponVerification couponVerification = new CouponVerification();
-                                couponVerification.setCouponUserId(userCouponInfo.getId());
-                                couponVerification.setCreateTime(new Date());
-                                couponVerification.setVerification(verificationId);
-                                couponService.addCouponVerificationRecord(couponVerification);
-                                resultData = ResultData.success("核销成功!");
+            if(couponVerification !=null && StringUtils.isNoneBlank(couponVerification.getCouponNo()) && StringUtils.isNoneBlank(couponVerification.getUnionId())){
+
+                String unionId = couponVerification.getUnionId();
+                CouponVerificationUser couponVerificationUser = new CouponVerificationUser();
+                couponVerificationUser.setUnionId(unionId);
+                CouponVerificationUser cu = couponService.selectCouponVerificationUserInfo(couponVerificationUser);
+                if(cu !=null && cu.getStationId() !=null){
+                    //核销点
+                    String verificationId = couponVerification.getVerification();
+                    //核销码
+                    String couponNo = couponVerification.getCouponNo();
+                    UserCoupon userCoupon = new UserCoupon();
+                    userCoupon.setCouponNo(couponNo);
+                    //查询当前兑换券是否存在
+                    UserCoupon userCouponInfo = couponService.selectUserCouponInfo(userCoupon);
+                    if(userCouponInfo !=null){
+                        if(userCouponInfo.getCouponIsUsed().equals("0")){
+                            //判断当前优惠券是否是异业券
+                            if(userCouponInfo.getCouponType().equals("3")){
+                                //当前异业券的核销站点
+                                String verification = userCouponInfo.getVerification();
+                                boolean contains = verification.contains(verificationId);
+                                //是否能在该核销点核销
+                                if(contains){
+                                    userCoupon.setCouponIsUsed("1");
+                                    couponService.updateCouponUserInfo(userCoupon);
+                                    couponVerification.setCouponUserId(userCouponInfo.getId());
+                                    couponVerification.setCreateTime(new Date());
+                                    couponVerification.setVerification(cu.getStationId().toString());
+                                    couponService.addCouponVerificationRecord(couponVerification);
+                                    resultData = ResultData.success("核销成功!");
+                                }else {
+                                    resultData = ResultData.error(CodeMsg.ERROR_VERIFICATION);
+                                }
                             }else {
-                                resultData = ResultData.error(CodeMsg.ERROR_VERIFICATION);
+                                resultData = ResultData.error(CodeMsg.NOT_COUPON_VERIFICATION);
                             }
                         }else {
-                            resultData = ResultData.error(CodeMsg.NOT_COUPON_VERIFICATION);
+                            resultData = ResultData.error(CodeMsg.COUPON_VERIFICATION_USED);
                         }
                     }else {
-                        resultData = ResultData.error(CodeMsg.COUPON_VERIFICATION_USED);
+                        resultData = ResultData.error(CodeMsg.NO_COUPON);
                     }
                 }else {
-                    resultData = ResultData.error(CodeMsg.NO_COUPON);
+                    resultData = ResultData.error(CodeMsg.NOT_COUPON_VERIFICATION_USER);
                 }
             }else {
                 resultData = ResultData.error(CodeMsg.PARAMS_NUll);

+ 9 - 0
YijiaRestful/src/main/java/com/platform/yijia/dao/CouponMapper.java

@@ -40,6 +40,15 @@ public interface CouponMapper {
     //更新用户优惠券状态
     void updateCouponUserInfo(UserCoupon userCoupon);
 
+    //查询可核销的人员
+    CouponVerificationUser selectCouponVerificationUserInfo(CouponVerificationUser couponVerificationUser);
+
+    //添加核销人员
+    void addCouponVerificationUser(CouponVerificationUser couponVerificationUser);
+
+    //更新核销人员手机号
+    void updateCouponVerificationUser(CouponVerificationUser couponVerificationUser);
+
     //添加核销记录
     void addCouponVerificationRecord(CouponVerification couponVerification);
 }

+ 5 - 1
YijiaRestful/src/main/java/com/platform/yijia/dao/SysUserMapper.java

@@ -6,6 +6,10 @@ import java.util.List;
 import org.apache.ibatis.annotations.Param;
 
 public interface SysUserMapper {
+
+    //根据手机号获取用户信息
+    SysUser selectSysUser(SysUser sysUser);
+
     /**
      * This method was generated by MyBatis Generator.
      * This method corresponds to the database table sys_user
@@ -93,4 +97,4 @@ public interface SysUserMapper {
      * @mbg.generated
      */
     int updateByPrimaryKey(SysUser record);
-}
+}

+ 2 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/CouponVerification.java

@@ -15,4 +15,6 @@ public class CouponVerification {
     private String verification;            //优惠券核销站点Id
     private String verificationName;        //核销站点名称
     private Date createTime;                //创建时间
+
+    private String unionId;                 //核销人员unionId
 }

+ 16 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/CouponVerificationUser.java

@@ -0,0 +1,16 @@
+package com.platform.yijia.pojo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/***
+ * 核销人员
+ */
+@Data
+public class CouponVerificationUser {
+    private String unionId;     //用户unionId
+    private String mobilePhone;     //用户mobilePhone
+    private Date createTime;        //创建时间
+    private Integer stationId;      //核销点ID
+}

+ 9 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/CouponService.java

@@ -40,6 +40,15 @@ public interface CouponService {
     //更新用户优惠券状态
     void updateCouponUserInfo(UserCoupon userCoupon);
 
+    //查询可核销的人员
+    CouponVerificationUser selectCouponVerificationUserInfo(CouponVerificationUser couponVerificationUser);
+
+    //添加核销人员
+    void addCouponVerificationUser(CouponVerificationUser couponVerificationUser);
+
+    //更新核销人员手机号
+    void updateCouponVerificationUser(CouponVerificationUser couponVerificationUser);
+
     //添加核销记录
     void addCouponVerificationRecord(CouponVerification couponVerification);
 }

+ 5 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/SysUserService.java

@@ -1,8 +1,13 @@
 package com.platform.yijia.service;
 
+import com.platform.yijia.pojo.SysUser;
+
 import java.util.List;
 
 public interface SysUserService {
     //验证身份
     //List<SysUser> Authentication(SysUser sysUser);
+
+    //根据手机号获取用户信息
+    SysUser selectSysUser(SysUser sysUser);
 }

+ 17 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/CouponServiceImpl.java

@@ -80,6 +80,23 @@ public class CouponServiceImpl implements CouponService {
         couponMapper.addCouponVerificationRecord(couponVerification);
     }
 
+    //查询核销人员信息
+    @Override
+    public CouponVerificationUser selectCouponVerificationUserInfo(CouponVerificationUser couponVerificationUser) {
+        return couponMapper.selectCouponVerificationUserInfo(couponVerificationUser);
+    }
+
+    //添加核销人员
+    @Override
+    public void addCouponVerificationUser(CouponVerificationUser couponVerificationUser) {
+        couponMapper.addCouponVerificationUser(couponVerificationUser);
+    }
+
+    @Override
+    public void updateCouponVerificationUser(CouponVerificationUser couponVerificationUser) {
+        couponMapper.updateCouponVerificationUser(couponVerificationUser);
+    }
+
     //用户已领取的优惠券数量
     @Override
     public int selectUserCouponCount(UserCoupon userCoupon) {

+ 12 - 3
YijiaRestful/src/main/java/com/platform/yijia/service/impl/SysUserServiceImpl.java

@@ -1,4 +1,6 @@
 package com.platform.yijia.service.impl;
+import com.platform.yijia.dao.SysUserMapper;
+import com.platform.yijia.pojo.SysUser;
 import com.platform.yijia.service.SysUserService;
 import org.springframework.stereotype.Service;
 
@@ -7,9 +9,16 @@ import java.util.List;
 
 @Service("sysUserService")
 public class SysUserServiceImpl implements SysUserService {
-//    @Resource
-//    private SysUserMapper sysUserMapper;
-//    @Override
+    @Resource
+    private SysUserMapper sysUserMapper;
+
+    //根据手机号获取用户信息
+    @Override
+    public SysUser selectSysUser(SysUser sysUser) {
+        return sysUserMapper.selectSysUser(sysUser);
+    }
+
+    //    @Override
 //    public List<SysUser> Authentication(SysUser sysUser) {
 //        SysUserExample example = new SysUserExample();
 //        example.or().andUserTypeEqualTo(sysUser.getUserType());

+ 4 - 0
YijiaRestful/src/main/java/com/platform/yijia/utils/CodeMsg.java

@@ -9,6 +9,8 @@ public class CodeMsg {
     public static CodeMsg SERVER_EXCEPTION = new CodeMsg(500100,"服务端异常");
     public static CodeMsg USER_NOT_EXSIST = new CodeMsg(-1,"用户不存在");
     public static CodeMsg USER_EXSIST_CARD = new CodeMsg(-1,"该用户暂无此卡");
+    public static CodeMsg USER_NOT_STATUS = new CodeMsg(-3,"该用户已停用");
+
     public static CodeMsg USER_EXSIST = new CodeMsg(-1,"用户已存在");
     public static CodeMsg NO_ORDER = new CodeMsg(-2,"暂无此订单");
     public static CodeMsg SELECT_ORDER_ERROR = new CodeMsg(-1,"此订单已完成支付,请重新下单");
@@ -48,6 +50,8 @@ public class CodeMsg {
     public static CodeMsg NOT_COUPON_VERIFICATION = new CodeMsg(-4,"当前优惠券不是异业兑换券!");
 
 
+    public static CodeMsg NOT_COUPON_VERIFICATION_USER = new CodeMsg(-4,"当前人员不是核销人员!");
+
 
 
     public static CodeMsg COUPON_NOT_COUPONTHRESHOLDAMT = new CodeMsg(-10,"当前金额未达到优惠券使用门槛");

+ 60 - 1
YijiaRestful/src/main/resources/mapper/CouponMapper.xml

@@ -363,7 +363,7 @@
         </where>
     </update>
 
-    <!--新增用户进入领取页面的次数-->
+    <!--核销记录-->
     <insert id="addCouponVerificationRecord"  parameterType="com.platform.yijia.pojo.CouponVerification" >
         INSERT INTO coupon_verification_record
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -390,6 +390,65 @@
         </trim>
     </insert>
 
+    <!-- 更新核销用户订单信息-->
+    <update id="updateCouponVerificationUser" parameterType="com.platform.yijia.pojo.CouponVerificationUser">
+        UPDATE coupon_verification_user
+        <set>
+            <if test="mobilePhone != null">
+                mobile_phone = #{mobilePhone},
+            </if>
+        </set>
+        <where>
+            <if test="unionId !=null and unionId !=''">
+                union_id = #{unionId}
+            </if>
+        </where>
+    </update>
+
+    <!--核销人员-->
+    <insert id="addCouponVerificationUser"  parameterType="com.platform.yijia.pojo.CouponVerificationUser" >
+        INSERT INTO coupon_verification_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="unionId !=null">
+                union_id,
+            </if>
+            <if test="mobilePhone !=null">
+                mobile_phone,
+            </if>
+            <if test="createTime !=null">
+                create_time,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="unionId !=null">
+                #{unionId},
+            </if>
+            <if test="mobilePhone !=null">
+                #{mobilePhone},
+            </if>
+            <if test="createTime !=null">
+                #{createTime},
+            </if>
+        </trim>
+    </insert>
+
+    <!--查询核销站点信息-->
+    <select id="selectCouponVerificationUserInfo" parameterType="com.platform.yijia.pojo.CouponVerificationUser" resultType="com.platform.yijia.pojo.CouponVerificationUser">
+        SELECT
+            union_id,
+            mobile_phone,
+            dept_id         AS stationId
+        FROM            coupon_verification_user      AS T1
+        LEFT JOIN       sys_dept                      AS T2  ON T1.mobile_phone = T2.phonenumber
+        <where>
+            <if test="unionId !=null and unionId !=''">
+                union_id = #{unionId}
+            </if>
+        </where>
+
+    </select>
+
+
     <!--新增用户进入领取页面的次数-->
     <insert id="addCouponUserGiveCount"  parameterType="com.platform.yijia.pojo.CouponUserGiveCount" >
         INSERT INTO coupon_user_give_count

+ 38 - 16
YijiaRestful/src/main/resources/mapper/SysUserMapper.xml

@@ -26,6 +26,9 @@
     <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
     <result column="remark" jdbcType="VARCHAR" property="remark" />
   </resultMap>
+
+
+
   <sql id="Example_Where_Clause">
     <!--
       WARNING - @mbg.generated
@@ -97,10 +100,29 @@
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
     -->
-    user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar, 
-    password, status, del_flag, login_ip, login_date, create_by, create_time, update_by, 
+    user_id, dept_id, user_name, nick_name, user_type, email, phonenumber, sex, avatar,
+    password, status, del_flag, login_ip, login_date, create_by, create_time, update_by,
     update_time, remark
   </sql>
+
+  <select id="selectSysUser" parameterType="com.platform.yijia.pojo.SysUser" resultMap="BaseResultMap">
+        SELECT
+            <include refid="Base_Column_List" />
+        FROM sys_user
+        <where>
+          <if test="phonenumber !=null and phonenumber !=''">
+            phonenumber = #{phonenumber}
+          </if>
+          <if test="status !=null and status !=''">
+            AND status = #{status}
+          </if>
+          <if test="delFlag !=null and delFlag !=''">
+            AND del_flag = #{delFlag}
+          </if>
+        </where>
+  </select>
+
+
   <select id="selectByExample" parameterType="com.platform.yijia.pojo.SysUserExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
@@ -124,7 +146,7 @@
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
     -->
-    select 
+    select
     <include refid="Base_Column_List" />
     from sys_user
     where user_id = #{userId,jdbcType=BIGINT}
@@ -152,19 +174,19 @@
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
     -->
-    insert into sys_user (user_id, dept_id, user_name, 
-      nick_name, user_type, email, 
-      phonenumber, sex, avatar, 
-      password, status, del_flag, 
-      login_ip, login_date, create_by, 
-      create_time, update_by, update_time, 
+    insert into sys_user (user_id, dept_id, user_name,
+      nick_name, user_type, email,
+      phonenumber, sex, avatar,
+      password, status, del_flag,
+      login_ip, login_date, create_by,
+      create_time, update_by, update_time,
       remark)
-    values (#{userId,jdbcType=BIGINT}, #{deptId,jdbcType=BIGINT}, #{userName,jdbcType=VARCHAR}, 
-      #{nickName,jdbcType=VARCHAR}, #{userType,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, 
-      #{phonenumber,jdbcType=VARCHAR}, #{sex,jdbcType=CHAR}, #{avatar,jdbcType=VARCHAR}, 
-      #{password,jdbcType=VARCHAR}, #{status,jdbcType=CHAR}, #{delFlag,jdbcType=CHAR}, 
-      #{loginIp,jdbcType=VARCHAR}, #{loginDate,jdbcType=TIMESTAMP}, #{createBy,jdbcType=VARCHAR}, 
-      #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, 
+    values (#{userId,jdbcType=BIGINT}, #{deptId,jdbcType=BIGINT}, #{userName,jdbcType=VARCHAR},
+      #{nickName,jdbcType=VARCHAR}, #{userType,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},
+      #{phonenumber,jdbcType=VARCHAR}, #{sex,jdbcType=CHAR}, #{avatar,jdbcType=VARCHAR},
+      #{password,jdbcType=VARCHAR}, #{status,jdbcType=CHAR}, #{delFlag,jdbcType=CHAR},
+      #{loginIp,jdbcType=VARCHAR}, #{loginDate,jdbcType=TIMESTAMP}, #{createBy,jdbcType=VARCHAR},
+      #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP},
       #{remark,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.platform.yijia.pojo.SysUser">
@@ -490,4 +512,4 @@
       remark = #{remark,jdbcType=VARCHAR}
     where user_id = #{userId,jdbcType=BIGINT}
   </update>
-</mapper>
+</mapper>