新增品
이 커밋은 다음에 포함됨:
@@ -6,203 +6,202 @@ import lombok.Data;
|
||||
|
||||
/**
|
||||
* 用户
|
||||
*
|
||||
* @author Administrator
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
@Data
|
||||
public class SysUser {
|
||||
private Integer userId;
|
||||
private Integer userId;
|
||||
|
||||
public Integer getUserId() {
|
||||
return userId;
|
||||
}
|
||||
public Integer getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(Integer userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
public void setUserId(Integer userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getRealname() {
|
||||
return realname;
|
||||
}
|
||||
public String getRealname() {
|
||||
return realname;
|
||||
}
|
||||
|
||||
public void setRealname(String realname) {
|
||||
this.realname = realname;
|
||||
}
|
||||
public void setRealname(String realname) {
|
||||
this.realname = realname;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
public void setUsername(String username) {
|
||||
this.username = username;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getUserStatus() {
|
||||
return userStatus;
|
||||
}
|
||||
public String getUserStatus() {
|
||||
return userStatus;
|
||||
}
|
||||
|
||||
public void setUserStatus(String userStatus) {
|
||||
this.userStatus = userStatus;
|
||||
}
|
||||
public void setUserStatus(String userStatus) {
|
||||
this.userStatus = userStatus;
|
||||
}
|
||||
|
||||
public String getRole() {
|
||||
return role;
|
||||
}
|
||||
public String getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public void setRole(String role) {
|
||||
this.role = role;
|
||||
}
|
||||
public void setRole(String role) {
|
||||
this.role = role;
|
||||
}
|
||||
|
||||
public String getSysStatus() {
|
||||
return sysStatus;
|
||||
}
|
||||
public String getSysStatus() {
|
||||
return sysStatus;
|
||||
}
|
||||
|
||||
public void setSysStatus(String sysStatus) {
|
||||
this.sysStatus = sysStatus;
|
||||
}
|
||||
public void setSysStatus(String sysStatus) {
|
||||
this.sysStatus = sysStatus;
|
||||
}
|
||||
|
||||
public String getReadLogStatus() {
|
||||
return readLogStatus;
|
||||
}
|
||||
public String getReadLogStatus() {
|
||||
return readLogStatus;
|
||||
}
|
||||
|
||||
public void setReadLogStatus(String readLogStatus) {
|
||||
this.readLogStatus = readLogStatus;
|
||||
}
|
||||
public void setReadLogStatus(String readLogStatus) {
|
||||
this.readLogStatus = readLogStatus;
|
||||
}
|
||||
|
||||
public String getCreateBy() {
|
||||
return createBy;
|
||||
}
|
||||
public String getCreateBy() {
|
||||
return createBy;
|
||||
}
|
||||
|
||||
public void setCreateBy(String createBy) {
|
||||
this.createBy = createBy;
|
||||
}
|
||||
public void setCreateBy(String createBy) {
|
||||
this.createBy = createBy;
|
||||
}
|
||||
|
||||
public Date getCreateDate() {
|
||||
return createDate;
|
||||
}
|
||||
public Date getCreateDate() {
|
||||
return createDate;
|
||||
}
|
||||
|
||||
public void setCreateDate(Date createDate) {
|
||||
this.createDate = createDate;
|
||||
}
|
||||
public void setCreateDate(Date createDate) {
|
||||
this.createDate = createDate;
|
||||
}
|
||||
|
||||
public String getUpdateBy() {
|
||||
return updateBy;
|
||||
}
|
||||
public String getUpdateBy() {
|
||||
return updateBy;
|
||||
}
|
||||
|
||||
public void setUpdateBy(String updateBy) {
|
||||
this.updateBy = updateBy;
|
||||
}
|
||||
public void setUpdateBy(String updateBy) {
|
||||
this.updateBy = updateBy;
|
||||
}
|
||||
|
||||
public Date getUpdateDate() {
|
||||
return updateDate;
|
||||
}
|
||||
public Date getUpdateDate() {
|
||||
return updateDate;
|
||||
}
|
||||
|
||||
public void setUpdateDate(Date updateDate) {
|
||||
this.updateDate = updateDate;
|
||||
}
|
||||
public void setUpdateDate(Date updateDate) {
|
||||
this.updateDate = updateDate;
|
||||
}
|
||||
|
||||
public String getBirthDay() {
|
||||
return birthDay;
|
||||
}
|
||||
public String getBirthDay() {
|
||||
return birthDay;
|
||||
}
|
||||
|
||||
public void setBirthDay(String birthDay) {
|
||||
this.birthDay = birthDay;
|
||||
}
|
||||
public void setBirthDay(String birthDay) {
|
||||
this.birthDay = birthDay;
|
||||
}
|
||||
|
||||
public String getBirthType() {
|
||||
return birthType;
|
||||
}
|
||||
public String getBirthType() {
|
||||
return birthType;
|
||||
}
|
||||
|
||||
public void setBirthType(String birthType) {
|
||||
this.birthType = birthType;
|
||||
}
|
||||
public void setBirthType(String birthType) {
|
||||
this.birthType = birthType;
|
||||
}
|
||||
|
||||
public Integer getIsBirthDay() {
|
||||
return isBirthDay;
|
||||
}
|
||||
public Integer getIsBirthDay() {
|
||||
return isBirthDay;
|
||||
}
|
||||
|
||||
public void setIsBirthDay(Integer isBirthDay) {
|
||||
this.isBirthDay = isBirthDay;
|
||||
}
|
||||
public void setIsBirthDay(Integer isBirthDay) {
|
||||
this.isBirthDay = isBirthDay;
|
||||
}
|
||||
|
||||
public String getEntryDate() {
|
||||
return entryDate;
|
||||
}
|
||||
public String getEntryDate() {
|
||||
return entryDate;
|
||||
}
|
||||
|
||||
public void setEntryDate(String entryDate) {
|
||||
this.entryDate = entryDate;
|
||||
}
|
||||
public void setEntryDate(String entryDate) {
|
||||
this.entryDate = entryDate;
|
||||
}
|
||||
|
||||
public String getNeedIp() {
|
||||
return needIp;
|
||||
}
|
||||
public String getNeedIp() {
|
||||
return needIp;
|
||||
}
|
||||
|
||||
public void setNeedIp(String needIp) {
|
||||
this.needIp = needIp;
|
||||
}
|
||||
public void setNeedIp(String needIp) {
|
||||
this.needIp = needIp;
|
||||
}
|
||||
|
||||
public String getRoleSearch() {
|
||||
return roleSearch;
|
||||
}
|
||||
public String getRoleSearch() {
|
||||
return roleSearch;
|
||||
}
|
||||
|
||||
public void setRoleSearch(String roleSearch) {
|
||||
this.roleSearch = roleSearch;
|
||||
}
|
||||
public void setRoleSearch(String roleSearch) {
|
||||
this.roleSearch = roleSearch;
|
||||
}
|
||||
|
||||
public String[] getRoleArr() {
|
||||
return roleArr;
|
||||
}
|
||||
public String[] getRoleArr() {
|
||||
return roleArr;
|
||||
}
|
||||
|
||||
public void setRoleArr(String[] roleArr) {
|
||||
this.roleArr = roleArr;
|
||||
}
|
||||
public void setRoleArr(String[] roleArr) {
|
||||
this.roleArr = roleArr;
|
||||
}
|
||||
|
||||
private String realname;
|
||||
private String realname;
|
||||
|
||||
private String username;
|
||||
private String username;
|
||||
|
||||
private String password;
|
||||
private String password;
|
||||
|
||||
private String userStatus;
|
||||
private String userStatus;
|
||||
|
||||
private String role;
|
||||
private String role;
|
||||
|
||||
private String sysStatus;
|
||||
private String sysStatus;
|
||||
|
||||
private String readLogStatus;
|
||||
private String readLogStatus;
|
||||
|
||||
private String createBy;
|
||||
private String createBy;
|
||||
|
||||
private Date createDate;
|
||||
private Date createDate;
|
||||
|
||||
private String updateBy;
|
||||
private String updateBy;
|
||||
|
||||
private Date updateDate;
|
||||
private Date updateDate;
|
||||
|
||||
private String birthDay;
|
||||
private String birthDay;
|
||||
|
||||
private String birthType;
|
||||
private String birthType;
|
||||
|
||||
private Integer isBirthDay;
|
||||
private Integer isBirthDay;
|
||||
|
||||
private String entryDate;
|
||||
private String entryDate;
|
||||
|
||||
// 是否需要判断IP 0:否 1:是
|
||||
private String needIp;
|
||||
// 是否需要判断IP 0:否 1:是
|
||||
private String needIp;
|
||||
|
||||
// 根据角色查找用户
|
||||
private String roleSearch;
|
||||
// 根据角色查找用户
|
||||
private String roleSearch;
|
||||
|
||||
// 用户所拥有角色数组
|
||||
private String[] roleArr;
|
||||
// 用户所拥有角色数组
|
||||
private String[] roleArr;
|
||||
|
||||
}
|
||||
@@ -4658,31 +4658,103 @@ public class ProductService {
|
||||
double[] areas = {1, 4, 6, 9, 12, 16, 20, 25, 36, 45, 48.6, 54, 60, 72, 81};
|
||||
|
||||
area = length * width;
|
||||
for (int i = 0; i < count_list.length; i++) {
|
||||
int count_item = count_list[i];
|
||||
if (priceList.size() > 2) {
|
||||
break;
|
||||
}
|
||||
if (count > count_item) {
|
||||
continue;
|
||||
}
|
||||
int count_index = Arrays.binarySearch(count_list, count_item);
|
||||
price = 0;
|
||||
if (count_index >= 0) {
|
||||
price = new PriceUtils().TablePrice(area, prices[count_index], areas);
|
||||
}
|
||||
Product product = new Product();
|
||||
product.setCount(count_item);
|
||||
product.setPrice(Math.ceil(price * number));
|
||||
priceList.add(product);
|
||||
return getAreaCenterPrice(count_list, count, area, prices, areas, number);
|
||||
case "透卡":
|
||||
prices = new int[][]{
|
||||
{136, 163, 177, 190, 197, 227, 257, 303, 333, 407, 430},
|
||||
{193, 250, 277, 300, 313, 373, 433, 530, 587, 733, 780},
|
||||
{250, 337, 373, 410, 430, 520, 613, 757, 840, 1063, 1133},
|
||||
{307, 423, 473, 523, 547, 670, 790, 983, 1097, 1390, 1483},
|
||||
{333, 463, 520, 573, 603, 737, 873, 1090, 1210, 1540, 1643},
|
||||
{490, 697, 783, 873, 917, 1133, 1350, 1693, 1890, 2417, 2580},
|
||||
{533, 760, 857, 953, 1003, 1237, 1477, 1853, 2067, 2643, 2823},
|
||||
{990, 1440, 1633, 1830, 1927, 2397, 2873, 3627, 4057, 5207, 5567},
|
||||
{2007, 2943, 3347, 3747, 3950, 4927, 5910, 7473, 8367, 10743, 11490},
|
||||
{3013, 4413, 5013, 5613, 5913, 7373, 8847, 11180, 12513, 14077, 16007},
|
||||
};
|
||||
count_list = new int[]{100, 200, 300, 400, 500, 800, 1000, 2000, 5000, 10000};
|
||||
areas = new double[]{22.5, 35.1, 40.5, 45.9, 48.6, 67.75, 75, 96, 108, 140, 150};
|
||||
area = length * width;
|
||||
return getAreaCenterPrice(count_list, count, area, prices, areas, number);
|
||||
case "澜达海报":
|
||||
//铜版纸200g (售价)
|
||||
prices = new int[][]{
|
||||
{90, 90, 90, 90, 90, 94, 94, 94, 94},
|
||||
{100, 100, 100, 100, 100, 187, 187, 187, 187},
|
||||
{140, 140, 140, 140, 140, 280, 280, 280, 280},
|
||||
{187, 187, 187, 187, 187, 374, 374, 374, 374},
|
||||
{234, 234, 234, 234, 234, 467, 467, 467, 467},
|
||||
{467, 467, 467, 467, 467, 934, 934, 934, 934},
|
||||
{934, 934, 934, 934, 934, 1867, 1867, 1867, 1867},
|
||||
{2334, 2334, 2334, 2334, 2334, 4667, 4667, 4667, 4667},
|
||||
{4667, 4667, 4667, 4667, 4667, 9334, 9334, 9334, 9334},
|
||||
{9334, 9334, 9334, 9334, 9334, 18667, 18667, 18667, 18667},
|
||||
{23334, 23334, 23334, 23334, 23334, 46667, 46667, 46667, 46667},
|
||||
};
|
||||
if ("2".equals(dto.getKind())) {
|
||||
prices = new int[][]{
|
||||
{90, 90, 90, 90, 90, 107, 107, 107, 107},
|
||||
{100, 107, 107, 107, 107, 213, 213, 213, 213},
|
||||
{120, 160, 160, 160, 160, 320, 320, 320, 320},
|
||||
{150, 213, 213, 213, 213, 427, 427, 427, 427},
|
||||
{139, 267, 267, 267, 267, 533, 533, 533, 533},
|
||||
{267, 533, 533, 533, 533, 1067, 1067, 1067, 1067},
|
||||
{533, 1067, 1067, 1067, 1067, 2133, 2133, 2133, 2133},
|
||||
{1333, 2667, 2667, 2667, 2667, 5333, 5333, 5333, 5333},
|
||||
{2667, 5333, 5333, 5333, 5333, 10667, 10667, 10667, 10667},
|
||||
{5333, 10667, 10667, 10667, 10667, 21333, 21333, 21333, 21333},
|
||||
{13333, 26667, 26667, 26667, 26667, 53333, 53333, 53333, 53333},
|
||||
};
|
||||
}
|
||||
return priceList;
|
||||
if ("3".equals(dto.getKind())) {
|
||||
prices = new int[][]{
|
||||
{90, 90, 90, 90, 90, 150, 150, 150, 150},
|
||||
{100, 140, 140, 150, 150, 300, 300, 300, 300},
|
||||
{110, 207, 207, 223, 223, 447, 447, 447, 447},
|
||||
{140, 277, 277, 300, 300, 597, 597, 597, 597},
|
||||
{180, 347, 347, 373, 373, 747, 747, 747, 747},
|
||||
{347, 693, 693, 747, 747, 1493, 1493, 1493, 1493},
|
||||
{693, 1387, 1387, 1493, 1493, 2987, 2987, 2987, 2987},
|
||||
{1733, 3467, 3467, 3733, 3733, 7467, 7467, 7467, 7467},
|
||||
{3467, 6933, 6933, 7467, 7467, 14933, 14933, 14933, 14933},
|
||||
{6933, 13867, 13867, 14933, 14933, 29867, 29867, 29867, 29867},
|
||||
{17333, 34667, 34667, 37333, 37333, 74667, 74667, 74667, 74667},
|
||||
};
|
||||
}
|
||||
count_list = new int[]{10, 20, 30, 40, 50, 100, 200, 500, 1000, 2000, 5000};
|
||||
areas = new double[]{1197, 1716, 2394, 2596, 3430, 3467.1, 4788, 5192, 6860};
|
||||
area = length * width;
|
||||
|
||||
return getAreaCenterPrice(count_list, count, area, prices, areas, number);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private List<Product> getAreaCenterPrice(int[] count_list, int count, double area, int[][] prices, double[] areas, int number) {
|
||||
List<Product> priceList = new ArrayList<>();
|
||||
for (int i = 0; i < count_list.length; i++) {
|
||||
int count_item = count_list[i];
|
||||
if (priceList.size() > 2) {
|
||||
break;
|
||||
}
|
||||
if (count > count_item) {
|
||||
continue;
|
||||
}
|
||||
int count_index = Arrays.binarySearch(count_list, count_item);
|
||||
double price = 0;
|
||||
if (count_index >= 0) {
|
||||
price = new PriceUtils().TablePrice(area, prices[count_index], areas);
|
||||
}
|
||||
Product product = new Product();
|
||||
product.setCount(count_item);
|
||||
product.setPrice(Math.ceil(price * number));
|
||||
priceList.add(product);
|
||||
}
|
||||
return priceList;
|
||||
}
|
||||
|
||||
private List<Product> lessSticker(Product dto, String kind, Integer number, Double width, Double length,
|
||||
int count, List<Product> stickersList, String role) {
|
||||
double price = 0.0;
|
||||
|
||||
@@ -18,252 +18,253 @@ import lingtao.net.util.MD5Util;
|
||||
@Service
|
||||
public class SysUserService {
|
||||
|
||||
@Autowired
|
||||
private SysUserMapper userMapper;
|
||||
@Autowired
|
||||
private SysUserMapper userMapper;
|
||||
|
||||
// 注册
|
||||
public Msg register(SysUser user) {
|
||||
user.setPassword(new MD5Util().md5(user.getPassword(), "lingtao"));
|
||||
user.setCreateDate(new Date());
|
||||
// 注册的用户都是未激活状态
|
||||
user.setUserStatus("0");
|
||||
// 注册的用户都是系统功能隐藏状态
|
||||
user.setSysStatus("0");
|
||||
// 注册的用户不需要判断IP
|
||||
user.setNeedIp("1");
|
||||
String roleId = user.getRole();
|
||||
if (StringUtils.isEmpty(roleId))
|
||||
return null;
|
||||
// 给用户赋予角色
|
||||
user.setRole("999," + roleId);
|
||||
// user.setRole("999");
|
||||
// Integer[] ids = {999};
|
||||
int count = userMapper.insertSelective(user);
|
||||
// 根据角色的id把角色的权限给用户
|
||||
Integer[] ids = { 999, Integer.valueOf(roleId) };
|
||||
// 新增用户后会自动回补id
|
||||
Integer userId = user.getUserId();
|
||||
userMapper.addUserRoles(userId, ids);
|
||||
if (count < 0) {
|
||||
return Msg.fail();
|
||||
}
|
||||
return Msg.success();
|
||||
}
|
||||
// 注册
|
||||
public Msg register(SysUser user) {
|
||||
user.setPassword(new MD5Util().md5(user.getPassword(), "lingtao"));
|
||||
user.setCreateDate(new Date());
|
||||
// 注册的用户都是未激活状态
|
||||
user.setUserStatus("0");
|
||||
// 注册的用户都是系统功能隐藏状态
|
||||
user.setSysStatus("0");
|
||||
// 注册的用户不需要判断IP
|
||||
user.setNeedIp("1");
|
||||
String roleId = user.getRole();
|
||||
if (StringUtils.isEmpty(roleId))
|
||||
return null;
|
||||
// 给用户赋予角色
|
||||
user.setRole("999," + roleId);
|
||||
// user.setRole("999");
|
||||
// Integer[] ids = {999};
|
||||
int count = userMapper.insertSelective(user);
|
||||
// 根据角色的id把角色的权限给用户
|
||||
Integer[] ids = {999, Integer.valueOf(roleId)};
|
||||
// 新增用户后会自动回补id
|
||||
Integer userId = user.getUserId();
|
||||
userMapper.addUserRoles(userId, ids);
|
||||
if (count < 0) {
|
||||
return Msg.fail();
|
||||
}
|
||||
return Msg.success();
|
||||
}
|
||||
|
||||
public List<SysUser> getUsers(SysUser user) {
|
||||
// 用户所拥有的角色
|
||||
String[] roleArr = user.getRole().split(",");
|
||||
// 转成list,拿掉‘组长’身份
|
||||
List<String> list = new ArrayList<String>(Arrays.asList(roleArr));
|
||||
// 判断是否拥有超管身份标识
|
||||
boolean isSuper = false;
|
||||
for (int i = 0; i < roleArr.length; i++) {
|
||||
// 有‘超级管理员’身份,状态改为true
|
||||
if ("1".equals(roleArr[i])) {
|
||||
isSuper = true;
|
||||
break;
|
||||
}
|
||||
public List<SysUser> getUsers(SysUser user) {
|
||||
// 用户所拥有的角色
|
||||
String[] roleArr = user.getRole().split(",");
|
||||
// 转成list,拿掉‘组长’身份
|
||||
List<String> list = new ArrayList<String>(Arrays.asList(roleArr));
|
||||
// 判断是否拥有超管身份标识
|
||||
boolean isSuper = false;
|
||||
for (int i = 0; i < roleArr.length; i++) {
|
||||
// 有‘超级管理员’身份,状态改为true
|
||||
if ("1".equals(roleArr[i])) {
|
||||
isSuper = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// 如果有【店长/考试审核员/客服/组长/IP管理员/操作日志/不填旺旺】身份,去掉。不带去查询
|
||||
if ("666".equals(roleArr[i]) || "888".equals(roleArr[i]) || "999".equals(roleArr[i])
|
||||
|| "1011".equals(roleArr[i]) || "1015".equals(roleArr[i]) || "1042".equals(roleArr[i])
|
||||
|| "1049".equals(roleArr[i])) {
|
||||
list.remove(roleArr[i]);
|
||||
}
|
||||
}
|
||||
// 将list转为String[] 数组
|
||||
roleArr = list.toArray(new String[list.size()]);
|
||||
// 如果有【店长/考试审核员/客服/组长/IP管理员/操作日志/不填旺旺】身份,去掉。不带去查询
|
||||
if ("666".equals(roleArr[i]) || "888".equals(roleArr[i]) || "999".equals(roleArr[i])
|
||||
|| "1011".equals(roleArr[i]) || "1015".equals(roleArr[i]) || "1042".equals(roleArr[i])
|
||||
|| "1049".equals(roleArr[i])) {
|
||||
list.remove(roleArr[i]);
|
||||
}
|
||||
}
|
||||
// 将list转为String[] 数组
|
||||
roleArr = list.toArray(new String[list.size()]);
|
||||
|
||||
// 如果没有‘超级管理员’身份,只能看到负责的部门的用户;如果有可以看到所有用户
|
||||
if (!isSuper) {
|
||||
// 如果是通过‘用户角色’查询
|
||||
if (StringUtils.isNotEmpty(user.getRoleSearch())) {
|
||||
// 清除自己拥有的角色,防止查询出所有的部门数据
|
||||
roleArr = null;
|
||||
}
|
||||
// 如果有多个
|
||||
if (user.getRole().contains(",")) {
|
||||
user.setRoleArr(roleArr);
|
||||
} else {// 只有一个角色
|
||||
user.setRoleSearch(user.getRole());
|
||||
}
|
||||
}
|
||||
// 如果没有‘超级管理员’身份,只能看到负责的部门的用户;如果有可以看到所有用户
|
||||
if (!isSuper) {
|
||||
// 如果是通过‘用户角色’查询
|
||||
if (StringUtils.isNotEmpty(user.getRoleSearch())) {
|
||||
// 清除自己拥有的角色,防止查询出所有的部门数据
|
||||
roleArr = null;
|
||||
}
|
||||
// 如果有多个
|
||||
if (user.getRole().contains(",")) {
|
||||
user.setRoleArr(roleArr);
|
||||
} else {// 只有一个角色
|
||||
user.setRoleSearch(user.getRole());
|
||||
}
|
||||
}
|
||||
|
||||
return userMapper.getUsers(user);
|
||||
}
|
||||
return userMapper.getUsers(user);
|
||||
}
|
||||
|
||||
// 检查用户名是否存在
|
||||
public Msg checkUsername(String username) {
|
||||
SysUser user = userMapper.getUserByUsername(username);
|
||||
if (user != null) {
|
||||
return Msg.fail();
|
||||
}
|
||||
return Msg.success();
|
||||
}
|
||||
// 检查用户名是否存在
|
||||
public Msg checkUsername(String username) {
|
||||
SysUser user = userMapper.getUserByUsername(username);
|
||||
if (user != null) {
|
||||
return Msg.fail();
|
||||
}
|
||||
return Msg.success();
|
||||
}
|
||||
|
||||
// 新增
|
||||
public Msg addUser(SysUser user) {
|
||||
user.setPassword(new MD5Util().md5(user.getPassword(), "lingtao"));
|
||||
user.setCreateDate(new Date());
|
||||
try {
|
||||
userMapper.insertSelective(user);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
// 新增
|
||||
public Msg addUser(SysUser user) {
|
||||
user.setPassword(new MD5Util().md5(user.getPassword(), "lingtao"));
|
||||
user.setCreateDate(new Date());
|
||||
user.setSysStatus("2");
|
||||
try {
|
||||
userMapper.insertSelective(user);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
|
||||
// 修改
|
||||
public Msg updateUserById(SysUser user) {
|
||||
if (!"********".equals(user.getPassword())) { // 如果改过密码
|
||||
user.setPassword(new MD5Util().md5(user.getPassword(), "lingtao"));
|
||||
} else {
|
||||
user.setPassword(null);
|
||||
}
|
||||
// 如果有【店长】身份,更改的角色前面添加【客服】
|
||||
SysUser user2 = (SysUser) SecurityUtils.getSubject().getPrincipal();
|
||||
boolean flag = false;
|
||||
String[] role = user2.getRole().split(",");
|
||||
for (int i = 0; i < role.length; i++) {
|
||||
if ("666".equals(role[i])) {
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
user.setRole("999," + user.getRole());
|
||||
}
|
||||
user.setUpdateDate(new Date());
|
||||
try {
|
||||
userMapper.updateByPrimaryKeySelective(user);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
// 修改
|
||||
public Msg updateUserById(SysUser user) {
|
||||
if (!"********".equals(user.getPassword())) { // 如果改过密码
|
||||
user.setPassword(new MD5Util().md5(user.getPassword(), "lingtao"));
|
||||
} else {
|
||||
user.setPassword(null);
|
||||
}
|
||||
// 如果有【店长】身份,更改的角色前面添加【客服】
|
||||
SysUser user2 = (SysUser) SecurityUtils.getSubject().getPrincipal();
|
||||
boolean flag = false;
|
||||
String[] role = user2.getRole().split(",");
|
||||
for (int i = 0; i < role.length; i++) {
|
||||
if ("666".equals(role[i])) {
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (flag) {
|
||||
user.setRole("999," + user.getRole());
|
||||
}
|
||||
user.setUpdateDate(new Date());
|
||||
try {
|
||||
userMapper.updateByPrimaryKeySelective(user);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
public Msg deleteUserById(Integer userId) {
|
||||
try {
|
||||
userMapper.deleteByPrimaryKey(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail("主外键关联,删除失败!");
|
||||
}
|
||||
}
|
||||
// 删除用户
|
||||
public Msg deleteUserById(Integer userId) {
|
||||
try {
|
||||
userMapper.deleteByPrimaryKey(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail("主外键关联,删除失败!");
|
||||
}
|
||||
}
|
||||
|
||||
// 改变用户状态
|
||||
public Msg changeUserStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.changeUserStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
// 改变用户状态
|
||||
public Msg changeUserStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.changeUserStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
|
||||
public void addUserRoles(Integer userId, Integer[] ids) {
|
||||
userMapper.addUserRoles(userId, ids);
|
||||
}
|
||||
public void addUserRoles(Integer userId, Integer[] ids) {
|
||||
userMapper.addUserRoles(userId, ids);
|
||||
}
|
||||
|
||||
public void deleteUserRoles(Integer userId) {
|
||||
userMapper.deleteUserRoles(userId);
|
||||
}
|
||||
public void deleteUserRoles(Integer userId) {
|
||||
userMapper.deleteUserRoles(userId);
|
||||
}
|
||||
|
||||
public Msg updatePassword(SysUser user) {
|
||||
user.setPassword(new MD5Util().md5(user.getPassword(), "lingtao"));
|
||||
int i = userMapper.updateByPrimaryKeySelective(user);
|
||||
if (i > 0) {
|
||||
return Msg.success();
|
||||
}
|
||||
return Msg.fail();
|
||||
}
|
||||
public Msg updatePassword(SysUser user) {
|
||||
user.setPassword(new MD5Util().md5(user.getPassword(), "lingtao"));
|
||||
int i = userMapper.updateByPrimaryKeySelective(user);
|
||||
if (i > 0) {
|
||||
return Msg.success();
|
||||
}
|
||||
return Msg.fail();
|
||||
}
|
||||
|
||||
public Msg addBirthDay(SysUser user) {
|
||||
SysUser sysUser = (SysUser) SecurityUtils.getSubject().getPrincipal();
|
||||
user.setUserId(sysUser.getUserId());
|
||||
user.setIsBirthDay(0);
|
||||
int i = userMapper.updateByPrimaryKeySelective(user);
|
||||
if (i > 0) {
|
||||
return Msg.success();
|
||||
}
|
||||
return Msg.fail();
|
||||
}
|
||||
public Msg addBirthDay(SysUser user) {
|
||||
SysUser sysUser = (SysUser) SecurityUtils.getSubject().getPrincipal();
|
||||
user.setUserId(sysUser.getUserId());
|
||||
user.setIsBirthDay(0);
|
||||
int i = userMapper.updateByPrimaryKeySelective(user);
|
||||
if (i > 0) {
|
||||
return Msg.success();
|
||||
}
|
||||
return Msg.fail();
|
||||
}
|
||||
|
||||
// 改变用户生日状态
|
||||
public Msg changeIsBirthDay(Integer userId) {
|
||||
try {
|
||||
userMapper.changeIsBirthDay(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
// 改变用户生日状态
|
||||
public Msg changeIsBirthDay(Integer userId) {
|
||||
try {
|
||||
userMapper.changeIsBirthDay(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
|
||||
public Msg changeNeedIp() {
|
||||
try {
|
||||
userMapper.changeNeedIp();
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
public Msg changeNeedIp() {
|
||||
try {
|
||||
userMapper.changeNeedIp();
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
|
||||
// 改变用户系统状态(管理员调整)
|
||||
public Msg changeSysStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.changeSysStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
// 改变用户系统状态(管理员调整)
|
||||
public Msg changeSysStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.changeSysStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
|
||||
// 改变用户系统状态(看完视频)
|
||||
public Msg videoOverToChangeSysStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.videoOverToChangeSysStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
// 改变用户系统状态(看完视频)
|
||||
public Msg videoOverToChangeSysStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.videoOverToChangeSysStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
|
||||
// 改变用户系统状态(答题通过)
|
||||
public Msg examOverToChangeSysStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.examOverToChangeSysStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
// 改变用户系统状态(答题通过)
|
||||
public Msg examOverToChangeSysStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.examOverToChangeSysStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
|
||||
// 改变阅读更新日志状态
|
||||
public Msg changeReadLogStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.changeReadLogStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
// 改变阅读更新日志状态
|
||||
public Msg changeReadLogStatus(Integer userId) {
|
||||
try {
|
||||
userMapper.changeReadLogStatus(userId);
|
||||
return Msg.success();
|
||||
} catch (Exception e) {
|
||||
return Msg.fail();
|
||||
}
|
||||
}
|
||||
|
||||
public SysUser getUserInfo(Integer userId) {
|
||||
try {
|
||||
return userMapper.getUserInfo(userId);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public SysUser getUserInfo(Integer userId) {
|
||||
try {
|
||||
return userMapper.getUserInfo(userId);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 客服数据 -- 根据搜索的店铺获取人员
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<SysUser> getRealnamesByShopname(String shopname) {
|
||||
return userMapper.getRealnamesByShopname(shopname);
|
||||
}
|
||||
/**
|
||||
* 客服数据 -- 根据搜索的店铺获取人员
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<SysUser> getRealnamesByShopname(String shopname) {
|
||||
return userMapper.getRealnamesByShopname(shopname);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -355,6 +355,9 @@
|
||||
left: 650px;
|
||||
top: 250px;
|
||||
}
|
||||
.swiper-slide{
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<script id="happinessiInfo" type="text/html">
|
||||
@@ -428,8 +431,7 @@
|
||||
<!--向上轮播-->
|
||||
<div class="swiper" style="height: 100%;width: 800px;">
|
||||
<div class="swiper-wrapper">
|
||||
<div class="swiper-slide" data-swiper-autoplay="5000">【新增】不干胶新增划线工艺 客户需要划线工艺的 划线工艺必选</div>
|
||||
<div class="swiper-slide" data-swiper-autoplay="5000">【新增】专版报价需要配件的要勾选相对应的配件报价</div>
|
||||
<div class="swiper-slide" data-swiper-autoplay="5000">【新增】特种纸新增打码 烫金工艺 注意!!!雅柔纸打码烫金的工艺材质会比报价系统的材质偏黄点 接单的时候要跟客户沟通清楚 以免造成不必要的售后</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,320 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||
pageEncoding="UTF-8" %>
|
||||
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Insert title here</title>
|
||||
<%@include file="/views/common.jsp" %>
|
||||
</head>
|
||||
<body>
|
||||
<div class="big_box">
|
||||
<div class="left_div">
|
||||
<h1 class="h1">澜达海报</h1> <span style="color:red;font-weight:700;"></span>
|
||||
<hr>
|
||||
<form class="layui-form">
|
||||
<input type="hidden" name="proTypeValue" id="proTypeValue" class="layui-input" value="澜达海报"/>
|
||||
<p>
|
||||
材质
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<select name="ui_bq_name" id="ui_bq_name" lay-filter="ui_fb_name" class="select" lay-search>
|
||||
<option value="1">铜版纸200g</option>
|
||||
<option value="2">铜版纸不干胶</option>
|
||||
<option value="3">pp纸(不带胶)</option>
|
||||
</select>
|
||||
</div>
|
||||
<p>
|
||||
尺寸(CM/厘米) <span style="font-size: 14px; color: red">输入格式: 长 * 宽</span>
|
||||
</p>
|
||||
<div class="layui-form-item" id="ui_size">
|
||||
<input type="text" name="size" id="size" placeholder="格式:长*宽" class="layui-input" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<p>
|
||||
数量(个)
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<select name="count" class="select">
|
||||
<option value="10">10</option>
|
||||
<option value="20">20</option>
|
||||
<option value="30">30</option>
|
||||
<option value="40">40</option>
|
||||
<option value="50">50</option>
|
||||
<option value="100">100</option>
|
||||
<option value="200">200</option>
|
||||
<option value="500">500</option>
|
||||
<option value="1000">1000</option>
|
||||
<option value="2000">2000</option>
|
||||
<option value="5000">5000</option>
|
||||
</select>
|
||||
</div>
|
||||
<p>
|
||||
款数
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<input type="text" placeholder="请输入整数" autocomplete="off" name="number" id="number" value="1"
|
||||
class="layui-input" lay-verify="number">
|
||||
</div>
|
||||
<p>
|
||||
客户旺旺
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<input type="text" placeholder="请输入客户旺旺号" autocomplete="off" name="wangwang" id="wangwang"
|
||||
class="layui-input">
|
||||
</div>
|
||||
<p>
|
||||
工艺
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block" style="display:inline-block;">
|
||||
印面:
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="单面" title="单面" checked>
|
||||
</div>
|
||||
<div class="layui-input-block" style="display:inline-block;">
|
||||
印色:
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="彩色印刷" title="彩色印刷">
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="专色" title="专色">
|
||||
</div>
|
||||
<div class="layui-input-block" style="display:inline-block;">
|
||||
裁切工艺:
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="直角裁切" title="直角裁切" checked>
|
||||
</div>
|
||||
<div class="layui-input-block" style="display:inline-block;">
|
||||
覆膜工艺:
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="覆光油" title="覆光油" checked>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="acount_btn">计算</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
<h2>计算结果-
|
||||
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm copyResult"
|
||||
onclick="copyResult()">点击复制
|
||||
</button>
|
||||
</h2>
|
||||
<div>
|
||||
<textarea rows="11" cols="75" id="span_result" readonly="readonly"></textarea>
|
||||
<%@include file="../acountExpressFee.jsp" %>
|
||||
</div>
|
||||
<div>
|
||||
<table class="layui-hide" id="priceTable" lay-filter="priceTable"></table>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="right_div" style="margin-left:50px;">
|
||||
<div class="layui-carousel" id="test1">
|
||||
<div carousel-item id="carousel"></div>
|
||||
<br>
|
||||
<div id="remark" style="font-size:20px;color:red"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<%@include file="/views/copyResult.jsp" %>
|
||||
<script>
|
||||
layui.use(['table', 'form', 'carousel'], function () {
|
||||
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
|
||||
var carousel = layui.carousel;
|
||||
var table = layui.table;
|
||||
|
||||
//建造实例
|
||||
ins = carousel.render({});
|
||||
var html = " ";
|
||||
var remark = " ";
|
||||
// 清空轮播图
|
||||
$("#carousel").empty();
|
||||
$("#remark").empty();
|
||||
$(".ui_feb").show();
|
||||
$(".ui_feb select").attr("disabled", false);
|
||||
$.ajax({
|
||||
url: "${pageContext.request.contextPath}/getImgs",
|
||||
type: "GET",
|
||||
data: {
|
||||
proTypeValue: $("#proTypeValue").val(),
|
||||
kindValue: $('input[name="kindValue"]').val()
|
||||
},
|
||||
success: function (result) {
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
// 只留一个remark
|
||||
remark = "";
|
||||
html += '<div><img style="width:' + result[0].imgWidth + 'px" src="' + result[i].imgUrl + '"></div>';
|
||||
remark += '<div><span>' + result[i].remark + '<span/></div>';
|
||||
}
|
||||
$("#carousel").append(html);
|
||||
// 如果没有说明,就不显示null
|
||||
if (remark.indexOf("null") < 0) {
|
||||
$("#remark").append(remark);
|
||||
}
|
||||
// 如果没有轮播图就隐藏
|
||||
if (result.length == 0) {
|
||||
document.getElementById("test1").style.display = "none"; //隐藏
|
||||
} else {
|
||||
document.getElementById("test1").style.display = "block"; //显示
|
||||
ins.reload({
|
||||
elem: '#test1',
|
||||
width: result[0].imgWidth, //设置容器宽度
|
||||
height: result[0].imgHeight
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
form.on('checkbox(ui_craft)', function (data) {
|
||||
let craft_list = [];
|
||||
$("input[name='craft']:checked").each(function () {
|
||||
if (!$(this).is(':disabled')) {
|
||||
craft_list.push($(this).val());
|
||||
}
|
||||
}
|
||||
);
|
||||
if (craft_list.indexOf("单面") == -1) {
|
||||
$(data.elem).prop("checked", true);
|
||||
layer.msg("印面不能取消选择", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
form.render();
|
||||
return false;
|
||||
}
|
||||
if (craft_list.indexOf("直角裁切") == -1) {
|
||||
$(data.elem).prop("checked", true);
|
||||
layer.msg("裁切不能取消选择", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
form.render();
|
||||
return false;
|
||||
}
|
||||
if (craft_list.indexOf("覆光油") == -1) {
|
||||
$(data.elem).prop("checked", true);
|
||||
layer.msg("覆膜不能取消选择", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
form.render();
|
||||
return false;
|
||||
}
|
||||
const carft_list1 = ["四色印刷", "专色"];
|
||||
const carft1 = carft_list1.filter(craft => craft_list.includes(craft));
|
||||
if (carft1.length > 1) {
|
||||
$(data.elem).prop("checked", false);
|
||||
layer.msg("印色工艺不能同时选择", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
form.render();
|
||||
return false;
|
||||
}
|
||||
})
|
||||
|
||||
// 点击计算,计算价格
|
||||
form.on('submit(acount_btn)', function (data) {
|
||||
var number = $("#number").val();
|
||||
var size = $("#size").val();
|
||||
var count = $("#count").val();
|
||||
var kind = $("#ui_bq_name option:selected").text();
|
||||
var craft = [];
|
||||
if (size == "") {
|
||||
layer.msg('请填写尺寸!', {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if ((size.split("*")[0] < 42 || size.split("*")[1] < 28.5) && (size.split("*")[0] < 28.5 || size.split("*")[1] < 42)) {
|
||||
layer.msg("【澜达海报】尺寸不能小于42*28.5 cm", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if ((size.split("*")[0] > 98 || size.split("*")[1] > 70) && (size.split("*")[0] > 70 || size.split("*")[1] > 98)) {
|
||||
layer.msg("【澜达海报】尺寸不能大于70*98 cm", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
$("input:checkbox[name='craft']:checked").each(function (i) {
|
||||
// 没有被禁用的工艺加到arr中
|
||||
if (!$(this).is(':disabled')) {
|
||||
craft.push($(this).val());
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
url: "${path}/getThanSum",
|
||||
type: "GET",
|
||||
data: $(".big_box form").serialize(),
|
||||
success: function (result) {
|
||||
if (result.code == 100) {
|
||||
layer.msg(result.msg, {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
var data = result.data.proList;
|
||||
|
||||
var span_result = '澜达海报 - ' + kind + ' - ' + size + ' CM (同款内容)\n';
|
||||
|
||||
span_result += `工艺:` + craft.join(",") + '\n';
|
||||
|
||||
if (number > 1) {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
span_result += number + '款 各' + data[i].count + "条,共" + data[i].price + "元" + '\n'
|
||||
data[i].number = number;
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
span_result += number + '款 ' + data[i].count + "条,共" + data[i].price + "元" + '\n'
|
||||
data[i].number = number;
|
||||
}
|
||||
}
|
||||
|
||||
span_result += '包邮,免费设计呢~(偏远地区需补邮费)'
|
||||
$("#span_result").val(span_result);
|
||||
|
||||
//计算完自动复制文本
|
||||
var e = document.getElementById("span_result");//对象是content
|
||||
if (e.value != "") {
|
||||
e.select();//选择对象
|
||||
document.execCommand("Copy");//执行浏览器复制命令
|
||||
}
|
||||
|
||||
//生成表格
|
||||
table.render({
|
||||
elem: '#priceTable',
|
||||
even: true, //隔行变色
|
||||
data: data, // 赋值已知数据
|
||||
width: 500,
|
||||
cols: [[
|
||||
{
|
||||
field: 'number',
|
||||
width: '12%',
|
||||
align: "center",
|
||||
title: '款数'
|
||||
}, {
|
||||
field: 'count',
|
||||
width: '16%',
|
||||
align: "center",
|
||||
title: '数量'
|
||||
}, {
|
||||
field: 'price',
|
||||
width: '16%',
|
||||
align: "center",
|
||||
title: '报价'
|
||||
}, {
|
||||
field: 'wangwang',
|
||||
align: "center",
|
||||
width: '16%',
|
||||
title: '折扣价'
|
||||
}, {
|
||||
field: 'wangwang',
|
||||
align: "center",
|
||||
width: '19%',
|
||||
title: '跳楼价'
|
||||
}, {
|
||||
field: 'weight',
|
||||
width: '21%',
|
||||
align: "center",
|
||||
title: '重量(kg)'
|
||||
}
|
||||
]],
|
||||
done: function () {
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</html>
|
||||
@@ -183,6 +183,11 @@
|
||||
<option value="3">3</option>
|
||||
<option value="4">4</option>
|
||||
<option value="5">5</option>
|
||||
<option value="6">6</option>
|
||||
<option value="7">7</option>
|
||||
<option value="8">8</option>
|
||||
<option value="9">9</option>
|
||||
<option value="10">10</option>
|
||||
</select>
|
||||
</div>
|
||||
</span>
|
||||
|
||||
@@ -0,0 +1,317 @@
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8"
|
||||
pageEncoding="UTF-8" %>
|
||||
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Insert title here</title>
|
||||
<%@include file="/views/common.jsp" %>
|
||||
</head>
|
||||
<body>
|
||||
<div class="big_box">
|
||||
<div class="left_div">
|
||||
<h1 class="h1">透卡</h1> <span style="color:red;font-weight:700;"></span>
|
||||
<hr>
|
||||
<form class="layui-form">
|
||||
<input type="hidden" name="proTypeValue" id="proTypeValue" class="layui-input" value="透卡"/>
|
||||
<p>
|
||||
材质
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<select name="ui_bq_name" id="ui_bq_name" lay-filter="ui_fb_name" class="select" lay-search>
|
||||
<option value="1">PET透卡</option>
|
||||
</select>
|
||||
</div>
|
||||
<p>
|
||||
尺寸(CM/厘米) <span style="font-size: 14px; color: red">输入格式: 长 * 宽</span>
|
||||
</p>
|
||||
<div class="layui-form-item" id="ui_size">
|
||||
<input type="text" name="size" id="size" placeholder="格式:长*宽" class="layui-input" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<p>
|
||||
数量(个)
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<select name="count" class="select">
|
||||
<option value="100">100</option>
|
||||
<option value="200">200</option>
|
||||
<option value="300">300</option>
|
||||
<option value="400">400</option>
|
||||
<option value="500">500</option>
|
||||
<option value="800">800</option>
|
||||
<option value="1000">1000</option>
|
||||
<option value="2000">2000</option>
|
||||
<option value="5000">5000</option>
|
||||
<option value="10000">10000</option>
|
||||
</select>
|
||||
</div>
|
||||
<p>
|
||||
款数
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<input type="text" placeholder="请输入整数" autocomplete="off" name="number" id="number" value="1"
|
||||
class="layui-input" lay-verify="number">
|
||||
</div>
|
||||
<p>
|
||||
客户旺旺
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<input type="text" placeholder="请输入客户旺旺号" autocomplete="off" name="wangwang" id="wangwang"
|
||||
class="layui-input">
|
||||
</div>
|
||||
<p>
|
||||
工艺
|
||||
</p>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block" style="display:inline-block;">
|
||||
印面:
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="单面" title="单面" checked>
|
||||
</div>
|
||||
<div class="layui-input-block" style="display:inline-block;">
|
||||
常见工艺:
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="彩色印刷" title="彩色印刷">
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="白墨" title="白墨">
|
||||
</div>
|
||||
<div class="layui-input-block" style="display:inline-block;">
|
||||
裁切工艺:
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="直角裁切" title="直角裁切" checked>
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="异形模切" title="异形模切">
|
||||
<input type="checkbox" name="craft" lay-filter="ui_craft" value="圆角" title="圆角">
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="layui-form-item">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="acount_btn">计算</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
<h2>计算结果-
|
||||
<button type="button" class="layui-btn layui-btn-primary layui-btn-sm copyResult"
|
||||
onclick="copyResult()">点击复制
|
||||
</button>
|
||||
</h2>
|
||||
<div>
|
||||
<textarea rows="11" cols="75" id="span_result" readonly="readonly"></textarea>
|
||||
<%@include file="../acountExpressFee.jsp" %>
|
||||
</div>
|
||||
<div>
|
||||
<table class="layui-hide" id="priceTable" lay-filter="priceTable"></table>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="right_div" style="margin-left:50px;">
|
||||
<div class="layui-carousel" id="test1">
|
||||
<div carousel-item id="carousel"></div>
|
||||
<br>
|
||||
<div id="remark" style="font-size:20px;color:red"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<%@include file="/views/copyResult.jsp" %>
|
||||
<script>
|
||||
layui.use(['table', 'form', 'carousel'], function () {
|
||||
var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
|
||||
var carousel = layui.carousel;
|
||||
var table = layui.table;
|
||||
|
||||
//建造实例
|
||||
ins = carousel.render({});
|
||||
var html = " ";
|
||||
var remark = " ";
|
||||
// 清空轮播图
|
||||
$("#carousel").empty();
|
||||
$("#remark").empty();
|
||||
$(".ui_feb").show();
|
||||
$(".ui_feb select").attr("disabled", false);
|
||||
$.ajax({
|
||||
url: "${pageContext.request.contextPath}/getImgs",
|
||||
type: "GET",
|
||||
data: {
|
||||
proTypeValue: $("#proTypeValue").val(),
|
||||
kindValue: $('input[name="kindValue"]').val()
|
||||
},
|
||||
success: function (result) {
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
// 只留一个remark
|
||||
remark = "";
|
||||
html += '<div><img style="width:' + result[0].imgWidth + 'px" src="' + result[i].imgUrl + '"></div>';
|
||||
remark += '<div><span>' + result[i].remark + '<span/></div>';
|
||||
}
|
||||
$("#carousel").append(html);
|
||||
// 如果没有说明,就不显示null
|
||||
if (remark.indexOf("null") < 0) {
|
||||
$("#remark").append(remark);
|
||||
}
|
||||
// 如果没有轮播图就隐藏
|
||||
if (result.length == 0) {
|
||||
document.getElementById("test1").style.display = "none"; //隐藏
|
||||
} else {
|
||||
document.getElementById("test1").style.display = "block"; //显示
|
||||
ins.reload({
|
||||
elem: '#test1',
|
||||
width: result[0].imgWidth, //设置容器宽度
|
||||
height: result[0].imgHeight
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
form.on('checkbox(ui_craft)', function (data) {
|
||||
let craft_list = [];
|
||||
$("input[name='craft']:checked").each(function () {
|
||||
if (!$(this).is(':disabled')) {
|
||||
craft_list.push($(this).val());
|
||||
}
|
||||
}
|
||||
);
|
||||
if (craft_list.indexOf("单面") == -1) {
|
||||
$(data.elem).prop("checked", true);
|
||||
layer.msg("印面不能取消选择", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
form.render();
|
||||
return false;
|
||||
}
|
||||
const carft_list1 = ["四色印刷", "白墨"];
|
||||
const carft1 = carft_list1.filter(craft => craft_list.includes(craft));
|
||||
if (carft1.length > 1) {
|
||||
$(data.elem).prop("checked", false);
|
||||
layer.msg("常见工艺不能同时选择", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
form.render();
|
||||
return false;
|
||||
}
|
||||
const carft_list2 = ["直角裁切", "异形模切", "圆角"];
|
||||
const carft2 = carft_list2.filter(craft => craft_list.includes(craft));
|
||||
if (carft2.length > 1) {
|
||||
$(data.elem).prop("checked", false);
|
||||
layer.msg("裁切工艺不能同时选择", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
form.render();
|
||||
return false;
|
||||
}
|
||||
})
|
||||
|
||||
// 点击计算,计算价格
|
||||
form.on('submit(acount_btn)', function (data) {
|
||||
var number = $("#number").val();
|
||||
var size = $("#size").val();
|
||||
var count = $("#count").val();
|
||||
var kind = $("#ui_bq_name option:selected").text();
|
||||
var craft = [];
|
||||
if (size == "") {
|
||||
layer.msg('请填写尺寸!', {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if ((size.split("*")[0] < 5 || size.split("*")[1] < 4.5) && (size.split("*")[0] < 4.5 || size.split("*")[1] < 5)) {
|
||||
layer.msg("【PET透卡】尺寸不能小于5*4.5 cm", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if ((size.split("*")[0] > 10 || size.split("*")[1] > 15) && (size.split("*")[0] > 15 || size.split("*")[1] > 10)) {
|
||||
layer.msg("【PET透卡】尺寸不能大于10*15 cm", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
$("input:checkbox[name='craft']:checked").each(function (i) {
|
||||
// 没有被禁用的工艺加到arr中
|
||||
if (!$(this).is(':disabled')) {
|
||||
craft.push($(this).val());
|
||||
}
|
||||
});
|
||||
const carft_list2 = ["直角裁切", "异形模切", "圆角"];
|
||||
const carft2 = carft_list2.filter(item => craft.includes(item));
|
||||
if (carft2.length == 0) {
|
||||
layer.msg("请选择裁切工艺", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "${path}/getThanSum",
|
||||
type: "GET",
|
||||
data: $(".big_box form").serialize(),
|
||||
success: function (result) {
|
||||
if (result.code == 100) {
|
||||
layer.msg(result.msg, {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
var data = result.data.proList;
|
||||
|
||||
var span_result = 'PET透卡 - ' + kind + ' - ' + size + ' CM (同款内容)\n';
|
||||
|
||||
span_result += `工艺:` + craft.join(",") + '\n';
|
||||
|
||||
if (number > 1) {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
span_result += number + '款 各' + data[i].count + "条,共" + data[i].price + "元" + '\n'
|
||||
data[i].number = number;
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
span_result += number + '款 ' + data[i].count + "条,共" + data[i].price + "元" + '\n'
|
||||
data[i].number = number;
|
||||
}
|
||||
}
|
||||
|
||||
span_result += '包邮,免费设计呢~(偏远地区需补邮费)'
|
||||
$("#span_result").val(span_result);
|
||||
|
||||
//计算完自动复制文本
|
||||
var e = document.getElementById("span_result");//对象是content
|
||||
if (e.value != "") {
|
||||
e.select();//选择对象
|
||||
document.execCommand("Copy");//执行浏览器复制命令
|
||||
}
|
||||
|
||||
//生成表格
|
||||
table.render({
|
||||
elem: '#priceTable',
|
||||
even: true, //隔行变色
|
||||
data: data, // 赋值已知数据
|
||||
width: 500,
|
||||
cols: [[
|
||||
{
|
||||
field: 'number',
|
||||
width: '12%',
|
||||
align: "center",
|
||||
title: '款数'
|
||||
}, {
|
||||
field: 'count',
|
||||
width: '16%',
|
||||
align: "center",
|
||||
title: '数量'
|
||||
}, {
|
||||
field: 'price',
|
||||
width: '16%',
|
||||
align: "center",
|
||||
title: '报价'
|
||||
}, {
|
||||
field: 'wangwang',
|
||||
align: "center",
|
||||
width: '16%',
|
||||
title: '折扣价'
|
||||
}, {
|
||||
field: 'wangwang',
|
||||
align: "center",
|
||||
width: '19%',
|
||||
title: '跳楼价'
|
||||
}, {
|
||||
field: 'weight',
|
||||
width: '21%',
|
||||
align: "center",
|
||||
title: '重量(kg)'
|
||||
}
|
||||
]],
|
||||
done: function () {
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</html>
|
||||
@@ -479,6 +479,13 @@
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if (craft_list.indexOf("打码") > -1 && craft_list.indexOf("异形模切") > -1) {
|
||||
$(data.elem).next().attr("class", "layui-unselect layui-form-checkbox");
|
||||
$(data.elem).prop("checked", false);
|
||||
layer.msg("打码 - 异形模切不能同时选择", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if (craft_list.indexOf("击凸") > -1 || craft_list.indexOf("压凹") > -1) {
|
||||
$("#color_type").show();
|
||||
$("#color_type").find("select").attr("disabled", false);
|
||||
@@ -513,6 +520,13 @@
|
||||
}
|
||||
}
|
||||
);
|
||||
if (craft_list.indexOf("打码") > -1 && craft_list.indexOf("异形模切") > -1) {
|
||||
$(data.elem).next().attr("class", "layui-unselect layui-form-checkbox");
|
||||
$(data.elem).prop("checked", false);
|
||||
layer.msg("打码 - 异形模切不能同时选择", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
$("#dakong").removeAttr('disabled');
|
||||
$("#craft_mo").removeAttr('disabled');
|
||||
$(".newCraft").children().removeAttr('disabled');
|
||||
@@ -651,22 +665,37 @@
|
||||
}
|
||||
}
|
||||
var arr = []
|
||||
let ma_num = $("select[name='maxian'] option:selected").val();
|
||||
let is_dama = false;
|
||||
$("input:checkbox[name='craft']:checked").each(function (i) {
|
||||
if (!$(this).is(':disabled')) {
|
||||
if ($(this).val() != "双面覆哑膜") {
|
||||
if ($(this).val() == "单面烫金" || $(this).val() == "双面烫金") {
|
||||
let tangColor = $("#tang_type select[name='craft'] option:selected").val();
|
||||
arr.push($(this).val() + tangColor);
|
||||
}
|
||||
else if ($(this).val() == "打码") {
|
||||
let ma_num = $("select[name='maxian'] option:selected").val();
|
||||
} else if ($(this).val() == "打码") {
|
||||
is_dama = true;
|
||||
arr.push($(this).val() + ma_num + "个");
|
||||
}else {
|
||||
} else {
|
||||
arr.push($(this).val());
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if (is_dama) {
|
||||
if ((size.split("*")[0] < 9 || size.split("*")[1] < 5.4) && (size.split("*")[0] < 5.4 || size.split("*")[1] < 9)) {
|
||||
layer.msg("打码尺寸不能小于9*5.4 cm", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if (ma_num > 1) {
|
||||
if ((size.split("*")[0] < 13 || size.split("*")[1] < 4.5) && (size.split("*")[0] < 4.5 || size.split("*")[1] < 13)) {
|
||||
layer.msg("打码尺寸小于13*4.5 cm不能打多个码", {offset: ['300px', '300px']}, function () {
|
||||
});
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (kindValueSelect == '素芸') {
|
||||
let color = $("select[name='craft']:not(:disabled) option:selected").val()
|
||||
if (color) {
|
||||
|
||||
새 이슈에서 참조
사용자 차단