java110
2022-10-15 0b94da42cf41d2fc231df1a0a9671a3e25e3d8ae
加入 商家赠送停车劵功能
1个文件已删除
3个文件已修改
1个文件已添加
612 ■■■■■ 已修改文件
java110-bean/src/main/java/com/java110/dto/parkingCouponCar/ParkingCouponCarDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/store/StoreShopV1ServiceDaoImplMapper.xml 347 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/util/DateUtil.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-acct/src/main/java/com/java110/acct/cmd/parkingCoupon/SaveParkingCouponCarCmd.java 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-acct/src/main/java/com/java110/acct/cmd/parkingCouponCar/SaveParkingCouponCarCmd.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/parkingCouponCar/ParkingCouponCarDto.java
@@ -15,6 +15,10 @@
 **/
public class ParkingCouponCarDto extends PageDto implements Serializable {
    //状态 1001 未使用 2002 已使用 3003 作废
    public static final String STATE_WAIT = "1001";
    public static final String STATE_FINISH = "2002";
    private String giveWay;
    private String carNum;
    private String carNumLike;
java110-db/src/main/resources/mapper/store/StoreShopV1ServiceDaoImplMapper.xml
@@ -5,192 +5,205 @@
<mapper namespace="storeShopV1ServiceDaoImpl">
    <!-- 保存店铺信息 add by wuxw 2018-07-03 -->
    <insert id="saveStoreShopInfo" parameterType="Map">
        insert into s_shop(
shop_desc,return_person,shop_logo,shop_name,store_id,map_y,map_x,send_address,return_address,open_type,area_code,return_link,shop_id,state,shop_type
) values (
#{shopDesc},#{returnPerson},#{shopLogo},#{shopName},#{storeId},#{mapY},#{mapX},#{sendAddress},#{returnAddress},#{openType},#{areaCode},#{returnLink},#{shopId},#{state},#{shopType}
)
        shop_desc,return_person,shop_logo,shop_name,store_id,map_y,map_x,send_address,return_address,open_type,area_code,return_link,shop_id,state,shop_type
        ) values (
        #{shopDesc},#{returnPerson},#{shopLogo},#{shopName},#{storeId},#{mapY},#{mapX},#{sendAddress},#{returnAddress},#{openType},#{areaCode},#{returnLink},#{shopId},#{state},#{shopType}
        )
    </insert>
    <!-- 查询店铺信息 add by wuxw 2018-07-03 -->
    <select id="getStoreShopInfo" parameterType="Map" resultType="Map">
        select  t.shop_desc,t.shop_desc shopDesc,t.return_person,t.return_person returnPerson,t.shop_logo,t.shop_logo shopLogo,t.shop_name,t.shop_name shopName,t.status_cd,t.status_cd statusCd,t.store_id,t.store_id storeId,t.map_y,t.map_y mapY,t.map_x,t.map_x mapX,t.send_address,t.send_address sendAddress,t.return_address,t.return_address returnAddress,t.open_type,t.open_type openType,t.area_code,t.area_code areaCode,t.return_link,t.return_link returnLink,t.shop_id,t.shop_id shopId,t.state,t.shop_type,t.shop_type shopType
from s_shop t
where 1 =1
<if test="shopDesc !=null and shopDesc != ''">
   and t.shop_desc= #{shopDesc}
</if>
<if test="returnPerson !=null and returnPerson != ''">
   and t.return_person= #{returnPerson}
</if>
<if test="shopLogo !=null and shopLogo != ''">
   and t.shop_logo= #{shopLogo}
</if>
<if test="shopName !=null and shopName != ''">
   and t.shop_name= #{shopName}
</if>
<if test="statusCd !=null and statusCd != ''">
   and t.status_cd= #{statusCd}
</if>
<if test="storeId !=null and storeId != ''">
   and t.store_id= #{storeId}
</if>
<if test="mapY !=null and mapY != ''">
   and t.map_y= #{mapY}
</if>
<if test="mapX !=null and mapX != ''">
   and t.map_x= #{mapX}
</if>
<if test="sendAddress !=null and sendAddress != ''">
   and t.send_address= #{sendAddress}
</if>
<if test="returnAddress !=null and returnAddress != ''">
   and t.return_address= #{returnAddress}
</if>
<if test="openType !=null and openType != ''">
   and t.open_type= #{openType}
</if>
<if test="areaCode !=null and areaCode != ''">
   and t.area_code= #{areaCode}
</if>
<if test="returnLink !=null and returnLink != ''">
   and t.return_link= #{returnLink}
</if>
<if test="shopId !=null and shopId != ''">
   and t.shop_id= #{shopId}
