| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.dsh.account.dto.BindDto; |
| | | import com.dsh.account.dto.IntroduceUserQuery; |
| | | import com.dsh.account.dto.SelectDto; |
| | | import com.dsh.account.dto.UpdateInfoDto; |
| | | import com.dsh.account.entity.*; |
| | |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.models.auth.In; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | |
| | | @Autowired |
| | | private TCourseInfoRecordService courseInfoRecordService; |
| | | |
| | | @Autowired |
| | | private TAppGiftService appGiftService; |
| | | /** |
| | | * 根据介绍有礼id查询当前活动参与次数 |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/base/appUser/getActivityPeoples") |
| | | public Integer getActivityPeoples(@RequestBody Integer activityId){ |
| | | int activityId1 = appGiftService.list(new QueryWrapper<TAppGift>().eq("activityId", activityId)) |
| | | .size(); |
| | | return activityId1; |
| | | } |
| | | /** |
| | | * 介绍有礼 -- 参与用户列表 |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/base/appUser/queryIntroduceAll") |
| | | public List<IntroduceUser> queryIntroduceAll(@RequestBody IntroduceUserQuery query){ |
| | | return appGiftService.queryIntroduceAll(query); |
| | | } |
| | | /** |
| | | * 获取所有用户 |
| | | */ |
New file |
| | |
| | | package com.dsh.account.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 介绍有礼-参与用户列表查询Query |
| | | */ |
| | | @Data |
| | | public class IntroduceUserQuery { |
| | | // 介绍有礼id |
| | | private Integer activityId; |
| | | // 分享用户姓名 |
| | | private String userName; |
| | | // 分享用户电话 |
| | | private String userPhone; |
| | | // 被分享用户姓名 |
| | | private String shareUserName; |
| | | // 被分享用户电话 |
| | | private String shareUserPhone; |
| | | } |
New file |
| | |
| | | package com.dsh.account.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.experimental.Accessors; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * <p> |
| | | * 介绍奖励 |
| | | * </p> |
| | | * |
| | | * @author jqs |
| | | * @since 2023-06-29 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | @Accessors(chain = true) |
| | | @TableName("t_introduce_rewards") |
| | | public class IntroduceRewards extends Model<IntroduceRewards> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 省 |
| | | */ |
| | | @TableField("province") |
| | | private String province; |
| | | /** |
| | | * 省编号 |
| | | */ |
| | | @TableField("provinceCode") |
| | | private String provinceCode; |
| | | /** |
| | | * 市 |
| | | */ |
| | | @TableField("city") |
| | | private String city; |
| | | /** |
| | | * 市编号 |
| | | */ |
| | | @TableField("cityCode") |
| | | private String cityCode; |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @TableField("startTime") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8") |
| | | private Date startTime; |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @TableField("endTime") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8") |
| | | private Date endTime; |
| | | /** |
| | | * 赠送课时 |
| | | */ |
| | | @TableField("giveClass") |
| | | private Integer giveClass; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
| | | private Date insertTime; |
| | | |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.dsh.account.entity; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Data; |
| | | import lombok.NoArgsConstructor; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 介绍有礼参与用户实体类 |
| | | */ |
| | | @Data |
| | | @AllArgsConstructor |
| | | @NoArgsConstructor |
| | | public class IntroduceUser { |
| | | private Integer id; |
| | | |
| | | // 新用户id |
| | | private Integer shareUserId; |
| | | // 新用户名称 |
| | | private String shareUserName; |
| | | // 新用户电话 |
| | | private String shareUserPhone; |
| | | |
| | | // 推荐人id |
| | | private Integer userId; |
| | | // 推荐人电话 |
| | | private String userPhone; |
| | | // 推荐人名称 |
| | | private String userName; |
| | | // 活动id |
| | | private Integer activityId; |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
| | | private Date insertTime; |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.experimental.Accessors; |
| | |
| | | private Integer id; |
| | | |
| | | /** |
| | | * 用户id |
| | | * 用户id 推荐人id |
| | | */ |
| | | @TableField("userId") |
| | | private Integer userId; |
| | | /** |
| | | * 用户姓名 推荐人姓名 |
| | | */ |
| | | @TableField("userName") |
| | | private String userName; |
| | | /** |
| | | * 用户电话 推荐人电话 |
| | | */ |
| | | @TableField("userPhone") |
| | | private String userPhone; |
| | | |
| | | /** |
| | | * 未分配课时数 |
| | | */ |
| | | private Integer num; |
| | | |
| | | /** |
| | | * 注册用户id |
| | | */ |
| | | @TableField("shareUserId") |
| | | private Integer shareUserId; |
| | | /** |
| | | * 注册用户姓名 |
| | | */ |
| | | @TableField("shareUserName") |
| | | private String shareUserName; |
| | | /** |
| | | * 注册用户电话 |
| | | */ |
| | | @TableField("shareUserPhone") |
| | | private String shareUserPhone; |
| | | /** |
| | | * 介绍有礼活动id |
| | | */ |
| | | @TableField("activityId") |
| | | private Integer activityId; |
| | | |
| | | /** |
| | | * 介绍有礼活动id |
| | | */ |
| | | @TableField("insertTime") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
| | | private Date insertTime; |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | |
| | | package com.dsh.account.feignclient.activity; |
| | | |
| | | |
| | | import com.dsh.account.entity.IntroduceRewards; |
| | | import com.dsh.account.feignclient.activity.model.IntrduceOfUserRequest; |
| | | import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | |
| | | public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody IntrduceOfUserRequest request); |
| | | |
| | | @PostMapping("/base/introduce/getGiftList") |
| | | Integer getGiftList(@RequestBody String cityCode); |
| | | IntroduceRewards getGiftList(@RequestBody String cityCode); |
| | | |
| | | |
| | | } |
| | |
| | | package com.dsh.account.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dsh.account.dto.IntroduceUserQuery; |
| | | import com.dsh.account.entity.IntroduceUser; |
| | | import com.dsh.account.entity.TAppGift; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | */ |
| | | public interface TAppGiftMapper extends BaseMapper<TAppGift> { |
| | | |
| | | List<IntroduceUser> queryIntroduceAll(@Param("query") IntroduceUserQuery query); |
| | | |
| | | } |
| | |
| | | package com.dsh.account.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.dsh.account.dto.IntroduceUserQuery; |
| | | import com.dsh.account.entity.IntroduceUser; |
| | | import com.dsh.account.entity.TAppGift; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | Integer weeksOfAddHours(Long packetId,Integer appUserId,Integer num); |
| | | |
| | | |
| | | List<IntroduceUser> queryIntroduceAll(IntroduceUserQuery query); |
| | | |
| | | } |
| | |
| | | package com.dsh.account.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.dsh.account.dto.IntroduceUserQuery; |
| | | import com.dsh.account.entity.IntroduceUser; |
| | | import com.dsh.account.entity.TAppGift; |
| | | import com.dsh.account.feignclient.course.CourseListClient; |
| | | import com.dsh.account.feignclient.course.CoursePaymentClient; |
| | |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | public class TAppGiftServiceImpl extends ServiceImpl<TAppGiftMapper, TAppGift> implements TAppGiftService { |
| | | @Autowired |
| | | private CoursePaymentClient coursePaymentClient; |
| | | @Autowired |
| | | private TAppGiftMapper mapper; |
| | | |
| | | @Override |
| | | public Integer weeksOfAddHours(Long packetId,Integer appUserId,Integer num) { |
| | | Integer b = coursePaymentClient.sendHours(packetId+"_"+appUserId+"_"+num); |
| | | return b; |
| | | } |
| | | |
| | | @Override |
| | | public List<IntroduceUser> queryIntroduceAll(IntroduceUserQuery query) { |
| | | return mapper.queryIntroduceAll(query); |
| | | } |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public ResultUtil addAppUser(AddAppUserVo addAppUserVo) throws Exception { |
| | | TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", addAppUserVo.getPhone()).ne("state", 3)); |
| | | TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>() |
| | | .eq("phone", addAppUserVo.getPhone()) |
| | | .ne("state", 3)); |
| | | if(null != tAppUser){ |
| | | return ResultUtil.error("账号已存在"); |
| | | } |
| | |
| | | tAppUser.setIsVip(0); |
| | | tAppUser.setState(1); |
| | | tAppUser.setInsertTime(new Date()); |
| | | |
| | | |
| | | |
| | | // 介绍有礼 |
| | | if(addAppUserVo.getReferralUserId()!=null || ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())){ |
| | | if(ToolUtil.isEmpty(addAppUserVo.getLat()) || ToolUtil.isEmpty(addAppUserVo.getLon())){ |
| | | return ResultUtil.error("请先开启定位", ""); |
| | | } |
| | | Map<String, String> geocode = gdMapGeocodingUtil.geocode(addAppUserVo.getLon(), addAppUserVo.getLat()); |
| | | Integer num=0; |
| | | if(null != geocode){ |
| | | String province = geocode.get("province"); |
| | | String provinceCode = geocode.get("provinceCode"); |
| | | String city = geocode.get("city"); |
| | | String cityCode = geocode.get("cityCode"); |
| | | num = introduceRewardsClient.getGiftList(cityCode); |
| | | } |
| | | if(ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())){ |
| | | List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, addAppUserVo.getInvitePhone())); |
| | | if(tAppUsers.size()>0){ |
| | | addAppUserVo.setReferralUserId(tAppUsers.get(0).getId()); |
| | | // 注册用户 |
| | | int insert = this.baseMapper.insert(tAppUser); |
| | | // 介绍有礼 |
| | | if(addAppUserVo.getReferralUserId()!=null || ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())){ |
| | | if(ToolUtil.isEmpty(addAppUserVo.getLat()) || ToolUtil.isEmpty(addAppUserVo.getLon())){ |
| | | return ResultUtil.error("请先开启定位", ""); |
| | | } |
| | | Map<String, String> geocode = gdMapGeocodingUtil.geocode(addAppUserVo.getLon(), addAppUserVo.getLat()); |
| | | Integer num=0; |
| | | Integer activityId=null; |
| | | if(null != geocode){ |
| | | String province = geocode.get("province"); |
| | | String provinceCode = geocode.get("provinceCode"); |
| | | String city = geocode.get("city"); |
| | | String cityCode = geocode.get("cityCode"); |
| | | // 根据所在市code 查询是否有介绍有礼活动 |
| | | IntroduceRewards res = introduceRewardsClient.getGiftList(cityCode); |
| | | if (res!=null){ |
| | | num = res.getGiveClass(); |
| | | activityId = res.getId(); |
| | | if(ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())){ |
| | | List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>() |
| | | .eq(TAppUser::getPhone, addAppUserVo.getInvitePhone())); |
| | | if(tAppUsers.size()>0){ |
| | | addAppUserVo.setReferralUserId(tAppUsers.get(0).getId()); |
| | | } |
| | | } |
| | | if (num!=0){ |
| | | TAppGift tAppGift = new TAppGift(); |
| | | TAppUser phone = appUserService.getOne(new QueryWrapper<TAppUser>() |
| | | .eq("phone", addAppUserVo.getInvitePhone())); |
| | | if (phone == null){ |
| | | return ResultUtil.error("推荐人手机号未注册玩湃会员!"); |
| | | }else{ |
| | | tAppGift.setUserName(phone.getName()); |
| | | tAppGift.setUserPhone(phone.getPhone()); |
| | | } |
| | | tAppGift.setUserId(addAppUserVo.getReferralUserId()); |
| | | tAppGift.setNum(num); |
| | | tAppGift.setShareUserId(tAppUser.getId()); |
| | | tAppGift.setShareUserName(tAppUser.getPhone()); |
| | | tAppGift.setShareUserPhone(tAppUser.getPhone()); |
| | | tAppGift.setActivityId(activityId); |
| | | tAppGift.setInsertTime(new Date()); |
| | | appGiftService.save(tAppGift); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, addAppUserVo.getReferralUserId())); |
| | | if(one!=null){ |
| | | one.setNum(one.getNum()+num); |
| | | appGiftService.updateById(one); |
| | | }else { |
| | | TAppGift tAppGift = new TAppGift(); |
| | | tAppGift.setUserId(addAppUserVo.getReferralUserId()); |
| | | tAppGift.setNum(num); |
| | | appGiftService.save(tAppGift); |
| | | } |
| | | |
| | | } |
| | | this.baseMapper.insert(tAppUser); |
| | | |
| | | |
| | | |
| | | return ResultUtil.success(); |
| | | } |
| | |
| | | String provinceCode = geocode.get("provinceCode"); |
| | | String city = geocode.get("city"); |
| | | String cityCode = geocode.get("cityCode"); |
| | | num = introduceRewardsClient.getGiftList(cityCode); |
| | | IntroduceRewards giftList = introduceRewardsClient.getGiftList(cityCode); |
| | | num = giftList.getGiveClass(); |
| | | } |
| | | Integer userId=null; |
| | | if(ToolUtil.isNotEmpty(dto.getInvitePhone())){ |
| | |
| | | <mapper namespace="com.dsh.account.mapper.TAppGiftMapper"> |
| | | |
| | | |
| | | <select id="queryIntroduceAll" resultType="com.dsh.account.entity.IntroduceUser"> |
| | | select t1.* from t_app_gift t1 |
| | | <where> |
| | | <if test="query.shareUserName!=null and query.shareUserName!= ''"> |
| | | and t1.shareUserName like concat('%',#{query.shareUserName},'%') |
| | | </if> |
| | | <if test="query.shareUserphone!=null and query.shareUserphone!= ''"> |
| | | and t1.shareUserPhone like concat('%',#{query.shareUserPhone},'%') |
| | | </if> |
| | | <if test="query.userName!=null and query.userName!= ''"> |
| | | and t1.userName like concat('%',#{query.userName},'%') |
| | | </if> |
| | | <if test="query.userPhone!=null and query.userPhone!= ''"> |
| | | and t1.userPhone like concat('%',#{query.userPhone},'%') |
| | | </if> |
| | | <if test="query.activityId!=null and query.activityId!= ''"> |
| | | and t1.activityId = #{query.activityId} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | </mapper> |
| | |
| | | // 获取到优惠券id 查询这个优惠券指定了哪些城市 |
| | | Integer id = Integer.parseInt(String.valueOf(map.get("id"))); |
| | | // 获取到运营商管理的省和市 |
| | | List<TOperatorCity> cityByOperatorId = operatorClient.getCityByOperatorId(ofSearch.getOperatorId()); |
| | | List<TOperatorCity> cityByOperatorId = ofSearch.getOperatorCities(); |
| | | // 拿到运营商市的code集合 |
| | | List<String> collect = cityByOperatorId.stream().filter(t -> t.getPid() != 0) |
| | | .map(tOperatorCity -> Integer.toString(tOperatorCity.getCode())) |
| | |
| | | @ResponseBody |
| | | @PostMapping("/base/coupon/queryCouponListSearch1") |
| | | public List<Map<String,Object>> getCouponListOfSearch1(@RequestBody CouponListOfSearch ofSearch){ |
| | | // 查询全国通用的优惠券和包含指定门店的优惠券 |
| | | List<Map<String, Object>> mapList = couponService.queryCouponListOfSearch1(ofSearch); |
| | | |
| | | Date currentDate = new Date(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String currentDateStr = sdf.format(currentDate); |
| | | |
| | | // Iterate over the mapList and remove entries where endTime is less than the current date |
| | | Iterator<Map<String, Object>> iterator = mapList.iterator(); |
| | | while (iterator.hasNext()) { |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.dsh.activity.entity.BodySideAppointment; |
| | | import com.dsh.activity.entity.IntroduceRewards; |
| | | import com.dsh.activity.feignclient.account.AppUserClient; |
| | | import com.dsh.activity.feignclient.model.IntrduceOfUserRequest; |
| | | import com.dsh.activity.feignclient.model.PurchaseRecordVo; |
| | | import com.dsh.activity.feignclient.other.model.Store; |
| | |
| | | @Autowired |
| | | private IntroduceUserService introduceUserService; |
| | | |
| | | |
| | | private final SimpleDateFormat mat = new SimpleDateFormat("MM-dd HH:mm"); |
| | | |
| | | /** |
| | |
| | | Date date = new Date(); |
| | | List<IntroduceVO> introduceVOS = idrService.listAll(query); |
| | | for (IntroduceVO introduceVO : introduceVOS) { |
| | | |
| | | Date startTime = introduceVO.getStartTime(); |
| | | Date endTime = introduceVO.getEndTime(); |
| | | if (date.after(startTime) && date.before(endTime)) { |
| | |
| | | } |
| | | |
| | | @PostMapping("/base/introduce/getGiftList") |
| | | public Integer getGiftList(@RequestBody String cityCode){ |
| | | List<IntroduceRewards> list = idrService.list(new LambdaQueryWrapper<IntroduceRewards>().eq(IntroduceRewards::getCityCode,cityCode).le(IntroduceRewards::getStartTime,new Date()).ge(IntroduceRewards::getEndTime,new Date())); |
| | | int sum = list.stream().mapToInt(IntroduceRewards::getGiveClass).sum(); |
| | | return sum; |
| | | @ResponseBody |
| | | public IntroduceRewards getGiftList(@RequestBody String cityCode){ |
| | | List<IntroduceRewards> list = idrService.list(new LambdaQueryWrapper<IntroduceRewards>() |
| | | .eq(IntroduceRewards::getCityCode,cityCode) |
| | | .le(IntroduceRewards::getStartTime,new Date()) |
| | | .ge(IntroduceRewards::getEndTime,new Date()) |
| | | .orderByDesc(IntroduceRewards::getInsertTime) |
| | | .last("LIMIT 1")); |
| | | if (list.size()>0){ |
| | | return list.get(0); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.dsh.activity.feignclient.other.model.TOperatorCity; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | |
| | | private Integer operatorId; |
| | | private Integer objType; |
| | | private List<Integer> storeIds; |
| | | // 运营商使用 |
| | | private List<TOperatorCity> operatorCities; |
| | | } |
| | |
| | | <if test="cityCode != null"> |
| | | and id in( |
| | | SELECT DISTINCT couponId FROM |
| | | |
| | | (SELECT DISTINCT couponId |
| | | from t_coupon_store |
| | | WHERE storeId = #{storeId} |
| | |
| | | import com.dsh.course.dto.StudentSearch; |
| | | import com.dsh.course.dto.TStudentDto; |
| | | import com.dsh.course.feignClient.other.model.SiteChangeStateVO; |
| | | import com.dsh.guns.modular.system.model.AdvertisementChangeStateDTO; |
| | | import com.dsh.guns.modular.system.model.AppUserByNameAndPhoneDTO; |
| | | import com.dsh.guns.modular.system.model.TStudent; |
| | | import com.dsh.guns.modular.system.model.*; |
| | | import com.dsh.guns.modular.system.model.dto.GiftSearchDto; |
| | | import com.dsh.guns.modular.system.model.dto.SelectDto; |
| | | import org.springframework.cloud.openfeign.FeignClient; |
| | |
| | | |
| | | @FeignClient("mb-cloud-account") |
| | | public interface AppUserClient { |
| | | |
| | | |
| | | /** |
| | | * 根据介绍有礼id查询当前活动参与次数 |
| | | */ |
| | | @PostMapping("/base/appUser/getActivityPeoples") |
| | | Integer getActivityPeoples(@RequestBody Integer activityId); |
| | | /** |
| | | * 介绍有礼 -- 参与用户列表 |
| | | */ |
| | | @PostMapping("/base/appUser/queryIntroduceAll") |
| | | List<IntroduceUser> queryIntroduceAll(@RequestBody IntroduceUserQuery query); |
| | | /** |
| | | * 根据用户姓名和电话模糊查询 |
| | | */ |
| | |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.dsh.guns.modular.system.model.TOperatorCity; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | |
| | | private Integer operatorId; |
| | | private Integer objType; |
| | | private List<Integer> storeIds; |
| | | // 运营商使用 |
| | | private List<TOperatorCity> operatorCities; |
| | | |
| | | } |
| | |
| | | private IOperatorAuthService operatorAuthService; |
| | | |
| | | |
| | | /** |
| | | * 根据运营商ID 获取运营商管理的省市 |
| | | */ |
| | | @RequestMapping(value = "/getCityByOperatorId") |
| | | @ResponseBody |
| | | public List<TOperatorCity> getCityByOperatorId(@RequestBody Integer operatorId) { |
| | | return operatorCityService.list(new QueryWrapper<TOperatorCity>().eq("operatorId",operatorId)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 跳转运营商管理首页 |
| | |
| | | ofSearch.setStoreIds(storeIds); |
| | | ofSearch.setObjType(UserExt.getUser().getObjectType()); |
| | | ofSearch.setOperatorId(UserExt.getUser().getObjectId()); |
| | | // 查询当前门店属于哪个运营商 |
| | | List<TOperatorCity> operatorId = operatorCityService.list(new QueryWrapper<TOperatorCity>().eq("operatorId", UserExt.getUser().getObjectId())); |
| | | ofSearch.setOperatorCities(operatorId); |
| | | } |
| | | if (UserExt.getUser().getObjectType()==3) { |
| | | ofSearch.setStoreId(UserExt.getUser().getObjectId()); |
| | |
| | | |
| | | return couponListOfSearch; |
| | | } |
| | | /** |
| | | * 根据运营商ID 获取运营商管理的省市 |
| | | */ |
| | | |
| | | /** |
| | | * 获取 优惠券管理 |
| | |
| | | ofSearch.setState(state); |
| | | ofSearch.setCityCode(cityCode); |
| | | ofSearch.setStoreId(storeId); |
| | | ofSearch.setObjType(UserExt.getUser().getObjectType()); |
| | | ofSearch.setOperatorId(UserExt.getUser().getObjectId()); |
| | | return client.getCouponListOfSearch1(ofSearch); |
| | | } |
| | | |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.dsh.course.feignClient.account.AppUserClient; |
| | | import com.dsh.course.feignClient.account.model.TAppUser; |
| | | import com.dsh.course.feignClient.activity.IntroduceClient; |
| | | import com.dsh.course.feignClient.activity.model.IntroduceRewards; |
| | |
| | | private ICityService cityService; |
| | | @Autowired |
| | | private IntroduceClient introduceClient; |
| | | @Autowired |
| | | private AppUserClient appUserClient; |
| | | |
| | | /** |
| | | * 上/下架 1为上架 2为下架 |
| | |
| | | model.addAttribute("id",id); |
| | | return PREFIX + "introduce_user.html"; |
| | | } |
| | | |
| | | /** |
| | | * 介绍有礼添加页 |
| | | */ |
| | |
| | | @RequestMapping(value = "/listAll") |
| | | @ResponseBody |
| | | public List<IntroduceVO> listAll(IntroduceQuery query) { |
| | | |
| | | return introduceClient.listAll(query); |
| | | List<IntroduceVO> list = introduceClient.listAll(query); |
| | | for (IntroduceVO introduceVO : list) { |
| | | Integer activityPeoples = appUserClient.getActivityPeoples(introduceVO.getId()); |
| | | introduceVO.setNumber(activityPeoples); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 获取介绍有礼记录列表 |
| | | * 获取介绍有礼--参与用户记录列表 |
| | | */ |
| | | @RequestMapping(value = "/listAllUser") |
| | | @ResponseBody |
| | | public List<IntroduceUser> listAll(IntroduceUserQuery query) { |
| | | return introduceClient.listAllUser(query); |
| | | return appUserClient.queryIntroduceAll(query); |
| | | } |
| | | /** |
| | | * 新增介绍有礼记录表 |
| | |
| | | private IUserService userService; |
| | | |
| | | |
| | | // 添加SUTU |
| | | @RequestMapping("/tShop_addDevice/{id}") |
| | | public String addDevice(@PathVariable("id") Integer id,Model model) { |
| | | // 查询门店下的所有场地 |
| | | List<TSite> list = siteService.list(new QueryWrapper<TSite>().eq("storeId", id)); |
| | | // 门店id |
| | | model.addAttribute("id",id); |
| | | model.addAttribute("list",list); |
| | | return PREFIX + "TShop_add_device.html"; |
| | | } |
| | | @RequestMapping("/addDevice") |
| | | public Object addDevice(Integer id,Integer siteId,String device) { |
| | | public Object addDevice(Integer id,String device) { |
| | | HashMap<String, String> map = new HashMap<>(); |
| | | map.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map.put("space_id",id.toString()); |
| | | map.put("device_id",device); |
| | | map.put("region_id",siteId+""); |
| | | map.put("name",device); |
| | | map.put("city_code",""); |
| | | // 添加门禁 |
| | | String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map); |
| | | String s1 = HttpRequestUtil.postRequest |
| | | ("https://try.daowepark.com/v7/user_api/general/addSpaceSutu", map); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | |
| | | storeConfigs.add(storeConfig); |
| | | } |
| | | storeConfigService.saveBatch(storeConfigs); |
| | | // 添加场地 |
| | | TSite tSite = new TSite(); |
| | | tSite.setName(tStore.getName()); |
| | | tSite.setStoreId(tStore.getId()); |
| | | tSite.setSign(1); |
| | | siteService.save(tSite); |
| | | |
| | | HashMap<String, String> mapSite = new HashMap<>(); |
| | | mapSite.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | mapSite.put("name",tStore.getName()); |
| | | mapSite.put("space_id",tStore.getId().toString()); |
| | | mapSite.put("area_id",tSite.getId().toString()); |
| | | HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addSpaceArea", mapSite); |
| | | // 添加门店 |
| | | HashMap<String, String> map1 = new HashMap<>(); |
| | | map1.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map1.put("name",tStore.getName()); |
| | | map1.put("short_name",tStore.getName()); |
| | | map1.put("location",tStore.getCity()); |
| | | map1.put("address",tStore.getAddress()); |
| | | map1.put("telephone",tStore.getPhone()); |
| | | map1.put("linkman",userName); |
| | | map1.put("business_time","[{\"start_time\":\""+tStore.getStartTime()+"\",\"close_time\":\""+tStore.getEndTime()+"\"}]"); |
| | | map1.put("logo",tStore.getCoverDrawing()); |
| | | map1.put("remark",tStore.getIntroduce()); |
| | | map1.put("lat",tStore.getLat()); |
| | | map1.put("lng",tStore.getLon()); |
| | | map1.put("space_id",tStore.getId().toString()); |
| | | String result = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addSpace", map1); |
| | | System.out.println(result); |
| | | |
| | | |
| | | // // 添加门店 |
| | | // HashMap<String, String> map1 = new HashMap<>(); |
| | | // map1.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | // map1.put("name",tStore.getName()); |
| | | // map1.put("short_name",tStore.getName()); |
| | | // map1.put("location",tStore.getCity()); |
| | | // map1.put("address",tStore.getAddress()); |
| | | // map1.put("telephone",tStore.getPhone()); |
| | | // map1.put("linkman",userName); |
| | | // map1.put("business_time","[{\"start_time\":\""+tStore.getStartTime()+"\",\"close_time\":\""+tStore.getEndTime()+"\"}]"); |
| | | // map1.put("logo",tStore.getCoverDrawing()); |
| | | // map1.put("remark",tStore.getIntroduce()); |
| | | // map1.put("lat",tStore.getLat()); |
| | | // map1.put("lng",tStore.getLon()); |
| | | // map1.put("space_id",tStore.getId().toString()); |
| | | // String result = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addSpace", map1); |
| | | // System.out.println(result); |
| | | |
| | | for (String s : tStore.getIds().split(",")) { |
| | | HashMap<String, String> map = new HashMap<>(); |
| | | map.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map.put("space_id",tStore.getId()+""); |
| | | map.put("device_id",s); |
| | | map.put("region_id",tSite.getId().toString()); |
| | | // 添加门禁 |
| | | String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map); |
| | | System.out.println(s1); |
| | | } |
| | | |
| | | |
| | | return new SuccessTip<>(); |
| | |
| | | HashMap<String, String> map = new HashMap<>(); |
| | | map.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map.put("name",site.getName()); |
| | | map.put("space_id",integer1.toString()); |
| | | map.put("area_id",store.getId().toString()); |
| | | map.put("space_id",store.getId().toString()); |
| | | map.put("area_id",integer1.toString()); |
| | | String s = HttpRequestUtil.postRequest |
| | | ("https://try.daowepark.com/v7/user_api/general/addSpaceArea", map); |
| | | // 添加门禁 |
| | |
| | | for (String s1 : site.getIds().split(",")) { |
| | | HashMap<String, String> map1 = new HashMap<>(); |
| | | map1.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map1.put("space_id", integer1 + ""); |
| | | map1.put("space_id", store.getId().toString() + ""); |
| | | map1.put("device_id", s1); |
| | | map1.put("region_id", store.getId().toString() + ""); |
| | | map1.put("region_id", integer1 + ""); |
| | | String s2 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map1); |
| | | System.out.println("添加闸机:" + s2); |
| | | } |
| | |
| | | @NoArgsConstructor |
| | | public class IntroduceUser { |
| | | private Integer id; |
| | | // 分享用户id |
| | | private Integer shareUsers; |
| | | private String shareUsersName; |
| | | private String shareUsersphone; |
| | | private String userName; |
| | | |
| | | // 新用户id |
| | | private Integer shareUserId; |
| | | // 新用户名称 |
| | | private String shareUserName; |
| | | // 新用户电话 |
| | | private String shareUserPhone; |
| | | |
| | | // 推荐人id |
| | | private Integer userId; |
| | | // 推荐人电话 |
| | | private String userPhone; |
| | | private Integer introduceRewards; |
| | | // 推荐人名称 |
| | | private String userName; |
| | | // 活动id |
| | | private Integer activityId; |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
| | | private Date registerTime; |
| | | private Date insertTime; |
| | | } |
| | |
| | | // 介绍有礼id |
| | | private Integer introduceId; |
| | | // 分享用户姓名 |
| | | private String shareUsersName; |
| | | private String shareUserName; |
| | | // 分享用户i淡化 |
| | | private String shareUsersphone; |
| | | private String shareUserPhone; |
| | | // 被分享用户姓名 |
| | | private Integer userName; |
| | | private String userName; |
| | | // 被分享用户电话 |
| | | private Integer userPhone; |
| | | private String userPhone; |
| | | } |
| | |
| | | for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) { |
| | | integers.add(coursePackageScheduling.getId()); |
| | | coursePackageScheduling.setCourseId(courseId); |
| | | coursePackageScheduling.setIntegral(integral); |
| | | } |
| | | |
| | | coursePackageSchedulingClient.editCoursePackageScheduling(coursePackageSchedulings); |
| | |
| | | <div class="col-sm-4"> |
| | | <select class="form-control" id="siteId" name="siteId" > |
| | | <option >请选择场地</option> |
| | | |
| | | |
| | | @for(obj in site){ |
| | | <option value="${obj.id}" data-custom-data="1">${obj.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <div class="form-group" id="half1" hidden="hidden"> |
| | | <label class="col-sm-3 control-label">*选择半场:</label> |
| | | <div class="col-sm-4"> |
| | | <select class="form-control" name="half" id="half"> |
| | | |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*预约时间段:</label> |
| | | <div class="col-sm-5" id="ttt1"> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group" id="half1" hidden="hidden"> |
| | | <label class="col-sm-3 control-label">*选择半场:</label> |
| | | <div class="col-sm-4"> |
| | | <select class="form-control" name="half" id="half"> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">现金价格:</label> |
| | | <div class="col-sm-4"> |
| | | <input class="form-control " id="cash" name="cash" type="text" disabled> |
| | | |
| | | |
| | | </div> |
| | | 元 |
| | | </div> |
| | |
| | | <div class="col-sm-12"> |
| | | <div class="row"> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="shareUsersName" name="分享用户" /> |
| | | <#NameCon id="userName" name="分享用户" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="shareUsersphone" name="分享用户联系方式" /> |
| | | <#NameCon id="userPhone" name="分享用户联系方式" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userName" name="被分享用户" /> |
| | | <#NameCon id="shareUserName" name="被分享用户" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#NameCon id="userPhone" name="被分享用户联系方式" /> |
| | | <#NameCon id="shareUserPhone" name="被分享用户联系方式" /> |
| | | </div> |
| | | <div class="col-sm-3"> |
| | | <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/> |
| | |
| | | @} |
| | | <#button name="免费福利" icon="fa-remove" clickFun="TCompetition.gift()" space="true"/> |
| | | <#button name="首页设置" icon="fa-remove" clickFun="TCompetition.indexSet()" space="true"/> |
| | | <#button name="门禁设置" icon="fa-plus" clickFun="TCompetition.addDevice()" space="true"/> |
| | | <#button name="SUTU设置" icon="fa-plus" clickFun="TCompetition.addDevice()" space="true"/> |
| | | |
| | | </div> |
| | | <#table id="TCompetitionTable"/> |
| | |
| | | <div class="ibox-content"> |
| | | <div class="form-horizontal" id="carInfoForm"> |
| | | <input id="id" value="${id}" hidden> |
| | | <div class="form-group" id="cityCode"> |
| | | <label class="col-sm-3 control-label">*选择场地:</label> |
| | | <div class="col-sm-9"> |
| | | <select class="form-control" id="site" name="site" > |
| | | <option value="">选择场地</option> |
| | | @for(i in list){ |
| | | <option value="${i.id}" >${i.name}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <#input id="device" name="*添加入园闸机" placeholder= "请输入入园闸机id" type="text"/> |
| | | <#input id="device" name="*添加SUTU名称" placeholder= "请输入SUTU名称" type="text"/> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10 col-sm-offset-5"> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCompetition.addSubmit3()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCompetition.close()"/> |
| | | <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit3()"/> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | $("#t1").hide() |
| | | $("#t2").hide() |
| | | $("#t3").hide() |
| | | $("#turnId").hide() |
| | | }else { |
| | | $("#t1").show() |
| | | $("#t2").show() |
| | |
| | | $("#t1").hide() |
| | | $("#t2").hide() |
| | | $("#t3").hide() |
| | | $("#turnId").hide() |
| | | } |
| | | } |
| | | </script> |
| | |
| | | return [ |
| | | {field: 'selectItem', checkbox: true}, |
| | | {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '分享用户', field: 'shareUsersName', visible: true, align: 'center', valign: 'middle',}, |
| | | {title: '联系方式', field: 'shareUsersphone', visible: true, align: 'center', valign: 'middle',}, |
| | | {title: '被分享用户', field: 'userName', visible: true, align: 'center', valign: 'middle',}, |
| | | {title: '分享用户', field: 'userName', visible: true, align: 'center', valign: 'middle',}, |
| | | {title: '联系方式', field: 'userPhone', visible: true, align: 'center', valign: 'middle',}, |
| | | {title: '注册时间', field: 'registerTime', visible: true, align: 'center', valign: 'middle',} |
| | | {title: '被分享用户', field: 'shareUserName', visible: true, align: 'center', valign: 'middle',}, |
| | | {title: '联系方式', field: 'shareUserPhone', visible: true, align: 'center', valign: 'middle',}, |
| | | {title: '注册时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle',} |
| | | ]; |
| | | }; |
| | | |
| | |
| | | */ |
| | | TCompetition.search = function () { |
| | | var queryData = {}; |
| | | queryData['shareUsersName'] = $("#pCode").val(); |
| | | queryData['shareUsersphone'] = $("#cCode").val(); |
| | | queryData['userName'] = $("#activityState").val(); |
| | | queryData['userPhone'] = $("#createTime").val(); |
| | | queryData['introduceId'] = $("#id").val(); |
| | | queryData['userName'] = $("#userName").val(); |
| | | queryData['userPhone'] = $("#userPhone").val(); |
| | | queryData['shareUserName'] = $("#shareUserName").val(); |
| | | queryData['shareUserPhone'] = $("#shareUserPhone").val(); |
| | | queryData['activityId'] = $("#id").val(); |
| | | TCompetition.table.refresh({query: queryData}); |
| | | }; |
| | | |
| | | |
| | | TCompetition.resetSearch = function () { |
| | | $("#shareUsersName").val(""); |
| | | $("#shareUsersphone").val(""); |
| | | $("#userName").val(""); |
| | | $("#userPhone").val(""); |
| | | $("#shareUserName").val(""); |
| | | $("#shareUserPhone").val(""); |
| | | TCompetition.search(); |
| | | }; |
| | | |
| | |
| | | |
| | | this.clearData(); |
| | | this.collectData(); |
| | | |
| | | |
| | | |
| | | const quantityIssuedInput = document.getElementById('quantityIssued'); |
| | | const pickUpQuantityInput = document.getElementById('pickUpQuantity'); |
| | | |
| | |
| | | return |
| | | console.log('quantityIssued is not greater than pickUpQuantity.'); |
| | | } |
| | | |
| | | |
| | | |
| | | let typeAll = document.querySelector('input[name="type"]:checked').value; |
| | | if(typeAll==2){ |
| | | let pCode = $("#pCode").val() |
| | |
| | | var index = layer.open({ |
| | | type: 2, |
| | | title: language==1?'赠送积分':(language==2?'Add':'Tambahkan'), |
| | | area: ['50%', '50%'], //宽高 |
| | | area: ['60%', '60%'], //宽高 |
| | | fix: false, //不固定 |
| | | maxmin: true, |
| | | content: Feng.ctxPath + '/tIntegral/tIntegral_add' |
| | |
| | | } |
| | | TCarInfoDlg.addSubmit3 = function() { |
| | | var ajax = new $ax(Feng.ctxPath + "/tShop/addDevice", function(data){ |
| | | window.parent.TCompetition.table.refresh(); |
| | | console.log("调用方法") |
| | | TCarInfoDlg.close(); |
| | | }); |
| | | ajax.set("id",$("#id")); |
| | | ajax.set("siteId",$("#site")); |
| | | ajax.set("device",$("#device")); |
| | | ajax.start(); |
| | | } |
New file |
| | |
| | | package com.dsh.other.controller; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.dsh.other.entity.*; |
| | | import com.dsh.other.feignclient.model.*; |
| | | import com.dsh.other.model.BaseVo; |
| | | import com.dsh.other.model.ProvinceAndCityVo; |
| | | import com.dsh.other.model.QueryStoreList; |
| | | import com.dsh.other.model.StoreFreeBenefitVo; |
| | | import com.dsh.other.model.dto.siteDto.StoreInfoDto; |
| | | import com.dsh.other.service.*; |
| | | import com.dsh.other.util.GDMapGeocodingUtil; |
| | | import com.dsh.other.util.GeodesyUtil; |
| | | import com.dsh.other.util.ResultUtil; |
| | | import com.dsh.other.util.ToolUtil; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @RestController |
| | | @RequestMapping("") |
| | | public class OperatorController { |
| | | |
| | | @Autowired |
| | | private StoreService storeService; |
| | | |
| | | |
| | | @Autowired |
| | | private GDMapGeocodingUtil gdMapGeocodingUtil; |
| | | |
| | | @Autowired |
| | | private TStoreOtherService tStoreOtherService; |
| | | |
| | | @Autowired |
| | | private TBackRecordService backRecordService; |
| | | |
| | | |
| | | } |