Commit 4269fc23 authored by hanfeng's avatar hanfeng

Merge branch 'master_activity-hf' into base-modify

parents 44192651 7e1c94c2
......@@ -125,4 +125,5 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
return new TableResultResponse<T>(result.getTotal(), list);
}
}
package com.github.wxiaoqi.security.common.util;
import javax.servlet.http.HttpServletRequest;
public class UserAgentUtil {
/**
* 关键字: 微信浏览器
*/
public static final String KEY_WEIXIN_BROWSER = "micromessenger";
/**
* 判断是否微信浏览器
*
* @param user_agent
* @return
*/
public static boolean isWexinBrowser(HttpServletRequest request) {
// 可能会出现npe
String user_agent = "";
user_agent = request.getHeader("user-agent");
// 修改如下
return user_agent != null && user_agent.toLowerCase().indexOf(KEY_WEIXIN_BROWSER) > 0;
}
}
......@@ -106,9 +106,6 @@ USER_EXIST_CODE=5003
ORG_INSERT_FAILED_CODE=6001
6001=新增组织失败
VEHICLE_NOT_=6001
6001=新增组织失败
ORG_UPDATE_FAILED_CODE=6002
6002=更新组织信息失败
......
......@@ -131,6 +131,7 @@ public class GroupBiz extends BaseBiz<GroupMapper, Group> {
@CacheClear(keys = {"permission:menu","permission:u","app:permission:u"})
public void modifyAuthorityMenu(int groupId, String[] menus) {
resourceAuthorityMapper.deleteByAuthorityIdAndResourceType(groupId + "", AdminCommonConstant.RESOURCE_TYPE_MENU);
if (menus.length>0){
List<Menu> menuList = menuMapper.selectAll();
Map<String, String> map = new HashMap<String, String>();
for (Menu menu : menuList) {
......@@ -142,12 +143,15 @@ public class GroupBiz extends BaseBiz<GroupMapper, Group> {
for (String menuId : menus) {
findParentID(map, relationMenus, menuId);
}
for (String menuId : relationMenus) {
authority = new ResourceAuthority(AdminCommonConstant.AUTHORITY_TYPE_GROUP, AdminCommonConstant.RESOURCE_TYPE_MENU);
authority.setAuthorityId(groupId + "");
authority.setResourceId(menuId);
authority.setParentId("-1");
resourceAuthorityMapper.insertSelective(authority);
}
}
}
......
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.entity.*;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserGroups;
import com.github.wxiaoqi.security.admin.vo.AppUserInfoVo;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.feign.OrderFeign;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
/**
* @author keliii
*/
@Controller
@RequestMapping("demo")
@Slf4j
public class DemoController extends CommonBaseController{
@GetMapping("/app/unauth/test")
@IgnoreUserToken
@IgnoreClientToken
public String test() {
return String.format("redirect:https://xxtest.upyuns.com/h5/appHtml/view/travelDetails.html?id=96&shareType=app");
}
}
......@@ -73,11 +73,15 @@ public class GroupController extends BaseController<GroupBiz, Group> {
@RequestMapping(value = "/{id}/authority/menu", method = RequestMethod.PUT)
@ResponseBody
public ObjectRestResponse modifyMenuAuthority(@PathVariable int id, String menuTrees){
String [] menus = menuTrees.split(",");
String [] menus =new String[]{};
if (StringUtils.isNotBlank(menuTrees)){
menus= menuTrees.split(",");
}
baseBiz.modifyAuthorityMenu(id, menus);
return new ObjectRestResponse().rel(true);
}
@RequestMapping(value = "/{id}/authority/menu", method = RequestMethod.GET)
@ResponseBody
public ObjectRestResponse<List<AuthorityMenuTree>> getMenuAuthority(@PathVariable int id){
......
......@@ -47,6 +47,7 @@
<module>xx-activity</module>
<module>xx-user-behavior-collect</module>
<module>xx-uccn</module>
<module>xx-summit</module>
</modules>
<packaging>pom</packaging>
<developers>
......
......@@ -208,15 +208,16 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
List<String> tagNames = shopIdOfTagsMap.get(campsiteShopAdminPageDTO.getId());
campsiteShopAdminPageDTO.setStoreTypeName(tagNames == null ? new ArrayList<String>() : tagNames);
}
}).sorted(Comparator.comparing(CampsiteShopAdminPageDTO::getHot).reversed().thenComparing(CampsiteShopAdminPageDTO::getCrtTime).reversed()).collect(Collectors.toList());
}).collect(Collectors.toList());
List<CampsiteShopAdminPageVo> campsiteShopAdminPageVos = JSONObject.parseObject(JSONObject.toJSONString(campsiteShopAdminPageDTOS), new TypeReference<List<CampsiteShopAdminPageVo>>() {
});
campsiteShopAdminPageVos.sort(Comparator.comparing(CampsiteShopAdminPageVo::getHot).reversed().thenComparing(Comparator.comparing(CampsiteShopAdminPageVo::getCrtTime).reversed()));
//组装数据
campsiteShopAdminPageDataVos.setTotalPage(campsiteShopAdminpageDTOPageDataVO.getTotalPage());
campsiteShopAdminPageDataVos.setTotalCount(campsiteShopAdminpageDTOPageDataVO.getTotalCount());
campsiteShopAdminPageDataVos.setPageSize(campsiteShopAdminpageDTOPageDataVO.getPageSize());
campsiteShopAdminPageDataVos.setPageNum(campsiteShopAdminpageDTOPageDataVO.getPageNum());
campsiteShopAdminPageDataVos.setData(JSONObject.parseObject(JSONObject.toJSONString(campsiteShopAdminPageDTOS), new TypeReference<List<CampsiteShopAdminPageVo>>() {
}));
campsiteShopAdminPageDataVos.setData(campsiteShopAdminPageVos);
return campsiteShopAdminPageDataVos;
}
......
......@@ -69,7 +69,7 @@
and `city`=#{cityCode}
</if>
GROUP BY cs.id
order by `crtTime` DESC
order by cs.hot DESC,cs.crt_time DESC
</select>
<!--首页查询全部-->
......@@ -111,7 +111,7 @@
<if test="name != null and name != ''">
and `name` like concat('%',#{name},'%')
</if>
ORDER BY `hot` DESC
</select>
<!--根据id更新营地状态-->
......
......@@ -252,31 +252,31 @@ public class BaseOrder implements Serializable {
@Column(name = "member_level")
private Integer memberLevel;
/**
* 违约金
*/
@ApiModelProperty(value = "违约金")
@Column(name = "violate_amount")
BigDecimal ViolateAmount;
/**
* 赔偿金
*/
@ApiModelProperty(value = "赔偿金")
@Column(name = "damages_amount")
BigDecimal damagesAmount;
/**
* 额外费用
*/
@ApiModelProperty(value = "额外费用")
@Column(name = "extra_amount")
BigDecimal extraAmount;
/**
* 返还的优惠券
*/
@ApiModelProperty(value = "返回的优惠券")
@Column(name = "back_coupon")
String backCoupon;
// /**
// * 违约金
// */
// @ApiModelProperty(value = "违约金")
// @Column(name = "violate_amount")
// BigDecimal ViolateAmount;
//
// /**
// * 赔偿金
// */
// @ApiModelProperty(value = "赔偿金")
// @Column(name = "damages_amount")
// BigDecimal damagesAmount;
//
// /**
// * 额外费用
// */
// @ApiModelProperty(value = "额外费用")
// @Column(name = "extra_amount")
// BigDecimal extraAmount;
//
// /**
// * 返还的优惠券
// */
// @ApiModelProperty(value = "返回的优惠券")
// @Column(name = "back_coupon")
// String backCoupon;
}
......@@ -55,10 +55,10 @@ public class DailyVehicleOrderStatistics extends DailyOrderStatistics{
@Column(name = "postpone")
private BigDecimal postpone;
/**
* 取消订单扣款总额
*/
@Column(name = "penal_sum")
private BigDecimal penalSum;
// /**
// * 取消订单扣款总额
// */
// @Column(name = "penal_sum")
// private BigDecimal penalSum;
}
......@@ -308,11 +308,11 @@ public class OrderRentVehicleDetail implements Serializable {
@Column(name = "fixed_loss_status")
private Integer fixedLossStatus;
/**
* 返还的免费天数
*/
@ApiModelProperty(value = "返回的免费天数")
@Column(name = "back_free_days")
Integer backFreeDays;
// /**
// * 返还的免费天数
// */
// @ApiModelProperty(value = "返回的免费天数")
// @Column(name = "back_free_days")
// Integer backFreeDays;
}
......@@ -4,19 +4,15 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -59,9 +55,6 @@ public class OrderCancelBiz {
@Autowired
OrderMsgBiz orderMsgBiz;
@Autowired
OrderCalculateBiz orderCalculateBiz;
@Autowired
UserFeign userFeign;
......@@ -74,9 +67,6 @@ public class OrderCancelBiz {
@Autowired
ThirdFeign thirdFeign;
@Autowired
ActivityFeign activityFeign;
private static Map<Integer, List<Integer>> cancelAble;
static {
cancelAble = new HashMap<Integer, List<Integer>>();
......@@ -120,41 +110,28 @@ public class OrderCancelBiz {
setOrderId(baseOrder.getId());
}});
//原退还押金
BigDecimal freeDayAmount = BigDecimal.ZERO;
//判断是否使用免费天数,并且进行扣款
if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) {
OrderItem orderItem = orderItemBiz.selectOne(new OrderItem(){{
setType(ItemTypeEnum.VEHICLE_MODEL.getCode());
setOrderId(baseOrder.getId());
}});
//原退还押金
Integer freeDays = (null == orderItem.getCutNum())?0 :orderItem.getCutNum();
BigDecimal freeDayAmount = BigDecimal.ZERO;
freeDayAmount = orderItem.getUnitPrice().multiply(new BigDecimal(orvd.getFreeDays()+ ""));
}
//如果超过出发时间,不能取消订单
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
Long timeLag = orvd.getStartTime() - System.currentTimeMillis();
if(timeLag < 0 ) {
//计算:使用天数 当前时间 - 开始时间的0时0分0秒
Long useTimeLag = System.currentTimeMillis() - orvd.getStartTime();
Integer useDays = new BigDecimal(useTimeLag + "").divide(new BigDecimal((24 * 60 * 60 * 1000)+ "")).setScale(0, BigDecimal.ROUND_UP).intValue();
orderCalculateBiz.inProgressCalculate(baseOrder, orderItem, freeDays, useDays);
}else {
//没到出车时间
//判断是否使用免费天数,并且进行扣款
if(freeDays > 0) {
freeDayAmount = orderItem.getUnitPrice().multiply(new BigDecimal(orvd.getFreeDays()+ ""));
//违约金封顶 租车身份价 * 2天
BigDecimal topAmount = orderItem.getUnitPrice().multiply(new BigDecimal("2"));
if(freeDayAmount.compareTo(topAmount) > 0) {
freeDayAmount = freeDayAmount;
}
}
}
//后面允许开始时间过后可以取消订单
// if(timeLag < 0) {
// throw new BaseException(ResultCode.FAILED_CODE, new HashSet<String>(){{
// add("已超过出发时间,不能取消订单");
// }});
// }
//退款流程
//退订单款
......@@ -186,9 +163,6 @@ public class OrderCancelBiz {
}
//退款流程
orderRefundBiz.rentRefundProcess(hasUpdateOrder, timeLag, APP_ORDER+ "_"+ key);
//站点总人数减少
tourFeign.updateTourGoodPersonNum(otd.getVerificationId(), TourFeign.TOTAL_PERSON, (otd.getTotalNumber() * -1));
}
}
......
......@@ -151,7 +151,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
}
if (orderPageVO.getOrderRentVehicleDetail() != null && orderPageVO.getOrderRentVehicleDetail().getVehicleId() != null) {
RestResponse<Vehicle> restResponse = vehicleFeign.findById(orderPageVO.getOrderRentVehicleDetail().getVehicleId());
log.info("获取车辆信息返回消息:{}", restResponse.getMessage());
log.info("获取车辆信息返回消息:{}", restResponse.getData());
if (restResponse.getData() != null) {
orderPageVO.setVehicleNumberPlat(restResponse.getData().getNumberPlate());
}
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ace-security</artifactId>
<groupId>com.github.wxiaoqi</groupId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>xx-summit</artifactId>
<packaging>pom</packaging>
<modules>
<module>xx-summit-api</module>
<module>xx-summit-server</module>
</modules>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.xxfc.common</groupId>
<artifactId>xx-common-platform</artifactId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-summit-api</artifactId>
<dependencies>
<dependency>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-universal-api</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.xxfc.platform.summit.constant;
public class RedisKey {
/**
*验证码key前缀
*/
public static final String CONSTANT_CODE_PREFIX ="bm:info:";
}
package com.xxfc.platform.summit.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import java.math.BigDecimal;
/**
* 文章实体
*
* @author Administrator
*/
@Data
@Table(name = "fc_activity")
@Entity
@ApiModel(value = "峰会活动表")
public class Activity {
@Id
@GeneratedValue(generator="JDBC")
private Integer id;
@Column(name = "rid")
@ApiModelProperty("抽奖活动id")
private Integer rId;
@Column(name = "title")
@ApiModelProperty("活动主标题")
private String title;
@Column(name = "subtitle")
@ApiModelProperty("副标题(不展示)")
private String subtitle;
@Column(name = "banner")
@ApiModelProperty("活动主图")
private String banner;
@Column(name = "start_time")
@ApiModelProperty("开始时间")
private Long startTime;
@Column(name = "end_time")
@ApiModelProperty("结束时间")
private Long endTime;
@Column(name = "bm_close_time")
@ApiModelProperty("报名截止时间(不展示)")
private String bmCloseTime;
@Column(name = "province_code")
@ApiModelProperty("省编码")
private Integer provinceCode;
@Column(name = "province")
@ApiModelProperty("省")
private String province;
@Column(name = "city_code")
@ApiModelProperty("市编码")
private Integer cityCode;
@Column(name = "city")
@ApiModelProperty("市")
private String city;
@Column(name = "town_code")
@ApiModelProperty("县/镇 编码")
private Integer townCode;
@Column(name = "town")
@ApiModelProperty("县/镇")
private String town;
@Column(name = "address")
@ApiModelProperty("活动场地(地址格式)")
private String address;
@Column(name = "latitude")
@ApiModelProperty("纬度(不展示")
private BigDecimal latitude;
@Column(name = "longitude")
@ApiModelProperty("经度 (不展示)")
private BigDecimal longitude;
@Column(name = "content")
@ApiModelProperty("活动图文内容")
private String content;
@Column(name = "is_show")
@ApiModelProperty("活动开关(1开,0关)")
private Integer isShow;
@Column(name = "is_open_bm")
@ApiModelProperty("报名开关(1开,0关)")
private Integer isOpenBm;
@Column(name = "is_publish")
@ApiModelProperty("0是未发布,1是已发布")
private Integer isPublish;
@Column(name = "status")
@ApiModelProperty("0-默认;1-报名中,2-进行中;3-已结束")
private Integer status;
@Column(name = "act_desc")
@ApiModelProperty("活动对象说明(不展示)")
private String actDesc;
@Column(name = "process_json")
@ApiModelProperty("活动流程")
private String processJson;
@Column(name = "type")
@ApiModelProperty("活动类型(保留,不展示)")
private Integer type;
@Column(name = "limit_num")
@ApiModelProperty("总人数限制")
private Integer limitNum;
@Column(name = "bm_num")
@ApiModelProperty("已报名人数")
private Integer bmNum;
@Column(name = "qd_num")
@ApiModelProperty("已签到人数")
private Integer qdNum;
@Column(name = "rank")
@ApiModelProperty("排序")
private Integer rank;
@Column(name = "crt_time")
@ApiModelProperty("创建时间")
private Long crtTime;
@Column(name = "upd_time")
@ApiModelProperty("修改时间")
private Long updTime;
@Column(name = "is_del")
@ApiModelProperty("删除(0正常,1删除)")
private Integer isDel;
}
package com.xxfc.platform.summit.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author Administrator
*/
@Data
@Table(name = "fc_activity_bm")
public class ActivityBm {
@Id
@GeneratedValue(generator = "JDBC")
private Integer id;
@Column(name = "activity_id")
@ApiModelProperty("活动id")
private Integer activityId;
@Column(name = "meepo_user_id")
@ApiModelProperty("用户id")
private Integer meepoUserId;
@Column(name = "name")
@ApiModelProperty("报名人姓名")
private String name;
@Column(name = "phone")
@ApiModelProperty("报名人电话")
private String phone;
@Column(name = "id_number")
@ApiModelProperty("身份证号")
private String idNumber;
@Column(name = "inviter")
@ApiModelProperty("邀请人")
private String inviter;
@Column(name = "qd_status")
@ApiModelProperty("0-未签到;1-已签到")
private Integer qdStatus;
@Column(name = "bm_status")
@ApiModelProperty("0-未报名;1-已报名")
private Integer bmStatus;
@Column(name = "crt_time")
@ApiModelProperty("创建时间")
private Long crtTime;
@Column(name = "upd_time")
@ApiModelProperty("创建时间")
private Long updTime;
@Column(name = "qd_status")
@ApiModelProperty("0-未签到;1-已签到")
private Integer qdStatus;
@Column(name = "is_del")
@ApiModelProperty("是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.summit.entity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.junit.Test;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author Administrator
*/
@Data
@Table(name = "fc_activity_show")
public class ActivityShow {
@Id
@GeneratedValue(generator = "JDBC")
private Integer id;
@Column(name = "activity_id")
@ApiModelProperty("活动id")
private Integer activityId;
@Column(name = "type")
@ApiModelProperty("1-图片;2-视频")
private Integer type;
@Column(name = "path")
@ApiModelProperty("图片或视频路径")
private String path;
@Column(name = "crt_time")
@ApiModelProperty("创建时间")
private Long crtTime;
@Column(name = "is_del")
@ApiModelProperty("是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.summit.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@Table(name = "ims_meepo_xianchang_qd")
public class MeepoUserQd {
@Id
@GeneratedValue(generator = "JDBC")
private Integer id;
@Column(name = "weid")
@ApiModelProperty("主公众号Id")
private Integer weId;
@Column(name = "rid")
@ApiModelProperty("规则ID")
private Integer rId;
@Column(name = "openid")
@ApiModelProperty("openid")
private String openId;
@Column(name = "nick_name")
@ApiModelProperty("昵称")
private String nickName;
@Column(name = "avatar")
@ApiModelProperty("微信头像")
private String avatar;
@Column(name = "level")
@ApiModelProperty("状态")
private Integer level;
@Column(name = "createtime")
@ApiModelProperty("创建时间")
private Long createTime;
}
package com.xxfc.platform.summit.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
/**
* @author Administrator
*/
@Data
@Table(name = "ims_meepo_xianchang_user")
public class User {
@Id
@GeneratedValue(generator = "JDBC")
private Integer id;
@Column(name = "weid")
@ApiModelProperty("主公众号id")
private Integer weId;
@Column(name = "rid")
@ApiModelProperty("规则ID")
private Integer rId;
@Column(name = "openid")
@ApiModelProperty("微信openid")
private String openId;
@Column(name = "oauth_openid")
@ApiModelProperty("待定")
private String oauthOpenid;
@Column(name = "mobile")
@ApiModelProperty("电话")
private String mobile;
@Column(name = "nick_name")
@ApiModelProperty("昵称")
private String nickName;
@Column(name = "avatar")
@ApiModelProperty("头像")
private String avatar;
@Column(name = "sex")
@ApiModelProperty("性别")
private String sex;
@Column(name = "group")
@ApiModelProperty("分组")
private Integer group;
@Column(name = "status")
@ApiModelProperty("状态")
private Integer status;
@Column(name = "isblacklist")
@ApiModelProperty("待定")
private Integer isBlacklist;
@Column(name = "can_lottory")
@ApiModelProperty("待定")
private Integer canLottory;
@Column(name = "can_dt")
@ApiModelProperty("待定")
private Integer canDt;
@Column(name = "nd_id")
@ApiModelProperty("待定")
private Integer ndId;
@Column(name = "qd_status")
@ApiModelProperty("签到状态")
private Integer qdStatus;
@Column(name = "is_manager")
@ApiModelProperty("待定")
private Integer isManager;
@Column(name = "money")
@ApiModelProperty("分组")
private BigDecimal money;
@Column(name = "createtime")
@ApiModelProperty("创建时间")
private Integer createtime;
@Column(name = "lastjointime")
@ApiModelProperty("待定")
private Integer lastjointime;
@Column(name = "had_luru")
@ApiModelProperty("待定")
private Integer hadLuru;
}
package com.xxfc.platform.summit.feign;
import org.springframework.cloud.openfeign.FeignClient;
/**
* ${DESCRIPTION}
*
* @author wanghaobin
* @create 2017-06-21 8:11
*/
@FeignClient(value = "xx-summit")
public interface SummitFeign {
}
package com.xxfc.platform.summit.pojo;
import lombok.Data;
public enum AccessType {
BACKSTAGE(1, "后台管理页面"),
PUBLIC(2,"公众号")
;
AccessType(int code, String mas) {
}
private Integer code;
private String mas;
public Integer getCode() {
return code;
}
public String getMas() {
return mas;
}
}
package com.xxfc.platform.summit.pojo;
import lombok.Data;
@Data
public class ActivityBmQuery extends Query {
private String inviter;
private String name;
private Integer qdStatus;
private Integer activityId;
}
package com.xxfc.platform.summit.pojo;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class ActivityQuery extends Query {
private String title;
private Long startTime;
private Integer status;
/**
* 1.管理后台,2.h5页面
*/
private Integer type;
}
package com.xxfc.platform.summit.pojo;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class Query {
private Integer page=1;
private Integer limit=10;
}
package com.xxfc.platform.summit.util;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.net.URLDecoder;
@Slf4j
public class HttpRequestUtil {
/**
* post请求
* @param url url地址
* @return
*/
public static String httpPost(String url){
//post请求返回结果
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost method = new HttpPost(url);
String str = "";
try {
HttpResponse result = httpClient.execute(method);
url = URLDecoder.decode(url, "UTF-8");
/**请求发送成功,并得到响应**/
if (result.getStatusLine().getStatusCode() == 200) {
try {
/**读取服务器返回过来的json字符串数据**/
str = EntityUtils.toString(result.getEntity(),"UTF-8");
} catch (Exception e) {
log.error("post请求提交失败:" + url, e);
}
}
} catch (IOException e) {
log.error("post请求提交失败:" + url, e);
}
return str;
}
/**
* 发送get请求
* @param url 路径
* @return
*/
public static String httpGet(String url){
//get请求返回结果
String strResult = null;
try {
DefaultHttpClient client = new DefaultHttpClient();
//发送get请求
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);
/**请求发送成功,并得到响应**/
if (response.getStatusLine().getStatusCode() == org.apache.http.HttpStatus.SC_OK) {
/**读取服务器返回过来的json字符串数据**/
strResult = EntityUtils.toString(response.getEntity(),"UTF-8");
} else {
log.error("get请求提交失败:" + url);
}
} catch (IOException e) {
log.error("get请求提交失败:" + url, e);
}
return strResult;
}
}
package com.xxfc.platform.summit.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class MeepoActivityVo {
@ApiModelProperty("活动id")
private Integer rId;
@ApiModelProperty("主公众号Id")
private Integer weId;
@ApiModelProperty("活动标题")
private String title;
}
package com.xxfc.platform.summit.vo;
import lombok.Data;
@Data
public class UserInfo {
private String unionid;
private String openId;
private String nickname;
private String headimgurl;
private String sex;
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>xx-common-platform-web</artifactId>
<groupId>com.xxfc.common</groupId>
<version>2.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-summit-server</artifactId>
<dependencies>
<dependency>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-summit-api</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<finalName>xx-summit</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.xxfc.platform.summit;
import com.ace.cache.EnableAceCache;
import com.github.wxiaoqi.security.api.vo.config.HeaderConfig;
import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient;
import com.github.wxiaoqi.security.common.annotation.AddBasicConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication(scanBasePackages = {
"com.xxfc.platform",
"com.github.wxiaoqi.security.common.handler"
})
@EnableDiscoveryClient
@EnableAceAuthClient
@EnableScheduling
@EnableAceCache
@EnableTransactionManagement
@AddBasicConfiguration
@tk.mybatis.spring.annotation.MapperScan(basePackages = "com.xxfc.platform.summit.mapper")
@EnableFeignClients(value = {"com.xxfc.platform","com.github.wxiaoqi.security"},defaultConfiguration = HeaderConfig.class)
public class SummitApplication {
public static void main(String[] args) {
SpringApplication.run(SummitApplication.class, args);
}
}
package com.xxfc.platform.summit.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.mapper.ActivityMapper;
import com.xxfc.platform.summit.pojo.AccessType;
import com.xxfc.platform.summit.pojo.ActivityQuery;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
/**
* @author Administrator
*/
@Service
public class ActivityBiz extends BaseBiz<ActivityMapper, Activity> {
/**
* 未删除
*/
private Integer NOT_DELETE=0;
private Activity activity;
/**
* 已发布
*/
private Integer PUBLISHED=1;
public PageInfo<Activity> getList(ActivityQuery query) {
Example exa= new Example(Activity.class);
Example.Criteria criteria = exa.createCriteria();
criteria.andEqualTo("isDel",NOT_DELETE );
if (StringUtils.isNotBlank(query.getTitle())) {
criteria.andLike("title",String.format("%%%s%%",query.getTitle().trim()));
}
if (query.getStartTime()!=null) {
criteria.andLike("startTime",query.getStartTime()/1000+"%");
}
if (query.getStatus()!=null) {
criteria.andEqualTo("status",query.getStatus());
}
if (query.getType()!=null&& AccessType.PUBLIC.getCode().equals(query.getType())) {
criteria.andEqualTo("isPublish",PUBLISHED);
}
exa.orderBy("rank").asc().orderBy("startTime").desc();
PageHelper.startPage(query.getPage(),query.getLimit());
List<Activity> activities = mapper.selectByExample(exa);
return new PageInfo<Activity>(activities);
}
@Transactional(rollbackFor = Exception.class)
public Boolean update(Activity activity) {
try {
activity.setUpdTime(System.currentTimeMillis());
mapper.updateByPrimaryKeySelective(activity);
return true;
} catch (Exception e) {
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return false;
}
}
@Transactional(rollbackFor = Exception.class)
public boolean add(Activity activity) {
try {
activity.setCrtTime(System.currentTimeMillis());
activity.setIsDel(0);
if (activity.getIsOpenBm()==null) {
activity.setIsOpenBm(0);
}
if (activity.getIsPublish()==null) {
activity.setIsPublish(0);
}
if (activity.getIsShow()==null) {
activity.setIsShow(0);
}
mapper.insertSelective(activity);
return true;
} catch (Exception e) {
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return false;
}
}
@Override
public void updateSelectiveById(Activity activity) {
activity.setUpdTime(System.currentTimeMillis());
mapper.updateByPrimaryKeySelective(activity);
}
}
package com.xxfc.platform.summit.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.summit.dto.ActivityShowDto;
import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.entity.ActivityShow;
import com.xxfc.platform.summit.mapper.ActivityShowMapper;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.GetMapping;
import java.lang.reflect.InvocationTargetException;
/**
* @author Administrator
*/
@Service
public class ActivityShowBiz extends BaseBiz<ActivityShowMapper, ActivityShow> {
@Autowired
private ActivityBiz activityBiz;
public ActivityShowDto getOne(Integer activityId) {
return mapper.getOne(activityId);
}
@Transactional(rollbackFor = Exception.class)
public boolean save(ActivityShowDto showDto) {
try {
ActivityShow activityShow = new ActivityShow();
BeanUtilsBean.getInstance().copyProperties(activityShow,showDto);
Activity activity = new Activity();
activity.setId(showDto.getActivityId());
activity.setBanner(showDto.getBanner());
if (showDto.getId()==null) {
mapper.insertSelective(activityShow);
activityBiz.updateSelectiveById(activity);
}else {
mapper.updateByPrimaryKeySelective(activityShow);
activityBiz.updateSelectiveById(activity);
}
} catch (Exception e) {
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return false;
}
return true;
}
}
package com.xxfc.platform.summit.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.summit.entity.MeepoUserQd;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.mapper.MeepoUserQdMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
/**
* @author Administrator
*/
@Service
@Slf4j
public class MeepoUserQdBiz extends BaseBiz<MeepoUserQdMapper, MeepoUserQd> {
@Autowired
UserBiz userBiz;
//添加签到信息
public void addUserQd(Integer meepoUserId){
if (meepoUserId==null||meepoUserId==0){
log.info("----签到信息为空meepoUserId==="+meepoUserId);
return;
}
User user= userBiz.selectById(meepoUserId);
Integer weId=user.getWeId();
Integer rid=user.getRId();
String openId=user.getOpenId();
String avatar=user.getAvatar();
String nikeName=user.getNickName();
log.info("---addUserQd----meepoUserId==="+meepoUserId+"----openId==="+openId+"--weId=="+weId+"---rid==="+rid+"---avatar==="+avatar);
Example example=new Example(MeepoUserQd.class);
example.createCriteria().andEqualTo("weId",weId).andEqualTo("rId",rid).andEqualTo("openId",openId);
List<MeepoUserQd> list=selectByExample(example);
if (list.size()>0){
log.info("----已签到---meepoUserId==="+meepoUserId+"----openId==="+openId);
return;
}
MeepoUserQd meepoUserQd=new MeepoUserQd();
meepoUserQd.setAvatar(avatar);
meepoUserQd.setLevel(1);
meepoUserQd.setNickName(nikeName);
meepoUserQd.setOpenId(openId);
meepoUserQd.setRId(rid);
meepoUserQd.setWeId(weId);
meepoUserQd.setCreateTime(System.currentTimeMillis()/1000L);
insertSelective(meepoUserQd);
}
}
package com.xxfc.platform.summit.biz;
import cn.hutool.core.codec.Base64;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.mapper.UserMapper;
import com.xxfc.platform.summit.service.WeixinService;
import com.xxfc.platform.summit.vo.MeepoActivityVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;
/**
* @author Administrator
*/
@Service
@Slf4j
public class UserBiz extends BaseBiz<UserMapper, User> {
@Autowired
private ActivityBiz activityBiz;
@Autowired
private ActivityBmBiz activityBmBiz;
@Autowired
WeixinService weixinService;
@Autowired
UserBiz userBiz;
public static final String frontSessionKey = "frontWeixKey";
public Integer addMeepoUser(User user,Integer activityId){
Integer userId=0;
log.info("-----activityId===="+activityId);
if (user==null|| StringUtils.isBlank(user.getOpenId())||activityId==null||activityId==0){
log.info("-----参数为空----");
return userId;
}
Activity activity=activityBiz.selectById(activityId);
if (activity==null){
log.info("-----活动不存在----");
return userId;
}
Integer rId=activity.getRId();
if (rId==null||rId==0){
log.info("-----没设置小程序抽奖活动id----");
return userId;
}
List<MeepoActivityVo> list=activityBmBiz.getMeepoActivitys(rId);
if (list.size()==0){
log.info("-----小程序抽奖活动id不存在----");
return userId;
}
MeepoActivityVo meepoActivityVo=list.get(0);
Integer weId=meepoActivityVo.getWeId();
String openId=user.getOpenId();
Example example=new Example(User.class);
example.createCriteria().andEqualTo("weId",weId).andEqualTo("rId",rId).andEqualTo("openId",openId);
List<User> uses=mapper.selectByExample(example);
if (uses.size()>0){
userId=uses.get(0).getId();
user.setId(userId);
}else {
user.setWeId(weId);
user.setRId(rId);
insertSelective(user);
userId=user.getId();
}
return userId;
}
public void authUser(String code,String key, HttpServletRequest request){
if (StringUtils.isBlank(code)){
log.info("----code为空---");
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("code为空"));
}
String openid = null;
String access_token = null;
try {
JSONObject jsonData = weixinService.getAccessToken(code);
openid = jsonData.getString("openid");
access_token = jsonData.getString("access_token");
String refresh_token = jsonData.getString("refresh_token");
log.info("-----微信回调userInfo---openid=="+openid+"----access_token==="+access_token);
//验证access_token是否失效
JSONObject validateData = weixinService.getValidateData(access_token, openid);
if (!"0".equals(validateData.getString("errcode"))){
//刷新access_token
JSONObject refreshData= weixinService.getRefreshToken(refresh_token);
access_token = refreshData.getString("access_token");
}
}catch (Exception e){
e.printStackTrace();
log.info("网络异常===" + e.getMessage());
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("网络异常"));
}
try {
// 获取微信用户基本信息
JSONObject userinfo_json = weixinService.getUserInfo(access_token,openid);
if (userinfo_json == null || StringUtils.isNotBlank(userinfo_json.getString("errcode"))) {
log.info("调用微信用户基本信息接口失败");
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("调用微信用户基本信息接口失败"));
}
log.info("微信用户基本信息---user===" +userinfo_json.toJSONString());
ActivityBm activityBm=activityBmBiz.userInfo(key);
if (activityBm==null){
log.info("redis的报名信息为空");
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("redis的报名信息为空"));
}
Integer activityId=activityBm.getActivityId();
if (activityId==null||activityId==0){
log.info("redis的报名信息activityId---为空");
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("redis的报名信息activityId---为空"));
}
User userInfo=new User();
String nickName = userinfo_json.getString("nickname");
String headimgurl = userinfo_json.getString("headimgurl");
String sex = userinfo_json.getString("sex");
if (StringUtils.isBlank(sex)){
sex="0";
}
userInfo.setOpenId(openid);
userInfo.setNickName(nickName);
userInfo.setAvatar(headimgurl);
userInfo.setSex(sex);
Integer userId=userBiz.addMeepoUser(userInfo,activityId);
log.info("小程序用户---userId===" +userId);
if (userId==null||userId==0){
log.info("小程序用户---userId---为空");
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("小程序用户---userId---为空"));
}
String encode = Base64.encode(JSONObject.toJSONString(userInfo));
HttpSession session = request.getSession();
session.removeAttribute(frontSessionKey);
session.setAttribute(frontSessionKey, encode);
} catch (Exception e) {
log.info("调用微信用户基本信息接口失败", e);
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("调用微信用户基本信息接口失败"));
}
}
//获取缓存
public User getSession(HttpServletRequest request){
try {
HttpSession session = request.getSession();
String frontSessionValue1 = (String) session.getAttribute(frontSessionKey);
if (StringUtils.isBlank(frontSessionValue1)) {
return null;
}
JSONObject jsonObject=JSONObject.parseObject(frontSessionValue1);
User user=new User();
BeanUtils.copyProperties(jsonObject,user);
return user;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
public User getUserInfo(HttpServletRequest request,Integer activityId){
User user=getSession(request);
if (user!=null){
Integer userId=addMeepoUser(user,activityId);
if (userId==null||userId==0){
return null;
}
return user;
}
return null;
}
}
package com.xxfc.platform.summit.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
* ${DESCRIPTION}
*
* @author wanghaobin
* @create 2017-06-21 8:39
*/
@Configuration
@Primary
public class RedisConfiguration {
@Bean
public RedisTemplate<String, Object> summbitRedisTemplate(RedisConnectionFactory factory) {
RedisTemplate redisTemplate = new RedisTemplate();
redisTemplate.setConnectionFactory(factory);
RedisSerializer<String> stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
package com.xxfc.platform.summit.config;
import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestConfiguration {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
@Bean
public Logger.Level feignLevel(){
return Logger.Level.HEADERS;
}
}
package com.xxfc.platform.summit.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
/**
* @Description : swagger配置配置
* @Author : Mars
* @Date : 2017年9月6日
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
/**
* Every Docket bean is picked up by the swagger-mvc framework - allowing for multiple
* swagger groups i.e. same code base multiple swagger resource listings.
*/
@Bean
public Docket customDocket(){
ParameterBuilder ticketPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<Parameter>();
ticketPar.name("Authorization").description("user Authorization")
.modelRef(new ModelRef("string")).parameterType("header")
.required(false).build(); //header中的ticket参数非必填,传空也可以
pars.add(ticketPar.build()); //根据每个方法名也知道当前方法在设置什么参数
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.xxfc.platform.tour"))
//.apis(RequestHandlerSelectors.any())
.build()
.globalOperationParameters(pars)
.apiInfo(apiInfo());
}
ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("api swagger document")
.description("前后端联调swagger api 文档")
.version("2.1.5.5")
.build();
}
}
\ No newline at end of file
package com.xxfc.platform.summit.config;
import com.github.wxiaoqi.security.common.handler.GlobalExceptionHandler;
import com.xxfc.platform.summit.interceptor.WeChatH5LoginInterceoptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList;
import java.util.Collections;
@Configuration("summitWebConfig")
@Primary
public class WebConfiguration implements WebMvcConfigurer {
@Bean
GlobalExceptionHandler getGlobalExceptionHandler() {
return new GlobalExceptionHandler();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getWeChatH5LoginRestInterceptor()).
addPathPatterns(getIncludePathPatterns());
}
@Bean
WeChatH5LoginInterceoptor getWeChatH5LoginRestInterceptor() {
return new WeChatH5LoginInterceoptor();
}
/**
* 需要用户和服务认证判断的路径
* @return
*/
private ArrayList<String> getIncludePathPatterns() {
ArrayList<String> list = new ArrayList<>();
String[] urls = {
"/activity/**"
};
Collections.addAll(list, urls);
return list;
}
}
package com.xxfc.platform.summit.controller;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.summit.biz.ActivityBmBiz;
import com.xxfc.platform.summit.biz.UserBiz;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.pojo.ActivityBmQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* @author Administrator
*/
@RestController
@RequestMapping("front/activityBm")
public class ActivityBmController extends BaseController<ActivityBmBiz,ActivityBm> {
@Autowired
UserBiz userBiz;
@PostMapping("/add")
public ObjectRestResponse bm(@RequestBody ActivityBm activityBm, HttpServletRequest request){
User user=userBiz.getSession(request);
try {
return baseBiz.userBm(activityBm,user.getId());
}catch (Exception e){
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
}
@PostMapping("/list")
public ObjectRestResponse getList( @RequestBody ActivityBmQuery query ){
return ObjectRestResponse.succ(baseBiz.list(query));
}
}
package com.xxfc.platform.summit.controller;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.summit.biz.ActivityBiz;
import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.pojo.ActivityQuery;
import org.springframework.web.bind.annotation.*;
/**
* @author Administrator
*/
@RestController
@RequestMapping("/activity")
public class ActivityController extends BaseController<ActivityBiz, Activity> {
@PostMapping("/app/unauth/list")
public ObjectRestResponse getList(@RequestBody ActivityQuery query ){
return ObjectRestResponse.succ(baseBiz.getList(query));
}
@Override
@PutMapping ("/update")
public ObjectRestResponse update(@RequestBody Activity activity ){
if (baseBiz.update(activity)) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
@Override
@PostMapping("/add")
public ObjectRestResponse add(@RequestBody Activity activity ){
if (baseBiz.add(activity)) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
}
package com.xxfc.platform.summit.controller;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.summit.biz.ActivityBiz;
import com.xxfc.platform.summit.biz.ActivityShowBiz;
import com.xxfc.platform.summit.dto.ActivityShowDto;
import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.entity.ActivityShow;
import org.springframework.web.bind.annotation.*;
/**
* @author Administrator
*/
@RestController
@RequestMapping("/activityShow")
public class ActivityShowController extends BaseController<ActivityShowBiz, ActivityShow> {
@GetMapping("/one/{activityId}")
public ObjectRestResponse getOne(@PathVariable Integer activityId){
return ObjectRestResponse.succ( baseBiz.getOne(activityId));
}
@PostMapping("/save")
public ObjectRestResponse save(@RequestBody ActivityShowDto showDto){
if (baseBiz.save(showDto)){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
}
package com.xxfc.platform.summit.controller;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.summit.biz.ActivityBmBiz;
import com.xxfc.platform.summit.biz.UserBiz;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* @author Administrator
*/
@RestController
@RequestMapping("auth/activity")
@IgnoreClientToken
@IgnoreUserToken
public class AuthActivityController extends BaseController<ActivityBmBiz,ActivityBm> {
@Autowired
UserBiz userBiz;
@PostMapping("app/unauth/bm")
public ObjectRestResponse bm(@RequestBody ActivityBm activityBm, HttpServletRequest request){
User user=userBiz.getUserInfo(request,activityBm.getActivityId());
try {
return baseBiz.userBmOrQd(activityBm,user.getId());
}catch (Exception e){
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
}
@PostMapping("app/unauth/qd")
public ObjectRestResponse qd(@RequestBody ActivityBm activityBm, HttpServletRequest request){
User user=userBiz.getUserInfo(request,activityBm.getActivityId());
try {
return baseBiz.userBmOrQd(activityBm,user.getId());
}catch (Exception e){
e.printStackTrace();
return ObjectRestResponse.createDefaultFail();
}
}
}
package com.xxfc.platform.summit.controller;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.summit.biz.ActivityBiz;
import com.xxfc.platform.summit.biz.ActivityBmBiz;
import com.xxfc.platform.summit.entity.Activity;
import com.xxfc.platform.summit.pojo.ActivityQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* @author Administrator
*/
@RestController
@RequestMapping("/front/activity")
@IgnoreUserToken
@IgnoreClientToken
public class FrontActivityController extends BaseController<ActivityBiz, Activity> {
@Autowired
private ActivityBmBiz activityBmBiz;
@GetMapping("app/unauth/info")
public ObjectRestResponse info(
@RequestParam(value = "activityId",defaultValue = "0")Integer activityId,
@RequestParam(value = "key",defaultValue = "")String key,
HttpServletRequest request){
return activityBmBiz.getActivityById(activityId,key,request);
}
}
package com.xxfc.platform.summit.controller;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("activity")
@IgnoreClientToken
@Slf4j
public class IndexController {
@RequestMapping(value ="/app/unauth/index",method = RequestMethod.GET)
@IgnoreUserToken
public ObjectRestResponse index(){
return ObjectRestResponse.succ();
}
@RequestMapping(value ="/app/unauth/info",method = RequestMethod.GET)
@IgnoreUserToken
public ObjectRestResponse info(){
return ObjectRestResponse.succ("123456");
}
}
\ No newline at end of file
package com.xxfc.platform.summit.controller;
import cn.hutool.core.codec.Base64;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.xxfc.platform.summit.biz.ActivityBmBiz;
import com.xxfc.platform.summit.biz.UserBiz;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.service.WeixinService;
import com.xxfc.platform.summit.vo.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* @author Administrator
*/
@Controller
@RequestMapping("/auth")
@Slf4j
public class WeixinController {
public static final String WECHAT_AUTOLOGIN_CALLBACKURL_KEY = "callback";
public static final String WECHAT_REDIS_KEY = "key";
@Autowired
WeixinService weixinService;
@Autowired
UserBiz userBiz;
@Autowired
ActivityBmBiz activityBmBiz;
public static final String frontSessionKey = "frontWeixKey";
@Value("${wx.url}")
private String url;
@RequestMapping(value ="/app/unauth/wxLogin",method = RequestMethod.GET)
@IgnoreUserToken
public String index(@RequestParam(value = "redirec_url")String redirec_url,
@RequestParam(value = "key")String key){
log.info("-----微信wxLogin---redirec_url=="+redirec_url);
if (StringUtils.isBlank(redirec_url)){
redirec_url="";
}
try {
String encrypt_curr_url = Base64.encode(redirec_url.getBytes("utf-8"));
redirec_url=url+"?" + WECHAT_AUTOLOGIN_CALLBACKURL_KEY+ "=" + encrypt_curr_url+"&"+WECHAT_REDIS_KEY+"="+key;
String oauth_api=weixinService.getAuthorize(redirec_url);
return String.format("redirect:"+oauth_api);
}catch (Exception e){
e.printStackTrace();
log.info("网络异常===" + e.getMessage());
return String.format("网络异常");
}
}
/**
* 微信浏览器获取用户信息
* @param code
* @param callback
* @return
*/
@GetMapping(value = "/app/unauth/userInfo")
public String getUserInformation(String code, String callback,String key, HttpServletRequest request) {
log.info("-----微信回调userInfo---code=="+code+"----redirec_url==="+callback+"---key==="+key);
try {
userBiz.authUser(code,key,request);
callback =new String(Base64.decode(callback), "utf-8");
log.info("callback===" + callback);
}catch (Exception e){
e.printStackTrace();
log.info("网络异常===" + e.getMessage());
}
return String.format("redirect:"+callback);
}
}
package com.xxfc.platform.summit.dto;
import com.xxfc.platform.summit.entity.ActivityShow;
import lombok.Data;
/**
* @author Administrator
*/
@Data
public class ActivityShowDto extends ActivityShow {
private String banner;
}
package com.xxfc.platform.summit.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.github.wxiaoqi.security.common.util.UserAgentUtil;
import com.xxfc.platform.summit.biz.UserBiz;
import com.xxfc.platform.summit.constant.RedisKey;
import com.xxfc.platform.summit.entity.User;
import com.xxfc.platform.summit.service.WeixinService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.alibaba.fastjson.JSONObject;
import java.io.BufferedReader;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/**
* 微信登陆拦截器
*
* @author
*
*/
@Slf4j
public class WeChatH5LoginInterceoptor extends HandlerInterceptorAdapter {
@Autowired
WeixinService weixinService;
@Autowired
UserBiz userBiz;
@Autowired
private RedisTemplate summbitRedisTemplate;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String curr_domain = request.getServerName();
log.info("curr_domain:" + curr_domain);
log.info("address:" + request.getRequestURL().toString());
log.info("params:" + request.getQueryString());
boolean isWx = UserAgentUtil.isWexinBrowser(request);
if (isWx) {
//session里面获取用户信息
User user=userBiz.getSession(request);
if (user!=null){
return true;
}
String redisKey=redisInfo(request);
Map<String,Object> result=new HashMap<>();
JSONObject json = new JSONObject();
if (StringUtils.isNotBlank(redisKey)){
json.put("key",redisKey);
}
json.put("url","https://dev.dfangche.com/api/summit/auth/app/unauth/wxLogin?redirec_url=https://dev.dfangche.com/h5/appHtml/view/wxh5/index.html");
result.put("data",json);
result.put("status",1001);
response.getWriter().write(result.toString());
return false;
}
return true;
}
//获取body的参数并放入redis
public String redisInfo(HttpServletRequest request)throws Exception{
request.setCharacterEncoding("UTF-8");
StringBuffer jb = new StringBuffer();
String line = null;
try
{
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null)
jb.append(line);
}
catch (Exception e)
{
e.printStackTrace();
}
String redisLockKey=null;
if (StringUtils.isNotBlank(jb)){
redisLockKey= RedisKey.CONSTANT_CODE_PREFIX + UUID.randomUUID();
Boolean suc = summbitRedisTemplate.opsForValue().setIfAbsent(redisLockKey, jb);
if (suc) {
summbitRedisTemplate.expire(redisLockKey, 5, TimeUnit.MINUTES);//5分钟内过期
}
}
return redisLockKey;
}
}
package com.xxfc.platform.summit.mapper;
import com.xxfc.platform.summit.entity.ActivityBm;
import com.xxfc.platform.summit.vo.MeepoActivityVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* @author Administrator
*/
public interface ActivityBmMapper extends Mapper<ActivityBm> {
List<MeepoActivityVo> getMeepoActivitys(@Param("rId")Integer rId);
}
package com.xxfc.platform.summit.mapper;
import com.xxfc.platform.summit.entity.Activity;
import tk.mybatis.mapper.common.Mapper;
/**
* @author Administrator
*/
public interface ActivityMapper extends Mapper<Activity> {
}
package com.xxfc.platform.summit.mapper;
import com.xxfc.platform.summit.dto.ActivityShowDto;
import com.xxfc.platform.summit.entity.ActivityShow;
import tk.mybatis.mapper.common.Mapper;
/**
* @author Administrator
*/
public interface ActivityShowMapper extends Mapper<ActivityShow> {
ActivityShowDto getOne(Integer activityId);
}
package com.xxfc.platform.summit.mapper;
import com.xxfc.platform.summit.entity.MeepoUserQd;
import tk.mybatis.mapper.common.Mapper;
/**
* @author Administrator
*/
public interface MeepoUserQdMapper extends Mapper<MeepoUserQd> {
}
package com.xxfc.platform.summit.mapper;
import com.xxfc.platform.summit.entity.User;
import tk.mybatis.mapper.common.Mapper;
/**
* @author Administrator
*/
public interface UserMapper extends Mapper<User> {
}
package com.xxfc.platform.summit.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.xxfc.platform.summit.util.HttpRequestUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class WeixinService {
/**
* 网页
*/
@Value("${wx.appid}")
private String wy_appid;
@Value("${wx.appSercet}")
private String wy_secret;
public JSONObject getAccessToken(String code){
String url = "https://api.weixin.qq.com/sns/oauth2/access_token?";
String params = "appid="+wy_appid+"&secret="+wy_secret+"&code="+code+"&grant_type=authorization_code";
String result = HttpRequestUtil.httpGet(url + params);
JSONObject data = JSON.parseObject(result);
return data;
}
public JSONObject getValidateData(String access_token,String openid){
String url = "https://api.weixin.qq.com/sns/auth?access_token=" + access_token + "&openid=" + openid;
String result = HttpRequestUtil.httpGet(url);
JSONObject data = JSON.parseObject(result);
return data;
}
public JSONObject getRefreshToken(String refresh_token){
String url = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=" + wy_appid + "&grant_type=refresh_token&refresh_token=" + refresh_token;
String result = HttpRequestUtil.httpGet(url);
JSONObject data = JSON.parseObject(result);
return data;
}
public JSONObject getUserInfo(String access_token,String openid){
String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid + "&lang=zh_CN";
String result = HttpRequestUtil.httpGet(url);
JSONObject data = JSON.parseObject(result);
return data;
}
public String getAuthorize(String redirec_url){
String oauth_api = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={APPID}&redirect_uri={REDIRECT_URI}&response_type=code&scope={SCOPE}&state={STATE}#wechat_redirect";
oauth_api = oauth_api.replace("{APPID}", wy_appid)
.replace("{REDIRECT_URI}", redirec_url)
.replace("{SCOPE}", "snsapi_userinfo").replace("{STATE}", "state");
log.info("---oauth_api===="+oauth_api);
return oauth_api;
}
}
logging:
config: classpath:logback.xml
level:
com.github.wxiaoqi:
debug
com.xxfc.platform:
debug
\ No newline at end of file
#spring:
# application:
# name: vehicle
# cloud:
# nacos:
# config:
# server-addr: 127.0.0.1:8848
# file-extension: yaml
# profiles:
# active: dev
spring:
profiles:
active: dev
application:
name: xx-summit
cloud:
nacos:
config:
file-extension: yaml
---
spring:
profiles: dev
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
#共用配置,暂定一个
shared-dataids: common-dev.yaml,mongodb-log-dev.yaml
---
spring:
profiles: pro
cloud:
nacos:
config:
server-addr: 10.5.52.2:8848
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property name="LOG_HOME" value="${system.log.path:-logs}"/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!--1. 输出到控制台-->
<filter class="com.github.wxiaoqi.security.common.filter.NacosLogFilter"></filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<charset>UTF-8</charset> <!-- 设置字符集 -->
</encoder>
</appender>
<appender name="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 按照每天生成日志文件 -->
<filter class="com.github.wxiaoqi.security.common.filter.DenyFilter"></filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/sys.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件输出的文件名 -->
<MaxHistory>30</MaxHistory><!--日志文件保留天数 -->
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</encoder>
</appender>
<appender name="WEB_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 按照每天生成日志文件 -->
<filter class="com.github.wxiaoqi.security.common.filter.AcceptFilter"></filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/log.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件输出的文件名 -->
<MaxHistory>30</MaxHistory><!--日志文件保留天数 -->
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="SYSTEM_FILE" />
<appender-ref ref="WEB_FILE" />
</root>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.summit.mapper.ActivityBmMapper">
<select id="getMeepoActivitys" resultType="com.xxfc.platform.summit.vo.MeepoActivityVo">
SELECT
id as rId,
weid as weId,
title as title
FROM ims_meepo_xianchang_rid
<where>
<if test="rId!=null and rId!=0 ">
id=#{rId}
</if>
</where>
ORDER BY id DESC
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.summit.mapper.ActivityMapper">
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.summit.mapper.ActivityShowMapper">
<select id="getOne" parameterType="Integer" resultType="com.xxfc.platform.summit.entity.ActivityShow">
SELECT
a.banner,
s.*
FROM
fc_activity a
LEFT JOIN fc_activity_show s ON a.id = s.activity_id
WHERE
a.id =#{activityId}
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.summit.mapper.MeepoUserQdMapper">
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.summit.mapper.UserMapper">
</mapper>
\ No newline at end of file
......@@ -138,9 +138,9 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
article.setType(0);
}
if (article.getTagTitle()==null||article.getKeywords()==null||article.getDescription()==null) {
throw new BaseException("必须设置seo");
}
// if (article.getTagTitle()==null||article.getKeywords()==null||article.getDescription()==null) {
// throw new BaseException("必须设置seo");
// }
if (article.getStatus()==1){
article.setAddTime(new Date());
......@@ -171,9 +171,9 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
@Transactional(rollbackFor = Exception.class)
public int updateSelectiveByIdRe(Article article){
article.setUpdTime(new Date());
if (article.getTagTitle()==null||article.getKeywords()==null||article.getDescription()==null) {
throw new BaseException("必须设置seo");
}
// if (article.getTagTitle()==null||article.getKeywords()==null||article.getDescription()==null) {
// throw new BaseException("必须设置seo");
// }
return mapper.updateByPrimaryKeySelective(article);
}
......
......@@ -248,7 +248,7 @@ public class SmsService {
}
if (i>3){
if (i>2){
jsonParams.put(param+(i+2),para);
}else {
jsonParams.put(param+(i+1),para);
......
......@@ -11,7 +11,7 @@ public class VehicleBookRecordQueryVo extends PageParam {
/**
* 车辆编号,0-没有
*/
private Integer vehicleCode;
private Integer code;
/**
* 车牌号,空字符串-没有
......
......@@ -9,6 +9,11 @@ import java.util.List;
@Data
public class VehiclePlanDto extends PageParam {
/**
* 车辆编号
*/
private Integer code;
@ApiModelProperty(value = "车辆Id")
private String vehicleId;
......
......@@ -178,7 +178,7 @@ public class VehicleActiveService {
}
stringBuilder.append(", 请联系管理员修改车辆状态为正常状态");
return stringBuilder.toString();
}
}
public void arrival(VehicleArrivalVo arrivalVo) {
Vehicle vehicle = vehicleMapper.selectByPrimaryKey(arrivalVo.getVehicleId());
......
......@@ -258,6 +258,10 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
if (addOrUpdateVehicleVo.getNumberPlate() == null) {
throw new BaseException(ResultCode.NUMBER_PLAT_CAN_NOT_BE_NULL);
}
boolean exist = checkCodeExist(addOrUpdateVehicleVo.getCode(),addOrUpdateVehicleVo.getId());
if (exist){
throw new BaseException("车辆编码已经被占用",400);
}
List<Vehicle> vehicles = mapper.lockByCode(addOrUpdateVehicleVo);
return vehicles;
......@@ -639,7 +643,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
if (vehicleBookRecord == null) {
return RestResponse.codeAndMessage(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode(), ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc());
}
// //已通过审核的可以取消预定
//已通过审核的可以取消预定
// if (!VehicleBookRecordStatus.APPROVE.getCode().equals(vehicleBookRecord.getStatus())) {
// return RestResponse.code(ResCode.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED.getCode());
// }
......@@ -1451,11 +1455,23 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
List<String> vehicleIds = Lists.newArrayList();
Example example = new Example(Vehicle.class);
Example.Criteria criteria = example.createCriteria();
criteria.andLike("numberPlate",String.format("%%%s%%",plateNumber.trim()));
criteria.andLike("numberPlate", String.format("%%%s%%", plateNumber.trim()));
List<Vehicle> vehicles = mapper.selectByExample(example);
if (CollectionUtils.isEmpty(vehicles)){
if (CollectionUtils.isEmpty(vehicles)) {
return vehicleIds;
}
return vehicles.stream().map(Vehicle::getId).collect(Collectors.toList());
}
public Boolean checkCodeExist(Integer code, String id) {
Example example = new Example(Vehicle.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("code", code);
criteria.andEqualTo("isDel",0);
if (StringUtils.isNotEmpty(id)) {
criteria.andNotEqualTo("id", id);
}
int count = mapper.selectCountByExample(example);
return count > 0;
}
}
......@@ -192,10 +192,26 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
}
}
vehicleBookRecordQueryVo.setCompanyIds(companyList);
if (vehicleBookRecordQueryVo.getStatus() != null && vehicleBookRecordQueryVo.getStatus() == 3) { //待出行
vehicleBookRecordQueryVo.setStatus(2);
Query query = new Query(vehicleBookRecordQueryVo);
if (vehicleBookRecordQueryVo.getStatus() != null && vehicleBookRecordQueryVo.getStatus() == 2) {
List<VehicleBookRecordVo> list = mapper.getBookRecordInfo(query.getSuper());
removeStatus2(list);
removeStatus3(list);
PageInfo<VehicleBookRecordVo> vehicleBookRecordVoPageInfo = new PageInfo<>(list);
getupKeeps(vehicleBookRecordVoPageInfo.getList());
PageDataVO<VehicleBookRecordVo> vehicleBookRecordVoPageDataVO = PageDataVO.pageInfo(vehicleBookRecordVoPageInfo);
vehicleBookRecordVoPageDataVO.setPageNum(pageNo);
vehicleBookRecordVoPageDataVO.setPageSize(pageSize);
vehicleBookRecordVoPageDataVO.setTotalCount((long) vehicleBookRecordVoPageInfo.getList().size());
vehicleBookRecordVoPageDataVO.setTotalPage((vehicleBookRecordVoPageInfo.getList().size() + pageSize - 1) / pageSize);
vehicleBookRecordVoPageDataVO.setData(getData(vehicleBookRecordVoPageInfo.getList(), pageNo, pageSize));
return RestResponse.suc(vehicleBookRecordVoPageDataVO);
}
if (vehicleBookRecordQueryVo.getStatus() != null && vehicleBookRecordQueryVo.getStatus() == 5) { //出行中
vehicleBookRecordQueryVo.setStatus(2);
Query query = new Query(vehicleBookRecordQueryVo);
List<VehicleBookRecordVo> list = mapper.getBookRecordInfo(query.getSuper());
removeStatus5(list);
PageInfo<VehicleBookRecordVo> vehicleBookRecordVoPageInfo = new PageInfo<>(list);
getupKeeps(vehicleBookRecordVoPageInfo.getList());
PageDataVO<VehicleBookRecordVo> vehicleBookRecordVoPageDataVO = PageDataVO.pageInfo(vehicleBookRecordVoPageInfo);
......@@ -206,22 +222,80 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
vehicleBookRecordVoPageDataVO.setData(getData(vehicleBookRecordVoPageInfo.getList(), pageNo, pageSize));
return RestResponse.suc(vehicleBookRecordVoPageDataVO);
}
if (vehicleBookRecordQueryVo.getStatus() != null && vehicleBookRecordQueryVo.getStatus() == 7) { //已完成
vehicleBookRecordQueryVo.setStatus(2);
Query query = new Query(vehicleBookRecordQueryVo);
List<VehicleBookRecordVo> list = mapper.getBookRecordInfo(query.getSuper());
removeStatus7(list);
PageInfo<VehicleBookRecordVo> vehicleBookRecordVoPageInfo = new PageInfo<>(list);
getupKeeps(vehicleBookRecordVoPageInfo.getList());
PageDataVO<VehicleBookRecordVo> vehicleBookRecordVoPageDataVO = PageDataVO.pageInfo(vehicleBookRecordVoPageInfo);
vehicleBookRecordVoPageDataVO.setPageNum(pageNo);
vehicleBookRecordVoPageDataVO.setPageSize(pageSize);
vehicleBookRecordVoPageDataVO.setTotalCount((long) vehicleBookRecordVoPageInfo.getList().size());
vehicleBookRecordVoPageDataVO.setTotalPage((vehicleBookRecordVoPageInfo.getList().size() + pageSize - 1) / pageSize);
vehicleBookRecordVoPageDataVO.setData(getData(vehicleBookRecordVoPageInfo.getList(), pageNo, pageSize));
return RestResponse.suc(vehicleBookRecordVoPageDataVO);
}
Query query = new Query(vehicleBookRecordQueryVo);
PageDataVO<VehicleBookRecordVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getBookRecordInfo(query.getSuper()));
getupKeeps(pageDataVO.getData());
return RestResponse.suc(pageDataVO);
}
//筛选未出车的记录
public void removeStatus2(List<VehicleBookRecordVo> list) {
if (list != null && list.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = list.iterator();
while (iterator.hasNext()) {
if (iterator.next().getVehicleDepartureLogVo() != null) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if (vehicleBookRecordVo.getVehicleDepartureLogVo() != null) {
iterator.remove();
}
}
}
}
//筛选未出车的记录
public void removeStatus3(List<VehicleBookRecordVo> list) {
if (list != null && list.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = list.iterator();
while (iterator.hasNext()) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if (vehicleBookRecordVo.getVehicleDepartureLogVo() != null) {
iterator.remove();
}
vehicleBookRecordVo.setState(3);
}
}
}
//筛选已出车未还车记录
public void removeStatus5(List<VehicleBookRecordVo> list) {
if (list != null && list.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = list.iterator();
while (iterator.hasNext()) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if (vehicleBookRecordVo.getVehicleDepartureLogVo() == null || (vehicleBookRecordVo.getVehicleDepartureLogVo() != null && vehicleBookRecordVo.getVehicleDepartureLogVo().getState() ==1)) {
iterator.remove();
}
vehicleBookRecordVo.setState(5);
}
}
}
//筛选已完成记录
public void removeStatus7(List<VehicleBookRecordVo> list) {
if (list != null && list.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = list.iterator();
while (iterator.hasNext()) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if (vehicleBookRecordVo.getVehicleDepartureLogVo() == null || (vehicleBookRecordVo.getVehicleDepartureLogVo() != null && vehicleBookRecordVo.getVehicleDepartureLogVo().getState() !=1)) {
iterator.remove();
}
vehicleBookRecordVo.setState(5);
}
}
}
/**
* 获取随身物品
*/
......
......@@ -32,17 +32,17 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
@Autowired
VehicleMapper vehicleMapper;
public PageInfo<VehicleDepartureLogVo> page(String numberPlate, String time, Integer page, Integer limit) {
public PageInfo<VehicleDepartureLogVo> page(String numberPlate,Integer code,Integer zoneId,Integer departureId, String time, Integer page, Integer limit) {
PageHelper.startPage(page, limit);
return new PageInfo<>(mapper.selectVoAll(numberPlate, time));
return new PageInfo<>(mapper.selectVoAll(numberPlate,code,zoneId,departureId,time));
}
public PageInfo<VehicleDepartureLogVo> pageNotAllData(String numberPlate, String time, Integer page, Integer limit, List<Integer> companyList) {
public PageInfo<VehicleDepartureLogVo> pageNotAllData(String numberPlate,Integer code,Integer zoneId,Integer departureId, String time, Integer page, Integer limit, List<Integer> companyList) {
PageHelper.startPage(page, limit);
if (companyList == null || companyList.size() == 0) {
companyList = Arrays.asList(-1);
}
return new PageInfo<>(mapper.selectVoAllNotAllData(numberPlate, time, companyList));
return new PageInfo<>(mapper.selectVoAllNotAllData(numberPlate,code,zoneId,departureId,time, companyList));
}
public PageInfo<VehicleDepartureLogVo> findByVehicle(String vehicleId, Integer page, Integer limit) {
......
......@@ -51,9 +51,9 @@ public class VehicleUpkeepService {
vehicleUpkeepItemMapper.deleteByPrimaryKey(id);
}
public PageInfo<VehicleUpkeepLogVo> pageLog(String numberPlate, Integer page, Integer limit, List<Integer> companyList) {
public PageInfo<VehicleUpkeepLogVo> pageLog(String numberPlate, Integer code,Integer page, Integer limit, List<Integer> companyList) {
PageHelper.startPage(page, limit);
return new PageInfo<>(vehicleUpkeepLogMapper.selectVoAll(numberPlate, companyList));
return new PageInfo<>(vehicleUpkeepLogMapper.selectVoAll(numberPlate, code, companyList));
}
public List<VehicleUpkeepItem> getUpkeepsByIds(List<Integer> ids) {
......
......@@ -14,9 +14,18 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo
List<VehicleDepartureLogVo> selectByVehicleId(String vehicleId);
List<VehicleDepartureLog> selectByVehicle(String vehicleId);
List<VehicleDepartureLogVo> selectVoAll(@Param("numberPlate") String numberPlate, @Param("time") String time);
List<VehicleDepartureLogVo> selectVoAllNotAllData(@Param("numberPlate") String numberPlate, @Param("time") String time, @Param("companyList") List<Integer> companyList);
List<VehicleDepartureLogVo> selectVoAll(@Param("numberPlate") String numberPlate,
@Param("code") Integer code,
@Param("zoneId") Integer zoneId,
@Param("departureId") Integer departureId,
@Param("time") String time);
List<VehicleDepartureLogVo> selectVoAllNotAllData(@Param("numberPlate") String numberPlate,
@Param("code") Integer code,
@Param("zoneId") Integer zoneId,
@Param("departureId") Integer departureId,
@Param("time") String time,
@Param("companyList") List<Integer> companyList);
Integer selectMileageByVehicleId(String vehicleId);
......
......@@ -9,7 +9,7 @@ import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehicleUpkeepLogMapper extends Mapper<VehicleUpkeepLog> {
List<VehicleUpkeepLogVo> selectVoAll(@Param("numberPlate") String numberPlate, @Param("companyList")List<Integer> companyList);
List<VehicleUpkeepLogVo> selectVoAll(@Param("numberPlate") String numberPlate, @Param("code") Integer code, @Param("companyList")List<Integer> companyList);
VehicleUpkeepLogVo selectVoById(Integer id);
......
......@@ -519,7 +519,14 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
}
@GetMapping("/findwith_plate_number")
List<String> findbyPlateNumber(@RequestParam(value = "plateNumber") String plateNumber){
public List<String> findbyPlateNumber(@RequestParam(value = "plateNumber") String plateNumber){
return vehicleBiz.findVehicleIdsByPlateNumber(plateNumber);
}
@GetMapping("/exist_code/{code}")
public ObjectRestResponse<Boolean> checkCodeExist(@PathVariable(value = "code") Integer code,@RequestParam(value = "id") String id){
Boolean exist = vehicleBiz.checkCodeExist(code,id);
return ObjectRestResponse.succ(exist);
}
}
......@@ -33,8 +33,22 @@ public class VehicleDepartureController {
@Autowired
private UserAuthConfig userAuthConfig;
/**
* @param numberPlate 车牌
* @param code 车辆编码
* @param time
* @param departureId 出发分公司id
* @param page
* @param limit
* @param request
* @return
*/
@GetMapping("page")
public RestResponse page(String numberPlate, String time, Integer page, Integer limit, HttpServletRequest request) {
public RestResponse page(String numberPlate,
@RequestParam(value = "code", required = false) Integer code, String time,
@RequestParam(value = "zoneId",required = false) Integer zoneId,
@RequestParam(value = "departureId", required = false) Integer departureId,
Integer page, Integer limit, HttpServletRequest request) {
if (page == null || limit == null) {
page = 1;
limit = 10;
......@@ -43,15 +57,15 @@ public class VehicleDepartureController {
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate, time, page, limit, companyList));
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate, code, zoneId,departureId, time, page, limit, companyList));
}
}
return RestResponse.suc(vehicleDepartureService.page(numberPlate, time, page, limit));
return RestResponse.suc(vehicleDepartureService.page(numberPlate, code, zoneId,departureId, time, page, limit));
}
@GetMapping("small/page")
@IgnoreUserToken
public RestResponse pageBySmall(String numberPlate, String time,Integer page, Integer limit, Integer uid,HttpServletRequest request) {
public RestResponse pageBySmall(String numberPlate, @RequestParam(value = "code", required = false) Integer code, String time, Integer page, Integer limit, Integer uid, HttpServletRequest request) {
if (page == null || limit == null) {
page = 1;
limit = 10;
......@@ -60,14 +74,15 @@ public class VehicleDepartureController {
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate,time, page, limit, companyList));
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate, code, null,null, time, page, limit, companyList));
}
}
return RestResponse.suc(vehicleDepartureService.page(numberPlate,time,page, limit));
return RestResponse.suc(vehicleDepartureService.page(numberPlate, code, null,null, time, page, limit));
}
/**
* 根据车辆id查询并分页
*
* @param vehicleId
* @param page
* @param limit
......@@ -97,17 +112,19 @@ public class VehicleDepartureController {
/**
* 保存
*
* @param vehicleDepartureLog
* @return
*/
@PostMapping("/app/save")
public ObjectRestResponse save(@RequestBody VehicleDepartureLog vehicleDepartureLog){
public ObjectRestResponse save(@RequestBody VehicleDepartureLog vehicleDepartureLog) {
return vehicleDepartureService.save(vehicleDepartureLog);
}
/**
* 查询一条
*
* @param vid 车辆id
* @return
* @throws Exception
......@@ -119,8 +136,8 @@ public class VehicleDepartureController {
/**
*
* 收车
*
* @param vdl
* @return
* @throws Exception
......@@ -131,5 +148,4 @@ public class VehicleDepartureController {
}
}
......@@ -32,6 +32,8 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
......@@ -332,7 +334,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
Example exa = Example.builder(VehicleModel.class).where(
WeekendSqls.<VehicleModel>custom()
.andEqualTo(VehicleModel::getIsdel, 0)
).orderByAsc("sort").build();
).orderByDesc("sort").build();
return ObjectRestResponse.succ(baseBiz.selectByExample(exa));
}
......
......@@ -112,7 +112,7 @@ public class VehicleUpkeepController {
* @return
*/
@GetMapping("log/page")
public RestResponse pageLog(String numberPlate, Integer page, Integer limit) {
public RestResponse pageLog(String numberPlate, @RequestParam(value = "code",required = false) Integer code, Integer page, Integer limit) {
if (page == null || limit == null) {
page = 1;
limit = 10;
......@@ -124,7 +124,7 @@ public class VehicleUpkeepController {
companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
}
}
return RestResponse.suc(vehicleUpkeepService.pageLog(numberPlate, page, limit, companyList));
return RestResponse.suc(vehicleUpkeepService.pageLog(numberPlate, code, page, limit, companyList));
}
/**
......
......@@ -42,8 +42,7 @@
</when>
</choose>
where
vehicle = #{vehicleId} and `year_month`=#{yearMonth}
where vehicle = #{vehicleId} and `year_month`=#{yearMonth}
</update>
<update id="updateById" parameterType="com.xxfc.platform.vehicle.entity.VehicleBookInfo">
update vehicle_book_info set
......
......@@ -327,7 +327,7 @@
<select id="selectByVehicleIdAndTime" parameterType="java.util.Map" resultMap="searchBookRecord">
select v1.* from vehicle_book_record v1
where v1.vehicle_id = #{vehicleId} and v1.book_end_date >= #{time} and v1.status BETWEEN 1 and 2
where v1.vehicle_id = #{vehicleId} and v1.book_end_date > #{time} and v1.status BETWEEN 1 and 2
</select>
<select id="selectZeroHourRecord" resultMap="searchBookRecord" parameterType="java.util.Map">
......
......@@ -61,6 +61,15 @@
)
</if>
<if test="code!=null">
and vehicle.code=#{code}
</if>
<if test="zoneId!=null">
and bc.zone_id=#{zoneId}
</if>
<if test="departureId!=null">
and vehicle_departure_log.departure_branch_company_id=#{departureId}
</if>
</trim>
order by create_time desc
</select>
......@@ -109,6 +118,15 @@
or vehicle_departure_log.departure_time is null
)
</if>
<if test="code!=null">
and vehicle.code=#{code}
</if>
<if test="zoneId!=null">
and bc.zone_id=#{zoneId}
</if>
<if test="departureId!=null">
and vehicle_departure_log.departure_branch_company_id=#{departureId}
</if>
</trim>
order by create_time desc
</select>
......
......@@ -154,19 +154,15 @@
v.expect_destination_branch_company_id=#{subordinateBranch} )
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
and (
<trim suffixOverrides="OR">
<if test="addrProvince !=null">
(bc.addr_province=#{addrProvince} or bc1.addr_province=#{addrProvince}) OR
and bc.addr_province=#{addrProvince}
</if>
<if test="addrCity !=null">
(bc.addr_city=#{addrProvince} or bc1.addr_city=#{addrProvince}) OR
and bc.addr_city=#{addrCity}
</if>
<if test="zoneId !=null">
(bc.zone_id=#{zoneId} or bc1.zone_id=#{zoneId}) OR
and bc.zone_id=#{zoneId}
</if>
</trim>
)
</if>
order by v.code
) r ORDER BY r.parkBranchCompanyName
......@@ -310,19 +306,15 @@
v.expect_destination_branch_company_id=#{subordinateBranch} )
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
and (
<trim suffixOverrides="OR">
<if test="addrProvince !=null">
(bc.addr_province=#{addrProvince} or bc1.addr_province=#{addrProvince}) OR
and bc.addr_province=#{addrProvince}
</if>
<if test="addrCity !=null">
(bc.addr_city=#{addrProvince} or bc1.addr_city=#{addrProvince}) OR
and bc.addr_city=#{addrCity}
</if>
<if test="zoneId !=null">
(bc.zone_id=#{zoneId} or bc1.zone_id=#{zoneId}) OR
and bc.zone_id=#{zoneId}
</if>
</trim>
)
</if>
order by v.code
) r ORDER BY r.parkBranchCompanyName
......@@ -409,6 +401,9 @@
<if test="modelId != null and modelId != ''">
and v1.model_id = #{modelId}
</if>
<if test="code !=null">
and v1.code=#{code}
</if>
and v1.is_del != 1
</where>
</select>
......@@ -420,6 +415,9 @@
<if test="numberPlate != null and numberPlate != ''">
and v1.number_plate = #{numberPlate}
</if>
<if test="code != null and code != ''">
and v1.code = #{code}
</if>
<if test="companyIds != null and companyIds.size > 0">
and v1.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
......@@ -484,6 +482,9 @@
<if test="status != null">
and v1.status = #{status}
</if>
<if test="code !=null">
and v1.code=#{code}
</if>
<if test="companyIds != null and companyIds.size > 0">
and v1.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
......@@ -507,6 +508,9 @@
<if test="status != null">
and v2.status = #{status}
</if>
<if test="code !=null">
and v2.code=#{code}
</if>
<if test="companyIds != null and companyIds.size > 0">
and v2.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
......
......@@ -48,6 +48,9 @@
)
)
</if>
<if test="code !=null">
and b.code=#{code}
</if>
</trim>
order by a.create_time desc
</select>
......
......@@ -61,6 +61,9 @@
<if test="modelId != null and modelId != ''">
and v.model_id = #{modelId}
</if>
<if test="code !=null">
and v.code=#{code}
</if>
<if test="companyIds != null and companyIds.size > 0">
and v.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment