JK před 3 roky
rodič
revize
6c3d5edb5d

+ 15 - 10
YijiaRestful/src/main/java/com/platform/yijia/controller/CouponController.java

@@ -609,19 +609,24 @@ public class CouponController {
             couponVerificationUser.setUnionId(unionId);
             CouponVerificationUser cu = couponService.selectCouponVerificationUserInfo(couponVerificationUser);
             if(cu !=null && cu.getStationId() !=null){
-                //
-                Integer stationId = cu.getStationId();
                 UserCoupon userCoupon = new UserCoupon();
-                userCoupon.setStationId(stationId);
+                String jiBie = cu.getJiBie();               //核销用的级别
+                Integer stationId = cu.getStationId();      //核销人员所属站点
+                if(StringUtils.isNoneBlank(jiBie) && jiBie.equals("1")){
+                    //级别为1的时候表示该登录人集团账号核销
+                    StationInfo stationInfo = new StationInfo();
+                    stationInfo.setStationId(stationId);
+                    StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+                    if(StringUtils.isNotBlank(stationInfos.getCouponFlag()) && stationInfos.getCouponFlag().equals("1")){
+                        //表示集团下优惠券共享:如果为集团账号且共享优惠券 则判断当前核销人员所在站点的集团是否是该兑换券的集团
+                        userCoupon.setGroupId(stationInfos.getGroupId());
+                    }
+                }else {
+                    //否则为2时,则表示为站点核销人员登录
+                    userCoupon.setStationId(stationId);
+                }
                 userCoupon.setCouponType("3");
                 userCoupon.setCouponIsUsed("2");
-                StationInfo stationInfo = new StationInfo();
-                stationInfo.setStationId(cu.getStationId());
-                StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
-                if(StringUtils.isNotBlank(stationInfos.getCouponFlag()) && stationInfos.getCouponFlag().equals("1")){
-                    stationId = stationInfos.getGroupId();
-                }
-                userCoupon.setStationId(stationId);
                 PageHelper.startPage(pageNum, pageSize);
                 List<UserCoupon> userCoupons = couponService.selectCouponVerificationList(userCoupon);
                 PageInfo pageInfo = new PageInfo(userCoupons);

+ 56 - 1
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -68,6 +68,9 @@ public class ElectronicMembershipCardController {
     private SysDictDataService sysDictDataService;
     @Resource
     private AppUserInfoService appUserInfoService;
+    @Resource
+    private CouponService couponService;
+
     @Value("${yijia.path.global-prefix}")
     private String globalPrefix;
 
@@ -319,7 +322,7 @@ public class ElectronicMembershipCardController {
     @RequestMapping(value = "/dzkPaySet", method = RequestMethod.GET)
     @ResponseBody
     @Transactional
-    public  String dzkPaySet(@RequestParam String ordNo) throws ParseException {
+    public  String dzkPaySet(@RequestParam String ordNo, Integer id) throws ParseException {
         Gson gson =new Gson();
         ResultData resultData =null;
         if(ordNo !=null){
@@ -415,6 +418,58 @@ public class ElectronicMembershipCardController {
                     payOrder.setAmt(Double.valueOf(dzkAmt));
                     payOrder.setWxAmt(Double.valueOf("0"));
                     payOrder.setDzkAmt(Double.valueOf(dzkAmt));
+
+                    BigDecimal amtNew = new BigDecimal(dzkAmt);
+                    BigDecimal discountAmtNew = new BigDecimal(discountAmt);
+                    //获取该优惠券
+                    if(id !=null){
+                        UserCoupon userCoupon = new UserCoupon();
+                        userCoupon.setId(id);
+                        UserCoupon ucResult = couponService.selectUserCouponInfo(userCoupon);
+                        if(ucResult !=null){
+                            payOrder.setDiscountCoupon(ucResult.getId().toString());
+                            BigDecimal couponAmt = ucResult.getCouponAmt();
+                            String couponType = ucResult.getCouponType();
+                            if(ucResult.getIsCardFlag() !=null && ucResult.getIsCardFlag().equals("1")){
+                                switch (couponType){
+                                    case "1":
+                                        amtNew = new BigDecimal(dzkAmt).subtract(couponAmt);
+                                        payOrder.setAmt(Double.valueOf(amtNew.toString()));
+                                        payOrder.setDzkAmt(Double.valueOf(amtNew.toString()));
+                                        discountAmtNew = discountAmtNew.add(couponAmt);
+                                        payOrder.setDiscountAmt(Double.valueOf(discountAmtNew.toString()));
+                                        break;
+                                    case "2":
+                                        amtNew = new BigDecimal(dzkAmt).multiply(couponAmt).divide(new BigDecimal("100"));
+                                        payOrder.setAmt(Double.valueOf(amtNew.toString()));
+                                        payOrder.setDzkAmt(Double.valueOf(amtNew.toString()));
+                                        BigDecimal subtract1 = new BigDecimal(dzkAmt).subtract(amtNew);
+                                        discountAmtNew =subtract1.add(new BigDecimal(discountAmt));
+                                        payOrder.setDiscountAmt(Double.valueOf(discountAmtNew.toString()));
+                                        break;
+                                }
+                            }else {
+                                //表示不共享
+                                switch (couponType){
+                                    case "1":
+                                        amtNew = new BigDecimal(receivableAmt).subtract(couponAmt);
+                                        payOrder.setAmt(Double.valueOf(amtNew.toString()));
+                                        payOrder.setDzkAmt(Double.valueOf(amtNew.toString()));
+                                        payOrder.setDiscountAmt(Double.valueOf(couponAmt.toString()));
+                                        break;
+                                    case "2":
+                                        amtNew = new BigDecimal(receivableAmt).multiply(couponAmt).divide(new BigDecimal("100"));
+                                        payOrder.setAmt(Double.valueOf(amtNew.toString()));
+                                        payOrder.setDzkAmt(Double.valueOf(amtNew.toString()));
+                                        discountAmtNew = new BigDecimal(receivableAmt).subtract(amtNew);
+                                        payOrder.setDiscountAmt(Double.valueOf(discountAmtNew.toString()));
+                                        break;
+                                }
+                            }
+                        }
+
+                    }
+
                     //payOrder.setTransactionId(ordNo);
                     //BigDecimal discountAmt = new BigDecimal(receivableAmt).subtract(new BigDecimal(dzkAmt));
                     //payOrder.setDiscountAmt(Double.valueOf(discountAmt));

+ 14 - 1
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -982,7 +982,7 @@ public class PayController {
                                     //discountCoupon
                                     if(infoMap.containsKey("discountCoupon") && infoMap.get("discountCoupon") !=null && infoMap.get("discountCoupon").toString() !=""){
                                         UserCoupon userCoupon = new UserCoupon();
-                                        userCoupon.setCouponIsUsed("1");
+                                        userCoupon.setCouponIsUsed("2");
                                         String discountCoupon = infoMap.get("discountCoupon").toString();
                                         userCoupon.setId(Integer.valueOf(discountCoupon));
                                         userCoupon.setCreateTime(new Date());
@@ -1190,6 +1190,19 @@ public class PayController {
                                 stationService.updateStationBalance(s);
                                 logger.info("LNG加气平台支付更新余额完成!");
                             }else {
+
+                                if(stationInfos.getCouponEnabledFlag() !=null && stationInfos.getCouponEnabledFlag().equals("1")){
+                                    //discountCoupon
+                                    if(infoMap.containsKey("discountCoupon") && infoMap.get("discountCoupon") !=null && infoMap.get("discountCoupon").toString() !=""){
+                                        UserCoupon userCoupon = new UserCoupon();
+                                        userCoupon.setCouponIsUsed("2");
+                                        String discountCoupon = infoMap.get("discountCoupon").toString();
+                                        userCoupon.setId(Integer.valueOf(discountCoupon));
+                                        userCoupon.setCreateTime(new Date());
+                                        couponService.updateCouponUserInfo(userCoupon);
+                                    }
+                                }
+
                                 //当前系统主要业务逻辑
                                 CustomerManage customerManage = this.insertCustomerManage(infoMap);                              //插入客户积分返回要插入客户的信息
                                 CalculateIntegral calculateIntegral = new CalculateIntegral();

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/UserCoupon.java

@@ -77,4 +77,7 @@ public class UserCoupon {
     //计算使用优惠券后返回前端参数
     private CouponReckonAmt couponReckonAmt;
 
+    //核销参数
+    private Integer groupId;            //集团ID
+
 }

+ 9 - 4
YijiaRestful/src/main/resources/mapper/CouponMapper.xml

@@ -438,16 +438,17 @@
     <!--查询核销站点信息-->
     <select id="selectCouponVerificationUserInfo" parameterType="com.platform.yijia.pojo.CouponVerificationUser" resultType="com.platform.yijia.pojo.CouponVerificationUser">
         SELECT
-            T1.union_id,
-            T1.mobile_phone,
-            T3.ji_bie,
+            T1.union_id        AS unionId,
+            T1.mobile_phone    AS mobilePhone,
+            T3.ji_bie          AS jiBie,
             T2.dept_id         AS stationId
         FROM            coupon_verification_user      AS T1
         LEFT JOIN       sys_user                      AS T2  ON T1.mobile_phone = T2.phonenumber
         LEFT JOIN       sys_dept                      AS T3  ON T2.dept_id = T3.dept_id
         <where>
+                T3.ji_bie &lt;&gt; "0"
             <if test="unionId !=null and unionId !=''">
-                T1.union_id = #{unionId}
+                AND T1.union_id = #{unionId}
             </if>
         </where>
 
@@ -659,10 +660,14 @@
         FROM      coupon_user               AS  T1
         LEFT JOIN coupon_info               AS  T2 ON T1.coupon_id = T2.id
         LEFT JOIN coupon_issue              AS  T3 ON T1.issue_id = T3.id
+        LEFT JOIN sys_dept                  AS  T4 ON T1.station_id = T4.dept_id
         <where>
             <if test="stationId !=null and stationId !=''">
                 AND T1.station_id = #{stationId} OR  FIND_IN_SET(#{stationId}, T2.verification)
             </if>
+            <if test="groupId !=null and groupId !=''">
+                AND T4.parent_id = #{groupId}
+            </if>
             <if test="couponType !=null and couponType !=''">
                 AND T2.coupon_type = #{couponType}
             </if>