</if>
<if test="state !=null and state != ''">
   and t.state= #{state}
</if>
<if test="shopType !=null and shopType != ''">
   and t.shop_type= #{shopType}
</if>
order by t.create_time desc
<if test="page != -1 and page != null ">
   limit #{page}, #{row}
</if>
        select t.shop_desc,t.shop_desc shopDesc,t.return_person,t.return_person returnPerson,t.shop_logo,t.shop_logo
        shopLogo,t.shop_name,t.shop_name shopName,t.status_cd,t.status_cd statusCd,t.store_id,t.store_id
        storeId,t.map_y,t.map_y mapY,t.map_x,t.map_x mapX,t.send_address,t.send_address
        sendAddress,t.return_address,t.return_address returnAddress,t.open_type,t.open_type
        openType,t.area_code,t.area_code areaCode,t.return_link,t.return_link returnLink,t.shop_id,t.shop_id
        shopId,t.state,t.shop_type,t.shop_type shopType
        from s_shop t
        where 1 =1
        <if test="shopDesc !=null and shopDesc != ''">
            and t.shop_desc= #{shopDesc}
        </if>
        <if test="returnPerson !=null and returnPerson != ''">
            and t.return_person= #{returnPerson}
        </if>
        <if test="shopLogo !=null and shopLogo != ''">
            and t.shop_logo= #{shopLogo}
        </if>
        <if test="shopName !=null and shopName != ''">
            and t.shop_name= #{shopName}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <if test="storeId !=null and storeId != ''">
            and t.store_id= #{storeId}
        </if>
        <if test="mapY !=null and mapY != ''">
            and t.map_y= #{mapY}
        </if>
        <if test="mapX !=null and mapX != ''">
            and t.map_x= #{mapX}
        </if>
        <if test="sendAddress !=null and sendAddress != ''">
            and t.send_address= #{sendAddress}
        </if>
        <if test="returnAddress !=null and returnAddress != ''">
            and t.return_address= #{returnAddress}
        </if>
        <if test="openType !=null and openType != ''">
            and t.open_type= #{openType}
        </if>
        <if test="areaCode !=null and areaCode != ''">
            and t.area_code= #{areaCode}
        </if>
        <if test="returnLink !=null and returnLink != ''">
            and t.return_link= #{returnLink}
        </if>
        <if test="shopId !=null and shopId != ''">
            and t.shop_id= #{shopId}
        </if>
        <if test="state !=null and state != ''">
            and t.state= #{state}
        </if>
        <if test="states !=null ">
            and t.state in
            <foreach collection="states" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="shopType !=null and shopType != ''">
            and t.shop_type= #{shopType}
        </if>
        order by t.create_time desc
        <if test="page != -1 and page != null ">
            limit #{page}, #{row}
        </if>
    </select>
    <!-- 修改店铺信息 add by wuxw 2018-07-03 -->
    <update id="updateStoreShopInfo" parameterType="Map">
        update  s_shop t set t.status_cd = #{statusCd}
<if test="newBId != null and newBId != ''">
,t.b_id = #{newBId}
</if>
<if test="shopDesc !=null and shopDesc != ''">
, t.shop_desc= #{shopDesc}
</if>
<if test="returnPerson !=null and returnPerson != ''">
, t.return_person= #{returnPerson}
</if>
<if test="shopLogo !=null and shopLogo != ''">
, t.shop_logo= #{shopLogo}
</if>
<if test="shopName !=null and shopName != ''">
, t.shop_name= #{shopName}
</if>
<if test="storeId !=null and storeId != ''">
, t.store_id= #{storeId}
</if>
<if test="mapY !=null and mapY != ''">
, t.map_y= #{mapY}
</if>
<if test="mapX !=null and mapX != ''">
, t.map_x= #{mapX}
</if>
<if test="sendAddress !=null and sendAddress != ''">
, t.send_address= #{sendAddress}
</if>
<if test="returnAddress !=null and returnAddress != ''">
, t.return_address= #{returnAddress}
</if>
<if test="openType !=null and openType != ''">
, t.open_type= #{openType}
</if>
<if test="areaCode !=null and areaCode != ''">
, t.area_code= #{areaCode}
</if>
<if test="returnLink !=null and returnLink != ''">
, t.return_link= #{returnLink}
</if>
<if test="state !=null and state != ''">
, t.state= #{state}
</if>
<if test="shopType !=null and shopType != ''">
, t.shop_type= #{shopType}
</if>
 where 1=1 <if test="shopId !=null and shopId != ''">
