Просмотр исходного кода

[需求][修改]:广告动态二维码生成

release_toaliyun_real
hupeng 7 лет назад
committed by Stormeye Wu
Родитель
Сommit
5779f27e6b
7 измененных файлов: 32 добавлений и 25 удалений
  1. +5
    -4
      mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceController.java
  2. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceScreenAdController.java
  3. +4
    -3
      mallinkAdmin/src/main/java/com/iformall/controller/WxScreenAdController.java
  4. +2
    -3
      mallinkService/src/main/java/com/iformall/enums/EnumDeviceStatus.java
  5. +1
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxDeviceServiceImpl.java
  6. +16
    -11
      mallinkService/src/main/java/com/iformall/service/impl/WxScreenAdServiceImpl.java
  7. +3
    -3
      mallinkService/src/main/resources/mapper/WxMallMapper.xml

+ 5
- 4
mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceController.java Просмотреть файл

@@ -34,14 +34,15 @@ public class WxDeviceController extends BaseController {
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
public Result list(@RequestBody WxDevice wxDevice, Integer pageNum, Integer pageSize) {
public Result list(@ModelAttribute WxDevice wxDevice, Integer pageNum, Integer pageSize) {
wxDevice.setTenantId(getTenantId()); wxDevice.setTenantId(getTenantId());
wxDevice.setStatus(EnumDeviceStatus.VALID.getCode());
return new ResultData(wxDeviceService.listAsPage(wxDevice, pageNum,pageSize)); return new ResultData(wxDeviceService.listAsPage(wxDevice, pageNum,pageSize));
} }


@ApiOperation("添加设备") @ApiOperation("添加设备")
@PostMapping("add") @PostMapping("add")
public Result add(@RequestBody WxDevice wxDevice) {
public Result add(@ModelAttribute WxDevice wxDevice) {


WxDevice record = new WxDevice(); WxDevice record = new WxDevice();
record.setDeviceId(wxDevice.getDeviceId()); record.setDeviceId(wxDevice.getDeviceId());
@@ -49,7 +50,7 @@ public class WxDeviceController extends BaseController {
List<WxDevice> list = wxDeviceService.findList(record); List<WxDevice> list = wxDeviceService.findList(record);
if (list.size() > 0) if (list.size() > 0)
return new ResultData(ErrorCode.DEVICE_ALREADY_EXIST); return new ResultData(ErrorCode.DEVICE_ALREADY_EXIST);
wxDevice.setStatus(EnumDeviceStatus.INIT.getCode());
wxDevice.setStatus(EnumDeviceStatus.VALID.getCode());
wxDevice.setOnlineStatus(EnumDeviceOnlineStatus.OFFLINE.getCode()); wxDevice.setOnlineStatus(EnumDeviceOnlineStatus.OFFLINE.getCode());
wxDevice.setTenantId(getTenantId()); wxDevice.setTenantId(getTenantId());
wxDeviceService.saveOrUpdate(wxDevice); wxDeviceService.saveOrUpdate(wxDevice);
@@ -58,7 +59,7 @@ public class WxDeviceController extends BaseController {


@ApiOperation("更新设备") @ApiOperation("更新设备")
@PostMapping("update") @PostMapping("update")
public Result update(@RequestBody WxDevice wxDevice) {
public Result update(@ModelAttribute WxDevice wxDevice) {
if (wxDevice == null) if (wxDevice == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
if (wxDevice.getId() == null) if (wxDevice.getId() == null)


+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/WxDeviceScreenAdController.java Просмотреть файл

@@ -51,7 +51,7 @@ public class WxDeviceScreenAdController extends BaseController {
wxDevice.setDeviceId(deviceId); wxDevice.setDeviceId(deviceId);
wxDevice.setStatus(EnumScreenAdStatus.VALID.getCode()); wxDevice.setStatus(EnumScreenAdStatus.VALID.getCode());
List<WxDevice> list = wxDeviceService.findList(wxDevice); List<WxDevice> list = wxDeviceService.findList(wxDevice);
if (list.size() < 0)
if (list.size() <= 0)
return null; return null;
else else
return list.get(0); return list.get(0);


+ 4
- 3
mallinkAdmin/src/main/java/com/iformall/controller/WxScreenAdController.java Просмотреть файл

@@ -45,14 +45,15 @@ public class WxScreenAdController extends BaseController {
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
@ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
public Result list(@RequestBody WxScreenAd wxScreenAd, Integer pageNum, Integer pageSize) {
public Result list(@ModelAttribute WxScreenAd wxScreenAd, Integer pageNum, Integer pageSize) {
wxScreenAd.setTenantId(getTenantId()); wxScreenAd.setTenantId(getTenantId());
wxScreenAd.setStatus(EnumScreenAdStatus.VALID.getCode());
return new ResultData(wxScreenAdService.listAsPage(wxScreenAd,pageNum,pageSize)); return new ResultData(wxScreenAdService.listAsPage(wxScreenAd,pageNum,pageSize));
} }


@ApiOperation("添加广告") @ApiOperation("添加广告")
@PostMapping("add") @PostMapping("add")
public Result add(@RequestBody WxScreenAd wxScreenAd) {
public Result add(@ModelAttribute WxScreenAd wxScreenAd) {
wxScreenAd.setStatus(EnumScreenAdStatus.VALID.getCode()); wxScreenAd.setStatus(EnumScreenAdStatus.VALID.getCode());
wxScreenAd.setTenantId(getTenantId()); wxScreenAd.setTenantId(getTenantId());
wxScreenAdService.saveOrUpdate(wxScreenAd); wxScreenAdService.saveOrUpdate(wxScreenAd);
@@ -61,7 +62,7 @@ public class WxScreenAdController extends BaseController {


@ApiOperation("更新广告") @ApiOperation("更新广告")
@PostMapping("update") @PostMapping("update")
public Result update(@RequestBody WxScreenAd wxScreenAd) {
public Result update(@ModelAttribute WxScreenAd wxScreenAd) {
if (wxScreenAd == null) if (wxScreenAd == null)
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
if (wxScreenAd.getId() == null) if (wxScreenAd.getId() == null)


+ 2
- 3
mallinkService/src/main/java/com/iformall/enums/EnumDeviceStatus.java Просмотреть файл

@@ -5,9 +5,8 @@ package com.iformall.enums;
*/ */
public enum EnumDeviceStatus { public enum EnumDeviceStatus {


INIT(0, "初始化"),
VALID(1, "有效"),
INVALID(2, "无效");
VALID(0, "有效"),
INVALID(1, "无效");
public static EnumDeviceStatus getEnum(Integer code) { public static EnumDeviceStatus getEnum(Integer code) {
for (EnumDeviceStatus value : values()) { for (EnumDeviceStatus value : values()) {
if (value.getCode().equals(code)) { if (value.getCode().equals(code)) {


+ 1
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxDeviceServiceImpl.java Просмотреть файл

@@ -40,6 +40,7 @@ public class WxDeviceServiceImpl implements WxDeviceService {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId()); record.setId(idWorker.nextId());
record.setCreateDate(new Date()); record.setCreateDate(new Date());
record.setUpdateDate(new Date());
wxDeviceMapper.insertSelective(record); wxDeviceMapper.insertSelective(record);
} else { } else {
record.setUpdateDate(new Date()); record.setUpdateDate(new Date());


+ 16
- 11
mallinkService/src/main/java/com/iformall/service/impl/WxScreenAdServiceImpl.java Просмотреть файл

@@ -54,6 +54,7 @@ public class WxScreenAdServiceImpl implements WxScreenAdService {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId()); record.setId(idWorker.nextId());
record.setCreateDate(new Date()); record.setCreateDate(new Date());
record.setUpdateDate(new Date());
setQrcode(record); setQrcode(record);


wxScreenAdMapper.insertSelective(record); wxScreenAdMapper.insertSelective(record);
@@ -92,42 +93,46 @@ public class WxScreenAdServiceImpl implements WxScreenAdService {
private static String wxacodeunlimit = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="; private static String wxacodeunlimit = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=";


private static int QRCODE_WIDTH = 300; private static int QRCODE_WIDTH = 300;
private static String QRCODE_PAGE_COUPON = "pages/coupon/detail/index";
private static String QRCODE_PAGE_CAMPGIN = "pages/bannerdetail/index";
private static String QRCODE_PAGE_HOME = "pages/index/index"; private static String QRCODE_PAGE_HOME = "pages/index/index";
private static boolean QRCODE_AUTO_COLOR = false; private static boolean QRCODE_AUTO_COLOR = false;
//private static int QRCODE_LINCOLOR =;
private static boolean QRCODE_IS_HYALINE = false; private static boolean QRCODE_IS_HYALINE = false;
//private static int QRCODE_LINCOLOR =;


private static String QRCODE_JUMP_CMD_HOME = "JH";
private static String QRCODE_JUMP_CMD_COUPON = "JC";
private static String QRCODE_JUMP_CMD_CAMPGIN = "JB";
private byte[] getQrcode(Long id, int type, WxAppinfo appInfo) throws Exception { private byte[] getQrcode(Long id, int type, WxAppinfo appInfo) throws Exception {
String accessToken = appInfo.getAccessToken(); String accessToken = appInfo.getAccessToken();
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON); headers.setContentType(MediaType.APPLICATION_JSON);
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();


map.put("scene", id.toString());

if (EnumScreenAdType.COUPON.getCode().equals(type)) if (EnumScreenAdType.COUPON.getCode().equals(type))
map.put("page", QRCODE_PAGE_COUPON);
map.put("scene", QRCODE_JUMP_CMD_COUPON+":"+id.toString());
else if (EnumScreenAdType.CAMPAIGN.getCode().equals(type)) else if (EnumScreenAdType.CAMPAIGN.getCode().equals(type))
map.put("page", QRCODE_PAGE_CAMPGIN);
map.put("scene", QRCODE_JUMP_CMD_CAMPGIN+":"+id.toString());
else else
map.put("page", QRCODE_PAGE_HOME);
map.put("scene", QRCODE_JUMP_CMD_HOME+":"+"0");


map.put("page", QRCODE_PAGE_HOME);
map.put("width", QRCODE_WIDTH); map.put("width", QRCODE_WIDTH);
map.put("auto_color", QRCODE_AUTO_COLOR); map.put("auto_color", QRCODE_AUTO_COLOR);
//map.put("line_color", );
map.put("is_hyaline", QRCODE_IS_HYALINE); map.put("is_hyaline", QRCODE_IS_HYALINE);
//map.put("line_color", );


HttpEntity<Map<String,Object>> entity = new HttpEntity<Map<String,Object>>(map, headers); HttpEntity<Map<String,Object>> entity = new HttpEntity<Map<String,Object>>(map, headers);
String reqUrl =wxacodeunlimit+accessToken; String reqUrl =wxacodeunlimit+accessToken;


RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
ResponseEntity<byte[]> responseEntity = restTemplate.postForEntity(reqUrl, entity, byte[].class); ResponseEntity<byte[]> responseEntity = restTemplate.postForEntity(reqUrl, entity, byte[].class);
byte[] result = null;
if(responseEntity.hasBody()) { if(responseEntity.hasBody()) {
return responseEntity.getBody();
result = responseEntity.getBody();
}
if (result[0]==0xff){ //image
return result;
} else { } else {
logger.error( "QRCODE get error:" + result.toString());
return null; return null;
} }
} }


+ 3
- 3
mallinkService/src/main/resources/mapper/WxMallMapper.xml Просмотреть файл

@@ -25,7 +25,7 @@
<sql id="allColumns"> <sql id="allColumns">
`id`,`tenant_id`,`name`,`group`,`country`,`province`,`city`,`addr`, `id`,`tenant_id`,`name`,`group`,`country`,`province`,`city`,`addr`,
`total_area`,`operating_area`,`park_area`,`park_place_number`,`service_phone`, `total_area`,`operating_area`,`park_area`,`park_place_number`,`service_phone`,
`img_url`,`img_url_h`, `weap_note`, `img_weapp_qrcode`, `img_wemp_qrcode`
`img_url`,`img_url_h`, `weap_note`, `img_qrcode_weapp`, `img_qrcode_wemp`
</sql> </sql>


<sql id="dynamicWhereConditions"> <sql id="dynamicWhereConditions">
@@ -88,10 +88,10 @@
and `img_ur_h` = #{imgUrlH} and `img_ur_h` = #{imgUrlH}
</if> </if>


<if test=" null != imgWeappQrcode ">
<if test=" null != imgQrcodeWeapp ">
and `img_qrcode_weapp` = #{imgQrcodeWeapp} and `img_qrcode_weapp` = #{imgQrcodeWeapp}
</if> </if>
<if test=" null != imgWempQrcode ">
<if test=" null != imgQrcodeWemp ">
and `img_qrcode_wemp` = #{imgQrcodeWemp} and `img_qrcode_wemp` = #{imgQrcodeWemp}
</if> </if>




Загрузка…
Отмена
Сохранить