and t.shop_id= #{shopId}
</if>
        update s_shop t set t.status_cd = #{statusCd}
        <if test="newBId != null and newBId != ''">
            ,t.b_id = #{newBId}
        </if>
        <if test="shopDesc !=null and shopDesc != ''">
            , t.shop_desc= #{shopDesc}
        </if>
        <if test="returnPerson !=null and returnPerson != ''">
            , t.return_person= #{returnPerson}
        </if>
        <if test="shopLogo !=null and shopLogo != ''">
            , t.shop_logo= #{shopLogo}
        </if>
        <if test="shopName !=null and shopName != ''">
            , t.shop_name= #{shopName}
        </if>
        <if test="storeId !=null and storeId != ''">
            , t.store_id= #{storeId}
        </if>
        <if test="mapY !=null and mapY != ''">
            , t.map_y= #{mapY}
        </if>
        <if test="mapX !=null and mapX != ''">
            , t.map_x= #{mapX}
        </if>
        <if test="sendAddress !=null and sendAddress != ''">
            , t.send_address= #{sendAddress}
        </if>
        <if test="returnAddress !=null and returnAddress != ''">
            , t.return_address= #{returnAddress}
        </if>
        <if test="openType !=null and openType != ''">
            , t.open_type= #{openType}
        </if>
        <if test="areaCode !=null and areaCode != ''">
            , t.area_code= #{areaCode}
        </if>
        <if test="returnLink !=null and returnLink != ''">
            , t.return_link= #{returnLink}
        </if>
        <if test="state !=null and state != ''">
            , t.state= #{state}
        </if>
        <if test="shopType !=null and shopType != ''">
            , t.shop_type= #{shopType}
        </if>
        where 1=1
        <if test="shopId !=null and shopId != ''">
            and t.shop_id= #{shopId}
        </if>
    </update>
    <!-- 查询店铺数量 add by wuxw 2018-07-03 -->
     <select id="queryStoreShopsCount" parameterType="Map" resultType="Map">
        select  count(1) count
from s_shop t
where 1 =1
<if test="shopDesc !=null and shopDesc != ''">
   and t.shop_desc= #{shopDesc}
</if>
<if test="returnPerson !=null and returnPerson != ''">
   and t.return_person= #{returnPerson}
</if>
<if test="shopLogo !=null and shopLogo != ''">
   and t.shop_logo= #{shopLogo}
</if>
<if test="shopName !=null and shopName != ''">
   and t.shop_name= #{shopName}
</if>
<if test="statusCd !=null and statusCd != ''">
   and t.status_cd= #{statusCd}
</if>
<if test="storeId !=null and storeId != ''">
   and t.store_id= #{storeId}
</if>
<if test="mapY !=null and mapY != ''">
   and t.map_y= #{mapY}
</if>
<if test="mapX !=null and mapX != ''">
   and t.map_x= #{mapX}
</if>
<if test="sendAddress !=null and sendAddress != ''">
   and t.send_address= #{sendAddress}
</if>
<if test="returnAddress !=null and returnAddress != ''">
   and t.return_address= #{returnAddress}
</if>
<if test="openType !=null and openType != ''">
   and t.open_type= #{openType}
</if>
<if test="areaCode !=null and areaCode != ''">
   and t.area_code= #{areaCode}
</if>
<if test="returnLink !=null and returnLink != ''">
   and t.return_link= #{returnLink}
</if>
<if test="shopId !=null and shopId != ''">
   and t.shop_id= #{shopId}
</if>
<if test="state !=null and state != ''">
   and t.state= #{state}
</if>
<if test="shopType !=null and shopType != ''">
   and t.shop_type= #{shopType}
</if>
    <select id="queryStoreShopsCount" parameterType="Map" resultType="Map">
        select count(1) count
        from s_shop t
        where 1 =1
        <if test="shopDesc !=null and shopDesc != ''">
            and t.shop_desc= #{shopDesc}
        </if>
        <if test="returnPerson !=null and returnPerson != ''">
            and t.return_person= #{returnPerson}
        </if>
        <if test="shopLogo !=null and shopLogo != ''">
            and t.shop_logo= #{shopLogo}
        </if>
        <if test="shopName !=null and shopName != ''">
            and t.shop_name= #{shopName}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <if test="storeId !=null and storeId != ''">
            and t.store_id= #{storeId}
        </if>
        <if test="mapY !=null and mapY != ''">
            and t.map_y= #{mapY}
        </if>
        <if test="mapX !=null and mapX != ''">
            and t.map_x= #{mapX}
        </if>
        <if test="sendAddress !=null and sendAddress != ''">
            and t.send_address= #{sendAddress}
        </if>
        <if test="returnAddress !=null and returnAddress != ''">
            and t.return_address= #{returnAddress}
        </if>
        <if test="openType !=null and openType != ''">
            and t.open_type= #{openType}
        </if>
        <if test="areaCode !=null and areaCode != ''">
            and t.area_code= #{areaCode}
        </if>
        <if test="returnLink !=null and returnLink != ''">
            and t.return_link= #{returnLink}
        </if>
        <if test="shopId !=null and shopId != ''">
            and t.shop_id= #{shopId}
        </if>
        <if test="state !=null and state != ''">
            and t.state= #{state}
        </if>
        <if test="states !=null ">
            and t.state in
            <foreach collection="states" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="shopType !=null and shopType != ''">
            and t.shop_type= #{shopType}
        </if>
     </select>
    </select>
</mapper>
java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
@@ -174,6 +174,8 @@
        return getFormatTimeString(new Date(), pattern);
    }
    public static String getLastTime() {
        return LAST_TIME;
    }
@@ -447,7 +449,7 @@
        System.out.println( "2021-12-07".compareTo(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B)));
    }
    public static String getAddDayString(Date date,String pattern,int days) throws ParseException {
    public static String getAddDayString(Date date,String pattern,int days)  {
        SimpleDateFormat sf = new SimpleDateFormat(pattern);
        Calendar c = Calendar.getInstance();
        c.setTime(date);
service-acct/src/main/java/com/java110/acct/cmd/parkingCoupon/SaveParkingCouponCarCmd.java
New file
@@ -0,0 +1,171 @@
/*
 * Copyright 2017-2020 吴学文 and java110 team.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.java110.acct.cmd.parkingCoupon;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.doc.annotation.*;
import com.java110.dto.parkingCouponCar.ParkingCouponCarDto;
import com.java110.dto.parkingCouponShop.ParkingCouponShopDto;
import com.java110.intf.acct.IParkingCouponCarV1InnerServiceSMO;
import com.java110.intf.acct.IParkingCouponShopV1InnerServiceSMO;
import com.java110.intf.acct.IParkingCouponV1InnerServiceSMO;
import com.java110.po.parkingCouponCar.ParkingCouponCarPo;
import com.java110.po.parkingCouponShop.ParkingCouponShopPo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.lock.DistributedLock;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.vo.ResultVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
@Java110CmdDoc(title = "商家赠送停车劵",
        description = "商家通过此接口赠送停车劵",
        httpMethod = "post",
        url = "http://{ip}:{port}/app/parkingCoupon.saveParkingCouponCar",
        resource = "acctDoc",
        author = "吴学文",
        serviceCode = "parkingCoupon.saveParkingCouponCar"
)
@Java110ParamsDoc(params = {
        @Java110ParamDoc(name = "couponShopId", length = 30, remark = "优惠劵ID"),
        @Java110ParamDoc(name = "giveWay", length = 30, remark = "赠送方式 1001 扫码获取 2002 商家添加 3003 购物自动赠送"),
        @Java110ParamDoc(name = "carNum", length = 30, remark = "车牌号"),
        @Java110ParamDoc(name = "shopId", length = 30, remark = "店铺ID"),
})
@Java110ResponseDoc(
        params = {
                @Java110ParamDoc(name = "code", type = "int", length = 11, defaultValue = "0", remark = "返回编号,0 成功 其他失败"),
                @Java110ParamDoc(name = "msg", type = "String", length = 250, defaultValue = "成功", remark = "描述"),
        }
)
@Java110ExampleDoc(
        reqBody = "http://{ip}:{port}/app/parkingCoupon.listParkingCoupon?page=1&row=100&communityId=2022081539020475",
        resBody = "{\"code\":0,\"msg\":\"成功\"}"
)
/**
 * 类表述:保存
 * 服务编码:parkingCouponCar.saveParkingCouponCar
 * 请求路劲:/app/parkingCouponCar.SaveParkingCouponCar
 * add by 吴学文 at 2022-10-12 13:02:09 mail: 928255095@qq.com
 * open source address: https://gitee.com/wuxw7/MicroCommunity
 * 官网:http://www.homecommunity.cn
 * 温馨提示:如果您对此文件进行修改 请不要删除原有作者及注释信息,请补充您的 修改的原因以及联系邮箱如下
 * // modify by 张三 at 2021-09-12 第10行在某种场景下存在某种bug 需要修复,注释10至20行 加入 20行至30行
 */
@Java110Cmd(serviceCode = "parkingCoupon.saveParkingCouponCar")
public class SaveParkingCouponCarCmd extends Cmd {
    private static Logger logger = LoggerFactory.getLogger(SaveParkingCouponCarCmd.class);
    public static final String CODE_PREFIX_ID = "10";
    @Autowired
    private IParkingCouponCarV1InnerServiceSMO parkingCouponCarV1InnerServiceSMOImpl;
    @Autowired
    private IParkingCouponV1InnerServiceSMO parkingCouponV1InnerServiceSMOImpl;
    @Autowired
    private IParkingCouponShopV1InnerServiceSMO parkingCouponShopV1InnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        Assert.hasKeyAndValue(reqJson, "couponShopId", "请求报文中未包含couponShopId");
        Assert.hasKeyAndValue(reqJson, "shopId", "请求报文中未包含shopId");
        Assert.hasKeyAndValue(reqJson, "carNum", "请求报文中未包含carNum");
        Assert.hasKeyAndValue(reqJson, "giveWay", "请求报文中未包含giveWay");
    }
    @Override
    @Java110Transactional
    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
        ParkingCouponShopDto parkingCouponShopDto = new ParkingCouponShopDto();
        parkingCouponShopDto.setCouponShopId(reqJson.getString("couponShopId"));
        parkingCouponShopDto.setShopId(reqJson.getString("shopId"));
        List<ParkingCouponShopDto> parkingCouponShopDtos = parkingCouponShopV1InnerServiceSMOImpl.queryParkingCouponShops(parkingCouponShopDto);
        Assert.listOnlyOne(parkingCouponShopDtos, "停车劵不存在");
        int quantity = Integer.parseInt(parkingCouponShopDtos.get(0).getQuantity());
        if (quantity < 1) {
            throw new CmdException("停车劵不足,请购买");
        }
        int flag = 0;
        // 这里加全局锁 防止 并发
        String requestId = DistributedLock.getLockUUID();
        String key = this.getClass().getSimpleName() + reqJson.getString("couponShopId");
        try {
            DistributedLock.waitGetDistributedLock(key, requestId);
            parkingCouponShopDto = new ParkingCouponShopDto();
            parkingCouponShopDto.setCouponShopId(reqJson.getString("couponShopId"));
            parkingCouponShopDto.setShopId(reqJson.getString("shopId"));
            parkingCouponShopDtos = parkingCouponShopV1InnerServiceSMOImpl.queryParkingCouponShops(parkingCouponShopDto);
            quantity = Integer.parseInt(parkingCouponShopDtos.get(0).getQuantity());
            if (quantity < 1) {
                throw new CmdException("停车劵不足,请购买");
            }
            ParkingCouponShopPo parkingCouponShopPo = new ParkingCouponShopPo();
            parkingCouponShopPo.setCouponShopId(parkingCouponShopDtos.get(0).getCouponShopId());
            parkingCouponShopPo.setQuantity((quantity - 1) + "");
            flag = parkingCouponShopV1InnerServiceSMOImpl.updateParkingCouponShop(parkingCouponShopPo);
            if (flag < 1) {
                throw new CmdException("优惠券递减失败");
            }
        } finally {
            DistributedLock.releaseDistributedLock(requestId, key);
        }
        ParkingCouponCarPo parkingCouponCarPo = BeanConvertUtil.covertBean(reqJson, ParkingCouponCarPo.class);
        parkingCouponCarPo.setPccId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
        parkingCouponCarPo.setCouponId(parkingCouponShopDtos.get(0).getCouponId());
        parkingCouponCarPo.setCommunityId(parkingCouponShopDtos.get(0).getCommunityId());
        parkingCouponCarPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
        parkingCouponCarPo.setEndTime(DateUtil.getAddDayString(DateUtil.getCurrentDate(),DateUtil.DATE_FORMATE_STRING_A,1));
        parkingCouponCarPo.setPaId(parkingCouponShopDtos.get(0).getPaId());
        parkingCouponCarPo.setState(ParkingCouponCarDto.STATE_WAIT);
        parkingCouponCarPo.setTypeCd(parkingCouponShopDtos.get(0).getTypeCd());
        parkingCouponCarPo.setValue(parkingCouponShopDtos.get(0).getValue());
        flag = parkingCouponCarV1InnerServiceSMOImpl.saveParkingCouponCar(parkingCouponCarPo);
        if (flag < 1) {
            throw new CmdException("保存数据失败");
        }
        cmdDataFlowContext.setResponseEntity(ResultVo.success());
    }
}
service-acct/src/main/java/com/java110/acct/cmd/parkingCouponCar/SaveParkingCouponCarCmd.java
File was deleted